1
0
mirror of https://github.com/KokaKiwi/BarInsta synced 2024-11-15 19:27:31 +00:00

proper self-profile handling when offline; close #1328

This commit is contained in:
Austin Huang 2021-06-18 20:00:42 -04:00
parent f340ab3d4c
commit f657f61aa7
No known key found for this signature in database
GPG Key ID: 84C23AA04587A91F
2 changed files with 11 additions and 3 deletions

View File

@ -692,6 +692,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
if (userResource == null) return;
final User user = userResource.data;
if (user == null) return;
username = user.getUsername();
if (TextUtils.isEmpty(username)) {
appStateViewModel.fetchProfileDetails();
return;
}
profileModel = user;
username = profileModel.getUsername();
setUsernameDelayed();
@ -1099,7 +1104,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
}
private void updateAccountInfo() {
if (profileModel == null) return;
if (profileModel == null || TextUtils.isEmpty(profileModel.getUsername())) return;
accountRepository.insertOrUpdateAccount(
profileModel.getPk(),
profileModel.getUsername(),

View File

@ -51,7 +51,7 @@ public class AppStateViewModel extends AndroidViewModel {
return currentUser;
}
private void fetchProfileDetails() {
public void fetchProfileDetails() {
currentUser.postValue(Resource.loading(null));
final long uid = CookieUtils.getUserIdFromCookie(cookie);
if (userRepository == null) {
@ -61,7 +61,10 @@ public class AppStateViewModel extends AndroidViewModel {
userRepository.getUserInfo(uid, CoroutineUtilsKt.getContinuation((user, throwable) -> {
if (throwable != null) {
Log.e(TAG, "onFailure: ", throwable);
currentUser.postValue(Resource.error(throwable.getMessage(), null));
final User backup = currentUser.getValue().data != null ?
currentUser.getValue().data :
new User(uid);
currentUser.postValue(Resource.error(throwable.getMessage(), backup));
return;
}
currentUser.postValue(Resource.success(user));