mirror of
https://github.com/ProtonMail/android-mail.git
synced 2026-05-15 09:50:40 +00:00
Update navigation to Application logs
ET-4460
This commit is contained in:
@@ -263,7 +263,9 @@ internal fun NavGraphBuilder.addAppSettings(navController: NavHostController, sh
|
||||
},
|
||||
onSwipeToNextEmailClick = showFeatureMissingSnackbar,
|
||||
onSwipeActionsClick = showFeatureMissingSnackbar,
|
||||
onViewApplicationLogsClick = showFeatureMissingSnackbar,
|
||||
onViewApplicationLogsClick = {
|
||||
navController.navigate(Destination.Screen.ApplicationLogs.route)
|
||||
},
|
||||
onCustomizeToolbarClick = {
|
||||
navController.navigate(Destination.Screen.CustomizeToolbar.route)
|
||||
},
|
||||
|
||||
+32
-15
@@ -23,6 +23,7 @@ import android.content.Intent
|
||||
import android.content.res.Configuration
|
||||
import android.provider.Settings
|
||||
import android.widget.Toast
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
@@ -37,6 +38,10 @@ import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
@@ -100,6 +105,8 @@ private fun AppSettingsScreenContent(
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
|
||||
var advancedHeaderTaps by rememberSaveable { mutableIntStateOf(0) }
|
||||
|
||||
Scaffold(
|
||||
modifier = modifier,
|
||||
topBar = {
|
||||
@@ -168,10 +175,14 @@ private fun AppSettingsScreenContent(
|
||||
|
||||
Spacer(modifier = Modifier.height(ProtonDimens.Spacing.Medium))
|
||||
|
||||
MainSettingsHeader(titleRes = R.string.mail_settings_app_customization_advanced_header)
|
||||
MainSettingsHeader(
|
||||
titleRes = R.string.mail_settings_app_customization_advanced_header,
|
||||
modifier = Modifier.clickable(null, null) { advancedHeaderTaps++ }
|
||||
)
|
||||
AdvancedSettingsItem(
|
||||
alternativeRouting = state.settings.alternativeRoutingEnabled,
|
||||
actions = actions,
|
||||
showApplicationLogsEntry = advancedHeaderTaps >= APP_LOGS_ENTRY_TAP_THRESHOLD,
|
||||
onIntent = onIntent
|
||||
)
|
||||
|
||||
@@ -187,6 +198,8 @@ private fun launchNotificationSettingsIntent(context: Context) {
|
||||
startActivity(context, intent, null)
|
||||
}
|
||||
|
||||
private const val APP_LOGS_ENTRY_TAP_THRESHOLD = 5
|
||||
|
||||
@Composable
|
||||
private fun NotificationSettingsItem(
|
||||
modifier: Modifier = Modifier,
|
||||
@@ -500,6 +513,7 @@ private fun AdvancedSettingsItem(
|
||||
modifier: Modifier = Modifier,
|
||||
alternativeRouting: Boolean,
|
||||
actions: AppSettingsScreen.Actions,
|
||||
showApplicationLogsEntry: Boolean,
|
||||
onIntent: (AppSettingsAction) -> Unit
|
||||
) {
|
||||
Card(
|
||||
@@ -520,21 +534,24 @@ private fun AdvancedSettingsItem(
|
||||
onToggle = { onIntent(ToggleAlternativeRouting(it)) }
|
||||
)
|
||||
|
||||
SettingsItemDivider()
|
||||
|
||||
ProtonAppSettingsItemNorm(
|
||||
name = stringResource(id = R.string.mail_settings_app_customization_view_application_logs),
|
||||
onClick = { actions.onViewApplicationLogsClick() },
|
||||
icon = {
|
||||
ProtonMainSettingsIcon(
|
||||
iconRes = R.drawable.ic_proton_chevron_right,
|
||||
contentDescription = stringResource(
|
||||
id = R.string.mail_settings_app_customization_view_application_logs
|
||||
),
|
||||
tint = ProtonTheme.colors.iconHint
|
||||
)
|
||||
}
|
||||
)
|
||||
if (showApplicationLogsEntry) {
|
||||
SettingsItemDivider()
|
||||
|
||||
ProtonAppSettingsItemNorm(
|
||||
name = stringResource(id = R.string.mail_settings_app_customization_view_application_logs),
|
||||
onClick = { actions.onViewApplicationLogsClick() },
|
||||
icon = {
|
||||
ProtonMainSettingsIcon(
|
||||
iconRes = R.drawable.ic_proton_chevron_right,
|
||||
contentDescription = stringResource(
|
||||
id = R.string.mail_settings_app_customization_view_application_logs
|
||||
),
|
||||
tint = ProtonTheme.colors.iconHint
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -51,14 +51,14 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import ch.protonmail.android.design.compose.component.ProtonCenteredProgress
|
||||
import ch.protonmail.android.design.compose.component.ProtonMainSettingsItem
|
||||
import ch.protonmail.android.design.compose.component.ProtonSettingsTopBar
|
||||
import ch.protonmail.android.design.compose.model.VisibilityUiModel
|
||||
import ch.protonmail.android.design.compose.model.isVisible
|
||||
import ch.protonmail.android.design.compose.theme.ProtonDimens
|
||||
import ch.protonmail.android.design.compose.theme.ProtonInvertedTheme
|
||||
import ch.protonmail.android.design.compose.theme.ProtonTheme
|
||||
import ch.protonmail.android.mailcommon.presentation.compose.Avatar
|
||||
import ch.protonmail.android.mailsession.presentation.model.AccountInformationUiModel
|
||||
import ch.protonmail.android.mailsession.presentation.model.StorageQuotaUiModel
|
||||
import ch.protonmail.android.design.compose.model.VisibilityUiModel
|
||||
import ch.protonmail.android.design.compose.model.isVisible
|
||||
import ch.protonmail.android.mailsettings.presentation.R
|
||||
import ch.protonmail.android.mailsettings.presentation.R.string
|
||||
import ch.protonmail.android.mailsettings.presentation.settings.SettingsState.Data
|
||||
@@ -203,9 +203,9 @@ fun MainSettingsScreen(
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MainSettingsHeader(@StringRes titleRes: Int) {
|
||||
fun MainSettingsHeader(@StringRes titleRes: Int, modifier: Modifier = Modifier) {
|
||||
Text(
|
||||
modifier = Modifier.padding(vertical = ProtonDimens.Spacing.Large),
|
||||
modifier = modifier.padding(vertical = ProtonDimens.Spacing.Large),
|
||||
text = stringResource(id = titleRes),
|
||||
color = ProtonTheme.colors.textWeak,
|
||||
style = ProtonTheme.typography.titleMedium
|
||||
|
||||
Reference in New Issue
Block a user