Speed-up Nitter

This commit is contained in:
Thomas 2022-09-14 18:07:51 +02:00
parent 8645f6d59b
commit 7e30ba8fb3
6 changed files with 12 additions and 11 deletions

View file

@ -115,7 +115,6 @@ public class Nitter implements Serializable {
account.avatar = nitterAccount.image.url; account.avatar = nitterAccount.image.url;
account.avatar_static = nitterAccount.image.url; account.avatar_static = nitterAccount.image.url;
account.url = nitterAccount.image.link; account.url = nitterAccount.image.link;
status.account = account;
} else { } else {
account.id = feedItem.guid; account.id = feedItem.guid;
account.acct = feedItem.creator.replace("@", ""); account.acct = feedItem.creator.replace("@", "");
@ -124,8 +123,8 @@ public class Nitter implements Serializable {
account.avatar = ""; account.avatar = "";
account.avatar_static = ""; account.avatar_static = "";
account.url = feedItem.link; account.url = feedItem.link;
status.account = account;
} }
status.account = account;
if (feedItem.description != null) { if (feedItem.description != null) {
Pattern imgPattern = Pattern.compile("<img [^>]*src=\"([^\"]+)\"[^>]*>"); Pattern imgPattern = Pattern.compile("<img [^>]*src=\"([^\"]+)\"[^>]*>");

View file

@ -588,6 +588,9 @@ public class Helper {
* @return String * @return String
*/ */
public static String longDateToString(Date date) { public static String longDateToString(Date date) {
if (date == null) {
date = new Date();
}
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, Locale.getDefault()); DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT, Locale.getDefault());
return df.format(date); return df.format(date);
} }

View file

@ -72,7 +72,7 @@ public class ContextAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class);
SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class);
StatusAdapter.StatusViewHolder holder = (StatusAdapter.StatusViewHolder) viewHolder; StatusAdapter.StatusViewHolder holder = (StatusAdapter.StatusViewHolder) viewHolder;
statusManagement(context, statusesVM, searchVM, holder, this, statusList, null, status, Timeline.TimeLineEnum.UNKNOWN, false, true); statusManagement(context, statusesVM, searchVM, holder, this, statusList, status, Timeline.TimeLineEnum.UNKNOWN, false, true);
//Hide/Show specific view //Hide/Show specific view
} }

View file

@ -188,7 +188,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
} }
StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class);
SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class);
statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notificationList, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false, true); statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false, true);
holderStatus.bindingNotification.status.dateShort.setText(Helper.dateDiff(context, notification.created_at)); holderStatus.bindingNotification.status.dateShort.setText(Helper.dateDiff(context, notification.created_at));
holderStatus.bindingNotification.containerTransparent.setAlpha(.3f); holderStatus.bindingNotification.containerTransparent.setAlpha(.3f);
if (getItemViewType(position) == TYPE_MENTION || getItemViewType(position) == TYPE_STATUS || getItemViewType(position) == TYPE_REACTION) { if (getItemViewType(position) == TYPE_MENTION || getItemViewType(position) == TYPE_STATUS || getItemViewType(position) == TYPE_REACTION) {

View file

@ -106,7 +106,6 @@ import app.fedilab.android.activities.ProfileActivity;
import app.fedilab.android.activities.ReportActivity; import app.fedilab.android.activities.ReportActivity;
import app.fedilab.android.activities.StatusInfoActivity; import app.fedilab.android.activities.StatusInfoActivity;
import app.fedilab.android.client.entities.api.Attachment; import app.fedilab.android.client.entities.api.Attachment;
import app.fedilab.android.client.entities.api.Notification;
import app.fedilab.android.client.entities.api.Poll; import app.fedilab.android.client.entities.api.Poll;
import app.fedilab.android.client.entities.api.Reaction; import app.fedilab.android.client.entities.api.Reaction;
import app.fedilab.android.client.entities.api.Status; import app.fedilab.android.client.entities.api.Status;
@ -289,7 +288,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
* @param holder StatusViewHolder * @param holder StatusViewHolder
* @param adapter RecyclerView.Adapter<RecyclerView.ViewHolder> - General adapter that can be for {@link StatusAdapter} or {@link NotificationAdapter} * @param adapter RecyclerView.Adapter<RecyclerView.ViewHolder> - General adapter that can be for {@link StatusAdapter} or {@link NotificationAdapter}
* @param statusList List<Status> * @param statusList List<Status>
* @param notificationList List<Notification>
* @param timelineType Timeline.TimeLineEnum timelineTypeTimeline.TimeLineEnum * @param timelineType Timeline.TimeLineEnum timelineTypeTimeline.TimeLineEnum
* @param status {@link Status} * @param status {@link Status}
*/ */
@ -300,7 +298,6 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
StatusViewHolder holder, StatusViewHolder holder,
RecyclerView.Adapter<RecyclerView.ViewHolder> adapter, RecyclerView.Adapter<RecyclerView.ViewHolder> adapter,
List<Status> statusList, List<Status> statusList,
List<Notification> notificationList,
Status status, Status status,
Timeline.TimeLineEnum timelineType, Timeline.TimeLineEnum timelineType,
boolean minified, boolean canBeFederated) { boolean minified, boolean canBeFederated) {
@ -935,7 +932,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
holder.binding.visibilitySmall.setVisibility(View.GONE); holder.binding.visibilitySmall.setVisibility(View.GONE);
} else { } else {
holder.binding.visibilitySmall.setImageResource(ressource); holder.binding.visibilitySmall.setImageResource(ressource);
if (displayCounters) { if (displayCounters && canBeFederated) {
holder.binding.statusInfo.setVisibility(View.VISIBLE); holder.binding.statusInfo.setVisibility(View.VISIBLE);
holder.binding.dateShort.setVisibility(View.GONE); holder.binding.dateShort.setVisibility(View.GONE);
holder.binding.visibilitySmall.setVisibility(View.GONE); holder.binding.visibilitySmall.setVisibility(View.GONE);
@ -1940,7 +1937,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
StatusViewHolder holder = (StatusViewHolder) viewHolder; StatusViewHolder holder = (StatusViewHolder) viewHolder;
StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class);
SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class);
statusManagement(context, statusesVM, searchVM, holder, this, statusList, null, status, timelineType, minified, canBeFederated); statusManagement(context, statusesVM, searchVM, holder, this, statusList, status, timelineType, minified, canBeFederated);
} 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);

View file

@ -226,8 +226,10 @@ public class TimelinesVM extends AndroidViewModel {
List<Status> statusList = new ArrayList<>(); List<Status> statusList = new ArrayList<>();
if (rssResponse != null && rssResponse.mFeedItems != null) { if (rssResponse != null && rssResponse.mFeedItems != null) {
for (Nitter.FeedItem feedItem : rssResponse.mFeedItems) { for (Nitter.FeedItem feedItem : rssResponse.mFeedItems) {
Status status = Nitter.convert(getApplication(), instance, feedItem); if (feedItem.title.startsWith("RT by")) {
statusList.add(status); Status status = Nitter.convert(getApplication(), instance, feedItem);
statusList.add(status);
}
} }
} }
statuses.statuses = statusList; statuses.statuses = statusList;