mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
better handling for dailyDueDefaultView setting
This commit is contained in:
parent
90900858b3
commit
11c3f2ba2e
8 changed files with 38 additions and 36 deletions
|
|
@ -1,7 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_width="match_parent">
|
android:layout_width="match_parent"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
tools:background="@color/brand">
|
||||||
<android.support.v4.view.ViewPager
|
<android.support.v4.view.ViewPager
|
||||||
android:id="@+id/view_pager"
|
android:id="@+id/view_pager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
@ -45,6 +47,8 @@
|
||||||
android:layout_marginBottom="6dp"
|
android:layout_marginBottom="6dp"
|
||||||
android:background="@color/transparent"
|
android:background="@color/transparent"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:visibility="gone" />
|
android:textSize="16sp"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible"/>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
|
||||||
|
|
@ -210,8 +210,8 @@
|
||||||
<string name="intro_2_subtitle">Progress in the game</string>
|
<string name="intro_2_subtitle">Progress in the game</string>
|
||||||
<string name="intro_2_title">Progress in life</string>
|
<string name="intro_2_title">Progress in life</string>
|
||||||
<string name="intro_2_description">Unlock features in the game by checking off your real life tasks. Earn armor, pets, and more as rewards for meeting your goals.</string>
|
<string name="intro_2_description">Unlock features in the game by checking off your real life tasks. Earn armor, pets, and more as rewards for meeting your goals.</string>
|
||||||
<string name="intro_3_subtitle">Get social</string>
|
<string name="intro_3_subtitle">Fight monsters</string>
|
||||||
<string name="intro_3_title">Fight monsters</string>
|
<string name="intro_3_title">Get social</string>
|
||||||
<string name="intro_3_description">Keep your goals on track with help from your friends. Support each other in life and in battle as you improve together!</string>
|
<string name="intro_3_description">Keep your goals on track with help from your friends. Support each other in life and in battle as you improve together!</string>
|
||||||
<string name="intro_finish_button">Let\'s start!</string>
|
<string name="intro_finish_button">Let\'s start!</string>
|
||||||
<string name="previous_button">Previous</string>
|
<string name="previous_button">Previous</string>
|
||||||
|
|
@ -551,7 +551,7 @@
|
||||||
<string name="avatar_wheelchair">Wheelchair</string>
|
<string name="avatar_wheelchair">Wheelchair</string>
|
||||||
<string name="weak">Weak</string>
|
<string name="weak">Weak</string>
|
||||||
<string name="strong">Strong</string>
|
<string name="strong">Strong</string>
|
||||||
<string name="gray">Gray</string>
|
<string name="gray">Grey</string>
|
||||||
<string name="dated">Dated</string>
|
<string name="dated">Dated</string>
|
||||||
<string name="completed">Completed</string>
|
<string name="completed">Completed</string>
|
||||||
<string name="setuP_group_other">Other</string>
|
<string name="setuP_group_other">Other</string>
|
||||||
|
|
@ -567,4 +567,6 @@
|
||||||
<string name="read_community_guidelines">Please read our Community Guidelines before posting</string>
|
<string name="read_community_guidelines">Please read our Community Guidelines before posting</string>
|
||||||
<string name="maintenance">Maintenance</string>
|
<string name="maintenance">Maintenance</string>
|
||||||
<string name="reload_content">Reload Content</string>
|
<string name="reload_content">Reload Content</string>
|
||||||
|
<string name="dailyDueDefaultView">Set Dailies default to ‘due’ tab</string>
|
||||||
|
<string name="dailyDueDefaultViewDescription">With this option set, the Dailies tasks will default to ‘due’ instead of ‘all’</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,11 @@
|
||||||
android:entryValues="@array/AudioValues"
|
android:entryValues="@array/AudioValues"
|
||||||
android:summary="@string/AudioTheme_summary"
|
android:summary="@string/AudioTheme_summary"
|
||||||
android:order="3"/>
|
android:order="3"/>
|
||||||
|
<CheckBoxPreference android:title="@string/dailyDueDefaultView"
|
||||||
|
android:key="dailyDueDefaultView"
|
||||||
|
android:order="6"
|
||||||
|
android:summary="@string/dailyDueDefaultViewDescription"
|
||||||
|
/>
|
||||||
<Preference android:title="@string/logout"
|
<Preference android:title="@string/logout"
|
||||||
android:key="logout"
|
android:key="logout"
|
||||||
android:summary="@string/logout_description"
|
android:summary="@string/logout_description"
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ public interface UserRepository extends BaseRepository {
|
||||||
|
|
||||||
Observable<HabitRPGUser> getUser(String userID);
|
Observable<HabitRPGUser> getUser(String userID);
|
||||||
Observable<HabitRPGUser> updateUser(HabitRPGUser user, Map<String, Object> updateData);
|
Observable<HabitRPGUser> updateUser(HabitRPGUser user, Map<String, Object> updateData);
|
||||||
|
Observable<HabitRPGUser> updateUser(HabitRPGUser user, String key, Object value);
|
||||||
|
|
||||||
Observable<HabitRPGUser> retrieveUser(Boolean withTasks);
|
Observable<HabitRPGUser> retrieveUser(Boolean withTasks);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,13 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserLocalRepository>
|
||||||
.map(newUser -> mergeUser(user, newUser));
|
.map(newUser -> mergeUser(user, newUser));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Observable<HabitRPGUser> updateUser(HabitRPGUser user, String key, Object value) {
|
||||||
|
Map<String, Object> updateData = new HashMap<>();
|
||||||
|
updateData.put(key, value);
|
||||||
|
return updateUser(user, updateData);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Observable<HabitRPGUser> retrieveUser(Boolean withTasks) {
|
public Observable<HabitRPGUser> retrieveUser(Boolean withTasks) {
|
||||||
return apiClient.retrieveUser(withTasks)
|
return apiClient.retrieveUser(withTasks)
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@ public class TaskFilterHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isTaskFilterActive(String type) {
|
private boolean isTaskFilterActive(String type) {
|
||||||
|
if (activeFilters.get(type) == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (Task.TYPE_TODO.equals(type)) {
|
if (Task.TYPE_TODO.equals(type)) {
|
||||||
return !Task.FILTER_ACTIVE.equals(activeFilters.get(type));
|
return !Task.FILTER_ACTIVE.equals(activeFilters.get(type));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.habitrpg.android.habitica.data.ApiClient;
|
||||||
import com.habitrpg.android.habitica.HabiticaApplication;
|
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||||
import com.habitrpg.android.habitica.R;
|
import com.habitrpg.android.habitica.R;
|
||||||
import com.habitrpg.android.habitica.callbacks.MergeUserCallback;
|
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.events.commands.RefreshUserCommand;
|
||||||
import com.habitrpg.android.habitica.helpers.LanguageHelper;
|
import com.habitrpg.android.habitica.helpers.LanguageHelper;
|
||||||
import com.habitrpg.android.habitica.helpers.SoundManager;
|
import com.habitrpg.android.habitica.helpers.SoundManager;
|
||||||
|
|
@ -45,7 +46,8 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
||||||
public ApiClient apiClient;
|
public ApiClient apiClient;
|
||||||
@Inject
|
@Inject
|
||||||
public SoundManager soundManager;
|
public SoundManager soundManager;
|
||||||
public MainActivity activity;
|
@Inject
|
||||||
|
UserRepository userRepository;
|
||||||
private Context context;
|
private Context context;
|
||||||
private TimePreference timePreference;
|
private TimePreference timePreference;
|
||||||
private PreferenceScreen pushNotificationsPreference;
|
private PreferenceScreen pushNotificationsPreference;
|
||||||
|
|
@ -202,13 +204,8 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
||||||
}
|
}
|
||||||
getActivity().getResources().updateConfiguration(configuration,
|
getActivity().getResources().updateConfiguration(configuration,
|
||||||
getActivity().getResources().getDisplayMetrics());
|
getActivity().getResources().getDisplayMetrics());
|
||||||
|
userRepository.updateUser(user, "preferences.language", languageHelper.getLanguageCode())
|
||||||
Map<String, Object> updateData = new HashMap<>();
|
.subscribe(habitRPGUser -> {}, throwable -> {});
|
||||||
updateData.put("preferences.language", languageHelper.getLanguageCode());
|
|
||||||
apiClient.updateUser(updateData)
|
|
||||||
|
|
||||||
.subscribe(new MergeUserCallback(activity, user), throwable -> {
|
|
||||||
});
|
|
||||||
|
|
||||||
Preferences preferences = user.getPreferences();
|
Preferences preferences = user.getPreferences();
|
||||||
preferences.setLanguage(languageHelper.getLanguageCode());
|
preferences.setLanguage(languageHelper.getLanguageCode());
|
||||||
|
|
@ -231,12 +228,8 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
||||||
|
|
||||||
} else if (key.equals("audioTheme")) {
|
} else if (key.equals("audioTheme")) {
|
||||||
String newAudioTheme = sharedPreferences.getString(key, "off");
|
String newAudioTheme = sharedPreferences.getString(key, "off");
|
||||||
|
userRepository.updateUser(user, "preferences.sound", newAudioTheme)
|
||||||
Map<String, Object> updateData = new HashMap<>();
|
.subscribe(habitRPGUser -> {}, throwable -> {
|
||||||
updateData.put("preferences.sound", newAudioTheme);
|
|
||||||
MergeUserCallback mergeUserCallback = new MergeUserCallback(activity, user);
|
|
||||||
apiClient.updateUser(updateData)
|
|
||||||
.subscribe(mergeUserCallback, throwable -> {
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Preferences preferences = user.getPreferences();
|
Preferences preferences = user.getPreferences();
|
||||||
|
|
@ -245,6 +238,9 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
||||||
soundManager.setSoundTheme(newAudioTheme);
|
soundManager.setSoundTheme(newAudioTheme);
|
||||||
|
|
||||||
soundManager.preloadAllFiles();
|
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) {
|
if (user != null && user.getPreferences() != null) {
|
||||||
TimePreference cdsTimePreference = (TimePreference) findPreference("cds_time");
|
TimePreference cdsTimePreference = (TimePreference) findPreference("cds_time");
|
||||||
cdsTimePreference.setText(user.getPreferences().getDayStart() + ":00");
|
cdsTimePreference.setText(user.getPreferences().getDayStart() + ":00");
|
||||||
|
findPreference("dailyDueDefaultView").setDefaultValue(user.getPreferences().getDailyDueDefaultView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -186,10 +186,6 @@ public class TasksFragment extends BaseMainFragment {
|
||||||
}
|
}
|
||||||
if (getActiveFragment() != null) {
|
if (getActiveFragment() != null) {
|
||||||
getActiveFragment().setActiveFilter(activeTaskFilter);
|
getActiveFragment().setActiveFilter(activeTaskFilter);
|
||||||
if (Task.TYPE_DAILY.equals(getActiveFragment().classType)) {
|
|
||||||
updateDailyDueDefaultSetting(activeTaskFilter);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
taskFilterHelper.setTags(activeTags);
|
taskFilterHelper.setTags(activeTags);
|
||||||
updateFilterIcon();
|
updateFilterIcon();
|
||||||
|
|
@ -198,19 +194,6 @@ public class TasksFragment extends BaseMainFragment {
|
||||||
dialog.show();
|
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<String, Object> data = new HashMap<>();
|
|
||||||
data.put("preferences.dailyDueDefaultView", showDueDefault);
|
|
||||||
command.updateData = data;
|
|
||||||
EventBus.getDefault().post(command);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void refresh() {
|
public void refresh() {
|
||||||
if (getActiveFragment() != null) {
|
if (getActiveFragment() != null) {
|
||||||
getActiveFragment().onRefresh();
|
getActiveFragment().onRefresh();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue