Loading data/src/main/java/com/moez/QKSMS/blocking/BlockingManager.kt +2 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ import javax.inject.Singleton class BlockingManager @Inject constructor( private val prefs: Preferences, private val callControlBlockingClient: CallControlBlockingClient, private val androidBlockingClient: AndroidBlockingClient, private val qksmsBlockingClient: QksmsBlockingClient, private val shouldIAnswerBlockingClient: ShouldIAnswerBlockingClient ) : BlockingClient { Loading @@ -21,7 +21,7 @@ class BlockingManager @Inject constructor( get() = when (prefs.blockingManager.get()) { Preferences.BLOCKING_MANAGER_SIA -> shouldIAnswerBlockingClient Preferences.BLOCKING_MANAGER_CC -> callControlBlockingClient else -> androidBlockingClient else -> qksmsBlockingClient } init { Loading data/src/main/java/com/moez/QKSMS/blocking/AndroidBlockingClient.kt→data/src/main/java/com/moez/QKSMS/blocking/QksmsBlockingClient.kt +50 −0 Original line number Diff line number Diff line Loading @@ -18,67 +18,33 @@ */ package com.moez.QKSMS.blocking import android.content.Context import android.content.Intent import android.os.Build import android.provider.BlockedNumberContract import android.telecom.TelecomManager import androidx.core.content.contentValuesOf import com.moez.QKSMS.repository.BlockingRepository import io.reactivex.Completable import io.reactivex.Single import javax.inject.Inject class AndroidBlockingClient @Inject constructor( private val context: Context, class QksmsBlockingClient @Inject constructor( private val blockingRepo: BlockingRepository ) : BlockingClient { override fun isAvailable(): Boolean = true override fun isBlocked(address: String): Single<Boolean> = Single.fromCallable { when { Build.VERSION.SDK_INT >= 24 -> BlockedNumberContract.isBlocked(context, address) else -> blockingRepo.isBlocked(address) } blockingRepo.isBlocked(address) } override fun canBlock(): Boolean = true override fun block(addresses: List<String>): Completable = Completable.fromCallable { when { Build.VERSION.SDK_INT >= 24 -> addresses.forEach { address -> val cv = contentValuesOf(BlockedNumberContract.BlockedNumbers.COLUMN_ORIGINAL_NUMBER to address) context.contentResolver.insert(BlockedNumberContract.BlockedNumbers.CONTENT_URI, cv) } else -> blockingRepo.blockNumber(*addresses.toTypedArray()) } blockingRepo.blockNumber(*addresses.toTypedArray()) } override fun canUnblock(): Boolean = true override fun unblock(addresses: List<String>): Completable = Completable.fromCallable { when { Build.VERSION.SDK_INT >= 24 -> addresses.forEach { address -> BlockedNumberContract.unblock(context, address) } else -> blockingRepo.unblockNumbers(*addresses.toTypedArray()) } } override fun openSettings() = when { Build.VERSION.SDK_INT >= 24 -> { val telecomManager = context.getSystemService(Context.TELECOM_SERVICE) as TelecomManager val intent = telecomManager.createManageBlockedNumbersIntent() .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) context.startActivity(intent) blockingRepo.unblockNumbers(*addresses.toTypedArray()) } else -> {} // TODO: Do this here once we implement AndroidX navigation } override fun openSettings() = Unit // TODO: Do this here once we implement AndroidX navigation } domain/src/main/java/com/moez/QKSMS/util/Preferences.kt +2 −2 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ class Preferences @Inject constructor(private val rxPrefs: RxSharedPreferences) const val SWIPE_ACTION_READ = 4 const val SWIPE_ACTION_UNREAD = 5 const val BLOCKING_MANAGER_ANDROID = 0 const val BLOCKING_MANAGER_QKSMS = 0 const val BLOCKING_MANAGER_CC = 1 const val BLOCKING_MANAGER_SIA = 2 } Loading @@ -82,7 +82,7 @@ class Preferences @Inject constructor(private val rxPrefs: RxSharedPreferences) val textSize = rxPrefs.getInteger("textSize", TEXT_SIZE_NORMAL) @Deprecated("This should only be accessed when migrating to @blockingManager") val sia = rxPrefs.getBoolean("sia", false) val blockingManager = rxPrefs.getInteger("blockingManager", BLOCKING_MANAGER_ANDROID) val blockingManager = rxPrefs.getInteger("blockingManager", BLOCKING_MANAGER_QKSMS) val drop = rxPrefs.getBoolean("drop", false) val notifAction1 = rxPrefs.getInteger("notifAction1", NOTIFICATION_ACTION_READ) val notifAction2 = rxPrefs.getInteger("notifAction2", NOTIFICATION_ACTION_REPLY) Loading presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingDialog.kt +1 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ class BlockingDialog @Inject constructor( val manager = context.getString(when (prefs.blockingManager.get()) { Preferences.BLOCKING_MANAGER_SIA -> R.string.blocking_manager_sia_title Preferences.BLOCKING_MANAGER_CC -> R.string.blocking_manager_call_control_title else -> R.string.blocking_manager_android_title else -> R.string.blocking_manager_qksms_title }) val message = context.resources.getQuantityString(res, addresses.size, manager) Loading presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingPresenter.kt +1 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ class BlockingPresenter @Inject constructor( when (client) { Preferences.BLOCKING_MANAGER_SIA -> R.string.blocking_manager_sia_title Preferences.BLOCKING_MANAGER_CC -> R.string.blocking_manager_call_control_title else -> R.string.blocking_manager_android_title else -> R.string.blocking_manager_qksms_title } } .map(context::getString) Loading Loading
data/src/main/java/com/moez/QKSMS/blocking/BlockingManager.kt +2 −2 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ import javax.inject.Singleton class BlockingManager @Inject constructor( private val prefs: Preferences, private val callControlBlockingClient: CallControlBlockingClient, private val androidBlockingClient: AndroidBlockingClient, private val qksmsBlockingClient: QksmsBlockingClient, private val shouldIAnswerBlockingClient: ShouldIAnswerBlockingClient ) : BlockingClient { Loading @@ -21,7 +21,7 @@ class BlockingManager @Inject constructor( get() = when (prefs.blockingManager.get()) { Preferences.BLOCKING_MANAGER_SIA -> shouldIAnswerBlockingClient Preferences.BLOCKING_MANAGER_CC -> callControlBlockingClient else -> androidBlockingClient else -> qksmsBlockingClient } init { Loading
data/src/main/java/com/moez/QKSMS/blocking/AndroidBlockingClient.kt→data/src/main/java/com/moez/QKSMS/blocking/QksmsBlockingClient.kt +50 −0 Original line number Diff line number Diff line Loading @@ -18,67 +18,33 @@ */ package com.moez.QKSMS.blocking import android.content.Context import android.content.Intent import android.os.Build import android.provider.BlockedNumberContract import android.telecom.TelecomManager import androidx.core.content.contentValuesOf import com.moez.QKSMS.repository.BlockingRepository import io.reactivex.Completable import io.reactivex.Single import javax.inject.Inject class AndroidBlockingClient @Inject constructor( private val context: Context, class QksmsBlockingClient @Inject constructor( private val blockingRepo: BlockingRepository ) : BlockingClient { override fun isAvailable(): Boolean = true override fun isBlocked(address: String): Single<Boolean> = Single.fromCallable { when { Build.VERSION.SDK_INT >= 24 -> BlockedNumberContract.isBlocked(context, address) else -> blockingRepo.isBlocked(address) } blockingRepo.isBlocked(address) } override fun canBlock(): Boolean = true override fun block(addresses: List<String>): Completable = Completable.fromCallable { when { Build.VERSION.SDK_INT >= 24 -> addresses.forEach { address -> val cv = contentValuesOf(BlockedNumberContract.BlockedNumbers.COLUMN_ORIGINAL_NUMBER to address) context.contentResolver.insert(BlockedNumberContract.BlockedNumbers.CONTENT_URI, cv) } else -> blockingRepo.blockNumber(*addresses.toTypedArray()) } blockingRepo.blockNumber(*addresses.toTypedArray()) } override fun canUnblock(): Boolean = true override fun unblock(addresses: List<String>): Completable = Completable.fromCallable { when { Build.VERSION.SDK_INT >= 24 -> addresses.forEach { address -> BlockedNumberContract.unblock(context, address) } else -> blockingRepo.unblockNumbers(*addresses.toTypedArray()) } } override fun openSettings() = when { Build.VERSION.SDK_INT >= 24 -> { val telecomManager = context.getSystemService(Context.TELECOM_SERVICE) as TelecomManager val intent = telecomManager.createManageBlockedNumbersIntent() .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) context.startActivity(intent) blockingRepo.unblockNumbers(*addresses.toTypedArray()) } else -> {} // TODO: Do this here once we implement AndroidX navigation } override fun openSettings() = Unit // TODO: Do this here once we implement AndroidX navigation }
domain/src/main/java/com/moez/QKSMS/util/Preferences.kt +2 −2 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ class Preferences @Inject constructor(private val rxPrefs: RxSharedPreferences) const val SWIPE_ACTION_READ = 4 const val SWIPE_ACTION_UNREAD = 5 const val BLOCKING_MANAGER_ANDROID = 0 const val BLOCKING_MANAGER_QKSMS = 0 const val BLOCKING_MANAGER_CC = 1 const val BLOCKING_MANAGER_SIA = 2 } Loading @@ -82,7 +82,7 @@ class Preferences @Inject constructor(private val rxPrefs: RxSharedPreferences) val textSize = rxPrefs.getInteger("textSize", TEXT_SIZE_NORMAL) @Deprecated("This should only be accessed when migrating to @blockingManager") val sia = rxPrefs.getBoolean("sia", false) val blockingManager = rxPrefs.getInteger("blockingManager", BLOCKING_MANAGER_ANDROID) val blockingManager = rxPrefs.getInteger("blockingManager", BLOCKING_MANAGER_QKSMS) val drop = rxPrefs.getBoolean("drop", false) val notifAction1 = rxPrefs.getInteger("notifAction1", NOTIFICATION_ACTION_READ) val notifAction2 = rxPrefs.getInteger("notifAction2", NOTIFICATION_ACTION_REPLY) Loading
presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingDialog.kt +1 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ class BlockingDialog @Inject constructor( val manager = context.getString(when (prefs.blockingManager.get()) { Preferences.BLOCKING_MANAGER_SIA -> R.string.blocking_manager_sia_title Preferences.BLOCKING_MANAGER_CC -> R.string.blocking_manager_call_control_title else -> R.string.blocking_manager_android_title else -> R.string.blocking_manager_qksms_title }) val message = context.resources.getQuantityString(res, addresses.size, manager) Loading
presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingPresenter.kt +1 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ class BlockingPresenter @Inject constructor( when (client) { Preferences.BLOCKING_MANAGER_SIA -> R.string.blocking_manager_sia_title Preferences.BLOCKING_MANAGER_CC -> R.string.blocking_manager_call_control_title else -> R.string.blocking_manager_android_title else -> R.string.blocking_manager_qksms_title } } .map(context::getString) Loading