From d0cb35e01e4f046a372c935878383d00ccfe0a3c Mon Sep 17 00:00:00 2001 From: tom79 Date: Sun, 18 Aug 2019 19:04:16 +0200 Subject: [PATCH] Change timer task --- .../drawers/NotificationsListAdapter.java | 39 +++++++++-------- .../android/drawers/StatusListAdapter.java | 43 +++++++++++-------- .../fragments/DisplayStatusFragment.java | 18 +++----- 3 files changed, 50 insertions(+), 50 deletions(-) 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 a3d481519..25ee1dbea 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -109,7 +109,6 @@ import app.fedilab.android.interfaces.OnRetrieveEmojiInterface; import static android.content.Context.MODE_PRIVATE; import static app.fedilab.android.activities.BaseMainActivity.social; -import static app.fedilab.android.drawers.StatusListAdapter.tmr; /** @@ -155,22 +154,6 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On }; private Handler mHandler = new Handler(); - private void startUpdateTimer() { - - final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); - boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false); - if( !disableAnimatedEmoji ){ - if( tmr == null){ - tmr = new Timer(); - } - tmr.schedule(new TimerTask() { - @Override - public void run() { - mHandler.post(updateAnimatedEmoji); - } - }, 0, 130); - } - } public NotificationsListAdapter(boolean isOnWifi, int behaviorWithAttachments, List notifications){ this.notifications = notifications; @@ -208,11 +191,11 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On holder = (NotificationsListAdapter.ViewHolder) viewHolder; context = holder.status_document_container.getContext(); - startUpdateTimer(); + synchronized (lock) { lstHolders.add(holder); } - + holder.startUpdateTimer(); final Notification notification = notifications.get(position); final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); @@ -1495,6 +1478,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On TextView number_votes, remaining_time; Button submit_vote, refresh_poll; + Timer tmr; public View getView(){ return itemView; } @@ -1555,6 +1539,23 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On notification_status_content.invalidate(); notification_account_username.invalidate(); } + + void startUpdateTimer() { + + final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); + boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false); + if( !disableAnimatedEmoji ){ + if( tmr == null){ + tmr = new Timer(); + } + tmr.schedule(new TimerTask() { + @Override + public void run() { + mHandler.post(updateAnimatedEmoji); + } + }, 0, 130); + } + } } } \ No newline at end of file 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 b78dc35b4..d6d362cc1 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -219,7 +219,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct private Status tootReply; private long currentToId = -1; private RecyclerView mRecyclerView; - static Timer tmr; + private List lstHolders; private final Object lock = new Object(); @@ -259,23 +259,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct mRecyclerView = null; } - private void startUpdateTimer() { - - final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); - boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false); - if( !disableAnimatedEmoji ){ - if( tmr == null){ - tmr = new Timer(); - } - tmr.schedule(new TimerTask() { - @Override - public void run() { - mHandler.post(updateAnimatedEmoji); - } - }, 0, 130); - } - } - public StatusListAdapter(RetrieveFeedsAsyncTask.Type type, String targetedId, boolean isOnWifi, List statuses){ super(); this.statuses = statuses; @@ -710,6 +693,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct ImageView quick_reply_emoji; Button quick_reply_button; ImageView quick_reply_privacy; + Timer tmr; public View getView(){ return itemView; @@ -837,6 +821,25 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct } status_content.invalidate(); } + + + private void startUpdateTimer() { + + final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); + boolean disableAnimatedEmoji = sharedpreferences.getBoolean(Helper.SET_DISABLE_ANIMATED_EMOJI, false); + if( !disableAnimatedEmoji ){ + if( tmr == null){ + tmr = new Timer(); + } + tmr.schedule(new TimerTask() { + @Override + public void run() { + mHandler.post(updateAnimatedEmoji); + } + }, 0, 130); + } + } + } public Status getItem(int position){ @@ -867,7 +870,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct context = parent.getContext(); layoutInflater = LayoutInflater.from(this.context); - startUpdateTimer(); if( viewType == DISPLAYED_STATUS) return new ViewHolder(layoutInflater.inflate(R.layout.drawer_status, parent, false)); else if(viewType == COMPACT_STATUS) @@ -893,6 +895,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct synchronized (lock) { lstHolders.add(holder); } + + + holder.startUpdateTimer(); final Status status = statuses.get(i); if( status == null) return; diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java index 9f1cd4854..118ea8dba 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java @@ -847,18 +847,12 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn */ public void refreshFilter(){ - switch (instanceType) { - case "MASTODON": - case "MISSKEY": - case "GNU": - statusListAdapter.notifyDataSetChanged(); - break; - case "PIXELFED": - pixelfedListAdapter.notifyDataSetChanged(); - break; - case "ART": - artListAdapter.notifyDataSetChanged(); - break; + if( statusListAdapter != null) { + statusListAdapter.notifyDataSetChanged(); + }else if( pixelfedListAdapter != null) { + pixelfedListAdapter.notifyDataSetChanged(); + }else if( artListAdapter != null){ + artListAdapter.notifyDataSetChanged(); } }