Loading app/src/main/java/app/fedilab/android/client/entities/nitter/Nitter.java +3 −3 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ public class Nitter implements Serializable { public static Status convert(Context context, String instance, FeedItem feedItem) { Status status = new Status(); status.id = feedItem.pubDate; status.content = feedItem.title; status.content = feedItem.description; status.text = feedItem.title; status.visibility = "public"; status.created_at = Helper.stringToDateWithFormat(context, feedItem.pubDate, "EEE, dd MMM yyyy HH:mm:ss zzz"); Loading @@ -103,8 +103,8 @@ public class Nitter implements Serializable { app.fedilab.android.client.entities.api.Account account = new app.fedilab.android.client.entities.api.Account(); String[] names = nitterAccount.image.title.split("/"); account.id = feedItem.guid; account.acct = names[1]; account.username = names[1]; account.acct = names[1].replace("@", ""); account.username = names[1].replace("@", ""); account.display_name = names[0]; account.avatar = nitterAccount.image.url; account.avatar_static = nitterAccount.image.url; Loading app/src/main/java/app/fedilab/android/helper/Helper.java +2 −1 Original line number Diff line number Diff line Loading @@ -650,8 +650,9 @@ public class Helper { } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (!url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") && !url.toLowerCase().startsWith("gemini://")) if (url != null && !url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") && !url.toLowerCase().startsWith("gemini://")) { url = "http://" + url; } intent.setData(Uri.parse(url)); try { context.startActivity(intent); Loading app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +35 −0 Original line number Diff line number Diff line Loading @@ -1007,6 +1007,41 @@ public class SpannableHelper { return statuses; } public static List<Status> convertNitterStatus(Context context, List<Status> statuses) { if (statuses != null) { for (Status status : statuses) { convertNitterStatus(context, status); } } return statuses; } public static Status convertNitterStatus(Context context, Status status) { if (status != null) { status.span_content = SpannableHelper.convertNitter(context, status.content); } return status; } /** * Convert HTML content to text. Also, it handles click on link and transform emoji * This needs to be run asynchronously * * @param context {@link Context} * @param text String - text to convert, it can be content, spoiler, poll items, etc. * @return Spannable string */ private static Spannable convertNitter(@NonNull Context context, String text) { SpannableString initialContent; if (text == null) { return null; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) initialContent = new SpannableString(Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY)); else initialContent = new SpannableString(Html.fromHtml(text)); return initialContent; } public static List<Announcement> convertAnnouncement(Context context, List<Announcement> announcements) { if (announcements != null) { Loading app/src/main/java/app/fedilab/android/ui/drawer/ContextAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ public class ContextAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); StatusAdapter.StatusViewHolder holder = (StatusAdapter.StatusViewHolder) viewHolder; statusManagement(context, statusesVM, searchVM, holder, this, statusList, null, status, Timeline.TimeLineEnum.UNKNOWN, false); statusManagement(context, statusesVM, searchVM, holder, this, statusList, null, status, Timeline.TimeLineEnum.UNKNOWN, false, true); //Hide/Show specific view } Loading app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH } StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notificationList, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false); statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notificationList, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false, true); holderStatus.bindingNotification.status.dateShort.setText(Helper.dateDiff(context, notification.created_at)); holderStatus.bindingNotification.containerTransparent.setAlpha(.3f); if (getItemViewType(position) == TYPE_MENTION || getItemViewType(position) == TYPE_STATUS) { Loading Loading
app/src/main/java/app/fedilab/android/client/entities/nitter/Nitter.java +3 −3 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ public class Nitter implements Serializable { public static Status convert(Context context, String instance, FeedItem feedItem) { Status status = new Status(); status.id = feedItem.pubDate; status.content = feedItem.title; status.content = feedItem.description; status.text = feedItem.title; status.visibility = "public"; status.created_at = Helper.stringToDateWithFormat(context, feedItem.pubDate, "EEE, dd MMM yyyy HH:mm:ss zzz"); Loading @@ -103,8 +103,8 @@ public class Nitter implements Serializable { app.fedilab.android.client.entities.api.Account account = new app.fedilab.android.client.entities.api.Account(); String[] names = nitterAccount.image.title.split("/"); account.id = feedItem.guid; account.acct = names[1]; account.username = names[1]; account.acct = names[1].replace("@", ""); account.username = names[1].replace("@", ""); account.display_name = names[0]; account.avatar = nitterAccount.image.url; account.avatar_static = nitterAccount.image.url; Loading
app/src/main/java/app/fedilab/android/helper/Helper.java +2 −1 Original line number Diff line number Diff line Loading @@ -650,8 +650,9 @@ public class Helper { } else { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (!url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") && !url.toLowerCase().startsWith("gemini://")) if (url != null && !url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") && !url.toLowerCase().startsWith("gemini://")) { url = "http://" + url; } intent.setData(Uri.parse(url)); try { context.startActivity(intent); Loading
app/src/main/java/app/fedilab/android/helper/SpannableHelper.java +35 −0 Original line number Diff line number Diff line Loading @@ -1007,6 +1007,41 @@ public class SpannableHelper { return statuses; } public static List<Status> convertNitterStatus(Context context, List<Status> statuses) { if (statuses != null) { for (Status status : statuses) { convertNitterStatus(context, status); } } return statuses; } public static Status convertNitterStatus(Context context, Status status) { if (status != null) { status.span_content = SpannableHelper.convertNitter(context, status.content); } return status; } /** * Convert HTML content to text. Also, it handles click on link and transform emoji * This needs to be run asynchronously * * @param context {@link Context} * @param text String - text to convert, it can be content, spoiler, poll items, etc. * @return Spannable string */ private static Spannable convertNitter(@NonNull Context context, String text) { SpannableString initialContent; if (text == null) { return null; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) initialContent = new SpannableString(Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY)); else initialContent = new SpannableString(Html.fromHtml(text)); return initialContent; } public static List<Announcement> convertAnnouncement(Context context, List<Announcement> announcements) { if (announcements != null) { Loading
app/src/main/java/app/fedilab/android/ui/drawer/ContextAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ public class ContextAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); StatusAdapter.StatusViewHolder holder = (StatusAdapter.StatusViewHolder) viewHolder; statusManagement(context, statusesVM, searchVM, holder, this, statusList, null, status, Timeline.TimeLineEnum.UNKNOWN, false); statusManagement(context, statusesVM, searchVM, holder, this, statusList, null, status, Timeline.TimeLineEnum.UNKNOWN, false, true); //Hide/Show specific view } Loading
app/src/main/java/app/fedilab/android/ui/drawer/NotificationAdapter.java +1 −1 Original line number Diff line number Diff line Loading @@ -169,7 +169,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH } StatusesVM statusesVM = new ViewModelProvider((ViewModelStoreOwner) context).get(StatusesVM.class); SearchVM searchVM = new ViewModelProvider((ViewModelStoreOwner) context).get(SearchVM.class); statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notificationList, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false); statusManagement(context, statusesVM, searchVM, holderStatus, this, null, notificationList, notification.status, Timeline.TimeLineEnum.NOTIFICATION, false, true); holderStatus.bindingNotification.status.dateShort.setText(Helper.dateDiff(context, notification.created_at)); holderStatus.bindingNotification.containerTransparent.setAlpha(.3f); if (getItemViewType(position) == TYPE_MENTION || getItemViewType(position) == TYPE_STATUS) { Loading