Commit e4214c5c by zhangchengbo

fix:1.添加手机号类型判断 2.对顺丰号码回复短信进行脱敏操作

parent e5636151
...@@ -99,8 +99,16 @@ class MainActivity : SimpleActivity() { ...@@ -99,8 +99,16 @@ class MainActivity : SimpleActivity() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
/* ensureBackgroundThread {
val allConversations = conversationsDB.getNonArchived()
if(allConversations.isEmpty()) return@ensureBackgroundThread
com.secspace.log.Log.d(TAG, "获取所有 是否是顺丰号码 = ${allConversations[0].isSFNumber} 是否包含 isContains = ${allConversations[0].snippet.contains("\u200B")}")
val results: Conversation = allConversations.last()
com.secspace.log.Log.d(TAG, "获取最后一条body = ${GsonUtil.parseBeanToJson(results)}")
}*/
//是否拥有通知使用权
val result = isNotificationAccessEnabled() val result = isNotificationAccessEnabled()
com.secspace.log.Log.d(TAG, "是否拥有通知使用权 = $result")
if(!result){ if(!result){
val intent = Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS") val intent = Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
...@@ -479,8 +487,6 @@ class MainActivity : SimpleActivity() { ...@@ -479,8 +487,6 @@ class MainActivity : SimpleActivity() {
// Log.d(TAG, " MainActivity getMessages() firstConversation 数据库 =:${GsonUtil.parseBeanToJson(firstConversation)} ") // Log.d(TAG, " MainActivity getMessages() firstConversation 数据库 =:${GsonUtil.parseBeanToJson(firstConversation)} ")
conversationsDB.insertOrUpdate(firstConversation) conversationsDB.insertOrUpdate(firstConversation)
// Log.d(TAG, " MainActivity getMessages() lastMsg 数据库 =:${GsonUtil.parseBeanToJson(lastMsg)} ")
// messagesDB.insertOrUpdate(lastMsg)
} }
} }
...@@ -551,7 +557,7 @@ class MainActivity : SimpleActivity() { ...@@ -551,7 +557,7 @@ class MainActivity : SimpleActivity() {
private fun handleConversationClick(any: Any) { private fun handleConversationClick(any: Any) {
Intent(this, ThreadActivity::class.java).apply { Intent(this, ThreadActivity::class.java).apply {
val conversation = any as Conversation val conversation = any as Conversation
if (conversation.snippet.contains("\u200B")) { if (conversation.snippet.contains("\u200B") || conversation.isSFNumber) {
val phoneNumber = conversation.title val phoneNumber = conversation.title
if (phoneNumber.contains("+86")) { if (phoneNumber.contains("+86")) {
phoneNumber.replace("+86", "") phoneNumber.replace("+86", "")
......
...@@ -43,7 +43,6 @@ import androidx.recyclerview.widget.LinearLayoutManager ...@@ -43,7 +43,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import com.secspace.log.Log
import com.secspace.sms.R import com.secspace.sms.R
import com.secspace.sms.adapters.AttachmentsAdapter import com.secspace.sms.adapters.AttachmentsAdapter
import com.secspace.sms.adapters.AutoCompleteTextViewAdapter import com.secspace.sms.adapters.AutoCompleteTextViewAdapter
...@@ -137,10 +136,10 @@ class ThreadActivity : SimpleActivity() { ...@@ -137,10 +136,10 @@ class ThreadActivity : SimpleActivity() {
} }
threadId = intent.getLongExtra(THREAD_ID, 0L) threadId = intent.getLongExtra(THREAD_ID, 0L)
/* intent.getStringExtra(THREAD_TITLE)?.let { /* intent.getStringExtra(THREAD_TITLE)?.let {
binding.threadToolbar.title = it binding.threadToolbar.title = it
android.util.Log.d(TAG, " OnCreate title = $it") android.util.Log.d(TAG, " OnCreate title = $it")
}*/ }*/
isRecycleBin = intent.getBooleanExtra(IS_RECYCLE_BIN, false) isRecycleBin = intent.getBooleanExtra(IS_RECYCLE_BIN, false)
wasProtectionHandled = intent.getBooleanExtra(WAS_PROTECTION_HANDLED, false) wasProtectionHandled = intent.getBooleanExtra(WAS_PROTECTION_HANDLED, false)
...@@ -430,7 +429,7 @@ class ThreadActivity : SimpleActivity() { ...@@ -430,7 +429,7 @@ class ThreadActivity : SimpleActivity() {
// Log.d(TAG,"--ThreadActivity--setupThreadTitle-- conversation:${Gson().toJson(conversation)} binding.threadToolbar.title = ${binding.threadToolbar.title}") // Log.d(TAG,"--ThreadActivity--setupThreadTitle-- conversation:${Gson().toJson(conversation)} binding.threadToolbar.title = ${binding.threadToolbar.title}")
val title = intent.getStringExtra(THREAD_TITLE)?: "" val title = intent.getStringExtra(THREAD_TITLE) ?: ""
binding.threadToolbar.title = if (!title.isNullOrEmpty()) { binding.threadToolbar.title = if (!title.isNullOrEmpty()) {
// Log.d(TAG,"--ThreadActivity--setupThreadTitle---1 THREAD_NUMBER:$title") // Log.d(TAG,"--ThreadActivity--setupThreadTitle---1 THREAD_NUMBER:$title")
...@@ -438,17 +437,17 @@ class ThreadActivity : SimpleActivity() { ...@@ -438,17 +437,17 @@ class ThreadActivity : SimpleActivity() {
title title
} else { } else {
val title = conversation?.title val title = conversation?.title
if(!title.isNullOrEmpty()){ if (!title.isNullOrEmpty()) {
binding.threadToolbar.title = title binding.threadToolbar.title = title
return return
} }
// Log.d(TAG,"--ThreadActivity--setupThreadTitle---2 THREAD_NUMBER:${intent.getStringExtra(THREAD_NUMBER)} title = $title") // Log.d(TAG,"--ThreadActivity--setupThreadTitle---2 THREAD_NUMBER:${intent.getStringExtra(THREAD_NUMBER)} title = $title")
val phoneNUmber = intent.getStringExtra(THREAD_NUMBER) val phoneNUmber = intent.getStringExtra(THREAD_NUMBER)
/*phoneNUmber?.let { /*phoneNUmber?.let {
binding.threadToolbar.title =it.replace(" ","") binding.threadToolbar.title =it.replace(" ","")
}*/ }*/
// participants.getThreadTitle() // participants.getThreadTitle()
phoneNUmber?.replace(" ","") phoneNUmber?.replace(" ", "")
} }
} }
...@@ -686,12 +685,12 @@ class ThreadActivity : SimpleActivity() { ...@@ -686,12 +685,12 @@ class ThreadActivity : SimpleActivity() {
sendMessage() sendMessage()
} }
threadSendMessage.setOnLongClickListener { /*threadSendMessage.setOnLongClickListener {
/*if (!isScheduledMessage) { if (!isScheduledMessage) {
launchScheduleSendDialog() launchScheduleSendDialog()
}*/ }
true true
} }*/
threadSendMessage.isClickable = false threadSendMessage.isClickable = false
threadTypeMessage.onTextChangeListener { threadTypeMessage.onTextChangeListener {
...@@ -1368,18 +1367,50 @@ class ThreadActivity : SimpleActivity() { ...@@ -1368,18 +1367,50 @@ class ThreadActivity : SimpleActivity() {
private fun sendNormalMessage(text: String, subscriptionId: Int) { private fun sendNormalMessage(text: String, subscriptionId: Int) {
val addresses = participants.getAddresses() val addresses = participants.getAddresses()
// android.util.Log.d(TAG, "sendNormalMessage: addresses = $addresses")
val attachments = buildMessageAttachments() val attachments = buildMessageAttachments()
try { try {
refreshedSinceSent = false refreshedSinceSent = false
sendMessageCompat(text, addresses, subscriptionId, attachments, messageToResend) sendMessageCompat(text, addresses, subscriptionId, attachments, messageToResend)
ensureBackgroundThread { ensureBackgroundThread {
val messageIds = messages.map { it.id } val messageIds = messages.map { it.id }
val messages = getMessages(threadId, getImageResolutions = true, limit = maxOf(1, attachments.size)) // android.util.Log.d(TAG, "sendNormalMessage: messageIds = $messageIds threadId = $threadId ")
val messages: List<Message> = getMessages(threadId, getImageResolutions = true, limit = maxOf(1, attachments.size))
.filter { it.id !in messageIds } .filter { it.id !in messageIds }
// android.util.Log.d(TAG, "sendNormalMessage: body = ${GsonUtil.parseListToJson(messages)}")
for (message in messages) { for (message in messages) {
// message.body = "${message.body} \u200B"
// android.util.Log.d(TAG, "sendNormalMessage: body = ${message.body} isContains = ${message.body.contains("\u200B")}")
insertOrUpdateMessage(message) insertOrUpdateMessage(message)
val listContains: List<String> = this.messages.map { it.body }.filter { it.contains("\u200B") }
// android.util.Log.d(TAG, "sendNormalMessage: 该对话是否有包含零宽字符 = ${listContains.isNotEmpty()}")
if (listContains.isNotEmpty()) {
val allConversation = conversationsDB.getNonArchived()
val lastConversation = allConversation.last()
lastConversation.snippet = "${message.body} \u200B \u200C \u200D "
lastConversation.isSFNumber = true
lastConversation.threadId = message.threadId
val id = conversationsDB.insertOrUpdate(lastConversation)
android.util.Log.d(TAG, "sendNormalMessage: message.threadId = ${message.threadId} id = $id")
// android.util.Log.d(TAG, "sendNormalMessage: last body = ${GsonUtil.parseBeanToJson(conversationsDB.getNonArchived().last())}")
}
} }
val allConversation = conversationsDB.getNonArchived()
val lastConversation = allConversation.last()
lastConversation.snippet = "测试内容 body \u200B \u200C \u200D"
lastConversation.isSFNumber = true
// lastConversation.threadId = message.threadId
val id = conversationsDB.insertOrUpdate(lastConversation)
android.util.Log.d(TAG, "sendNormalMessage: id = $id")
android.util.Log.d(TAG, "sendNormalMessage: last body = ${GsonUtil.parseBeanToJson(conversationsDB.getNonArchived().last())}")
} }
clearCurrentMessage() clearCurrentMessage()
......
...@@ -9,6 +9,7 @@ import android.view.ViewGroup ...@@ -9,6 +9,7 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.google.gson.Gson
import com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller import com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller
import com.secspace.sms.activities.SimpleActivity import com.secspace.sms.activities.SimpleActivity
import com.secspace.sms.databinding.ItemConversationBinding import com.secspace.sms.databinding.ItemConversationBinding
...@@ -133,12 +134,13 @@ abstract class BaseConversationsAdapter( ...@@ -133,12 +134,13 @@ abstract class BaseConversationsAdapter(
} }
if (conversation.snippet.isNotEmpty() && conversation.title.length >= 11) { if (conversation.snippet.isNotEmpty() && conversation.title.length >= 11) {
if (conversation.snippet.contains("\u200B")) { // Log.e("MainActivity", "BaseAdapter isNotEmpty = ${conversation.snippet.isNotEmpty()} length = ${conversation.title.length >= 11}")
// Log.e("MainActivity", "BaseAdapter isContains = ${conversation.snippet.contains("\u200B")} isSFNumber = ${conversation.isSFNumber}")
if (conversation.snippet.contains("\u200B") || conversation.isSFNumber) {
val phoneNumber = conversation.title val phoneNumber = conversation.title
if (phoneNumber.contains("+86")) { if (phoneNumber.contains("+86")) {
phoneNumber.replace("+86", "") phoneNumber.replace("+86", "")
} }
// Log.e("MainActivity", "----BaseAdapter----phoneNumber:$phoneNumber")
PhoneUtils.phoneNumberFormat(phoneNumber) { itNumber -> PhoneUtils.phoneNumberFormat(phoneNumber) { itNumber ->
text = itNumber text = itNumber
} }
...@@ -150,7 +152,7 @@ abstract class BaseConversationsAdapter( ...@@ -150,7 +152,7 @@ abstract class BaseConversationsAdapter(
//短信内容 //短信内容
conversationBodyShort.apply { conversationBodyShort.apply {
text = smsDraft ?: conversation.snippet text = smsDraft ?: conversation.snippet
Log.d("TAG", "setupView: 是否包含零宽度字符 = ${text.contains("\u200B")} 短信内容 = ${text}") Log.d("TAG", "setupView: 是否包含零宽度字符 = ${conversation.snippet.contains("\u200B")} ${conversation.snippet.contains("\u200C")} ${conversation.snippet.contains("\u200D")} 短信内容 = ${text}")
// if(text.contains("\u200B")) // if(text.contains("\u200B"))
setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize * 0.9f) setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize * 0.9f)
} }
......
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