Move the logic to the Node, which handles navigation.

This commit is contained in:
Benoit Marty 2023-12-26 15:47:42 +01:00
parent fcd8562bb9
commit 1d672d572a
2 changed files with 9 additions and 9 deletions

View file

@ -28,6 +28,7 @@ import dagger.assisted.Assisted
import dagger.assisted.AssistedInject import dagger.assisted.AssistedInject
import io.element.android.anvilannotations.ContributesNode import io.element.android.anvilannotations.ContributesNode
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.features.logout.api.direct.DirectLogoutEvents
import io.element.android.features.logout.api.direct.DirectLogoutView import io.element.android.features.logout.api.direct.DirectLogoutView
import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab
import io.element.android.libraries.di.SessionScope import io.element.android.libraries.di.SessionScope
@ -141,7 +142,13 @@ class PreferencesRootNode @AssistedInject constructor(
onOpenNotificationSettings = this::onOpenNotificationSettings, onOpenNotificationSettings = this::onOpenNotificationSettings,
onOpenLockScreenSettings = this::onOpenLockScreenSettings, onOpenLockScreenSettings = this::onOpenLockScreenSettings,
onOpenUserProfile = this::onOpenUserProfile, onOpenUserProfile = this::onOpenUserProfile,
onSignOutClicked = this::onSignOutClicked, onSignOutClicked = {
if (state.directLogoutState.canDoDirectSignOut) {
state.directLogoutState.eventSink(DirectLogoutEvents.Logout(ignoreSdkError = false))
} else {
onSignOutClicked()
}
},
) )
directLogoutView.Render( directLogoutView.Render(

View file

@ -29,7 +29,6 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.features.logout.api.direct.DirectLogoutEvents
import io.element.android.features.preferences.impl.R import io.element.android.features.preferences.impl.R
import io.element.android.features.preferences.impl.user.UserPreferences import io.element.android.features.preferences.impl.user.UserPreferences
import io.element.android.libraries.designsystem.components.list.ListItemContent import io.element.android.libraries.designsystem.components.list.ListItemContent
@ -163,13 +162,7 @@ fun PreferencesRootView(
headlineContent = { Text(stringResource(id = CommonStrings.action_signout)) }, headlineContent = { Text(stringResource(id = CommonStrings.action_signout)) },
leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_sign_out)), leadingContent = ListItemContent.Icon(IconSource.Resource(CommonDrawables.ic_sign_out)),
style = ListItemStyle.Destructive, style = ListItemStyle.Destructive,
onClick = { onClick = onSignOutClicked,
if (state.directLogoutState.canDoDirectSignOut) {
state.directLogoutState.eventSink(DirectLogoutEvents.Logout(ignoreSdkError = false))
} else {
onSignOutClicked()
}
},
) )
Text( Text(
modifier = Modifier modifier = Modifier