diff options
8 files changed, 71 insertions, 32 deletions
diff --git a/app/build.gradle b/app/build.gradle index 10fc301cc..9b1476805 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { defaultConfig { minSdkVersion 19 targetSdkVersion 29 - versionCode 357 - versionName "2.34.0-beta-1" + versionCode 358 + versionName "2.34.0" multiDexEnabled true renderscriptTargetApi 28 as int renderscriptSupportModeEnabled true diff --git a/app/src/main/assets/changelogs/358.txt b/app/src/main/assets/changelogs/358.txt index 9b56ead47..1d6b959b1 100644 --- a/app/src/main/assets/changelogs/358.txt +++ b/app/src/main/assets/changelogs/358.txt @@ -7,4 +7,5 @@ Changed: Fixed: - Long press to store media download the preview image -- Fix pagination with Nitter timelines
\ No newline at end of file +- Fix pagination with Nitter timelines +- Avatars not displayed for Peertube
\ No newline at end of file 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)); diff --git a/fastlane/metadata/android/en-US/changelogs/357.txt b/fastlane/metadata/android/en-US/changelogs/357.txt new file mode 100644 index 000000000..3b01064b7 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/357.txt @@ -0,0 +1,9 @@ +Changed: +- Improve memory management +- Improve scroll +- One logout entry in the menu (it will remove the account from the app) +- Clear push notifications when visiting notifications tab + +Fixed: +- Long press to store media download the preview image +- Fix pagination with Nitter timelines
\ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/358.txt b/fastlane/metadata/android/en-US/changelogs/358.txt new file mode 100644 index 000000000..1d6b959b1 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/358.txt @@ -0,0 +1,11 @@ +Changed: +- Improve memory management +- Improve scroll +- Poll layouts cleaner +- One logout entry in the menu (it will remove the account from the app) +- Clear push notifications when visiting notifications tab + +Fixed: +- Long press to store media download the preview image +- Fix pagination with Nitter timelines +- Avatars not displayed for Peertube
\ No newline at end of file |