From 99816e05a79212305b0bd530d9a37d7a4a5055c1 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Wed, 29 Mar 2023 12:45:21 +0200 Subject: [PATCH] use correct dialog --- .../preferences/PreferencesFragment.kt | 156 ++---------------- .../ui/views/dialogs/HabiticaAlertDialog.kt | 1 + .../preferences/PauseResumeDamageView.kt | 138 ++++++++++++++++ 3 files changed, 149 insertions(+), 146 deletions(-) create mode 100644 Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/preferences/PauseResumeDamageView.kt diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt index 85f3493e5..d15decba6 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.kt @@ -8,20 +8,6 @@ import android.os.Bundle import android.provider.Settings import android.view.View import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AlertDialog -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.colorResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import androidx.lifecycle.lifecycleScope import androidx.preference.CheckBoxPreference import androidx.preference.ListPreference @@ -43,12 +29,11 @@ import com.habitrpg.android.habitica.prefs.TimePreference import com.habitrpg.android.habitica.ui.activities.ClassSelectionActivity import com.habitrpg.android.habitica.ui.activities.MainActivity import com.habitrpg.android.habitica.ui.activities.PrefsActivity -import com.habitrpg.android.habitica.ui.theme.HabiticaTheme -import com.habitrpg.android.habitica.ui.views.HabiticaButton import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar import com.habitrpg.android.habitica.ui.views.SnackbarActivity import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGemsDialog +import com.habitrpg.android.habitica.ui.views.preferences.PauseResumeDamageView import com.habitrpg.android.habitica.ui.views.showAsBottomSheet import com.habitrpg.common.habitica.helpers.AppTestingLevel import com.habitrpg.common.habitica.helpers.ExceptionHandler @@ -164,16 +149,15 @@ class PreferencesFragment : BasePreferencesFragment(), if (user?.flags?.classSelected == true && user?.preferences?.disableClasses == false) { if ((user?.gemCount ?: 0) >= 3) { context?.let { context -> - val builder = AlertDialog.Builder(context) - .setMessage(getString(R.string.change_class_confirmation)) - .setNegativeButton(getString(R.string.dialog_go_back)) { dialog, _ -> dialog.dismiss() } - .setPositiveButton(getString(R.string.change_class)) { _, _ -> - classSelectionResult.launch( - intent - ) - } - val alert = builder.create() - alert.show() + val dialog = HabiticaAlertDialog(context) + dialog.setTitle(R.string.change_class_confirmation) + dialog.addButton(R.string.change_class, true, true) { _, _ -> + classSelectionResult.launch( + intent + ) + } + dialog.addButton(R.string.dialog_go_back, false) + dialog.enqueue() } } else { val dialog = context?.let { InsufficientGemsDialog(it, 3) } @@ -548,123 +532,3 @@ class PreferencesFragment : BasePreferencesFragment(), } } } - -@Composable -fun PauseResumeDamageView( - isPaused : Boolean, - onClick : () -> Unit, - modifier : Modifier = Modifier -) { - Column( - horizontalAlignment = Alignment.Start, - modifier = modifier - .fillMaxWidth() - .padding(horizontal = 16.dp) - ) { - if (isPaused) { - Text( - stringResource(R.string.resume_damage), - color = HabiticaTheme.colors.textSecondary, - fontSize = 16.sp, - textAlign = TextAlign.Center, - modifier = Modifier - .padding(bottom = 18.dp) - .fillMaxWidth() - ) - Text( - stringResource(R.string.resume_damage_1_title), - color = HabiticaTheme.colors.textPrimary, - fontSize = 16.sp - ) - Text( - stringResource(R.string.resume_damage_1_description), - color = HabiticaTheme.colors.textSecondary, - fontSize = 14.sp, - modifier = Modifier.padding(bottom = 12.dp) - ) - Text( - stringResource(R.string.resume_damage_2_title), - color = HabiticaTheme.colors.textPrimary, - fontSize = 16.sp - ) - Text( - stringResource(R.string.resume_damage_2_description), - color = HabiticaTheme.colors.textSecondary, - fontSize = 14.sp, - modifier = Modifier.padding(bottom = 12.dp) - ) - Text( - stringResource(R.string.resume_damage_3_title), - color = HabiticaTheme.colors.textPrimary, - fontSize = 16.sp - ) - Text( - stringResource(R.string.resume_damage_3_description), - color = HabiticaTheme.colors.textSecondary, - fontSize = 14.sp, - modifier = Modifier.padding(bottom = 18.dp) - ) - HabiticaButton( - background = colorResource(R.color.yellow_100), - color = colorResource(R.color.yellow_1), - onClick = { onClick() }) { - Text(stringResource(R.string.resume_damage)) - } - } else { - Text( - stringResource(R.string.pause_damage), - color = HabiticaTheme.colors.textSecondary, - fontSize = 16.sp, - textAlign = TextAlign.Center, - modifier = Modifier - .padding(bottom = 18.dp) - .fillMaxWidth() - ) - Text( - stringResource(R.string.pause_damage_1_title), - color = HabiticaTheme.colors.textPrimary, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ) - Text( - stringResource(R.string.pause_damage_1_description), - color = HabiticaTheme.colors.textSecondary, - fontSize = 14.sp, - fontWeight = FontWeight.Normal, - modifier = Modifier.padding(bottom = 12.dp) - ) - Text( - stringResource(R.string.pause_damage_2_title), - color = HabiticaTheme.colors.textPrimary, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ) - Text( - stringResource(R.string.pause_damage_2_description), - color = HabiticaTheme.colors.textSecondary, - fontSize = 14.sp, - fontWeight = FontWeight.Normal, - modifier = Modifier.padding(bottom = 12.dp) - ) - Text( - stringResource(R.string.pause_damage_3_title), - color = HabiticaTheme.colors.textPrimary, - fontWeight = FontWeight.Normal, - fontSize = 16.sp - ) - Text( - stringResource(R.string.pause_damage_3_description), - color = HabiticaTheme.colors.textSecondary, - fontSize = 14.sp, - fontWeight = FontWeight.Normal, - modifier = Modifier.padding(bottom = 18.dp) - ) - HabiticaButton( - background = colorResource(R.color.yellow_100), - color = colorResource(R.color.yellow_1), - onClick = { onClick() }) { - Text(stringResource(R.string.pause_damage)) - } - } - } -} diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt index 16d4904b3..f38ecc85a 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/dialogs/HabiticaAlertDialog.kt @@ -211,6 +211,7 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context, R.style. button } ?: Button(context) button.text = string + button.elevation = 0f return addButton(button, autoDismiss, function) as Button } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/preferences/PauseResumeDamageView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/preferences/PauseResumeDamageView.kt new file mode 100644 index 000000000..72774a856 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/preferences/PauseResumeDamageView.kt @@ -0,0 +1,138 @@ +package com.habitrpg.android.habitica.ui.views.preferences + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.colorResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.habitrpg.android.habitica.R +import com.habitrpg.android.habitica.ui.theme.HabiticaTheme +import com.habitrpg.android.habitica.ui.views.HabiticaButton + +@Composable +fun PauseResumeDamageView( + isPaused : Boolean, + onClick : () -> Unit, + modifier : Modifier = Modifier +) { + Column( + horizontalAlignment = Alignment.Start, + modifier = modifier + .fillMaxWidth() + .padding(horizontal = 16.dp) + ) { + if (isPaused) { + Text( + stringResource(R.string.resume_damage), + color = HabiticaTheme.colors.textSecondary, + fontSize = 16.sp, + textAlign = TextAlign.Center, + modifier = Modifier + .padding(bottom = 18.dp) + .fillMaxWidth() + ) + Text( + stringResource(R.string.resume_damage_1_title), + color = HabiticaTheme.colors.textPrimary, + fontSize = 16.sp + ) + Text( + stringResource(R.string.resume_damage_1_description), + color = HabiticaTheme.colors.textSecondary, + fontSize = 14.sp, + modifier = Modifier.padding(bottom = 12.dp) + ) + Text( + stringResource(R.string.resume_damage_2_title), + color = HabiticaTheme.colors.textPrimary, + fontSize = 16.sp + ) + Text( + stringResource(R.string.resume_damage_2_description), + color = HabiticaTheme.colors.textSecondary, + fontSize = 14.sp, + modifier = Modifier.padding(bottom = 12.dp) + ) + Text( + stringResource(R.string.resume_damage_3_title), + color = HabiticaTheme.colors.textPrimary, + fontSize = 16.sp + ) + Text( + stringResource(R.string.resume_damage_3_description), + color = HabiticaTheme.colors.textSecondary, + fontSize = 14.sp, + modifier = Modifier.padding(bottom = 18.dp) + ) + HabiticaButton( + background = colorResource(R.color.yellow_100), + color = colorResource(R.color.yellow_1), + onClick = { onClick() }) { + Text(stringResource(R.string.resume_damage)) + } + } else { + Text( + stringResource(R.string.pause_damage), + color = HabiticaTheme.colors.textSecondary, + fontSize = 16.sp, + textAlign = TextAlign.Center, + modifier = Modifier + .padding(bottom = 18.dp) + .fillMaxWidth() + ) + Text( + stringResource(R.string.pause_damage_1_title), + color = HabiticaTheme.colors.textPrimary, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + Text( + stringResource(R.string.pause_damage_1_description), + color = HabiticaTheme.colors.textSecondary, + fontSize = 14.sp, + fontWeight = FontWeight.Normal, + modifier = Modifier.padding(bottom = 12.dp) + ) + Text( + stringResource(R.string.pause_damage_2_title), + color = HabiticaTheme.colors.textPrimary, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + Text( + stringResource(R.string.pause_damage_2_description), + color = HabiticaTheme.colors.textSecondary, + fontSize = 14.sp, + fontWeight = FontWeight.Normal, + modifier = Modifier.padding(bottom = 12.dp) + ) + Text( + stringResource(R.string.pause_damage_3_title), + color = HabiticaTheme.colors.textPrimary, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + Text( + stringResource(R.string.pause_damage_3_description), + color = HabiticaTheme.colors.textSecondary, + fontSize = 14.sp, + fontWeight = FontWeight.Normal, + modifier = Modifier.padding(bottom = 18.dp) + ) + HabiticaButton( + background = colorResource(R.color.yellow_100), + color = colorResource(R.color.yellow_1), + onClick = { onClick() }) { + Text(stringResource(R.string.pause_damage)) + } + } + } +}