Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6beabfb authored by moezbhatti's avatar moezbhatti
Browse files

Move blocked numbers up a level

parent 228986a1
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -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
@@ -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.*
@@ -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
@@ -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() {
+13 −0
Original line number Diff line number Diff line
@@ -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
@@ -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()) {

@@ -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() }
+2 −0
Original line number Diff line number Diff line
@@ -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()
}
+3 −20
Original line number Diff line number Diff line
@@ -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
@@ -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)
@@ -77,10 +66,4 @@ class BlockingManagerController : QkController<BlockingManagerView, BlockingMana
                .show()
    }

    override fun openBlockedNumbers() {
        router.pushController(RouterTransaction.with(BlockedNumbersController())
                .pushChangeHandler(QkChangeHandler())
                .popChangeHandler(QkChangeHandler()))
    }

}
+0 −25
Original line number Diff line number Diff line
@@ -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()
@@ -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()
@@ -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