Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Simple-Sms
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangchengbo
Simple-Sms
Commits
491f70e5
Commit
491f70e5
authored
Nov 19, 2025
by
zhangchengbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:[加入黑名单]-[管理黑名单]功能
parent
87bf7fab
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
54 additions
and
44 deletions
+54
-44
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+8
-0
MainActivity.kt
...c/main/kotlin/com/secspace/sms/activities/MainActivity.kt
+4
-4
SettingsActivity.kt
...in/kotlin/com/secspace/sms/activities/SettingsActivity.kt
+27
-25
ThreadActivity.kt
...main/kotlin/com/secspace/sms/activities/ThreadActivity.kt
+8
-8
activity_settings.xml
app/src/main/res/layout/activity_settings.xml
+0
-0
menu_main.xml
app/src/main/res/menu/menu_main.xml
+0
-1
ManageBlockedNumbersActivity.kt
...etools/commons/activities/ManageBlockedNumbersActivity.kt
+0
-0
ManageBlockedNumbersScreen.kt
...ols/commons/compose/screens/ManageBlockedNumbersScreen.kt
+4
-4
Context.kt
...otlin/com/simplemobiletools/commons/extensions/Context.kt
+3
-2
No files found.
app/src/main/AndroidManifest.xml
View file @
491f70e5
...
...
@@ -135,6 +135,14 @@
android:parentActivityName=
".activities.SettingsActivity"
/>
<activity
android:name=
"com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity"
android:configChanges=
"orientation"
android:exported=
"false"
android:label=
"@string/blocked_numbers"
android:parentActivityName=
".activities.SettingsActivity"
tools:replace=
"android:label"
/>
<activity
android:name=
".activities.ManageBlockedKeywordsActivity"
android:configChanges=
"orientation"
android:exported=
"false"
...
...
app/src/main/kotlin/com/secspace/sms/activities/MainActivity.kt
View file @
491f70e5
...
...
@@ -201,17 +201,17 @@ class MainActivity : SimpleActivity() {
searchTextChanged
(
text
)
}
/*
binding.mainMenu.getToolbar().setOnMenuItemClickListener { menuItem ->
binding
.
mainMenu
.
getToolbar
().
setOnMenuItemClickListener
{
menuItem
->
when
(
menuItem
.
itemId
)
{
R.id.more_apps_from_us -> launchMoreAppsFromUsIntent()
/*
R.id.more_apps_from_us -> launchMoreAppsFromUsIntent()
R.id.show_recycle_bin -> launchRecycleBin()
R.id.show_archived -> launchArchivedConversations()
R.id.about -> launchAbout()*/
R
.
id
.
settings
->
launchSettings
()
R.id.about -> launchAbout()
else
->
return
@setOnMenuItemClickListener
false
}
return
@setOnMenuItemClickListener
true
}
*/
}
}
private
fun
refreshMenuItems
()
{
...
...
app/src/main/kotlin/com/secspace/sms/activities/SettingsActivity.kt
View file @
491f70e5
...
...
@@ -13,6 +13,7 @@ import com.secspace.sms.extensions.config
import
com.secspace.sms.extensions.emptyMessagesRecycleBin
import
com.secspace.sms.extensions.messagesDB
import
com.secspace.sms.helpers.*
import
com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity
import
com.simplemobiletools.commons.dialogs.*
import
com.simplemobiletools.commons.extensions.*
import
com.simplemobiletools.commons.helpers.*
...
...
@@ -48,27 +49,28 @@ class SettingsActivity : SimpleActivity() {
super
.
onResume
()
setupToolbar
(
binding
.
settingsToolbar
,
NavigationIcon
.
Arrow
)
setupPurchaseThankYou
()
setupCustomizeColors
()
//
setupPurchaseThankYou()
//
setupCustomizeColors()
// setupCustomizeNotifications()
setupUseEnglish
()
//
setupUseEnglish()
// setupLanguage()
setupManageBlockedKeywords
()
setupChangeDateTimeFormat
()
setupFontSize
()
setupShowCharacterCounter
()
setupUseSimpleCharacters
()
setupSendOnEnter
()
setupEnableDeliveryReports
()
setupSendLongMessageAsMMS
()
setupGroupMessageAsMMS
()
setupLockScreenVisibility
()
setupMMSFileSizeLimit
()
setupUseRecycleBin
()
setupEmptyRecycleBin
()
setupAppPasswordProtection
()
setupMessagesExport
()
setupMessagesImport
()
setupManageBlockedNumbers
()
// setupManageBlockedKeywords()
// setupChangeDateTimeFormat()
// setupFontSize()
// setupShowCharacterCounter()
// setupUseSimpleCharacters()
// setupSendOnEnter()
// setupEnableDeliveryReports()
// setupSendLongMessageAsMMS()
// setupGroupMessageAsMMS()
// setupLockScreenVisibility()
// setupMMSFileSizeLimit()
// setupUseRecycleBin()
// setupEmptyRecycleBin()
// setupAppPasswordProtection()
// setupMessagesExport()
// setupMessagesImport()
updateTextColors
(
binding
.
settingsNestedScrollview
)
if
(
blockedNumbersAtPause
!=
-
1
&&
blockedNumbersAtPause
!=
getBlockedNumbers
().
hashCode
())
{
...
...
@@ -185,20 +187,20 @@ class SettingsActivity : SimpleActivity() {
}
// support for device-wise blocking came on Android 7, rely only on that
/*
private fun setupManageBlockedNumbers() = binding.apply {
private
fun
setupManageBlockedNumbers
()
=
binding
.
apply
{
settingsManageBlockedNumbers
.
text
=
addLockedLabelIfNeeded
(
com
.
simplemobiletools
.
commons
.
R
.
string
.
manage_blocked_numbers
)
settingsManageBlockedNumbersHolder
.
beVisibleIf
(
isNougatPlus
())
settingsManageBlockedNumbersHolder
.
setOnClickListener
{
if (isOrWasThankYouInstalled()) {
//
if (isOrWasThankYouInstalled()) {
Intent
(
this
@SettingsActivity
,
ManageBlockedNumbersActivity
::
class
.
java
).
apply
{
startActivity
(
this
)
}
} else {
FeatureLockedDialog(this@SettingsActivity) { }
}
//
} else {
//
FeatureLockedDialog(this@SettingsActivity) { }
//
}
}
}
*/
}
private
fun
setupManageBlockedKeywords
()
=
binding
.
apply
{
settingsManageBlockedKeywords
.
text
=
addLockedLabelIfNeeded
(
R
.
string
.
manage_blocked_keywords
)
...
...
app/src/main/kotlin/com/secspace/sms/activities/ThreadActivity.kt
View file @
491f70e5
...
...
@@ -259,8 +259,8 @@ class ThreadActivity : SimpleActivity() {
findItem
(
R
.
id
.
unarchive
).
isVisible
=
/*threadItems.isNotEmpty() && conversation?.isArchived == true && !isRecycleBin && archiveAvailable*/
false
findItem
(
R
.
id
.
rename_conversation
).
isVisible
=
/*participants.size > 1 && conversation != null && !isRecycleBin*/
false
findItem
(
R
.
id
.
conversation_details
).
isVisible
=
/*conversation != null && !isRecycleBin*/
false
findItem
(
R
.
id
.
block_number
).
title
=
/*addLockedLabelIfNeeded(com.simplemobiletools.commons.R.string.block_number)*/
""
findItem
(
R
.
id
.
block_number
).
isVisible
=
/*isNougatPlus() && !isRecycleBin*/
false
findItem
(
R
.
id
.
block_number
).
title
=
addLockedLabelIfNeeded
(
com
.
simplemobiletools
.
commons
.
R
.
string
.
block_number
)
findItem
(
R
.
id
.
block_number
).
isVisible
=
isNougatPlus
()
&&
!
isRecycleBin
findItem
(
R
.
id
.
dial_number
).
isVisible
=
/*participants.size == 1 && !isSpecialNumber() && !isRecycleBin*/
false
findItem
(
R
.
id
.
manage_people
).
isVisible
=
/*!isSpecialNumber() && !isRecycleBin */
false
findItem
(
R
.
id
.
mark_as_unread
).
isVisible
=
/*threadItems.isNotEmpty() && !isRecycleBin*/
false
...
...
@@ -280,8 +280,8 @@ class ThreadActivity : SimpleActivity() {
when
(
menuItem
.
itemId
)
{
R
.
id
.
delete
->
askConfirmDelete
()
/*
R.id.block_number -> tryBlocking()
R.id.restore -> askConfirmRestoreAll()
R
.
id
.
block_number
->
tryBlocking
()
/*
R.id.restore -> askConfirmRestoreAll()
R.id.archive -> archiveConversation()
R.id.unarchive -> unarchiveConversation()
R.id.rename_conversation -> renameConversation()
...
...
@@ -945,11 +945,11 @@ class ThreadActivity : SimpleActivity() {
}
private
fun
tryBlocking
()
{
if
(
isOrWasThankYouInstalled
())
{
//
if (isOrWasThankYouInstalled()) {
blockNumber
()
}
else
{
FeatureLockedDialog
(
this
)
{
}
}
//
} else {
//
FeatureLockedDialog(this) { }
//
}
}
private
fun
blockNumber
()
{
...
...
app/src/main/res/layout/activity_settings.xml
View file @
491f70e5
This diff is collapsed.
Click to expand it.
app/src/main/res/menu/menu_main.xml
View file @
491f70e5
...
...
@@ -17,7 +17,6 @@
android:id=
"@+id/settings"
android:icon=
"@drawable/ic_settings_cog_vector"
android:title=
"@string/settings"
android:visible=
"false"
app:showAsAction=
"always"
/>
<item
android:id=
"@+id/about"
...
...
commons/src/main/kotlin/com/simplemobiletools/commons/activities/ManageBlockedNumbersActivity.kt
0 → 100644
View file @
491f70e5
This diff is collapsed.
Click to expand it.
commons/src/main/kotlin/com/simplemobiletools/commons/compose/screens/ManageBlockedNumbersScreen.kt
View file @
491f70e5
...
...
@@ -141,7 +141,7 @@ internal fun ManageBlockedNumbersScreen(
}
}
SettingsCheckBoxComponent
(
/*
SettingsCheckBoxComponent(
label = if (isDialer) stringResource(id = R.string.block_not_stored_calls) else stringResource(id = R.string.block_not_stored_messages),
initialValue = isBlockUnknownSelected,
onChange = onBlockUnknownSelectedChange,
...
...
@@ -152,7 +152,7 @@ internal fun ManageBlockedNumbersScreen(
initialValue = isHiddenSelected,
onChange = onHiddenSelectedChange,
modifier = startingPadding.then(Modifier.topAppBarPaddings()),
)
)
*/
SettingsHorizontalDivider
(
modifier
=
Modifier
.
topAppBarPaddings
())
}
},
...
...
@@ -565,8 +565,8 @@ private fun NonActionModeToolbar(
val
actionMenus
=
remember
{
listOf
(
ActionItem
(
R
.
string
.
add_a_blocked_number
,
icon
=
Icons
.
Filled
.
Add
,
doAction
=
onAdd
),
ActionItem
(
R
.
string
.
import_blocked_numbers
,
doAction
=
onImportBlockedNumbers
,
overflowMode
=
OverflowMode
.
ALWAYS_OVERFLOW
),
ActionItem
(
R
.
string
.
export_blocked_numbers
,
doAction
=
onExportBlockedNumbers
,
overflowMode
=
OverflowMode
.
ALWAYS_OVERFLOW
),
/*
ActionItem(R.string.import_blocked_numbers, doAction = onImportBlockedNumbers, overflowMode = OverflowMode.ALWAYS_OVERFLOW),
ActionItem(R.string.export_blocked_numbers, doAction = onExportBlockedNumbers, overflowMode = OverflowMode.ALWAYS_OVERFLOW),
*/
).
toImmutableList
()
}
var
isMenuVisible
by
remember
{
mutableStateOf
(
false
)
}
...
...
commons/src/main/kotlin/com/simplemobiletools/commons/extensions/Context.kt
View file @
491f70e5
...
...
@@ -523,11 +523,12 @@ fun Context.getCustomizeColorsString(): String {
}
fun
Context
.
addLockedLabelIfNeeded
(
stringId
:
Int
):
String
{
return
if
(
isOrWasThankYouInstalled
())
{
/*
return if (isOrWasThankYouInstalled()) {
getString(stringId)
} else {
"${getString(stringId)} (${getString(R.string.feature_locked)})"
}
}*/
return
getString
(
stringId
)
}
fun
Context
.
isPackageInstalled
(
pkgName
:
String
):
Boolean
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment