mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
improve content reloading
This commit is contained in:
parent
9f40314b86
commit
7da825219a
4 changed files with 33 additions and 23 deletions
|
|
@ -622,4 +622,6 @@
|
|||
<string name="invitations">Invitations</string>
|
||||
<string name="quest_leader_header" formatted="false">Started by %s</string>
|
||||
<string name="quest_abort_message">Are you sure you want to abort this mission? It will abort it for everyone in your party and all progress will be lost. The quest scroll will be returned to the quest owner.</string>
|
||||
<string name="loading">Loading...</string>
|
||||
<string name="reloading_content">Reloading Content</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -54,4 +54,7 @@ public interface UserRepository extends BaseRepository {
|
|||
|
||||
Observable<List> readNotification(String id);
|
||||
|
||||
Observable<User> changeCustomDayStart(int dayStartTime);
|
||||
|
||||
Observable<User> updateLanguage(User user, String languageCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -220,6 +220,19 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserLocalRepository>
|
|||
return apiClient.readNotification(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<User> changeCustomDayStart(int dayStartTime) {
|
||||
Map<String, Object> updateObject = new HashMap<>();
|
||||
updateObject.put("dayStart", dayStartTime);
|
||||
return apiClient.changeCustomDayStart(updateObject);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<User> updateLanguage(User user, String languageCode) {
|
||||
return updateUser(user, "preferences.language", languageCode)
|
||||
.doOnNext(user1 -> apiClient.setLanguageCode(languageCode));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runCron(List<Task> tasks) {
|
||||
Observable<List<TaskScoringResult>> observable;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.habitrpg.android.habitica.ui.fragments.preferences;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
|
|
@ -13,7 +14,7 @@ import android.support.v7.preference.PreferenceScreen;
|
|||
import com.habitrpg.android.habitica.HabiticaApplication;
|
||||
import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.InventoryRepository;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.LanguageHelper;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
|
|
@ -21,7 +22,6 @@ import com.habitrpg.android.habitica.helpers.SoundManager;
|
|||
import com.habitrpg.android.habitica.helpers.TaskAlarmManager;
|
||||
import com.habitrpg.android.habitica.helpers.notifications.PushNotificationManager;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.Preferences;
|
||||
import com.habitrpg.android.habitica.prefs.TimePreference;
|
||||
import com.habitrpg.android.habitica.ui.activities.ClassSelectionActivity;
|
||||
import com.habitrpg.android.habitica.ui.activities.MainActivity;
|
||||
|
|
@ -38,7 +38,7 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@Inject
|
||||
public ApiClient apiClient;
|
||||
public InventoryRepository inventoryRepository;
|
||||
@Inject
|
||||
public SoundManager soundManager;
|
||||
@Inject
|
||||
|
|
@ -137,7 +137,11 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
}
|
||||
return true;
|
||||
} else if (preference.getKey().equals("reload_content")) {
|
||||
apiClient.getContent().subscribe(contentResult -> {}, RxErrorHandler.handleEmptyError());
|
||||
ProgressDialog dialog = ProgressDialog.show(context, context.getString(R.string.reloading_content), null, true);
|
||||
inventoryRepository.retrieveContent(true).subscribe(contentResult -> dialog.dismiss(), throwable -> {
|
||||
dialog.dismiss();
|
||||
RxErrorHandler.reportError(throwable);
|
||||
});
|
||||
}
|
||||
return super.onPreferenceTreeClick(preference);
|
||||
}
|
||||
|
|
@ -172,12 +176,7 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
String timeval = sharedPreferences.getString("cds_time", "00:00");
|
||||
String[] pieces = timeval.split(":");
|
||||
int hour = Integer.parseInt(pieces[0]);
|
||||
Map<String, Object> updateObject = new HashMap<>();
|
||||
updateObject.put("dayStart", hour);
|
||||
apiClient.changeCustomDayStart(updateObject)
|
||||
.subscribe(user -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
userRepository.changeCustomDayStart(hour).subscribe(user -> {}, throwable -> {});
|
||||
break;
|
||||
case "language": {
|
||||
LanguageHelper languageHelper = new LanguageHelper(sharedPreferences.getString(key, "en"));
|
||||
|
|
@ -189,14 +188,10 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
} else {
|
||||
configuration.setLocale(languageHelper.getLocale());
|
||||
}
|
||||
getActivity().getResources().updateConfiguration(configuration,
|
||||
getActivity().getResources().getDisplayMetrics());
|
||||
userRepository.updateUser(user, "preferences.language", languageHelper.getLanguageCode())
|
||||
.subscribe(habitRPGUser -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.setLanguageCode(languageHelper.getLanguageCode());
|
||||
apiClient.getContent().subscribe(contentResult -> {}, throwable -> {});
|
||||
getActivity().getResources().updateConfiguration(configuration, getActivity().getResources().getDisplayMetrics());
|
||||
userRepository.updateLanguage(user, languageHelper.getLanguageCode())
|
||||
.flatMap(user1 -> inventoryRepository.retrieveContent(true))
|
||||
.subscribe(contentResult -> {}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
|
||||
Intent intent = new Intent(getActivity(), MainActivity.class);
|
||||
|
|
@ -207,22 +202,19 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
this.startActivity(intent);
|
||||
getActivity().finishAffinity();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case "audioTheme": {
|
||||
String newAudioTheme = sharedPreferences.getString(key, "off");
|
||||
userRepository.updateUser(user, "preferences.sound", newAudioTheme)
|
||||
.subscribe(habitRPGUser -> {}, throwable -> {});
|
||||
|
||||
.subscribe(habitRPGUser -> {}, RxErrorHandler.handleEmptyError());
|
||||
soundManager.setSoundTheme(newAudioTheme);
|
||||
|
||||
soundManager.preloadAllFiles();
|
||||
break;
|
||||
}
|
||||
case "dailyDueDefaultView":
|
||||
userRepository.updateUser(user, "preferences.dailyDueDefaultView", sharedPreferences.getBoolean(key, false))
|
||||
.subscribe(habitRPGUser -> {}, throwable -> {});
|
||||
.subscribe(habitRPGUser -> {}, RxErrorHandler.handleEmptyError());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue