From 2d07f5e924e7bbf51b7ffcbbd169febbb1b885d7 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Thu, 13 Apr 2017 21:44:23 -0400 Subject: [PATCH] Create switch for numerical habits feature --- .../activities/habits/edit/EditHabitDialog.java | 4 ++-- .../activities/habits/list/ListHabitsScreen.java | 14 +++++++++++++- .../isoron/uhabits/preferences/Preferences.java | 5 +++++ app/src/main/res/xml/preferences.xml | 5 +++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java b/app/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java index b3ed6bf3f..93504ee7e 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/edit/EditHabitDialog.java @@ -100,8 +100,8 @@ public class EditHabitDialog extends AppCompatDialogFragment initDependencies(); ButterKnife.bind(this, view); - getDialog().setTitle(getTitle()); originalHabit = parseHabitFromArguments(); + getDialog().setTitle(getTitle()); populateForm(); setupReminderController(); @@ -112,7 +112,7 @@ public class EditHabitDialog extends AppCompatDialogFragment protected int getTitle() { - if (originalHabit == null) return R.string.edit_habit; + if (originalHabit != null) return R.string.edit_habit; else return R.string.create_habit; } diff --git a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java index 2539b879d..1796d1a90 100644 --- a/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java +++ b/app/src/main/java/org/isoron/uhabits/activities/habits/list/ListHabitsScreen.java @@ -37,6 +37,7 @@ import org.isoron.uhabits.commands.*; import org.isoron.uhabits.intents.*; import org.isoron.uhabits.io.*; import org.isoron.uhabits.models.*; +import org.isoron.uhabits.preferences.*; import org.isoron.uhabits.utils.*; import java.io.*; @@ -94,6 +95,9 @@ public class ListHabitsScreen extends BaseScreen @NonNull private final ThemeSwitcher themeSwitcher; + @NonNull + private Preferences prefs; + @Inject public ListHabitsScreen(@NonNull BaseActivity activity, @NonNull CommandRunner commandRunner, @@ -104,10 +108,12 @@ public class ListHabitsScreen extends BaseScreen @NonNull ConfirmDeleteDialogFactory confirmDeleteDialogFactory, @NonNull FilePickerDialogFactory filePickerDialogFactory, @NonNull ColorPickerDialogFactory colorPickerFactory, - @NonNull EditHabitDialogFactory editHabitDialogFactory) + @NonNull EditHabitDialogFactory editHabitDialogFactory, + @NonNull Preferences prefs) { super(activity); setRootView(rootView); + this.prefs = prefs; this.colorPickerFactory = colorPickerFactory; this.commandRunner = commandRunner; this.confirmDeleteDialogFactory = confirmDeleteDialogFactory; @@ -173,6 +179,12 @@ public class ListHabitsScreen extends BaseScreen public void showCreateHabitScreen() { + if(!prefs.isNumericalHabitsFeatureEnabled()) + { + showCreateBooleanHabitScreen(); + return; + } + Dialog dialog = new AlertDialog.Builder(activity) .setTitle("Type of habit") .setItems(R.array.habitTypes, (d, which) -> { diff --git a/app/src/main/java/org/isoron/uhabits/preferences/Preferences.java b/app/src/main/java/org/isoron/uhabits/preferences/Preferences.java index eac6b5481..ac84468cf 100644 --- a/app/src/main/java/org/isoron/uhabits/preferences/Preferences.java +++ b/app/src/main/java/org/isoron/uhabits/preferences/Preferences.java @@ -77,6 +77,11 @@ public class Preferences } } + public boolean isNumericalHabitsFeatureEnabled() + { + return prefs.getBoolean("pref_feature_numerical_habits", false); + } + public void setDefaultOrder(HabitList.Order order) { prefs.edit().putString("pref_default_order", order.name()).apply(); diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 799e78ec8..cbea18fef 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -142,6 +142,11 @@ android:key="pref_developer" android:title="Enable developer mode"/> + + \ No newline at end of file