@@ -5,7 +5,6 @@ import android.content.Intent
55import android.os.Bundle
66import androidx.activity.compose.setContent
77import androidx.activity.enableEdgeToEdge
8- import androidx.activity.viewModels
98import com.slack.circuit.backstack.rememberSaveableBackStack
109import com.slack.circuit.foundation.Circuit
1110import com.slack.circuit.foundation.CircuitCompositionLocals
@@ -17,15 +16,8 @@ import java.util.Locale
1716import javax.inject.Inject
1817import org.ccci.gto.android.common.compat.content.getSerializableExtraCompat
1918import org.cru.godtools.base.EXTRA_TOOL
20- import org.cru.godtools.base.Settings.Companion.FEATURE_TUTORIAL_TIPS
2119import org.cru.godtools.base.ui.activity.BaseActivity
2220import org.cru.godtools.base.ui.theme.GodToolsTheme
23- import org.cru.godtools.model.Tool
24- import org.cru.godtools.tutorial.PageSet
25- import org.cru.godtools.tutorial.TutorialScreenResultContract
26- import org.cru.godtools.tutorial.layout.TutorialScreen
27- import org.cru.godtools.util.openToolActivity
28- import org.cru.godtools.util.rememberInterceptingNavigator
2921
3022private const val EXTRA_ADDITIONAL_LANGUAGE = " additionalLanguage"
3123
@@ -63,25 +55,7 @@ class ToolDetailsActivity : BaseActivity() {
6355 GodToolsTheme {
6456 val backStack = rememberSaveableBackStack(screen)
6557 val navigator = rememberAndroidScreenAwareNavigator(
66- rememberInterceptingNavigator(
67- rememberCircuitNavigator(backStack),
68- goTo = { screen, delegate ->
69- when (screen) {
70- // TODO: move this logic into the ToolDetailsPresenter once tutorials use Circuit
71- is OpenToolTrainingScreen -> {
72- launchTrainingTips(
73- screen.tool,
74- screen.type,
75- screen.locale,
76- screen.secondaryLocale
77- )
78- true
79- }
80-
81- else -> delegate.goTo(screen)
82- }
83- }
84- ),
58+ rememberCircuitNavigator(backStack),
8559 this
8660 )
8761 NavigableCircuitContent (
@@ -95,35 +69,4 @@ class ToolDetailsActivity : BaseActivity() {
9569 // endregion Lifecycle
9670
9771 private val isValidStartState get() = initialTool != null
98-
99- // region Training Tips
100- private val selectedTool by viewModels<SelectedToolSavedState >()
101- private val tipsTutorialLauncher = registerForActivityResult(TutorialScreenResultContract ()) {
102- if (it == TutorialScreen .Result .Finished ) launchTrainingTips(skipTutorial = true )
103- }
104-
105- private fun launchTrainingTips (
106- code : String? = selectedTool.tool,
107- type : Tool .Type ? = selectedTool.type,
108- locale : Locale ? = selectedTool.language,
109- secondaryLocale : Locale ? = selectedTool.secondaryLanguage,
110- skipTutorial : Boolean = false,
111- ): Unit = when {
112- code == null || type == null || locale == null -> Unit
113-
114- skipTutorial || settings.isFeatureDiscovered(" $FEATURE_TUTORIAL_TIPS$code " ) -> {
115- settings.setFeatureDiscovered(" $FEATURE_TUTORIAL_TIPS$code " )
116- val locales = listOfNotNull(locale, secondaryLocale)
117- openToolActivity(code, type, * locales.toTypedArray(), showTips = true )
118- }
119-
120- else -> {
121- selectedTool.tool = code
122- selectedTool.type = type
123- selectedTool.language = locale
124- selectedTool.secondaryLanguage = secondaryLocale
125- tipsTutorialLauncher.launch(PageSet .TIPS )
126- }
127- }
128- // endregion Training Tips
12972}
0 commit comments