|
|
|
@ -16,41 +16,27 @@
@@ -16,41 +16,27 @@
|
|
|
|
|
|
|
|
|
|
package io.element.android.features.preferences.impl.notifications |
|
|
|
|
|
|
|
|
|
import androidx.compose.foundation.layout.Box |
|
|
|
|
import androidx.compose.foundation.layout.Column |
|
|
|
|
import androidx.compose.foundation.layout.Row |
|
|
|
|
import androidx.compose.foundation.layout.Spacer |
|
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth |
|
|
|
|
import androidx.compose.foundation.layout.height |
|
|
|
|
import androidx.compose.foundation.layout.padding |
|
|
|
|
import androidx.compose.material3.MaterialTheme |
|
|
|
|
import androidx.compose.runtime.Composable |
|
|
|
|
import androidx.compose.ui.Alignment |
|
|
|
|
import androidx.compose.ui.Modifier |
|
|
|
|
import androidx.compose.ui.platform.LocalContext |
|
|
|
|
import androidx.compose.ui.res.stringResource |
|
|
|
|
import androidx.compose.ui.text.style.TextAlign |
|
|
|
|
import androidx.compose.ui.tooling.preview.PreviewParameter |
|
|
|
|
import androidx.compose.ui.unit.dp |
|
|
|
|
import androidx.lifecycle.Lifecycle |
|
|
|
|
import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent |
|
|
|
|
import io.element.android.libraries.architecture.Async |
|
|
|
|
import io.element.android.libraries.designsystem.atomic.molecules.DialogLikeBannerMolecule |
|
|
|
|
import io.element.android.libraries.designsystem.components.ProgressDialog |
|
|
|
|
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog |
|
|
|
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory |
|
|
|
|
import io.element.android.libraries.designsystem.components.preferences.PreferencePage |
|
|
|
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceSwitch |
|
|
|
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceText |
|
|
|
|
import io.element.android.libraries.designsystem.components.preferences.PreferencePage |
|
|
|
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight |
|
|
|
|
import io.element.android.libraries.designsystem.preview.ElementPreview |
|
|
|
|
import io.element.android.libraries.designsystem.theme.components.Button |
|
|
|
|
import io.element.android.libraries.designsystem.theme.components.ButtonSize |
|
|
|
|
import io.element.android.libraries.designsystem.theme.components.Surface |
|
|
|
|
import io.element.android.libraries.designsystem.theme.components.Text |
|
|
|
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight |
|
|
|
|
import io.element.android.libraries.designsystem.utils.CommonDrawables |
|
|
|
|
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent |
|
|
|
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode |
|
|
|
|
import io.element.android.libraries.theme.ElementTheme |
|
|
|
|
import io.element.android.libraries.ui.strings.CommonStrings |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -197,41 +183,14 @@ private fun InvalidNotificationSettingsView(
@@ -197,41 +183,14 @@ private fun InvalidNotificationSettingsView(
|
|
|
|
|
onDismissError: () -> Unit, |
|
|
|
|
modifier: Modifier = Modifier |
|
|
|
|
) { |
|
|
|
|
Box(modifier = modifier.padding(horizontal = 16.dp, vertical = 8.dp)) { |
|
|
|
|
Surface( |
|
|
|
|
Modifier.fillMaxWidth(), |
|
|
|
|
shape = MaterialTheme.shapes.small, |
|
|
|
|
color = MaterialTheme.colorScheme.surfaceVariant |
|
|
|
|
) { |
|
|
|
|
Column( |
|
|
|
|
Modifier |
|
|
|
|
.fillMaxWidth() |
|
|
|
|
.padding(horizontal = 16.dp, vertical = 12.dp) |
|
|
|
|
) { |
|
|
|
|
Row { |
|
|
|
|
Text( |
|
|
|
|
stringResource(CommonStrings.screen_notification_settings_configuration_mismatch), |
|
|
|
|
modifier = Modifier.weight(1f), |
|
|
|
|
style = ElementTheme.typography.fontBodyLgMedium, |
|
|
|
|
color = MaterialTheme.colorScheme.primary, |
|
|
|
|
textAlign = TextAlign.Start, |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
Spacer(modifier = Modifier.height(4.dp)) |
|
|
|
|
Text( |
|
|
|
|
stringResource(CommonStrings.screen_notification_settings_configuration_mismatch_description), |
|
|
|
|
style = ElementTheme.typography.fontBodyMdRegular, |
|
|
|
|
) |
|
|
|
|
Spacer(modifier = Modifier.height(12.dp)) |
|
|
|
|
Button( |
|
|
|
|
text = stringResource(CommonStrings.action_continue), |
|
|
|
|
size = ButtonSize.Medium, |
|
|
|
|
modifier = Modifier.fillMaxWidth(), |
|
|
|
|
onClick = onContinueClicked, |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
DialogLikeBannerMolecule( |
|
|
|
|
modifier = modifier, |
|
|
|
|
title = stringResource(CommonStrings.screen_notification_settings_configuration_mismatch), |
|
|
|
|
content = stringResource(CommonStrings.screen_notification_settings_configuration_mismatch_description), |
|
|
|
|
onSubmitClicked = onContinueClicked, |
|
|
|
|
onDismissClicked = null, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
if (showError) { |
|
|
|
|
ErrorDialog( |
|
|
|
|
title = stringResource(id = CommonStrings.dialog_title_error), |
|
|
|
|