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();