Loading presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingController.kt +11 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.moez.QKSMS.feature.blocking import android.view.View import androidx.core.view.isVisible import com.bluelinelabs.conductor.RouterTransaction import com.jakewharton.rxbinding2.view.clicks import com.moez.QKSMS.R Loading @@ -28,6 +29,7 @@ import com.moez.QKSMS.common.util.Colors import com.moez.QKSMS.common.util.extensions.animateLayoutChanges import com.moez.QKSMS.feature.blocking.manager.BlockingManagerController import com.moez.QKSMS.feature.blocking.messages.BlockedMessagesController import com.moez.QKSMS.feature.blocking.numbers.BlockedNumbersController import com.moez.QKSMS.injection.appComponent import kotlinx.android.synthetic.main.blocking_controller.* import kotlinx.android.synthetic.main.settings_switch_widget.view.* Loading @@ -36,7 +38,8 @@ import javax.inject.Inject class BlockingController : QkController<BlockingView, BlockingState, BlockingPresenter>(), BlockingView { override val blockingManagerIntent by lazy { blockingManager.clicks() } override val blockedMessagesIntent by lazy { blockedNumbers.clicks() } override val blockedNumbersIntent by lazy { blockedNumbers.clicks() } override val blockedMessagesIntent by lazy { blockedMessages.clicks() } override val dropClickedIntent by lazy { drop.clicks() } @Inject lateinit var colors: Colors Loading @@ -63,6 +66,13 @@ class BlockingController : QkController<BlockingView, BlockingState, BlockingPre override fun render(state: BlockingState) { blockingManager.summary = state.blockingManager drop.checkbox.isChecked = state.dropEnabled blockedMessages.isVisible = !state.dropEnabled } override fun openBlockedNumbers() { router.pushController(RouterTransaction.with(BlockedNumbersController()) .pushChangeHandler(QkChangeHandler()) .popChangeHandler(QkChangeHandler())) } override fun openBlockedMessages() { Loading presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingPresenter.kt +13 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ package com.moez.QKSMS.feature.blocking import android.content.Context import com.moez.QKSMS.R import com.moez.QKSMS.blocking.BlockingClient import com.moez.QKSMS.common.base.QkPresenter import com.moez.QKSMS.util.Preferences import com.uber.autodispose.android.lifecycle.scope Loading @@ -29,6 +30,7 @@ import javax.inject.Inject class BlockingPresenter @Inject constructor( context: Context, private val blockingClient: BlockingClient, private val prefs: Preferences ) : QkPresenter<BlockingView, BlockingState>(BlockingState()) { Loading @@ -55,6 +57,17 @@ class BlockingPresenter @Inject constructor( .autoDisposable(view.scope()) .subscribe { view.openBlockingManager() } view.blockedNumbersIntent .autoDisposable(view.scope()) .subscribe { if (prefs.blockingManager.get() == Preferences.BLOCKING_MANAGER_QKSMS) { // TODO: This is a hack, get rid of it once we implement AndroidX navigation view.openBlockedNumbers() } else { blockingClient.openSettings() } } view.blockedMessagesIntent .autoDisposable(view.scope()) .subscribe { view.openBlockedMessages() } Loading presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingView.kt +2 −0 Original line number Diff line number Diff line Loading @@ -24,9 +24,11 @@ import io.reactivex.Observable interface BlockingView : QkViewContract<BlockingState> { val blockingManagerIntent: Observable<*> val blockedNumbersIntent: Observable<*> val blockedMessagesIntent: Observable<*> val dropClickedIntent: Observable<*> fun openBlockingManager() fun openBlockedNumbers() fun openBlockedMessages() } presentation/src/main/java/com/moez/QKSMS/feature/blocking/manager/BlockingManagerController.kt +3 −20 Original line number Diff line number Diff line Loading @@ -3,12 +3,10 @@ package com.moez.QKSMS.feature.blocking.manager import android.app.Activity import android.app.AlertDialog import android.view.View import com.bluelinelabs.conductor.RouterTransaction import androidx.core.view.isVisible import com.jakewharton.rxbinding2.view.clicks import com.moez.QKSMS.R import com.moez.QKSMS.common.QkChangeHandler import com.moez.QKSMS.common.base.QkController import com.moez.QKSMS.feature.blocking.numbers.BlockedNumbersController import com.moez.QKSMS.injection.appComponent import com.moez.QKSMS.util.Preferences import io.reactivex.Observable Loading Loading @@ -47,25 +45,16 @@ class BlockingManagerController : QkController<BlockingManagerView, BlockingMana qksms.radioButton.isChecked = state.blockingManager == Preferences.BLOCKING_MANAGER_QKSMS callControl.radioButton.isChecked = state.blockingManager == Preferences.BLOCKING_MANAGER_CC callControl.launch.setImageResource(when (state.callControlInstalled) { true -> R.drawable.ic_chevron_right_black_24dp false -> R.drawable.ic_info_black_24dp }) callControl.install.isVisible = !state.callControlInstalled shouldIAnswer.radioButton.isChecked = state.blockingManager == Preferences.BLOCKING_MANAGER_SIA shouldIAnswer.launch.setImageResource(when (state.siaInstalled) { true -> R.drawable.ic_chevron_right_black_24dp false -> R.drawable.ic_info_black_24dp }) shouldIAnswer.install.isVisible = !state.siaInstalled } override fun activityResumed(): Observable<*> = activityResumedSubject override fun qksmsClicked(): Observable<*> = qksms.clicks() override fun launchQksmsClicked(): Observable<*> = qksms.launch.clicks() override fun callControlClicked(): Observable<*> = callControl.clicks() override fun launchCallControlClicked(): Observable<*> = callControl.launch.clicks() override fun siaClicked(): Observable<*> = shouldIAnswer.clicks() override fun launchSiaClicked(): Observable<*> = shouldIAnswer.launch.clicks() override fun showCopyDialog(manager: String): Single<Boolean> = Single.create { emitter -> AlertDialog.Builder(activity) Loading @@ -77,10 +66,4 @@ class BlockingManagerController : QkController<BlockingManagerView, BlockingMana .show() } override fun openBlockedNumbers() { router.pushController(RouterTransaction.with(BlockedNumbersController()) .pushChangeHandler(QkChangeHandler()) .popChangeHandler(QkChangeHandler())) } } presentation/src/main/java/com/moez/QKSMS/feature/blocking/manager/BlockingManagerPresenter.kt +0 −25 Original line number Diff line number Diff line Loading @@ -64,13 +64,6 @@ class BlockingManagerPresenter @Inject constructor( prefs.blockingManager.set(Preferences.BLOCKING_MANAGER_QKSMS) } view.launchQksmsClicked() .autoDisposable(view.scope()) .subscribe { // TODO: This is a hack, get rid of it once we implement AndroidX navigation view.openBlockedNumbers() } view.callControlClicked() .filter { val installed = callControl.isAvailable() Loading Loading @@ -104,15 +97,6 @@ class BlockingManagerPresenter @Inject constructor( prefs.blockingManager.set(Preferences.BLOCKING_MANAGER_CC) } view.launchCallControlClicked() .autoDisposable(view.scope()) .subscribe { when (callControl.isAvailable()) { true -> callControl.openSettings() false -> navigator.installCallControl() } } view.siaClicked() .filter { val installed = shouldIAnswer.isAvailable() Loading @@ -129,15 +113,6 @@ class BlockingManagerPresenter @Inject constructor( analytics.setUserProperty("Blocking Manager", "SIA") prefs.blockingManager.set(Preferences.BLOCKING_MANAGER_SIA) } view.launchSiaClicked() .autoDisposable(view.scope()) .subscribe { when (shouldIAnswer.isAvailable()) { true -> shouldIAnswer.openSettings() false -> navigator.installSia() } } } private fun getAddressesToBlock(client: BlockingClient) = conversationRepo.getBlockedConversations() Loading Loading
presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingController.kt +11 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.moez.QKSMS.feature.blocking import android.view.View import androidx.core.view.isVisible import com.bluelinelabs.conductor.RouterTransaction import com.jakewharton.rxbinding2.view.clicks import com.moez.QKSMS.R Loading @@ -28,6 +29,7 @@ import com.moez.QKSMS.common.util.Colors import com.moez.QKSMS.common.util.extensions.animateLayoutChanges import com.moez.QKSMS.feature.blocking.manager.BlockingManagerController import com.moez.QKSMS.feature.blocking.messages.BlockedMessagesController import com.moez.QKSMS.feature.blocking.numbers.BlockedNumbersController import com.moez.QKSMS.injection.appComponent import kotlinx.android.synthetic.main.blocking_controller.* import kotlinx.android.synthetic.main.settings_switch_widget.view.* Loading @@ -36,7 +38,8 @@ import javax.inject.Inject class BlockingController : QkController<BlockingView, BlockingState, BlockingPresenter>(), BlockingView { override val blockingManagerIntent by lazy { blockingManager.clicks() } override val blockedMessagesIntent by lazy { blockedNumbers.clicks() } override val blockedNumbersIntent by lazy { blockedNumbers.clicks() } override val blockedMessagesIntent by lazy { blockedMessages.clicks() } override val dropClickedIntent by lazy { drop.clicks() } @Inject lateinit var colors: Colors Loading @@ -63,6 +66,13 @@ class BlockingController : QkController<BlockingView, BlockingState, BlockingPre override fun render(state: BlockingState) { blockingManager.summary = state.blockingManager drop.checkbox.isChecked = state.dropEnabled blockedMessages.isVisible = !state.dropEnabled } override fun openBlockedNumbers() { router.pushController(RouterTransaction.with(BlockedNumbersController()) .pushChangeHandler(QkChangeHandler()) .popChangeHandler(QkChangeHandler())) } override fun openBlockedMessages() { Loading
presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingPresenter.kt +13 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ package com.moez.QKSMS.feature.blocking import android.content.Context import com.moez.QKSMS.R import com.moez.QKSMS.blocking.BlockingClient import com.moez.QKSMS.common.base.QkPresenter import com.moez.QKSMS.util.Preferences import com.uber.autodispose.android.lifecycle.scope Loading @@ -29,6 +30,7 @@ import javax.inject.Inject class BlockingPresenter @Inject constructor( context: Context, private val blockingClient: BlockingClient, private val prefs: Preferences ) : QkPresenter<BlockingView, BlockingState>(BlockingState()) { Loading @@ -55,6 +57,17 @@ class BlockingPresenter @Inject constructor( .autoDisposable(view.scope()) .subscribe { view.openBlockingManager() } view.blockedNumbersIntent .autoDisposable(view.scope()) .subscribe { if (prefs.blockingManager.get() == Preferences.BLOCKING_MANAGER_QKSMS) { // TODO: This is a hack, get rid of it once we implement AndroidX navigation view.openBlockedNumbers() } else { blockingClient.openSettings() } } view.blockedMessagesIntent .autoDisposable(view.scope()) .subscribe { view.openBlockedMessages() } Loading
presentation/src/main/java/com/moez/QKSMS/feature/blocking/BlockingView.kt +2 −0 Original line number Diff line number Diff line Loading @@ -24,9 +24,11 @@ import io.reactivex.Observable interface BlockingView : QkViewContract<BlockingState> { val blockingManagerIntent: Observable<*> val blockedNumbersIntent: Observable<*> val blockedMessagesIntent: Observable<*> val dropClickedIntent: Observable<*> fun openBlockingManager() fun openBlockedNumbers() fun openBlockedMessages() }
presentation/src/main/java/com/moez/QKSMS/feature/blocking/manager/BlockingManagerController.kt +3 −20 Original line number Diff line number Diff line Loading @@ -3,12 +3,10 @@ package com.moez.QKSMS.feature.blocking.manager import android.app.Activity import android.app.AlertDialog import android.view.View import com.bluelinelabs.conductor.RouterTransaction import androidx.core.view.isVisible import com.jakewharton.rxbinding2.view.clicks import com.moez.QKSMS.R import com.moez.QKSMS.common.QkChangeHandler import com.moez.QKSMS.common.base.QkController import com.moez.QKSMS.feature.blocking.numbers.BlockedNumbersController import com.moez.QKSMS.injection.appComponent import com.moez.QKSMS.util.Preferences import io.reactivex.Observable Loading Loading @@ -47,25 +45,16 @@ class BlockingManagerController : QkController<BlockingManagerView, BlockingMana qksms.radioButton.isChecked = state.blockingManager == Preferences.BLOCKING_MANAGER_QKSMS callControl.radioButton.isChecked = state.blockingManager == Preferences.BLOCKING_MANAGER_CC callControl.launch.setImageResource(when (state.callControlInstalled) { true -> R.drawable.ic_chevron_right_black_24dp false -> R.drawable.ic_info_black_24dp }) callControl.install.isVisible = !state.callControlInstalled shouldIAnswer.radioButton.isChecked = state.blockingManager == Preferences.BLOCKING_MANAGER_SIA shouldIAnswer.launch.setImageResource(when (state.siaInstalled) { true -> R.drawable.ic_chevron_right_black_24dp false -> R.drawable.ic_info_black_24dp }) shouldIAnswer.install.isVisible = !state.siaInstalled } override fun activityResumed(): Observable<*> = activityResumedSubject override fun qksmsClicked(): Observable<*> = qksms.clicks() override fun launchQksmsClicked(): Observable<*> = qksms.launch.clicks() override fun callControlClicked(): Observable<*> = callControl.clicks() override fun launchCallControlClicked(): Observable<*> = callControl.launch.clicks() override fun siaClicked(): Observable<*> = shouldIAnswer.clicks() override fun launchSiaClicked(): Observable<*> = shouldIAnswer.launch.clicks() override fun showCopyDialog(manager: String): Single<Boolean> = Single.create { emitter -> AlertDialog.Builder(activity) Loading @@ -77,10 +66,4 @@ class BlockingManagerController : QkController<BlockingManagerView, BlockingMana .show() } override fun openBlockedNumbers() { router.pushController(RouterTransaction.with(BlockedNumbersController()) .pushChangeHandler(QkChangeHandler()) .popChangeHandler(QkChangeHandler())) } }
presentation/src/main/java/com/moez/QKSMS/feature/blocking/manager/BlockingManagerPresenter.kt +0 −25 Original line number Diff line number Diff line Loading @@ -64,13 +64,6 @@ class BlockingManagerPresenter @Inject constructor( prefs.blockingManager.set(Preferences.BLOCKING_MANAGER_QKSMS) } view.launchQksmsClicked() .autoDisposable(view.scope()) .subscribe { // TODO: This is a hack, get rid of it once we implement AndroidX navigation view.openBlockedNumbers() } view.callControlClicked() .filter { val installed = callControl.isAvailable() Loading Loading @@ -104,15 +97,6 @@ class BlockingManagerPresenter @Inject constructor( prefs.blockingManager.set(Preferences.BLOCKING_MANAGER_CC) } view.launchCallControlClicked() .autoDisposable(view.scope()) .subscribe { when (callControl.isAvailable()) { true -> callControl.openSettings() false -> navigator.installCallControl() } } view.siaClicked() .filter { val installed = shouldIAnswer.isAvailable() Loading @@ -129,15 +113,6 @@ class BlockingManagerPresenter @Inject constructor( analytics.setUserProperty("Blocking Manager", "SIA") prefs.blockingManager.set(Preferences.BLOCKING_MANAGER_SIA) } view.launchSiaClicked() .autoDisposable(view.scope()) .subscribe { when (shouldIAnswer.isAvailable()) { true -> shouldIAnswer.openSettings() false -> navigator.installSia() } } } private fun getAddressesToBlock(client: BlockingClient) = conversationRepo.getBlockedConversations() Loading