Make the link open the policy url in the analytics setting screen.

This commit is contained in:
Benoit Marty 2023-08-29 16:32:29 +02:00
parent 1bf2dc1c4d
commit ff47629f6c
7 changed files with 47 additions and 2 deletions

View file

@ -16,15 +16,19 @@
package io.element.android.features.preferences.impl.analytics
import android.app.Activity
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import com.bumble.appyx.core.modality.BuildContext
import com.bumble.appyx.core.node.Node
import com.bumble.appyx.core.plugin.Plugin
import dagger.assisted.Assisted
import dagger.assisted.AssistedInject
import io.element.android.anvilannotations.ContributesNode
import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.theme.ElementTheme
@ContributesNode(SessionScope::class)
class AnalyticsSettingsNode @AssistedInject constructor(
@ -33,12 +37,19 @@ class AnalyticsSettingsNode @AssistedInject constructor(
private val presenter: AnalyticsSettingsPresenter,
) : Node(buildContext, plugins = plugins) {
private fun onOpenAnalyticsPolicy(activity: Activity, darkTheme: Boolean, url: String) {
activity.openUrlInChromeCustomTab(null, darkTheme, url)
}
@Composable
override fun View(modifier: Modifier) {
val activity = LocalContext.current as Activity
val isDark = ElementTheme.colors.isLight.not()
val state = presenter.present()
AnalyticsSettingsView(
state = state,
onBackPressed = ::navigateUp,
onOpenAnalyticsPolicy = { onOpenAnalyticsPolicy(activity, darkTheme = isDark, it) },
modifier = modifier
)
}

View file

@ -31,6 +31,7 @@ import io.element.android.libraries.ui.strings.CommonStrings
fun AnalyticsSettingsView(
state: AnalyticsSettingsState,
onBackPressed: () -> Unit,
onOpenAnalyticsPolicy: (url: String) -> Unit,
modifier: Modifier = Modifier,
) {
PreferenceView(
@ -40,6 +41,7 @@ fun AnalyticsSettingsView(
) {
AnalyticsPreferencesView(
state = state.analyticsState,
onOpenAnalyticsPolicy = onOpenAnalyticsPolicy,
)
}
}
@ -59,5 +61,6 @@ private fun ContentToPreview(state: AnalyticsSettingsState) {
AnalyticsSettingsView(
state = state,
onBackPressed = {},
onOpenAnalyticsPolicy = {},
)
}