Browse Source
proper self-profile handling when offline; close #1328
renovate/org.robolectric-robolectric-4.x
Austin Huang
4 years ago
No known key found for this signature in database
GPG Key ID: 84C23AA04587A91F
2 changed files with
11 additions and
3 deletions
-
app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java
-
app/src/main/java/awais/instagrabber/viewmodels/AppStateViewModel.java
|
|
@ -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(), |
|
|
|
|
|
@ -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)); |
|
|
|