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 @@
...
@@ -135,6 +135,14 @@
android:parentActivityName=
".activities.SettingsActivity"
/>
android:parentActivityName=
".activities.SettingsActivity"
/>
<activity
<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:name=
".activities.ManageBlockedKeywordsActivity"
android:configChanges=
"orientation"
android:configChanges=
"orientation"
android:exported=
"false"
android:exported=
"false"
...
...
app/src/main/kotlin/com/secspace/sms/activities/MainActivity.kt
View file @
491f70e5
...
@@ -201,17 +201,17 @@ class MainActivity : SimpleActivity() {
...
@@ -201,17 +201,17 @@ class MainActivity : SimpleActivity() {
searchTextChanged
(
text
)
searchTextChanged
(
text
)
}
}
/*
binding.mainMenu.getToolbar().setOnMenuItemClickListener { menuItem ->
binding
.
mainMenu
.
getToolbar
().
setOnMenuItemClickListener
{
menuItem
->
when
(
menuItem
.
itemId
)
{
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_recycle_bin -> launchRecycleBin()
R.id.show_archived -> launchArchivedConversations()
R.id.show_archived -> launchArchivedConversations()
R.id.about -> launchAbout()*/
R
.
id
.
settings
->
launchSettings
()
R
.
id
.
settings
->
launchSettings
()
R.id.about -> launchAbout()
else
->
return
@setOnMenuItemClickListener
false
else
->
return
@setOnMenuItemClickListener
false
}
}
return
@setOnMenuItemClickListener
true
return
@setOnMenuItemClickListener
true
}
*/
}
}
}
private
fun
refreshMenuItems
()
{
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
...
@@ -13,6 +13,7 @@ import com.secspace.sms.extensions.config
import
com.secspace.sms.extensions.emptyMessagesRecycleBin
import
com.secspace.sms.extensions.emptyMessagesRecycleBin
import
com.secspace.sms.extensions.messagesDB
import
com.secspace.sms.extensions.messagesDB
import
com.secspace.sms.helpers.*
import
com.secspace.sms.helpers.*
import
com.simplemobiletools.commons.activities.ManageBlockedNumbersActivity
import
com.simplemobiletools.commons.dialogs.*
import
com.simplemobiletools.commons.dialogs.*
import
com.simplemobiletools.commons.extensions.*
import
com.simplemobiletools.commons.extensions.*
import
com.simplemobiletools.commons.helpers.*
import
com.simplemobiletools.commons.helpers.*
...
@@ -48,27 +49,28 @@ class SettingsActivity : SimpleActivity() {
...
@@ -48,27 +49,28 @@ class SettingsActivity : SimpleActivity() {
super
.
onResume
()
super
.
onResume
()
setupToolbar
(
binding
.
settingsToolbar
,
NavigationIcon
.
Arrow
)
setupToolbar
(
binding
.
settingsToolbar
,
NavigationIcon
.
Arrow
)
setupPurchaseThankYou
()
//
setupPurchaseThankYou()
setupCustomizeColors
()
//
setupCustomizeColors()
// setupCustomizeNotifications()
// setupCustomizeNotifications()
setupUseEnglish
()
//
setupUseEnglish()
// setupLanguage()
// setupLanguage()
setupManageBlockedKeywords
()
setupManageBlockedNumbers
()
setupChangeDateTimeFormat
()
// setupManageBlockedKeywords()
setupFontSize
()
// setupChangeDateTimeFormat()
setupShowCharacterCounter
()
// setupFontSize()
setupUseSimpleCharacters
()
// setupShowCharacterCounter()
setupSendOnEnter
()
// setupUseSimpleCharacters()
setupEnableDeliveryReports
()
// setupSendOnEnter()
setupSendLongMessageAsMMS
()
// setupEnableDeliveryReports()
setupGroupMessageAsMMS
()
// setupSendLongMessageAsMMS()
setupLockScreenVisibility
()
// setupGroupMessageAsMMS()
setupMMSFileSizeLimit
()
// setupLockScreenVisibility()
setupUseRecycleBin
()
// setupMMSFileSizeLimit()
setupEmptyRecycleBin
()
// setupUseRecycleBin()
setupAppPasswordProtection
()
// setupEmptyRecycleBin()
setupMessagesExport
()
// setupAppPasswordProtection()
setupMessagesImport
()
// setupMessagesExport()
// setupMessagesImport()
updateTextColors
(
binding
.
settingsNestedScrollview
)
updateTextColors
(
binding
.
settingsNestedScrollview
)
if
(
blockedNumbersAtPause
!=
-
1
&&
blockedNumbersAtPause
!=
getBlockedNumbers
().
hashCode
())
{
if
(
blockedNumbersAtPause
!=
-
1
&&
blockedNumbersAtPause
!=
getBlockedNumbers
().
hashCode
())
{
...
@@ -185,20 +187,20 @@ class SettingsActivity : SimpleActivity() {
...
@@ -185,20 +187,20 @@ class SettingsActivity : SimpleActivity() {
}
}
// support for device-wise blocking came on Android 7, rely only on that
// 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
)
settingsManageBlockedNumbers
.
text
=
addLockedLabelIfNeeded
(
com
.
simplemobiletools
.
commons
.
R
.
string
.
manage_blocked_numbers
)
settingsManageBlockedNumbersHolder
.
beVisibleIf
(
isNougatPlus
())
settingsManageBlockedNumbersHolder
.
beVisibleIf
(
isNougatPlus
())
settingsManageBlockedNumbersHolder
.
setOnClickListener
{
settingsManageBlockedNumbersHolder
.
setOnClickListener
{
if (isOrWasThankYouInstalled()) {
//
if (isOrWasThankYouInstalled()) {
Intent
(
this
@SettingsActivity
,
ManageBlockedNumbersActivity
::
class
.
java
).
apply
{
Intent
(
this
@SettingsActivity
,
ManageBlockedNumbersActivity
::
class
.
java
).
apply
{
startActivity
(
this
)
startActivity
(
this
)
}
}
} else {
//
} else {
FeatureLockedDialog(this@SettingsActivity) { }
//
FeatureLockedDialog(this@SettingsActivity) { }
}
//
}
}
}
}
*/
}
private
fun
setupManageBlockedKeywords
()
=
binding
.
apply
{
private
fun
setupManageBlockedKeywords
()
=
binding
.
apply
{
settingsManageBlockedKeywords
.
text
=
addLockedLabelIfNeeded
(
R
.
string
.
manage_blocked_keywords
)
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() {
...
@@ -259,8 +259,8 @@ class ThreadActivity : SimpleActivity() {
findItem
(
R
.
id
.
unarchive
).
isVisible
=
/*threadItems.isNotEmpty() && conversation?.isArchived == true && !isRecycleBin && archiveAvailable*/
false
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
.
rename_conversation
).
isVisible
=
/*participants.size > 1 && conversation != null && !isRecycleBin*/
false
findItem
(
R
.
id
.
conversation_details
).
isVisible
=
/*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
).
title
=
addLockedLabelIfNeeded
(
com
.
simplemobiletools
.
commons
.
R
.
string
.
block_number
)
findItem
(
R
.
id
.
block_number
).
isVisible
=
/*isNougatPlus() && !isRecycleBin*/
false
findItem
(
R
.
id
.
block_number
).
isVisible
=
isNougatPlus
()
&&
!
isRecycleBin
findItem
(
R
.
id
.
dial_number
).
isVisible
=
/*participants.size == 1 && !isSpecialNumber() && !isRecycleBin*/
false
findItem
(
R
.
id
.
dial_number
).
isVisible
=
/*participants.size == 1 && !isSpecialNumber() && !isRecycleBin*/
false
findItem
(
R
.
id
.
manage_people
).
isVisible
=
/*!isSpecialNumber() && !isRecycleBin */
false
findItem
(
R
.
id
.
manage_people
).
isVisible
=
/*!isSpecialNumber() && !isRecycleBin */
false
findItem
(
R
.
id
.
mark_as_unread
).
isVisible
=
/*threadItems.isNotEmpty() && !isRecycleBin*/
false
findItem
(
R
.
id
.
mark_as_unread
).
isVisible
=
/*threadItems.isNotEmpty() && !isRecycleBin*/
false
...
@@ -280,8 +280,8 @@ class ThreadActivity : SimpleActivity() {
...
@@ -280,8 +280,8 @@ class ThreadActivity : SimpleActivity() {
when
(
menuItem
.
itemId
)
{
when
(
menuItem
.
itemId
)
{
R
.
id
.
delete
->
askConfirmDelete
()
R
.
id
.
delete
->
askConfirmDelete
()
/*
R.id.block_number -> tryBlocking()
R
.
id
.
block_number
->
tryBlocking
()
R.id.restore -> askConfirmRestoreAll()
/*
R.id.restore -> askConfirmRestoreAll()
R.id.archive -> archiveConversation()
R.id.archive -> archiveConversation()
R.id.unarchive -> unarchiveConversation()
R.id.unarchive -> unarchiveConversation()
R.id.rename_conversation -> renameConversation()
R.id.rename_conversation -> renameConversation()
...
@@ -945,11 +945,11 @@ class ThreadActivity : SimpleActivity() {
...
@@ -945,11 +945,11 @@ class ThreadActivity : SimpleActivity() {
}
}
private
fun
tryBlocking
()
{
private
fun
tryBlocking
()
{
if
(
isOrWasThankYouInstalled
())
{
//
if (isOrWasThankYouInstalled()) {
blockNumber
()
blockNumber
()
}
else
{
//
} else {
FeatureLockedDialog
(
this
)
{
}
//
FeatureLockedDialog(this) { }
}
//
}
}
}
private
fun
blockNumber
()
{
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 @@
...
@@ -17,7 +17,6 @@
android:id=
"@+id/settings"
android:id=
"@+id/settings"
android:icon=
"@drawable/ic_settings_cog_vector"
android:icon=
"@drawable/ic_settings_cog_vector"
android:title=
"@string/settings"
android:title=
"@string/settings"
android:visible=
"false"
app:showAsAction=
"always"
/>
app:showAsAction=
"always"
/>
<item
<item
android:id=
"@+id/about"
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(
...
@@ -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),
label = if (isDialer) stringResource(id = R.string.block_not_stored_calls) else stringResource(id = R.string.block_not_stored_messages),
initialValue = isBlockUnknownSelected,
initialValue = isBlockUnknownSelected,
onChange = onBlockUnknownSelectedChange,
onChange = onBlockUnknownSelectedChange,
...
@@ -152,7 +152,7 @@ internal fun ManageBlockedNumbersScreen(
...
@@ -152,7 +152,7 @@ internal fun ManageBlockedNumbersScreen(
initialValue = isHiddenSelected,
initialValue = isHiddenSelected,
onChange = onHiddenSelectedChange,
onChange = onHiddenSelectedChange,
modifier = startingPadding.then(Modifier.topAppBarPaddings()),
modifier = startingPadding.then(Modifier.topAppBarPaddings()),
)
)
*/
SettingsHorizontalDivider
(
modifier
=
Modifier
.
topAppBarPaddings
())
SettingsHorizontalDivider
(
modifier
=
Modifier
.
topAppBarPaddings
())
}
}
},
},
...
@@ -565,8 +565,8 @@ private fun NonActionModeToolbar(
...
@@ -565,8 +565,8 @@ private fun NonActionModeToolbar(
val
actionMenus
=
remember
{
val
actionMenus
=
remember
{
listOf
(
listOf
(
ActionItem
(
R
.
string
.
add_a_blocked_number
,
icon
=
Icons
.
Filled
.
Add
,
doAction
=
onAdd
),
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.import_blocked_numbers, doAction = onImportBlockedNumbers, overflowMode = OverflowMode.ALWAYS_OVERFLOW),
ActionItem
(
R
.
string
.
export_blocked_numbers
,
doAction
=
onExportBlockedNumbers
,
overflowMode
=
OverflowMode
.
ALWAYS_OVERFLOW
),
ActionItem(R.string.export_blocked_numbers, doAction = onExportBlockedNumbers, overflowMode = OverflowMode.ALWAYS_OVERFLOW),
*/
).
toImmutableList
()
).
toImmutableList
()
}
}
var
isMenuVisible
by
remember
{
mutableStateOf
(
false
)
}
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 {
...
@@ -523,11 +523,12 @@ fun Context.getCustomizeColorsString(): String {
}
}
fun
Context
.
addLockedLabelIfNeeded
(
stringId
:
Int
):
String
{
fun
Context
.
addLockedLabelIfNeeded
(
stringId
:
Int
):
String
{
return
if
(
isOrWasThankYouInstalled
())
{
/*
return if (isOrWasThankYouInstalled()) {
getString(stringId)
getString(stringId)
} else {
} else {
"${getString(stringId)} (${getString(R.string.feature_locked)})"
"${getString(stringId)} (${getString(R.string.feature_locked)})"
}
}*/
return
getString
(
stringId
)
}
}
fun
Context
.
isPackageInstalled
(
pkgName
:
String
):
Boolean
{
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