Loading app/src/main/java/app/fedilab/android/mastodon/activities/ReorderTimelinesActivity.java +4 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,8 @@ public class ReorderTimelinesActivity extends BaseBarActivity implements OnStart url = "https://" + instanceName + "/api/v1/timelines/public?local=true"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_instance) { url = "https://" + instanceName + "/api/v1/trends/statuses"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_link_instance) { url = "https://" + instanceName + "/api/v1/trends/links"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.peertube_instance) { url = "https://" + instanceName + "/api/v1/videos/"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) { Loading Loading @@ -253,6 +255,8 @@ public class ReorderTimelinesActivity extends BaseBarActivity implements OnStart instanceType = RemoteInstance.InstanceType.MASTODON; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_instance) { instanceType = RemoteInstance.InstanceType.MASTODON_TRENDING; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_link_instance) { instanceType = RemoteInstance.InstanceType.MASTODON_TRENDING_LINK; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.peertube_instance) { instanceType = RemoteInstance.InstanceType.PEERTUBE; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) { Loading app/src/main/java/app/fedilab/android/mastodon/client/entities/app/RemoteInstance.java +2 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ public class RemoteInstance implements Serializable { MASTODON("MASTODON"), @SerializedName("MASTODON_TRENDING") MASTODON_TRENDING("MASTODON_TRENDING"), @SerializedName("MASTODON_TRENDING_LINK") MASTODON_TRENDING_LINK("MASTODON_TRENDING_LINK"), @SerializedName("PIXELFED") PIXELFED("PIXELFED"), @SerializedName("PEERTUBE") Loading app/src/main/java/app/fedilab/android/mastodon/helper/PinnedTimelineHelper.java +31 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,26 @@ public class PinnedTimelineHelper { new Pinned(activity).insertPinned(pinned); } } //Trend link timeline boolean createDefaultTrendLinkAtTop = true; for (PinnedTimeline pinnedTimeline : pinnedAll.pinnedTimelines) { if (pinnedTimeline.type == Timeline.TimeLineEnum.TREND_LINK) { createDefaultTrendLinkAtTop = false; break; } } if (createDefaultTrendLinkAtTop) { PinnedTimeline pinnedTimelineTrendLink = new PinnedTimeline(); pinnedTimelineTrendLink.type = Timeline.TimeLineEnum.TREND_LINK; pinnedTimelineTrendLink.position = pinnedAll.pinnedTimelines != null ? pinnedAll.pinnedTimelines.size() : 0; pinned.pinnedTimelines.add(pinnedTimelineTrendLink); boolean exist = new Pinned(activity).pinnedExist(pinned); if (exist) { new Pinned(activity).updatePinned(pinned); } else { new Pinned(activity).insertPinned(pinned); } } } catch (DBException e) { e.printStackTrace(); } Loading Loading @@ -416,6 +436,9 @@ public class PinnedTimelineHelper { case MASTODON_TRENDING: tabCustomViewBinding.icon.setImageResource(R.drawable.ic_baseline_trending_up_24); break; case MASTODON_TRENDING_LINK: tabCustomViewBinding.icon.setImageResource(R.drawable.ic_full_link); break; case LEMMY: tabCustomViewBinding.icon.setImageResource(R.drawable.lemmy); break; Loading Loading @@ -468,6 +491,10 @@ public class PinnedTimelineHelper { tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.baseline_moving_24); tab.setContentDescription(R.string.trending); break; case TREND_LINK: tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_full_link); tab.setContentDescription(R.string.links); break; } tab.setCustomView(tabCustomDefaultViewBinding.getRoot()); } Loading Loading @@ -518,6 +545,9 @@ public class PinnedTimelineHelper { case MASTODON_TRENDING: item.setIcon(R.drawable.ic_baseline_trending_up_24); break; case MASTODON_TRENDING_LINK: item.setIcon(R.drawable.ic_full_link); break; case PEERTUBE: item.setIcon(R.drawable.peertube_icon); break; Loading Loading @@ -597,6 +627,7 @@ public class PinnedTimelineHelper { case HOME: case LOCAL: case TREND_MESSAGE: case TREND_LINK: case PUBLIC: defaultClick(activity, pinnedTimelineVisibleList.get(position).type, v, activityMainBinding, finalI); break; Loading app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java +7 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,9 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol case MASTODON_TRENDING: holder.binding.icon.setImageResource(R.drawable.ic_baseline_trending_up_24); break; case MASTODON_TRENDING_LINK: holder.binding.icon.setImageResource(R.drawable.ic_full_link); break; case PIXELFED: holder.binding.icon.setImageResource(R.drawable.pixelfed); break; Loading Loading @@ -165,6 +168,10 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol holder.binding.icon.setImageResource(R.drawable.baseline_moving_24); holder.binding.text.setText(R.string.trending); break; case TREND_LINK: holder.binding.icon.setImageResource(R.drawable.ic_full_link); holder.binding.text.setText(R.string.links); break; } Loading app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonLink.java +13 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ import app.fedilab.android.R; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.mastodon.activities.SearchResultTabActivity; import app.fedilab.android.mastodon.client.entities.api.Link; import app.fedilab.android.mastodon.client.entities.app.PinnedTimeline; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.ui.drawer.LinkAdapter; import app.fedilab.android.mastodon.viewmodel.mastodon.TimelinesVM; Loading @@ -50,6 +52,7 @@ public class FragmentMastodonLink extends Fragment { private Integer offset; private boolean flagLoading; private List<Link> linkList; private String remoteInstance; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Loading @@ -70,6 +73,13 @@ public class FragmentMastodonLink extends Fragment { flagLoading = false; binding.swipeContainer.setRefreshing(false); binding.swipeContainer.setEnabled(false); Bundle args = getArguments(); if (args != null) { PinnedTimeline pinnedTimeline = (PinnedTimeline) args.getSerializable(Helper.ARG_REMOTE_INSTANCE); if (pinnedTimeline != null && pinnedTimeline.remoteInstance != null) { remoteInstance = pinnedTimeline.remoteInstance.host; } } router(); } Loading @@ -78,7 +88,9 @@ public class FragmentMastodonLink extends Fragment { */ private void router() { TimelinesVM timelinesVM = new ViewModelProvider(FragmentMastodonLink.this).get(TimelinesVM.class); timelinesVM.getLinksTrends(BaseMainActivity.currentToken, BaseMainActivity.currentInstance, offset, MastodonHelper.SEARCH_PER_CALL) String token = remoteInstance != null ? null : BaseMainActivity.currentToken; String instance = remoteInstance != null ? remoteInstance : BaseMainActivity.currentInstance; timelinesVM.getLinksTrends(token, instance, offset, MastodonHelper.SEARCH_PER_CALL) .observe(getViewLifecycleOwner(), links -> { if (links != null && offset == 0) { initializeLinkCommonView(links); Loading Loading
app/src/main/java/app/fedilab/android/mastodon/activities/ReorderTimelinesActivity.java +4 −0 Original line number Diff line number Diff line Loading @@ -199,6 +199,8 @@ public class ReorderTimelinesActivity extends BaseBarActivity implements OnStart url = "https://" + instanceName + "/api/v1/timelines/public?local=true"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_instance) { url = "https://" + instanceName + "/api/v1/trends/statuses"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_link_instance) { url = "https://" + instanceName + "/api/v1/trends/links"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.peertube_instance) { url = "https://" + instanceName + "/api/v1/videos/"; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) { Loading Loading @@ -253,6 +255,8 @@ public class ReorderTimelinesActivity extends BaseBarActivity implements OnStart instanceType = RemoteInstance.InstanceType.MASTODON; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_instance) { instanceType = RemoteInstance.InstanceType.MASTODON_TRENDING; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.mastodon_trending_link_instance) { instanceType = RemoteInstance.InstanceType.MASTODON_TRENDING_LINK; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.peertube_instance) { instanceType = RemoteInstance.InstanceType.PEERTUBE; } else if (popupSearchInstanceBinding.setAttachmentGroup.getCheckedRadioButtonId() == R.id.pixelfed_instance) { Loading
app/src/main/java/app/fedilab/android/mastodon/client/entities/app/RemoteInstance.java +2 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ public class RemoteInstance implements Serializable { MASTODON("MASTODON"), @SerializedName("MASTODON_TRENDING") MASTODON_TRENDING("MASTODON_TRENDING"), @SerializedName("MASTODON_TRENDING_LINK") MASTODON_TRENDING_LINK("MASTODON_TRENDING_LINK"), @SerializedName("PIXELFED") PIXELFED("PIXELFED"), @SerializedName("PEERTUBE") Loading
app/src/main/java/app/fedilab/android/mastodon/helper/PinnedTimelineHelper.java +31 −0 Original line number Diff line number Diff line Loading @@ -242,6 +242,26 @@ public class PinnedTimelineHelper { new Pinned(activity).insertPinned(pinned); } } //Trend link timeline boolean createDefaultTrendLinkAtTop = true; for (PinnedTimeline pinnedTimeline : pinnedAll.pinnedTimelines) { if (pinnedTimeline.type == Timeline.TimeLineEnum.TREND_LINK) { createDefaultTrendLinkAtTop = false; break; } } if (createDefaultTrendLinkAtTop) { PinnedTimeline pinnedTimelineTrendLink = new PinnedTimeline(); pinnedTimelineTrendLink.type = Timeline.TimeLineEnum.TREND_LINK; pinnedTimelineTrendLink.position = pinnedAll.pinnedTimelines != null ? pinnedAll.pinnedTimelines.size() : 0; pinned.pinnedTimelines.add(pinnedTimelineTrendLink); boolean exist = new Pinned(activity).pinnedExist(pinned); if (exist) { new Pinned(activity).updatePinned(pinned); } else { new Pinned(activity).insertPinned(pinned); } } } catch (DBException e) { e.printStackTrace(); } Loading Loading @@ -416,6 +436,9 @@ public class PinnedTimelineHelper { case MASTODON_TRENDING: tabCustomViewBinding.icon.setImageResource(R.drawable.ic_baseline_trending_up_24); break; case MASTODON_TRENDING_LINK: tabCustomViewBinding.icon.setImageResource(R.drawable.ic_full_link); break; case LEMMY: tabCustomViewBinding.icon.setImageResource(R.drawable.lemmy); break; Loading Loading @@ -468,6 +491,10 @@ public class PinnedTimelineHelper { tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.baseline_moving_24); tab.setContentDescription(R.string.trending); break; case TREND_LINK: tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_full_link); tab.setContentDescription(R.string.links); break; } tab.setCustomView(tabCustomDefaultViewBinding.getRoot()); } Loading Loading @@ -518,6 +545,9 @@ public class PinnedTimelineHelper { case MASTODON_TRENDING: item.setIcon(R.drawable.ic_baseline_trending_up_24); break; case MASTODON_TRENDING_LINK: item.setIcon(R.drawable.ic_full_link); break; case PEERTUBE: item.setIcon(R.drawable.peertube_icon); break; Loading Loading @@ -597,6 +627,7 @@ public class PinnedTimelineHelper { case HOME: case LOCAL: case TREND_MESSAGE: case TREND_LINK: case PUBLIC: defaultClick(activity, pinnedTimelineVisibleList.get(position).type, v, activityMainBinding, finalI); break; Loading
app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ReorderTabAdapter.java +7 −0 Original line number Diff line number Diff line Loading @@ -92,6 +92,9 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol case MASTODON_TRENDING: holder.binding.icon.setImageResource(R.drawable.ic_baseline_trending_up_24); break; case MASTODON_TRENDING_LINK: holder.binding.icon.setImageResource(R.drawable.ic_full_link); break; case PIXELFED: holder.binding.icon.setImageResource(R.drawable.pixelfed); break; Loading Loading @@ -165,6 +168,10 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol holder.binding.icon.setImageResource(R.drawable.baseline_moving_24); holder.binding.text.setText(R.string.trending); break; case TREND_LINK: holder.binding.icon.setImageResource(R.drawable.ic_full_link); holder.binding.text.setText(R.string.links); break; } Loading
app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonLink.java +13 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ import app.fedilab.android.R; import app.fedilab.android.databinding.FragmentPaginationBinding; import app.fedilab.android.mastodon.activities.SearchResultTabActivity; import app.fedilab.android.mastodon.client.entities.api.Link; import app.fedilab.android.mastodon.client.entities.app.PinnedTimeline; import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.MastodonHelper; import app.fedilab.android.mastodon.ui.drawer.LinkAdapter; import app.fedilab.android.mastodon.viewmodel.mastodon.TimelinesVM; Loading @@ -50,6 +52,7 @@ public class FragmentMastodonLink extends Fragment { private Integer offset; private boolean flagLoading; private List<Link> linkList; private String remoteInstance; public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Loading @@ -70,6 +73,13 @@ public class FragmentMastodonLink extends Fragment { flagLoading = false; binding.swipeContainer.setRefreshing(false); binding.swipeContainer.setEnabled(false); Bundle args = getArguments(); if (args != null) { PinnedTimeline pinnedTimeline = (PinnedTimeline) args.getSerializable(Helper.ARG_REMOTE_INSTANCE); if (pinnedTimeline != null && pinnedTimeline.remoteInstance != null) { remoteInstance = pinnedTimeline.remoteInstance.host; } } router(); } Loading @@ -78,7 +88,9 @@ public class FragmentMastodonLink extends Fragment { */ private void router() { TimelinesVM timelinesVM = new ViewModelProvider(FragmentMastodonLink.this).get(TimelinesVM.class); timelinesVM.getLinksTrends(BaseMainActivity.currentToken, BaseMainActivity.currentInstance, offset, MastodonHelper.SEARCH_PER_CALL) String token = remoteInstance != null ? null : BaseMainActivity.currentToken; String instance = remoteInstance != null ? remoteInstance : BaseMainActivity.currentInstance; timelinesVM.getLinksTrends(token, instance, offset, MastodonHelper.SEARCH_PER_CALL) .observe(getViewLifecycleOwner(), links -> { if (links != null && offset == 0) { initializeLinkCommonView(links); Loading