From c31067093613d1367e442b29920216d76e11572d Mon Sep 17 00:00:00 2001 From: tom79 Date: Fri, 26 Jul 2019 11:36:08 +0200 Subject: [PATCH] Some fixes --- .../android/client/Entities/Notification.java | 8 ++++++++ .../drawers/NotificationsListAdapter.java | 20 +++++++++++++++---- .../android/drawers/StatusListAdapter.java | 19 +++++++++++------- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java index 9c39aa431..ea84905e3 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java @@ -52,6 +52,7 @@ public class Notification implements Parcelable { private Date created_at; private Account account; private Status status; + private boolean notificationAnimated = false; protected Notification(Parcel in) { id = in.readString(); @@ -238,4 +239,11 @@ public class Notification implements Parcelable { } } + public boolean isNotificationAnimated() { + return notificationAnimated; + } + + public void setNotificationAnimated(boolean notificationAnimated) { + this.notificationAnimated = notificationAnimated; + } } diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java index 5737ec5f4..2240566a6 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -62,6 +62,8 @@ import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Timer; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; @@ -374,14 +376,24 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On holder.status_document_container.setVisibility(View.GONE); else holder.status_document_container.setVisibility(View.VISIBLE); - if( !status.isStatusAnimated()) { - status.setStatusAnimated(true); - Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() { + if( !notification.isNotificationAnimated() && status.getEmojis().size() > 0) { + notification.setNotificationAnimated(true); + try{ + Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + holder.notification_status_content.invalidate(); + } + }, 0, 130, TimeUnit.MILLISECONDS); + }catch (Exception ignored){} + + + /*new Timer().scheduleAtFixedRate(new TimerTask() { @Override public void run() { holder.notification_status_content.invalidate(); } - }, 0, 100, TimeUnit.MILLISECONDS); + }, 0, 500);*/ } if( !status.isClickable()) Status.transform(context, status); diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java index dcde40d91..2147bd55f 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -105,6 +105,8 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.Iterator; import java.util.List; +import java.util.Timer; +import java.util.TimerTask; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; @@ -1173,14 +1175,17 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.status_toot_date.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12 * textSizePercent / 100); holder.status_content_translated.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14 * textSizePercent / 100); } - if( !status.isStatusAnimated()) { + if( !status.isStatusAnimated() && status.getEmojis().size() > 0 ) { status.setStatusAnimated(true); - Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - holder.status_content.invalidate(); - } - }, 0, 100, TimeUnit.MILLISECONDS); + try{ + Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + holder.status_content.invalidate(); + } + }, 0, 130, TimeUnit.MILLISECONDS); + }catch (Exception ignored){} + } holder.status_spoiler.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14 * textSizePercent / 100);