Clear cached avatar

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
tobiasKaminsky 2021-04-07 17:39:09 +02:00
parent 6fb5d3f9bb
commit 43108661e9
No known key found for this signature in database
GPG Key ID: 0E00D4D47D0C5AF7
3 changed files with 20 additions and 8 deletions

View File

@ -245,8 +245,10 @@ public class ProfileController extends BaseController {
@Override @Override
public void onNext(@NotNull GenericOverall genericOverall) { public void onNext(@NotNull GenericOverall genericOverall) {
DisplayUtils.loadAvatarImage(currentUser, DisplayUtils.loadAvatarImage(
getActivity().findViewById(R.id.avatar_image)); currentUser,
getActivity().findViewById(R.id.avatar_image),
true);
} }
@Override @Override
@ -300,7 +302,7 @@ public class ProfileController extends BaseController {
.findViewById(R.id.userinfo_baseurl)) .findViewById(R.id.userinfo_baseurl))
.setText(Uri.parse(currentUser.getBaseUrl()).getHost()); .setText(Uri.parse(currentUser.getBaseUrl()).getHost());
DisplayUtils.loadAvatarImage(currentUser, getActivity().findViewById(R.id.avatar_image)); DisplayUtils.loadAvatarImage(currentUser, getActivity().findViewById(R.id.avatar_image), false);
if (!TextUtils.isEmpty(userInfo.getDisplayName())) { if (!TextUtils.isEmpty(userInfo.getDisplayName())) {
((TextView) getActivity().findViewById(R.id.userinfo_fullName)).setText(userInfo.getDisplayName()); ((TextView) getActivity().findViewById(R.id.userinfo_fullName)).setText(userInfo.getDisplayName());
@ -591,7 +593,7 @@ public class ProfileController extends BaseController {
@Override @Override
public void onNext(@NotNull GenericOverall genericOverall) { public void onNext(@NotNull GenericOverall genericOverall) {
DisplayUtils.loadAvatarImage(currentUser, getActivity().findViewById(R.id.avatar_image)); DisplayUtils.loadAvatarImage(currentUser, getActivity().findViewById(R.id.avatar_image), true);
} }
@Override @Override

View File

@ -562,7 +562,7 @@ public class SettingsController extends BaseController {
displayNameTextView.setText(currentUser.getDisplayName()); displayNameTextView.setText(currentUser.getDisplayName());
} }
DisplayUtils.loadAvatarImage(currentUser, avatarImageView); DisplayUtils.loadAvatarImage(currentUser, avatarImageView, false);
profileQueryDisposable = ncApi.getUserProfile(credentials, profileQueryDisposable = ncApi.getUserProfile(credentials,
ApiUtils.getUrlForUserProfile(currentUser.getBaseUrl())) ApiUtils.getUrlForUserProfile(currentUser.getBaseUrl()))

View File

@ -534,7 +534,7 @@ public class DisplayUtils {
} }
} }
public static void loadAvatarImage(UserEntity user, SimpleDraweeView avatarImageView) { public static void loadAvatarImage(UserEntity user, SimpleDraweeView avatarImageView, boolean deleteCache) {
String avatarId; String avatarId;
if (!TextUtils.isEmpty(user.getUserId())) { if (!TextUtils.isEmpty(user.getUserId())) {
avatarId = user.getUserId(); avatarId = user.getUserId();
@ -542,11 +542,21 @@ public class DisplayUtils {
avatarId = user.getUsername(); avatarId = user.getUsername();
} }
// clear cache
if (deleteCache) {
String avatarString = ApiUtils.getUrlForAvatarWithName(user.getBaseUrl(), avatarId, R.dimen.avatar_size_big);
Uri avatarUri = Uri.parse(avatarString);
ImagePipeline imagePipeline = Fresco.getImagePipeline();
imagePipeline.evictFromMemoryCache(avatarUri);
imagePipeline.evictFromDiskCache(avatarUri);
imagePipeline.evictFromCache(avatarUri);
}
DraweeController draweeController = Fresco.newDraweeControllerBuilder() DraweeController draweeController = Fresco.newDraweeControllerBuilder()
.setOldController(avatarImageView.getController()) .setOldController(avatarImageView.getController())
.setAutoPlayAnimations(true) .setAutoPlayAnimations(true)
.setImageRequest(DisplayUtils.getImageRequestForUrl(ApiUtils.getUrlForAvatarWithName(user.getBaseUrl(), .setImageRequest(DisplayUtils.getImageRequestForUrl(avatarString, null))
avatarId, R.dimen.avatar_size_big), null))
.build(); .build();
avatarImageView.setController(draweeController); avatarImageView.setController(draweeController);
} }