From 11c3f2ba2ef58dd0810fcc94218ca68cd39d4502 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Sat, 15 Apr 2017 18:05:50 +0200 Subject: [PATCH] better handling for dailyDueDefaultView setting --- Habitica/res/layout/activity_intro.xml | 8 ++++-- Habitica/res/values/strings.xml | 8 +++--- Habitica/res/xml/preferences_fragment.xml | 5 ++++ .../android/habitica/data/UserRepository.java | 1 + .../implementation/UserRepositoryImpl.java | 7 ++++++ .../habitica/helpers/TaskFilterHelper.java | 3 +++ .../preferences/PreferencesFragment.java | 25 ++++++++----------- .../ui/fragments/tasks/TasksFragment.java | 17 ------------- 8 files changed, 38 insertions(+), 36 deletions(-) diff --git a/Habitica/res/layout/activity_intro.xml b/Habitica/res/layout/activity_intro.xml index f31553375..dfcf91aef 100644 --- a/Habitica/res/layout/activity_intro.xml +++ b/Habitica/res/layout/activity_intro.xml @@ -1,7 +1,9 @@ + android:layout_width="match_parent" + xmlns:tools="http://schemas.android.com/tools" + tools:background="@color/brand"> + android:textSize="16sp" + android:visibility="gone" + tools:visibility="visible"/> diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 46eed704e..5f979b249 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -210,8 +210,8 @@ Progress in the game Progress in life Unlock features in the game by checking off your real life tasks. Earn armor, pets, and more as rewards for meeting your goals. - Get social - Fight monsters + Fight monsters + Get social Keep your goals on track with help from your friends. Support each other in life and in battle as you improve together! Let\'s start! Previous @@ -551,7 +551,7 @@ Wheelchair Weak Strong - Gray + Grey Dated Completed Other @@ -567,4 +567,6 @@ Please read our Community Guidelines before posting Maintenance Reload Content + Set Dailies default to ‘due’ tab + With this option set, the Dailies tasks will default to ‘due’ instead of ‘all’ diff --git a/Habitica/res/xml/preferences_fragment.xml b/Habitica/res/xml/preferences_fragment.xml index c6e879f5d..c6927f287 100644 --- a/Habitica/res/xml/preferences_fragment.xml +++ b/Habitica/res/xml/preferences_fragment.xml @@ -85,6 +85,11 @@ android:entryValues="@array/AudioValues" android:summary="@string/AudioTheme_summary" android:order="3"/> + getUser(String userID); Observable updateUser(HabitRPGUser user, Map updateData); + Observable updateUser(HabitRPGUser user, String key, Object value); Observable retrieveUser(Boolean withTasks); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java index 39e06712e..51c40eed0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.java @@ -31,6 +31,13 @@ public class UserRepositoryImpl extends BaseRepositoryImpl .map(newUser -> mergeUser(user, newUser)); } + @Override + public Observable updateUser(HabitRPGUser user, String key, Object value) { + Map updateData = new HashMap<>(); + updateData.put(key, value); + return updateUser(user, updateData); + } + @Override public Observable retrieveUser(Boolean withTasks) { return apiClient.retrieveUser(withTasks) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.java index a19836e4a..70c73b007 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/TaskFilterHelper.java @@ -30,6 +30,9 @@ public class TaskFilterHelper { } private boolean isTaskFilterActive(String type) { + if (activeFilters.get(type) == null) { + return false; + } if (Task.TYPE_TODO.equals(type)) { return !Task.FILTER_ACTIVE.equals(activeFilters.get(type)); } else { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.java index 826f4f6cf..cde3a63e3 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/preferences/PreferencesFragment.java @@ -5,6 +5,7 @@ import com.habitrpg.android.habitica.data.ApiClient; import com.habitrpg.android.habitica.HabiticaApplication; import com.habitrpg.android.habitica.R; import com.habitrpg.android.habitica.callbacks.MergeUserCallback; +import com.habitrpg.android.habitica.data.UserRepository; import com.habitrpg.android.habitica.events.commands.RefreshUserCommand; import com.habitrpg.android.habitica.helpers.LanguageHelper; import com.habitrpg.android.habitica.helpers.SoundManager; @@ -45,7 +46,8 @@ public class PreferencesFragment extends BasePreferencesFragment implements public ApiClient apiClient; @Inject public SoundManager soundManager; - public MainActivity activity; + @Inject + UserRepository userRepository; private Context context; private TimePreference timePreference; private PreferenceScreen pushNotificationsPreference; @@ -202,13 +204,8 @@ public class PreferencesFragment extends BasePreferencesFragment implements } getActivity().getResources().updateConfiguration(configuration, getActivity().getResources().getDisplayMetrics()); - - Map updateData = new HashMap<>(); - updateData.put("preferences.language", languageHelper.getLanguageCode()); - apiClient.updateUser(updateData) - - .subscribe(new MergeUserCallback(activity, user), throwable -> { - }); + userRepository.updateUser(user, "preferences.language", languageHelper.getLanguageCode()) + .subscribe(habitRPGUser -> {}, throwable -> {}); Preferences preferences = user.getPreferences(); preferences.setLanguage(languageHelper.getLanguageCode()); @@ -231,12 +228,8 @@ public class PreferencesFragment extends BasePreferencesFragment implements } else if (key.equals("audioTheme")) { String newAudioTheme = sharedPreferences.getString(key, "off"); - - Map updateData = new HashMap<>(); - updateData.put("preferences.sound", newAudioTheme); - MergeUserCallback mergeUserCallback = new MergeUserCallback(activity, user); - apiClient.updateUser(updateData) - .subscribe(mergeUserCallback, throwable -> { + userRepository.updateUser(user, "preferences.sound", newAudioTheme) + .subscribe(habitRPGUser -> {}, throwable -> { }); Preferences preferences = user.getPreferences(); @@ -245,6 +238,9 @@ public class PreferencesFragment extends BasePreferencesFragment implements soundManager.setSoundTheme(newAudioTheme); soundManager.preloadAllFiles(); + } else if (key.equals("dailyDueDefaultView")) { + userRepository.updateUser(user, "preferences.dailyDueDefaultView", sharedPreferences.getBoolean(key, false)) + .subscribe(habitRPGUser -> {}, throwable -> {}); } } @@ -288,6 +284,7 @@ public class PreferencesFragment extends BasePreferencesFragment implements if (user != null && user.getPreferences() != null) { TimePreference cdsTimePreference = (TimePreference) findPreference("cds_time"); cdsTimePreference.setText(user.getPreferences().getDayStart() + ":00"); + findPreference("dailyDueDefaultView").setDefaultValue(user.getPreferences().getDailyDueDefaultView()); } } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java index f336d71ec..ccf51d0e1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java @@ -186,10 +186,6 @@ public class TasksFragment extends BaseMainFragment { } if (getActiveFragment() != null) { getActiveFragment().setActiveFilter(activeTaskFilter); - if (Task.TYPE_DAILY.equals(getActiveFragment().classType)) { - updateDailyDueDefaultSetting(activeTaskFilter); - } - } taskFilterHelper.setTags(activeTags); updateFilterIcon(); @@ -198,19 +194,6 @@ public class TasksFragment extends BaseMainFragment { dialog.show(); } - private void updateDailyDueDefaultSetting(String activeTaskFilter) { - Boolean showDueDefault = Task.FILTER_ACTIVE.equals(activeTaskFilter); - if (user != null) { - if (user.getPreferences().getDailyDueDefaultView() != showDueDefault) { - UpdateUserCommand command = new UpdateUserCommand(); - Map data = new HashMap<>(); - data.put("preferences.dailyDueDefaultView", showDueDefault); - command.updateData = data; - EventBus.getDefault().post(command); - } - } - } - public void refresh() { if (getActiveFragment() != null) { getActiveFragment().onRefresh();