Commit f41ba949 by zhangchengbo

fix:解决应用覆盖升级后,所记录的手机号集合丢失

parent 90fc62bf
...@@ -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)
}
} }
} }
} }
......
...@@ -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
}
} }
} }
} }
......
...@@ -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}")
}
} }
} }
} }
......
...@@ -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()
} }
...@@ -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"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment