Commit f41ba949 by zhangchengbo

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

parent 90fc62bf
......@@ -15,6 +15,8 @@ import android.text.TextUtils
import androidx.annotation.RequiresApi
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.lifecycle.lifecycleScope
import com.google.gson.Gson
import com.secspace.log.Log
import com.secspace.sms.R
import com.secspace.sms.adapters.ConversationsAdapter
import com.secspace.sms.adapters.SearchResultsAdapter
......@@ -29,6 +31,7 @@ import com.secspace.sms.util.SmsCountUtil
import com.simplemobiletools.commons.dialogs.PermissionRequiredDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.util.GsonUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus
......@@ -507,15 +510,20 @@ class MainActivity : SimpleActivity() {
setFirstConversationAndUpdateData(sortedConversations)
//根据记录被删除的会话手机号,从会话列表中判断手机号是否一致,满足就脱敏手机号(为了解决荣耀云备份后恢复,手机号未脱敏的情况)
// Log.d(TAG, "setupConversations listThreadData = ${Constant.listThreadData}")
if (Constant.listThreadData.isNotEmpty()) {
val listConversationData: List<Conversation> = conversations.filter { Constant.listThreadData.contains(it.phoneNumber) }
// Log.d(TAG, "setupConversations 找到被删除的 ListConversation 会话 = ${Gson().toJson(listConversationData)}")
if (listConversationData.isNotEmpty()) {
listConversationData.forEach { conversation ->
val listMsgIdAll: String? = Config.newInstance(this@MainActivity).listDeleteMsgIdAllData
android.util.Log.d(TAG, "setupConversations 获取被删除的会话集合 listMsgIdAll = ${listMsgIdAll}")
if(!listMsgIdAll.isNullOrEmpty()){
val listData: ArrayList<String> = listMsgIdAll.split(",").toArrayList()
// android.util.Log.d(TAG, "setupConversations split listData = ${listData}")
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)
conversation.isSFNumber = true
conversationsDB.insertOrUpdate(conversation)
conversation.isSFNumber = true
conversationsDB.insertOrUpdate(conversation)
}
}
}
}
......
......@@ -65,6 +65,7 @@ import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.PhoneNumber
import com.simplemobiletools.commons.models.RadioItem
import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.commons.util.GsonUtil
import com.simplemobiletools.commons.views.MyRecyclerView
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
......@@ -978,9 +979,15 @@ class ThreadActivity : SimpleActivity() {
// Log.d(TAG, "getNewConversations threadId = ${threadId} listMessageData = ${Gson().toJson(listMessageData)} ")
if (listMessageData.isNotEmpty()) {
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)
// Log.d(TAG, "deleteConversations listContains长度 = ${Constant.listThreadData} ")
var listMsgIdAll: String? = Config.newInstance(this@ThreadActivity).listDeleteMsgIdAllData
if(listMsgIdAll.isNullOrEmpty()){
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
import com.secspace.sms.activities.SimpleActivity
import com.secspace.sms.dialogs.RenameConversationDialog
import com.secspace.sms.extensions.*
import com.secspace.sms.helpers.Config
import com.secspace.sms.helpers.Constant
import com.secspace.sms.helpers.refreshMessages
import com.secspace.sms.models.Conversation
......@@ -141,9 +142,18 @@ class ConversationsAdapter(
// Log.d(TAG, "getNewConversations threadId = ${it.threadId} listMessageData = ${Gson().toJson(listMessageData)} ")
if (listMessageData.isNotEmpty()) {
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)
// Log.d(TAG, "deleteConversations listContains长度 = ${Constant.listThreadData} ")
var listMsgIdAll: String? = Config.newInstance(activity).listDeleteMsgIdAllData
// 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) {
get() = prefs.getInt(BADGE_TOTAL_NUMBER, 0)
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"
const val IS_RECYCLE_BIN = "is_recycle_bin"
const val IS_ARCHIVE_AVAILABLE = "is_archive_available"
const val BADGE_TOTAL_NUMBER = "badge_total_number"
const val MESSAGE_TOTAL_NUMBER = "message_total_number"
private const val PATH = "com.secspace.sms.action."
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