Commit 7bf089af by zhangchengbo

feat:新增顺丰手机号优先从短信DB库查找, 其次未找到再从 通话记录中查找功能

parent efd7c51f
...@@ -6,7 +6,7 @@ import android.content.Intent ...@@ -6,7 +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.log.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
...@@ -74,26 +74,45 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -74,26 +74,45 @@ class SmsReceiver : BroadcastReceiver() {
/** /**
* 根据短信手机号查找 * 1.先从短信DB库查找
* 2.未找到再从 通话记录中查找
*/ */
private fun findConversationWithPhoneNumber(context: Context, phoneNumber: String, threadId: Long, confirmCallBack: () -> Unit) { private fun findConversationWithPhoneNumber(context: Context, phoneNumber: String, threadId: Long, confirmCallBack: () -> Unit) {
Log.e(TAG, "----SmsReceiver---- phoneNumber:${phoneNumber} threadId:$threadId") Log.d(TAG, "----SmsReceiver---- phoneNumber:${phoneNumber} threadId:$threadId")
val hasPerMissionResult = context.hasPermission(PERMISSION_READ_CALL_LOG) val hasPerMissionResult = context.hasPermission(PERMISSION_READ_CALL_LOG)
if (hasPerMissionResult) { if (hasPerMissionResult) {
RecentsHelper(context = context).getRecentCalls(false, Int.MAX_VALUE) { recents: List<RecentCall> ->
val listCallRecent: List<RecentCall> = recents.distinctBy { it.phoneNumber } val allConversations = context.conversationsDB.getNonArchived() as ArrayList<Conversation>
// Log.d(TAG, "----SmsReceiver----handleMessage allConversations:${GsonUtil.parseListToJson(allConversations)}")
allConversations.forEach {
if (it.title.trim() == phoneNumber && it.isSFNumber) {
lastNumber = it.phoneNumber
Log.d(TAG, "----SmsReceiver--conversationsDB数据库--lastNumber :$lastNumber")
return@forEach
}
}
if (lastNumber.isEmpty()) {
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)}") // Log.d(TAG, "----SmsReceiver----最近通话 recents:${GsonUtil.parseListToJson(listCallRecent)}")
val findResult: Int = listCallRecent.count { it.phoneNumber.trim() == phoneNumber.trim() && it.isShunFeng } val findResult: Int = listCallRecent.count { it.phoneNumber.trim() == phoneNumber.trim() && it.isShunFeng }
Log.d(TAG, "----SmsReceiver----findResult:${findResult}") Log.d(TAG, "----SmsReceiver----findResult:${findResult}")
//从最近通话记录中找到了号码 进行掩码操作 //从最近通话记录中找到了号码 进行掩码操作
if (findResult > 0) { if (findResult > 0) {
PhoneUtils.phoneNumberFormat(phoneNumber) { itNumber -> PhoneUtils.phoneNumberFormat(phoneNumber) { itNumber ->
Log.d( /* Log.d(
TAG, TAG,
"----SmsReceiver----手机号掩码操作 itNumber:${itNumber} threadId:$threadId context.getThreadId:${context.getThreadId(phoneNumber)}" "----SmsReceiver----手机号掩码操作 itNumber:${itNumber} threadId:$threadId context.getThreadId:${
) context.getThreadId(
lastNumber = itNumber phoneNumber
)
}"
)*/
lastNumber = itNumber
}
} }
} }
} }
...@@ -132,7 +151,7 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -132,7 +151,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.d(TAG, "----SmsReceiver----handleConversation 掩码后的 Json:${GsonUtil.parseBeanToJson(conversation)}")
try { try {
context.insertOrUpdateConversation(conversation) context.insertOrUpdateConversation(conversation)
} catch (ignored: Exception) { } catch (ignored: Exception) {
...@@ -192,7 +211,7 @@ class SmsReceiver : BroadcastReceiver() { ...@@ -192,7 +211,7 @@ class SmsReceiver : BroadcastReceiver() {
subscriptionId subscriptionId
) )
} }
Log.e(TAG, "----SmsReceiver----handleMessage message:${GsonUtil.parseBeanToJson(message)}") // Log.d(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)
......
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