diff options
author | tom79 <tschneider.ac@gmail.com> | 2020-04-10 18:42:34 +0200 |
---|---|---|
committer | tom79 <tschneider.ac@gmail.com> | 2020-04-10 18:42:34 +0200 |
commit | 7b16b000447a4a19324f221f8dfc57171da91cf1 (patch) | |
tree | ee43ee7d72e4509ef89922fb7c5eb1834ac5b9ca /app/src/main/java | |
parent | e981fcb816a5d7d522fbbf5253aab93525c576ae (diff) |
Fix some profile picture issues
Diffstat (limited to 'app/src/main/java')
4 files changed, 47 insertions, 29 deletions
diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index a8db9f2d5..a1baf7657 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -1178,6 +1178,7 @@ public class API { account.setSocial("PEERTUBE"); if (resobj.has("avatar") && !resobj.get("avatar").toString().equals("null")) { account.setAvatar("https://" + instance + resobj.getJSONObject("avatar").get("path")); + account.setAvatar_static("https://" + instance + resobj.getJSONObject("avatar").get("path")); } else account.setAvatar(null); account.setAvatar_static(resobj.get("avatar").toString()); diff --git a/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java b/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java index 20c667497..c82216d2f 100644 --- a/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java +++ b/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java @@ -462,11 +462,12 @@ public class PeertubeAPI { account.setUrl(accountObject.get("url").toString()); if (accountObject.has("avatar") && !accountObject.isNull("avatar")) { account.setAvatar(accountObject.getJSONObject("avatar").get("path").toString()); + account.setAvatar_static(accountObject.getJSONObject("avatar").get("path").toString()); } else account.setAvatar("null"); account.setHeader("null"); account.setHeader_static("null"); - account.setAvatar_static(accountObject.get("avatar").toString()); + } catch (JSONException | ParseException e) { e.printStackTrace(); } diff --git a/app/src/main/java/app/fedilab/android/drawers/PeertubeAdapter.java b/app/src/main/java/app/fedilab/android/drawers/PeertubeAdapter.java index d8ffb6602..19d621394 100644 --- a/app/src/main/java/app/fedilab/android/drawers/PeertubeAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/PeertubeAdapter.java @@ -113,8 +113,10 @@ public class PeertubeAdapter extends RecyclerView.Adapter implements OnListActio Glide.with(holder.peertube_video_image.getContext()) .load("https://" + peertube.getInstance() + peertube.getThumbnailPath()) .into(holder.peertube_video_image); - if (account.getAvatar() != null && !account.getAvatar().equals("null") && !account.getAvatar().startsWith("http")) + if (account.getAvatar() != null && !account.getAvatar().equals("null") && !account.getAvatar().startsWith("http")) { account.setAvatar("https://" + peertube.getInstance() + account.getAvatar()); + account.setAvatar_static(account.getAvatar()); + } Helper.loadGiF(context, account, holder.peertube_profile); diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 4e75bc7b6..f21d7b05e 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -1676,6 +1676,18 @@ public class Helper { return spannableString; } + + public static boolean isValidContextForGlide(final Context context) { + if (context == null) { + return false; + } + if (context instanceof Activity) { + final Activity activity = (Activity) context; + return !activity.isDestroyed() && !activity.isFinishing(); + } + return true; + } + /** * Update the header with the new selected account * @@ -1714,37 +1726,39 @@ public class Helper { if (currrentUserId != null && (!currrentUserId.equals(accountChoice.getId()) || !getLiveInstance(activity).equals(accountChoice.getInstance()))) { icon = new ImageView(activity); ImageView finalIcon = icon; - Glide.with(activity) - .asDrawable() - .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270))) - .listener(new RequestListener<Drawable>() { + if( isValidContextForGlide(activity)) { + Glide.with(activity) + .asDrawable() + .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270))) + .listener(new RequestListener<Drawable>() { - @Override - public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { - return false; - } + @Override + public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { + return false; + } - @Override - public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { - if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) - finalIcon.setImageResource(R.drawable.missing); - else if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE) - finalIcon.setImageResource(R.drawable.missing_peertube); - return false; - } - }) - .load(!disableGif ? accountChoice.getAvatar() : accountChoice.getAvatar_static()) - .into(new CustomTarget<Drawable>() { - @Override - public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) { - finalIcon.setImageDrawable(resource); - } + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) + finalIcon.setImageResource(R.drawable.missing); + else if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE) + finalIcon.setImageResource(R.drawable.missing_peertube); + return false; + } + }) + .load(!disableGif ? accountChoice.getAvatar() : accountChoice.getAvatar_static()) + .into(new CustomTarget<Drawable>() { + @Override + public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) { + finalIcon.setImageDrawable(resource); + } - @Override - public void onLoadCleared(@Nullable Drawable placeholder) { + @Override + public void onLoadCleared(@Nullable Drawable placeholder) { - } - }); + } + }); + } MenuFloating.Builder actionButtonAccBuild = new MenuFloating.Builder(activity); if (theme == THEME_LIGHT) { actionButtonAccBuild.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.circular)); |