Loading data/build.gradle +1 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ dependencies { implementation "com.jakewharton.timber:timber:$timber_version" implementation "com.squareup.moshi:moshi:$moshi_version" implementation "com.squareup.okhttp3:okhttp:$okhttp3_version" implementation 'io.michaelrocks:libphonenumber-android:8.10.16' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation project(":android-smsmms") Loading data/src/main/java/com/moez/QKSMS/filter/PhoneNumberFilter.kt +7 −6 Original line number Diff line number Diff line Loading @@ -18,16 +18,17 @@ */ package com.moez.QKSMS.filter import android.telephony.PhoneNumberUtils import com.moez.QKSMS.util.PhoneNumberUtils import javax.inject.Inject class PhoneNumberFilter @Inject constructor() : Filter<String>() { class PhoneNumberFilter @Inject constructor( private val phoneNumberUtils: PhoneNumberUtils ) : Filter<String>() { override fun filter(item: String, query: CharSequence): Boolean { val allCharactersDialable = query.all { PhoneNumberUtils.isReallyDialable(it) } return allCharactersDialable && (PhoneNumberUtils.compare(item, query.toString()) || PhoneNumberUtils.stripSeparators(item).contains(PhoneNumberUtils.stripSeparators(query.toString()))) val allCharactersDialable = query.all { phoneNumberUtils.isReallyDialable(it) } return allCharactersDialable && (phoneNumberUtils.compare(item, query.toString()) || phoneNumberUtils.normalizeNumber(item).contains(phoneNumberUtils.normalizeNumber(query.toString()))) } } No newline at end of file data/src/main/java/com/moez/QKSMS/repository/BlockingRepositoryImpl.kt +7 −5 Original line number Diff line number Diff line Loading @@ -18,20 +18,22 @@ */ package com.moez.QKSMS.repository import android.telephony.PhoneNumberUtils import com.moez.QKSMS.extensions.anyOf import com.moez.QKSMS.model.BlockedNumber import com.moez.QKSMS.util.PhoneNumberUtils import io.realm.Realm import io.realm.RealmResults import javax.inject.Inject class BlockingRepositoryImpl @Inject constructor() : BlockingRepository { class BlockingRepositoryImpl @Inject constructor( private val phoneNumberUtils: PhoneNumberUtils ) : BlockingRepository { override fun blockNumber(vararg addresses: String) { Realm.getDefaultInstance().use { realm -> val blockedNumbers = realm.where(BlockedNumber::class.java).findAll() val newAddresses = addresses.filter { address -> blockedNumbers.none { number -> PhoneNumberUtils.compare(number.address, address) } blockedNumbers.none { number -> phoneNumberUtils.compare(number.address, address) } } val maxId = realm.where(BlockedNumber::class.java) Loading Loading @@ -60,7 +62,7 @@ class BlockingRepositoryImpl @Inject constructor() : BlockingRepository { return Realm.getDefaultInstance().use { realm -> realm.where(BlockedNumber::class.java) .findAll() .any { number -> PhoneNumberUtils.compare(number.address, address) } .any { number -> phoneNumberUtils.compare(number.address, address) } } } Loading @@ -80,7 +82,7 @@ class BlockingRepositoryImpl @Inject constructor() : BlockingRepository { val ids = realm.where(BlockedNumber::class.java) .findAll() .filter { number -> addresses.any { address -> PhoneNumberUtils.compare(number.address, address) } addresses.any { address -> phoneNumberUtils.compare(number.address, address) } } .map { number -> number.id } .toLongArray() Loading data/src/main/java/com/moez/QKSMS/repository/ConversationRepositoryImpl.kt +5 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ package com.moez.QKSMS.repository import android.content.ContentUris import android.content.Context import android.provider.Telephony import android.telephony.PhoneNumberUtils import com.moez.QKSMS.compat.TelephonyCompat import com.moez.QKSMS.extensions.anyOf import com.moez.QKSMS.extensions.map Loading @@ -34,6 +33,7 @@ import com.moez.QKSMS.model.Conversation import com.moez.QKSMS.model.Message import com.moez.QKSMS.model.Recipient import com.moez.QKSMS.model.SearchResult import com.moez.QKSMS.util.PhoneNumberUtils import com.moez.QKSMS.util.tryOrNull import io.realm.Case import io.realm.Realm Loading @@ -46,7 +46,8 @@ class ConversationRepositoryImpl @Inject constructor( private val context: Context, private val conversationFilter: ConversationFilter, private val cursorToConversation: CursorToConversation, private val cursorToRecipient: CursorToRecipient private val cursorToRecipient: CursorToRecipient, private val phoneNumberUtils: PhoneNumberUtils ) : ConversationRepository { override fun getConversations(archived: Boolean): RealmResults<Conversation> { Loading Loading @@ -179,7 +180,7 @@ class ConversationRepositoryImpl @Inject constructor( .findAll() .firstOrNull { conversation -> conversation.recipients.size == recipients.size && conversation.recipients.map { it.address }.all { address -> recipients.any { recipient -> PhoneNumberUtils.compare(recipient, address) } recipients.any { recipient -> phoneNumberUtils.compare(recipient, address) } } } ?.id Loading Loading @@ -363,7 +364,7 @@ class ConversationRepositoryImpl @Inject constructor( .map { recipient -> recipient.apply { contact = contacts.firstOrNull { it.numbers.any { PhoneNumberUtils.compare(recipient.address, it.address) } it.numbers.any { phoneNumberUtils.compare(recipient.address, it.address) } } } } Loading data/src/main/java/com/moez/QKSMS/repository/MessageRepositoryImpl.kt +4 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ import android.content.Intent import android.content.IntentFilter import android.os.Build import android.provider.Telephony import android.telephony.PhoneNumberUtils import android.telephony.SmsManager import androidx.core.content.contentValuesOf import com.google.android.mms.ContentType Loading @@ -47,6 +46,7 @@ import com.moez.QKSMS.receiver.SendSmsReceiver import com.moez.QKSMS.receiver.SmsDeliveredReceiver import com.moez.QKSMS.receiver.SmsSentReceiver import com.moez.QKSMS.util.ImageUtils import com.moez.QKSMS.util.PhoneNumberUtils import com.moez.QKSMS.util.Preferences import com.moez.QKSMS.util.tryOrNull import io.realm.Case Loading @@ -61,8 +61,9 @@ import javax.inject.Singleton class MessageRepositoryImpl @Inject constructor( private val activeConversationManager: ActiveConversationManager, private val context: Context, private val messageIds: KeyManager, private val imageRepository: ImageRepository, private val messageIds: KeyManager, private val phoneNumberUtils: PhoneNumberUtils, private val prefs: Preferences, private val syncRepository: SyncRepository ) : MessageRepository { Loading Loading @@ -290,7 +291,7 @@ class MessageRepositoryImpl @Inject constructor( .map { vCard -> MMSPart("contact", ContentType.TEXT_VCARD, vCard) } val transaction = Transaction(context) transaction.sendNewMessage(subId, threadId, addresses.map(PhoneNumberUtils::stripSeparators), parts, null) transaction.sendNewMessage(subId, threadId, addresses.map(phoneNumberUtils::normalizeNumber), parts, null) } } Loading Loading
data/build.gradle +1 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ dependencies { implementation "com.jakewharton.timber:timber:$timber_version" implementation "com.squareup.moshi:moshi:$moshi_version" implementation "com.squareup.okhttp3:okhttp:$okhttp3_version" implementation 'io.michaelrocks:libphonenumber-android:8.10.16' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version" implementation project(":android-smsmms") Loading
data/src/main/java/com/moez/QKSMS/filter/PhoneNumberFilter.kt +7 −6 Original line number Diff line number Diff line Loading @@ -18,16 +18,17 @@ */ package com.moez.QKSMS.filter import android.telephony.PhoneNumberUtils import com.moez.QKSMS.util.PhoneNumberUtils import javax.inject.Inject class PhoneNumberFilter @Inject constructor() : Filter<String>() { class PhoneNumberFilter @Inject constructor( private val phoneNumberUtils: PhoneNumberUtils ) : Filter<String>() { override fun filter(item: String, query: CharSequence): Boolean { val allCharactersDialable = query.all { PhoneNumberUtils.isReallyDialable(it) } return allCharactersDialable && (PhoneNumberUtils.compare(item, query.toString()) || PhoneNumberUtils.stripSeparators(item).contains(PhoneNumberUtils.stripSeparators(query.toString()))) val allCharactersDialable = query.all { phoneNumberUtils.isReallyDialable(it) } return allCharactersDialable && (phoneNumberUtils.compare(item, query.toString()) || phoneNumberUtils.normalizeNumber(item).contains(phoneNumberUtils.normalizeNumber(query.toString()))) } } No newline at end of file
data/src/main/java/com/moez/QKSMS/repository/BlockingRepositoryImpl.kt +7 −5 Original line number Diff line number Diff line Loading @@ -18,20 +18,22 @@ */ package com.moez.QKSMS.repository import android.telephony.PhoneNumberUtils import com.moez.QKSMS.extensions.anyOf import com.moez.QKSMS.model.BlockedNumber import com.moez.QKSMS.util.PhoneNumberUtils import io.realm.Realm import io.realm.RealmResults import javax.inject.Inject class BlockingRepositoryImpl @Inject constructor() : BlockingRepository { class BlockingRepositoryImpl @Inject constructor( private val phoneNumberUtils: PhoneNumberUtils ) : BlockingRepository { override fun blockNumber(vararg addresses: String) { Realm.getDefaultInstance().use { realm -> val blockedNumbers = realm.where(BlockedNumber::class.java).findAll() val newAddresses = addresses.filter { address -> blockedNumbers.none { number -> PhoneNumberUtils.compare(number.address, address) } blockedNumbers.none { number -> phoneNumberUtils.compare(number.address, address) } } val maxId = realm.where(BlockedNumber::class.java) Loading Loading @@ -60,7 +62,7 @@ class BlockingRepositoryImpl @Inject constructor() : BlockingRepository { return Realm.getDefaultInstance().use { realm -> realm.where(BlockedNumber::class.java) .findAll() .any { number -> PhoneNumberUtils.compare(number.address, address) } .any { number -> phoneNumberUtils.compare(number.address, address) } } } Loading @@ -80,7 +82,7 @@ class BlockingRepositoryImpl @Inject constructor() : BlockingRepository { val ids = realm.where(BlockedNumber::class.java) .findAll() .filter { number -> addresses.any { address -> PhoneNumberUtils.compare(number.address, address) } addresses.any { address -> phoneNumberUtils.compare(number.address, address) } } .map { number -> number.id } .toLongArray() Loading
data/src/main/java/com/moez/QKSMS/repository/ConversationRepositoryImpl.kt +5 −4 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ package com.moez.QKSMS.repository import android.content.ContentUris import android.content.Context import android.provider.Telephony import android.telephony.PhoneNumberUtils import com.moez.QKSMS.compat.TelephonyCompat import com.moez.QKSMS.extensions.anyOf import com.moez.QKSMS.extensions.map Loading @@ -34,6 +33,7 @@ import com.moez.QKSMS.model.Conversation import com.moez.QKSMS.model.Message import com.moez.QKSMS.model.Recipient import com.moez.QKSMS.model.SearchResult import com.moez.QKSMS.util.PhoneNumberUtils import com.moez.QKSMS.util.tryOrNull import io.realm.Case import io.realm.Realm Loading @@ -46,7 +46,8 @@ class ConversationRepositoryImpl @Inject constructor( private val context: Context, private val conversationFilter: ConversationFilter, private val cursorToConversation: CursorToConversation, private val cursorToRecipient: CursorToRecipient private val cursorToRecipient: CursorToRecipient, private val phoneNumberUtils: PhoneNumberUtils ) : ConversationRepository { override fun getConversations(archived: Boolean): RealmResults<Conversation> { Loading Loading @@ -179,7 +180,7 @@ class ConversationRepositoryImpl @Inject constructor( .findAll() .firstOrNull { conversation -> conversation.recipients.size == recipients.size && conversation.recipients.map { it.address }.all { address -> recipients.any { recipient -> PhoneNumberUtils.compare(recipient, address) } recipients.any { recipient -> phoneNumberUtils.compare(recipient, address) } } } ?.id Loading Loading @@ -363,7 +364,7 @@ class ConversationRepositoryImpl @Inject constructor( .map { recipient -> recipient.apply { contact = contacts.firstOrNull { it.numbers.any { PhoneNumberUtils.compare(recipient.address, it.address) } it.numbers.any { phoneNumberUtils.compare(recipient.address, it.address) } } } } Loading
data/src/main/java/com/moez/QKSMS/repository/MessageRepositoryImpl.kt +4 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ import android.content.Intent import android.content.IntentFilter import android.os.Build import android.provider.Telephony import android.telephony.PhoneNumberUtils import android.telephony.SmsManager import androidx.core.content.contentValuesOf import com.google.android.mms.ContentType Loading @@ -47,6 +46,7 @@ import com.moez.QKSMS.receiver.SendSmsReceiver import com.moez.QKSMS.receiver.SmsDeliveredReceiver import com.moez.QKSMS.receiver.SmsSentReceiver import com.moez.QKSMS.util.ImageUtils import com.moez.QKSMS.util.PhoneNumberUtils import com.moez.QKSMS.util.Preferences import com.moez.QKSMS.util.tryOrNull import io.realm.Case Loading @@ -61,8 +61,9 @@ import javax.inject.Singleton class MessageRepositoryImpl @Inject constructor( private val activeConversationManager: ActiveConversationManager, private val context: Context, private val messageIds: KeyManager, private val imageRepository: ImageRepository, private val messageIds: KeyManager, private val phoneNumberUtils: PhoneNumberUtils, private val prefs: Preferences, private val syncRepository: SyncRepository ) : MessageRepository { Loading Loading @@ -290,7 +291,7 @@ class MessageRepositoryImpl @Inject constructor( .map { vCard -> MMSPart("contact", ContentType.TEXT_VCARD, vCard) } val transaction = Transaction(context) transaction.sendNewMessage(subId, threadId, addresses.map(PhoneNumberUtils::stripSeparators), parts, null) transaction.sendNewMessage(subId, threadId, addresses.map(phoneNumberUtils::normalizeNumber), parts, null) } } Loading