Commit b1349720 by zhangchengbo

feat:优化顺丰手机号掩码操作

parent 56d44481
...@@ -6,6 +6,7 @@ import android.content.Intent ...@@ -6,6 +6,7 @@ import android.content.Intent
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import android.provider.Telephony import android.provider.Telephony
import android.util.Log
import com.secspace.sms.extensions.* import com.secspace.sms.extensions.*
import com.secspace.sms.helpers.RecentsHelper import com.secspace.sms.helpers.RecentsHelper
import com.secspace.sms.helpers.refreshMessages import com.secspace.sms.helpers.refreshMessages
...@@ -22,6 +23,7 @@ import com.simplemobiletools.commons.helpers.SimpleContactsHelper ...@@ -22,6 +23,7 @@ import com.simplemobiletools.commons.helpers.SimpleContactsHelper
import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.models.PhoneNumber import com.simplemobiletools.commons.models.PhoneNumber
import com.simplemobiletools.commons.models.SimpleContact import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.commons.util.GsonUtil
class SmsReceiver : BroadcastReceiver() { class SmsReceiver : BroadcastReceiver() {
private val TAG: String = "shuju" private val TAG: String = "shuju"
...@@ -70,6 +72,36 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -70,6 +72,36 @@ class SmsReceiver : BroadcastReceiver() {
} }
} }
/**
* 根据短信手机号查找
*/
private fun findConversationWithPhoneNumber(context: Context, phoneNumber: String, threadId: Long, confirmCallBack: () -> Unit) {
Log.e(TAG, "----SmsReceiver---- phoneNumber:${phoneNumber} threadId:$threadId")
val hasPerMissionResult = context.hasPermission(PERMISSION_READ_CALL_LOG)
if (hasPerMissionResult) {
RecentsHelper(context = context).getRecentCalls(false, Int.MAX_VALUE) { recents: List<RecentCall> ->
val listCallRecent: List<RecentCall> = recents.distinctBy { it.phoneNumber }
// Log.d(TAG, "----SmsReceiver----最近通话 recents:${GsonUtil.parseListToJson(listCallRecent)}")
val findResult: Int = listCallRecent.count { it.phoneNumber.trim() == phoneNumber.trim() && it.isShunFeng }
Log.d(TAG, "----SmsReceiver----findResult:${findResult}")
//从最近通话记录中找到了号码 进行掩码操作
if (findResult > 0) {
PhoneUtils.phoneNumberFormat(phoneNumber) { itNumber ->
Log.d(
TAG,
"----SmsReceiver----手机号掩码操作 itNumber:${itNumber} threadId:$threadId context.getThreadId:${context.getThreadId(phoneNumber)}"
)
lastNumber = itNumber
}
}
}
}
confirmCallBack.invoke()
}
private fun handleMessage( private fun handleMessage(
context: Context, context: Context,
address: String, address: String,
...@@ -100,7 +132,7 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -100,7 +132,7 @@ class SmsReceiver : BroadcastReceiver() {
conversation.phoneNumber = lastNumber conversation.phoneNumber = lastNumber
conversation.isSFNumber = true conversation.isSFNumber = true
} }
// Log.e(TAG, "----SmsReceiver----handleConversation 掩码后的 Json:${GsonUtil.parseBeanToJson(conversation)}") Log.e(TAG, "----SmsReceiver----handleConversation 掩码后的 Json:${GsonUtil.parseBeanToJson(conversation)}")
try { try {
context.insertOrUpdateConversation(conversation) context.insertOrUpdateConversation(conversation)
} catch (ignored: Exception) { } catch (ignored: Exception) {
...@@ -160,7 +192,7 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -160,7 +192,7 @@ class SmsReceiver : BroadcastReceiver() {
subscriptionId subscriptionId
) )
} }
// Log.e(TAG, "----SmsReceiver----handleMessage message:${GsonUtil.parseBeanToJson(message)}") Log.e(TAG, "----SmsReceiver----handleMessage message:${GsonUtil.parseBeanToJson(message)}")
context.messagesDB.insertOrUpdate(message) context.messagesDB.insertOrUpdate(message)
if (context.config.isArchiveAvailable) { if (context.config.isArchiveAvailable) {
context.updateConversationArchivedStatus(threadId, false) context.updateConversationArchivedStatus(threadId, false)
...@@ -186,40 +218,6 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -186,40 +218,6 @@ class SmsReceiver : BroadcastReceiver() {
return false return false
} }
private fun findConversationWithPhoneNumber(context: Context, phoneNumber: String, threadId: Long, confirmCallBack: () -> Unit) {
val hasPerMissionResult = context.hasPermission(PERMISSION_READ_CALL_LOG)
if (hasPerMissionResult) {
RecentsHelper(context = context).getRecentCalls(false, Int.MAX_VALUE) { recents: List<RecentCall> ->
val listCallRecent = recents.distinctBy { it.phoneNumber }
// Log.e(TAG, "----SmsReceiver----最近通话 recents:${listCallRecent} disListSize:${listCallRecent.size}")
val findResult: Int = listCallRecent.count { it.phoneNumber.trim() == phoneNumber.trim() }
//从最近通话记录中找到了号码 进行掩码操作
if (findResult > 0) {
//获取所有短信
val allConversations = context.conversationsDB.getNonArchived() as ArrayList<Conversation>
val searchResult = getIndexById(allConversations, threadId)
if (searchResult < 0) return@getRecentCalls
allConversations.forEach {
if (it.threadId == threadId && it.phoneNumber == phoneNumber) {
PhoneUtils.phoneNumberFormat(phoneNumber) { itNumber ->
/*Log.e(
TAG,
"----SmsReceiver----手机号掩码操作 itNumber:${itNumber} 所在集合下标=${searchResult} threadId:${it.threadId} threadId:$threadId context.getThreadId:${
context.getThreadId(phoneNumber)
}"
)*/
lastNumber = itNumber
}
}
}
}
}
}
confirmCallBack.invoke()
}
private fun getIndexById(userList: List<Conversation>, id: Long): Int { private fun getIndexById(userList: List<Conversation>, id: Long): Int {
for (i in userList.indices) { for (i in userList.indices) {
......
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