Some improvements

This commit is contained in:
Thomas 2022-07-10 10:41:07 +02:00
parent ea8f497902
commit a632618a66
4 changed files with 37 additions and 48 deletions

View File

@ -82,7 +82,7 @@ public class ContextActivity extends BaseActivity {
focusedStatus = null; // or other values focusedStatus = null; // or other values
if (b != null) if (b != null)
focusedStatus = (Status) b.getSerializable(Helper.ARG_STATUS); focusedStatus = (Status) b.getSerializable(Helper.ARG_STATUS);
if (focusedStatus == null && currentAccount == null || currentAccount.mastodon_account == null) { if (focusedStatus == null || currentAccount == null || currentAccount.mastodon_account == null) {
finish(); finish();
return; return;
} }

View File

@ -1787,10 +1787,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
holder.timer.cancel(); holder.timer.cancel();
holder.timer = null; holder.timer = null;
} }
if (holder.dateTimer != null) {
holder.dateTimer.cancel();
holder.dateTimer = null;
}
if (status.emojis != null && status.emojis.size() > 0) { if (status.emojis != null && status.emojis.size() > 0) {
holder.timer = new Timer(); holder.timer = new Timer();
holder.timer.scheduleAtFixedRate(new TimerTask() { holder.timer.scheduleAtFixedRate(new TimerTask() {
@ -1803,16 +1799,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
} }
}, 100, 100); }, 100, 100);
} }
holder.dateTimer = new Timer();
holder.dateTimer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = () -> holder.binding.dateShort.setText(Helper.dateDiff(context, status.created_at));
mainHandler.post(myRunnable);
}
}, 100, 10000);
} else if (viewHolder.getItemViewType() == STATUS_ART) { } else if (viewHolder.getItemViewType() == STATUS_ART) {
StatusViewHolder holder = (StatusViewHolder) viewHolder; StatusViewHolder holder = (StatusViewHolder) viewHolder;
MastodonHelper.loadPPMastodon(holder.bindingArt.artPp, status.account); MastodonHelper.loadPPMastodon(holder.bindingArt.artPp, status.account);
@ -1881,9 +1867,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
if (holder instanceof StatusViewHolder && ((StatusViewHolder) holder).timer != null) { if (holder instanceof StatusViewHolder && ((StatusViewHolder) holder).timer != null) {
((StatusViewHolder) holder).timer.cancel(); ((StatusViewHolder) holder).timer.cancel();
} }
if (holder instanceof StatusViewHolder && ((StatusViewHolder) holder).dateTimer != null) {
((StatusViewHolder) holder).dateTimer.cancel();
}
} }
public interface FetchMoreCallBack { public interface FetchMoreCallBack {
@ -1900,7 +1883,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
DrawerStatusNotificationBinding bindingNotification; DrawerStatusNotificationBinding bindingNotification;
DrawerStatusArtBinding bindingArt; DrawerStatusArtBinding bindingArt;
Timer timer; Timer timer;
Timer dateTimer;
StatusViewHolder(DrawerStatusBinding itemView) { StatusViewHolder(DrawerStatusBinding itemView) {
super(itemView.getRoot()); super(itemView.getRoot());

View File

@ -456,6 +456,8 @@ public class FragmentMastodonNotification extends Fragment implements Notificati
} }
int position = 0; int position = 0;
//We loop through messages already in the timeline //We loop through messages already in the timeline
if (this.notificationList != null) {
notificationAdapter.notifyItemRangeChanged(0, this.notificationList.size());
for (Notification notificationsAlreadyPresent : this.notificationList) { for (Notification notificationsAlreadyPresent : this.notificationList) {
//We compare the date of each status and we only add status having a date greater than the another, it is inserted at this position //We compare the date of each status and we only add status having a date greater than the another, it is inserted at this position
//Pinned messages are ignored because their date can be older //Pinned messages are ignored because their date can be older
@ -476,6 +478,7 @@ public class FragmentMastodonNotification extends Fragment implements Notificati
notificationAdapter.notifyItemInserted(position); notificationAdapter.notifyItemInserted(position);
return NOTIFICATION__AT_THE_BOTTOM; return NOTIFICATION__AT_THE_BOTTOM;
} }
}
return position; return position;
} }

View File

@ -499,6 +499,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
return STATUS_PRESENT; return STATUS_PRESENT;
} }
int position = 0; int position = 0;
if (this.statuses != null) {
statusAdapter.notifyItemRangeChanged(0, this.statuses.size());
//We loop through messages already in the timeline //We loop through messages already in the timeline
for (Status statusAlreadyPresent : this.statuses) { for (Status statusAlreadyPresent : this.statuses) {
//We compare the date of each status and we only add status having a date greater than the another, it is inserted at this position //We compare the date of each status and we only add status having a date greater than the another, it is inserted at this position
@ -520,6 +522,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
statusAdapter.notifyItemInserted(position); statusAdapter.notifyItemInserted(position);
return STATUS_AT_THE_BOTTOM; return STATUS_AT_THE_BOTTOM;
} }
}
return position; return position;
} }