From d48c7844a4220dcd4f4be6eb77ae66d1b57448cf Mon Sep 17 00:00:00 2001 From: Kacper Ziubryniewicz Date: Sat, 25 Jan 2020 13:31:12 +0100 Subject: [PATCH] [UI/Settings] Add grades config dialog to settings fragment. --- .../ui/dialogs/settings/GradesConfigDialog.kt | 8 ++- .../ui/modules/grades/GradesFragment.java | 2 +- .../modules/settings/SettingsNewFragment.java | 57 +++---------------- app/src/main/res/values-en/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 5 files changed, 15 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt index d29160c3..9a2c5c65 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/dialogs/settings/GradesConfigDialog.kt @@ -17,6 +17,7 @@ import pl.szczodrzynski.edziennik.setOnSelectedListener class GradesConfigDialog( val activity: AppCompatActivity, + private val reloadOnDismiss: Boolean = true, val onShowListener: ((tag: String) -> Unit)? = null, val onDismissListener: ((tag: String) -> Unit)? = null ) { @@ -39,9 +40,10 @@ class GradesConfigDialog( dialog = MaterialAlertDialogBuilder(activity) .setTitle(R.string.menu_grades_config) .setView(b.root) - .setPositiveButton(R.string.ok) { dialog, _ -> - dialog.dismiss() - (activity as? MainActivity)?.reloadTarget() + .setPositiveButton(R.string.ok) { dialog, _ -> dialog.dismiss() } + .setOnDismissListener { + onDismissListener?.invoke(TAG) + if (reloadOnDismiss) (activity as? MainActivity)?.reloadTarget() } .create() initView() diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/grades/GradesFragment.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/grades/GradesFragment.java index b24b0d9c..7c48bcce 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/grades/GradesFragment.java +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/grades/GradesFragment.java @@ -132,7 +132,7 @@ public class GradesFragment extends Fragment { .withIcon(CommunityMaterial.Icon2.cmd_settings_outline) .withOnClickListener(v3 -> { activity.getBottomSheet().close(); - new GradesConfigDialog(activity, null, null); + new GradesConfigDialog(activity, true, null, null); }), new BottomSheetSeparatorItem(true), new BottomSheetPrimaryItem(true) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/SettingsNewFragment.java b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/SettingsNewFragment.java index 3c40a831..60de1f41 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/SettingsNewFragment.java +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/settings/SettingsNewFragment.java @@ -52,6 +52,7 @@ import pl.szczodrzynski.edziennik.network.NetworkUtils; import pl.szczodrzynski.edziennik.sync.SyncWorker; import pl.szczodrzynski.edziennik.sync.UpdateWorker; import pl.szczodrzynski.edziennik.ui.dialogs.changelog.ChangelogDialog; +import pl.szczodrzynski.edziennik.ui.dialogs.settings.GradesConfigDialog; import pl.szczodrzynski.edziennik.ui.dialogs.settings.ProfileRemoveDialog; import pl.szczodrzynski.edziennik.utils.Themes; import pl.szczodrzynski.edziennik.utils.Utils; @@ -858,47 +859,20 @@ public class SettingsNewFragment extends MaterialAboutFragment { return true; }); } - private MaterialAboutActionItem registerCardAverageModeItem; + private MaterialAboutSwitchItem registerCardAllowRegistrationItem; private MaterialAboutActionItem registerCardBellSyncItem; private ArrayList getRegisterCard(boolean expandedOnly) { ArrayList items = new ArrayList<>(); if (!expandedOnly) { - - registerCardAverageModeItem = new MaterialAboutActionItem( - getString(R.string.settings_register_avg_mode_text), - getRegisterCardAverageModeSubText(), + items.add(new MaterialAboutActionItem( + getString(R.string.menu_grades_config), + null, new IconicsDrawable(activity) - .icon(CommunityMaterial.Icon2.cmd_scale_balance) + .icon(CommunityMaterial.Icon2.cmd_numeric_5_box_outline) .size(IconicsSize.dp(iconSizeDp)) .color(IconicsColor.colorInt(iconColor)) - ); - registerCardAverageModeItem.setOnClickAction(() -> { - List modeNames = new ArrayList<>(); - modeNames.add(getString(R.string.settings_register_avg_mode_4)); - modeNames.add(getString(R.string.settings_register_avg_mode_0)); - modeNames.add(getString(R.string.settings_register_avg_mode_1)); - modeNames.add(getString(R.string.settings_register_avg_mode_2)); - modeNames.add(getString(R.string.settings_register_avg_mode_3)); - List modeIds = new ArrayList<>(); - modeIds.add(YEAR_ALL_GRADES); - modeIds.add(YEAR_1_AVG_2_AVG); - modeIds.add(YEAR_1_SEM_2_AVG); - modeIds.add(YEAR_1_AVG_2_SEM); - modeIds.add(YEAR_1_SEM_2_SEM); - new MaterialDialog.Builder(activity) - .title(getString(R.string.settings_register_avg_mode_dialog_title)) - .content(getString(R.string.settings_register_avg_mode_dialog_text)) - .items(modeNames) - .itemsCallbackSingleChoice(modeIds.indexOf(app.getConfig().forProfile().getGrades().getYearAverageMode()), (dialog, itemView, which, text) -> { - app.getConfig().forProfile().getGrades().setYearAverageMode(modeIds.get(which)); - registerCardAverageModeItem.setSubText(getRegisterCardAverageModeSubText()); - refreshMaterialAboutList(); - return true; - }) - .show(); - }); - items.add(registerCardAverageModeItem); + ).setOnClickAction(() -> new GradesConfigDialog(activity, false, null, null))); registerCardAllowRegistrationItem = new MaterialAboutSwitchItem( getString(R.string.settings_register_allow_registration_text), @@ -960,7 +934,6 @@ public class SettingsNewFragment extends MaterialAboutFragment { items.add(getMoreItem(() -> addCardItems(CARD_REGISTER, getRegisterCard(true)))); } else { - registerCardBellSyncItem = new MaterialAboutActionItem( getString(R.string.settings_register_bell_sync_text), getRegisterCardBellSyncSubText(), @@ -1030,22 +1003,6 @@ public class SettingsNewFragment extends MaterialAboutFragment { }); items.add(registerCardBellSyncItem); - items.add( - new MaterialAboutSwitchItem( - getString(R.string.settings_register_dont_count_zero_text), - null, - new IconicsDrawable(activity) - .icon(CommunityMaterial.Icon2.cmd_numeric_0_box_outline) - .size(IconicsSize.dp(iconSizeDp)) - .color(IconicsColor.colorInt(iconColor)) - ) - .setChecked(!app.getConfig().getFor(app.getProfileId()).getGrades().getCountZeroToAvg()) - .setOnChangeAction((isChecked, tag) -> { - app.getConfig().getFor(app.getProfileId()).getGrades().setCountZeroToAvg(!isChecked); - return true; - }) - ); - items.add( new MaterialAboutSwitchItem( getString(R.string.settings_register_count_in_seconds_text), diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 9571056c..db46ba90 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -958,5 +958,5 @@ From e-register By grade\'s value Other - Grades view config + Grades settings diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f302fb2e..9e7cad2b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1172,5 +1172,5 @@ Wg e-dziennika Wg wartoĊ›ci oceny Inne - Ustawienia widoku ocen + Ustawienia ocen