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

View File

@ -51,7 +51,7 @@ public class AppStateViewModel extends AndroidViewModel {
return currentUser; return currentUser;
} }
private void fetchProfileDetails() { public void fetchProfileDetails() {
currentUser.postValue(Resource.loading(null)); currentUser.postValue(Resource.loading(null));
final long uid = CookieUtils.getUserIdFromCookie(cookie); final long uid = CookieUtils.getUserIdFromCookie(cookie);
if (userRepository == null) { if (userRepository == null) {
@ -61,7 +61,10 @@ public class AppStateViewModel extends AndroidViewModel {
userRepository.getUserInfo(uid, CoroutineUtilsKt.getContinuation((user, throwable) -> { userRepository.getUserInfo(uid, CoroutineUtilsKt.getContinuation((user, throwable) -> {
if (throwable != null) { if (throwable != null) {
Log.e(TAG, "onFailure: ", throwable); 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; return;
} }
currentUser.postValue(Resource.success(user)); currentUser.postValue(Resource.success(user));