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
f41ba949
Commit
f41ba949
authored
Aug 26, 2025
by
zhangchengbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:解决应用覆盖升级后,所记录的手机号集合丢失
parent
90fc62bf
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
45 additions
and
14 deletions
+45
-14
MainActivity.kt
...c/main/kotlin/com/secspace/sms/activities/MainActivity.kt
+16
-8
ThreadActivity.kt
...main/kotlin/com/secspace/sms/activities/ThreadActivity.kt
+10
-3
ConversationsAdapter.kt
.../kotlin/com/secspace/sms/adapters/ConversationsAdapter.kt
+13
-3
Config.kt
app/src/main/kotlin/com/secspace/sms/helpers/Config.kt
+5
-0
Constants.kt
app/src/main/kotlin/com/secspace/sms/helpers/Constants.kt
+1
-0
No files found.
app/src/main/kotlin/com/secspace/sms/activities/MainActivity.kt
View file @
f41ba949
...
@@ -15,6 +15,8 @@ import android.text.TextUtils
...
@@ -15,6 +15,8 @@ import android.text.TextUtils
import
androidx.annotation.RequiresApi
import
androidx.annotation.RequiresApi
import
androidx.coordinatorlayout.widget.CoordinatorLayout
import
androidx.coordinatorlayout.widget.CoordinatorLayout
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.google.gson.Gson
import
com.secspace.log.Log
import
com.secspace.sms.R
import
com.secspace.sms.R
import
com.secspace.sms.adapters.ConversationsAdapter
import
com.secspace.sms.adapters.ConversationsAdapter
import
com.secspace.sms.adapters.SearchResultsAdapter
import
com.secspace.sms.adapters.SearchResultsAdapter
...
@@ -29,6 +31,7 @@ import com.secspace.sms.util.SmsCountUtil
...
@@ -29,6 +31,7 @@ import com.secspace.sms.util.SmsCountUtil
import
com.simplemobiletools.commons.dialogs.PermissionRequiredDialog
import
com.simplemobiletools.commons.dialogs.PermissionRequiredDialog
import
com.simplemobiletools.commons.extensions.*
import
com.simplemobiletools.commons.extensions.*
import
com.simplemobiletools.commons.helpers.*
import
com.simplemobiletools.commons.helpers.*
import
com.simplemobiletools.commons.util.GsonUtil
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
import
org.greenrobot.eventbus.EventBus
import
org.greenrobot.eventbus.EventBus
...
@@ -507,15 +510,20 @@ class MainActivity : SimpleActivity() {
...
@@ -507,15 +510,20 @@ class MainActivity : SimpleActivity() {
setFirstConversationAndUpdateData
(
sortedConversations
)
setFirstConversationAndUpdateData
(
sortedConversations
)
//根据记录被删除的会话手机号,从会话列表中判断手机号是否一致,满足就脱敏手机号(为了解决荣耀云备份后恢复,手机号未脱敏的情况)
//根据记录被删除的会话手机号,从会话列表中判断手机号是否一致,满足就脱敏手机号(为了解决荣耀云备份后恢复,手机号未脱敏的情况)
// Log.d(TAG, "setupConversations listThreadData = ${Constant.listThreadData}")
val
listMsgIdAll
:
String
?
=
Config
.
newInstance
(
this
@MainActivity
).
listDeleteMsgIdAllData
if
(
Constant
.
listThreadData
.
isNotEmpty
())
{
android
.
util
.
Log
.
d
(
TAG
,
"setupConversations 获取被删除的会话集合 listMsgIdAll = ${listMsgIdAll}"
)
val
listConversationData
:
List
<
Conversation
>
=
conversations
.
filter
{
Constant
.
listThreadData
.
contains
(
it
.
phoneNumber
)
}
if
(!
listMsgIdAll
.
isNullOrEmpty
()){
// Log.d(TAG, "setupConversations 找到被删除的 ListConversation 会话 = ${Gson().toJson(listConversationData)}")
val
listData
:
ArrayList
<
String
>
=
listMsgIdAll
.
split
(
","
).
toArrayList
()
if
(
listConversationData
.
isNotEmpty
())
{
// android.util.Log.d(TAG, "setupConversations split listData = ${listData}")
listConversationData
.
forEach
{
conversation
->
if
(
listData
.
isNotEmpty
())
{
val
listConversationData
:
List
<
Conversation
>
=
conversations
.
filter
{
listData
.
contains
(
it
.
phoneNumber
)
}
// Log.d(TAG, "setupConversations 找到被删除的 ListConversation 会话 = ${Gson().toJson(listConversationData)}")
if
(
listConversationData
.
isNotEmpty
())
{
listConversationData
.
forEach
{
conversation
->
// Constant.listThreadData.remove(conversation.phoneNumber)
// Constant.listThreadData.remove(conversation.phoneNumber)
conversation
.
isSFNumber
=
true
conversation
.
isSFNumber
=
true
conversationsDB
.
insertOrUpdate
(
conversation
)
conversationsDB
.
insertOrUpdate
(
conversation
)
}
}
}
}
}
}
}
...
...
app/src/main/kotlin/com/secspace/sms/activities/ThreadActivity.kt
View file @
f41ba949
...
@@ -65,6 +65,7 @@ import com.simplemobiletools.commons.helpers.*
...
@@ -65,6 +65,7 @@ import com.simplemobiletools.commons.helpers.*
import
com.simplemobiletools.commons.models.PhoneNumber
import
com.simplemobiletools.commons.models.PhoneNumber
import
com.simplemobiletools.commons.models.RadioItem
import
com.simplemobiletools.commons.models.RadioItem
import
com.simplemobiletools.commons.models.SimpleContact
import
com.simplemobiletools.commons.models.SimpleContact
import
com.simplemobiletools.commons.util.GsonUtil
import
com.simplemobiletools.commons.views.MyRecyclerView
import
com.simplemobiletools.commons.views.MyRecyclerView
import
org.greenrobot.eventbus.EventBus
import
org.greenrobot.eventbus.EventBus
import
org.greenrobot.eventbus.Subscribe
import
org.greenrobot.eventbus.Subscribe
...
@@ -978,9 +979,15 @@ class ThreadActivity : SimpleActivity() {
...
@@ -978,9 +979,15 @@ class ThreadActivity : SimpleActivity() {
// Log.d(TAG, "getNewConversations threadId = ${threadId} listMessageData = ${Gson().toJson(listMessageData)} ")
// Log.d(TAG, "getNewConversations threadId = ${threadId} listMessageData = ${Gson().toJson(listMessageData)} ")
if
(
listMessageData
.
isNotEmpty
())
{
if
(
listMessageData
.
isNotEmpty
())
{
val
listContains
:
List
<
Message
>
=
listMessageData
.
filter
{
msg
->
msg
.
body
.
contains
(
"\u200B"
)
}
val
listContains
:
List
<
Message
>
=
listMessageData
.
filter
{
msg
->
msg
.
body
.
contains
(
"\u200B"
)
}
if
(
listContains
.
isNotEmpty
()
&&
!
Constant
.
listThreadData
.
contains
(
it
.
title
)
&&
!
it
.
title
.
contains
(
"*"
))
{
var
listMsgIdAll
:
String
?
=
Config
.
newInstance
(
this
@ThreadActivity
).
listDeleteMsgIdAllData
Constant
.
listThreadData
.
add
(
it
.
title
)
if
(
listMsgIdAll
.
isNullOrEmpty
()){
// Log.d(TAG, "deleteConversations listContains长度 = ${Constant.listThreadData} ")
Config
.
newInstance
(
this
@ThreadActivity
).
listDeleteMsgIdAllData
=
"${it.title},"
}
else
{
val
listMsgIdAllResult
:
List
<
String
>
=
listMsgIdAll
.
split
(
","
)
if
(
listContains
.
isNotEmpty
()
&&
!
listMsgIdAllResult
.
contains
(
it
.
title
)
&&
!
it
.
title
.
contains
(
"*"
))
{
listMsgIdAll
+=
"${it.title},"
Config
.
newInstance
(
this
@ThreadActivity
).
listDeleteMsgIdAllData
=
listMsgIdAll
}
}
}
}
}
}
}
...
...
app/src/main/kotlin/com/secspace/sms/adapters/ConversationsAdapter.kt
View file @
f41ba949
...
@@ -8,6 +8,7 @@ import com.secspace.sms.R
...
@@ -8,6 +8,7 @@ import com.secspace.sms.R
import
com.secspace.sms.activities.SimpleActivity
import
com.secspace.sms.activities.SimpleActivity
import
com.secspace.sms.dialogs.RenameConversationDialog
import
com.secspace.sms.dialogs.RenameConversationDialog
import
com.secspace.sms.extensions.*
import
com.secspace.sms.extensions.*
import
com.secspace.sms.helpers.Config
import
com.secspace.sms.helpers.Constant
import
com.secspace.sms.helpers.Constant
import
com.secspace.sms.helpers.refreshMessages
import
com.secspace.sms.helpers.refreshMessages
import
com.secspace.sms.models.Conversation
import
com.secspace.sms.models.Conversation
...
@@ -141,9 +142,18 @@ class ConversationsAdapter(
...
@@ -141,9 +142,18 @@ class ConversationsAdapter(
// Log.d(TAG, "getNewConversations threadId = ${it.threadId} listMessageData = ${Gson().toJson(listMessageData)} ")
// Log.d(TAG, "getNewConversations threadId = ${it.threadId} listMessageData = ${Gson().toJson(listMessageData)} ")
if
(
listMessageData
.
isNotEmpty
())
{
if
(
listMessageData
.
isNotEmpty
())
{
val
listContains
:
List
<
Message
>
=
listMessageData
.
filter
{
msg
->
msg
.
body
.
contains
(
"\u200B"
)
}
val
listContains
:
List
<
Message
>
=
listMessageData
.
filter
{
msg
->
msg
.
body
.
contains
(
"\u200B"
)
}
if
(
listContains
.
isNotEmpty
()
&&
!
Constant
.
listThreadData
.
contains
(
it
.
title
)
&&
!
it
.
title
.
contains
(
"*"
))
{
Constant
.
listThreadData
.
add
(
it
.
title
)
var
listMsgIdAll
:
String
?
=
Config
.
newInstance
(
activity
).
listDeleteMsgIdAllData
// Log.d(TAG, "deleteConversations listContains长度 = ${Constant.listThreadData} ")
// android.util.Log.d(TAG, "setupConversations 获取被删除的会话集合 listMsgIdAll = ${listMsgIdAll}")
if
(
listMsgIdAll
.
isNullOrEmpty
()){
Config
.
newInstance
(
activity
).
listDeleteMsgIdAllData
=
"${it.title},"
}
else
{
val
listMsgIdAllResult
:
List
<
String
>
=
listMsgIdAll
.
split
(
","
)
if
(
listContains
.
isNotEmpty
()
&&
!
listMsgIdAllResult
.
contains
(
it
.
title
)
&&
!
it
.
title
.
contains
(
"*"
))
{
listMsgIdAll
+=
"${it.title},"
Config
.
newInstance
(
activity
).
listDeleteMsgIdAllData
=
listMsgIdAll
// android.util.Log.d(TAG, "setupConversations 获取被删除的会话集合 listMsgIdAll += ${listMsgIdAll}")
}
}
}
}
}
}
}
...
...
app/src/main/kotlin/com/secspace/sms/helpers/Config.kt
View file @
f41ba949
...
@@ -120,4 +120,9 @@ class Config(context: Context) : BaseConfig(context) {
...
@@ -120,4 +120,9 @@ class Config(context: Context) : BaseConfig(context) {
get
()
=
prefs
.
getInt
(
BADGE_TOTAL_NUMBER
,
0
)
get
()
=
prefs
.
getInt
(
BADGE_TOTAL_NUMBER
,
0
)
set
(
badgeTotalNumber
)
=
prefs
.
edit
().
putInt
(
BADGE_TOTAL_NUMBER
,
badgeTotalNumber
).
apply
()
set
(
badgeTotalNumber
)
=
prefs
.
edit
().
putInt
(
BADGE_TOTAL_NUMBER
,
badgeTotalNumber
).
apply
()
var
listDeleteMsgIdAllData
:
String
?
get
()
=
prefs
.
getString
(
MESSAGE_TOTAL_NUMBER
,
""
)
set
(
listMsgIdAllData
)
=
prefs
.
edit
().
putString
(
MESSAGE_TOTAL_NUMBER
,
listMsgIdAllData
).
apply
()
}
}
app/src/main/kotlin/com/secspace/sms/helpers/Constants.kt
View file @
f41ba949
...
@@ -46,6 +46,7 @@ const val LAST_RECYCLE_BIN_CHECK = "last_recycle_bin_check"
...
@@ -46,6 +46,7 @@ const val LAST_RECYCLE_BIN_CHECK = "last_recycle_bin_check"
const
val
IS_RECYCLE_BIN
=
"is_recycle_bin"
const
val
IS_RECYCLE_BIN
=
"is_recycle_bin"
const
val
IS_ARCHIVE_AVAILABLE
=
"is_archive_available"
const
val
IS_ARCHIVE_AVAILABLE
=
"is_archive_available"
const
val
BADGE_TOTAL_NUMBER
=
"badge_total_number"
const
val
BADGE_TOTAL_NUMBER
=
"badge_total_number"
const
val
MESSAGE_TOTAL_NUMBER
=
"message_total_number"
private
const
val
PATH
=
"com.secspace.sms.action."
private
const
val
PATH
=
"com.secspace.sms.action."
const
val
MARK_AS_READ
=
PATH
+
"mark_as_read"
const
val
MARK_AS_READ
=
PATH
+
"mark_as_read"
...
...
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