From 2180da64b77b2cfff31564089c194873caaf36eb Mon Sep 17 00:00:00 2001
From: Thomas <tschneider.ac@gmail.com>
Date: Wed, 7 Sep 2022 17:42:10 +0200
Subject: [PATCH] Fix issue #299 - Crashes with pinned timelines

---
 .../android/helper/PinnedTimelineHelper.java     | 16 +++-------------
 .../ui/pageadapter/FedilabPageAdapter.java       |  2 +-
 2 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java b/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java
index 8753db3d..7d482c22 100644
--- a/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java
+++ b/app/src/main/java/app/fedilab/android/helper/PinnedTimelineHelper.java
@@ -577,9 +577,7 @@ public class PinnedTimelineHelper {
             }
             fragTransaction1.detach(fragmentMastodonTimeline).commit();
             Bundle bundle = new Bundle();
-            bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned);
-            bundle.putString("instanceType", remoteInstance.type.getValue());
-            bundle.putString("timelineId", remoteInstance.id);
+            bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned.pinnedTimelines.get(offSetPosition));
             bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.REMOTE);
             fragmentMastodonTimeline.setArguments(bundle);
             FragmentTransaction fragTransaction2 = activity.getSupportFragmentManager().beginTransaction();
@@ -623,10 +621,7 @@ public class PinnedTimelineHelper {
                     currentFilter[0] = remoteInstance.filteredWith;
                     fragTransaction1.detach(fragmentMastodonTimeline).commit();
                     Bundle bundle = new Bundle();
-                    bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned);
-                    bundle.putString("instanceType", remoteInstance.type.getValue());
-                    bundle.putString("timelineId", remoteInstance.id);
-                    bundle.putString("currentfilter", remoteInstance.filteredWith);
+                    bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned.pinnedTimelines.get(offSetPosition));
                     bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.REMOTE);
                     fragmentMastodonTimeline.setArguments(bundle);
                     FragmentTransaction fragTransaction2 = activity.getSupportFragmentManager().beginTransaction();
@@ -698,12 +693,7 @@ public class PinnedTimelineHelper {
                     return;
                 fragTransaction1.detach(fragmentMastodonTimeline).commit();
                 Bundle bundle = new Bundle();
-                bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned);
-                bundle.putString("instanceType", remoteInstance.type.getValue());
-                bundle.putString("timelineId", remoteInstance.id);
-                if (currentFilter[0] != null) {
-                    bundle.putString("currentfilter", remoteInstance.filteredWith);
-                }
+                bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned.pinnedTimelines.get(offSetPosition));
                 bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.REMOTE);
                 fragmentMastodonTimeline.setArguments(bundle);
                 FragmentTransaction fragTransaction2 = activity.getSupportFragmentManager().beginTransaction();
diff --git a/app/src/main/java/app/fedilab/android/ui/pageadapter/FedilabPageAdapter.java b/app/src/main/java/app/fedilab/android/ui/pageadapter/FedilabPageAdapter.java
index 9904904b..cda3578d 100644
--- a/app/src/main/java/app/fedilab/android/ui/pageadapter/FedilabPageAdapter.java
+++ b/app/src/main/java/app/fedilab/android/ui/pageadapter/FedilabPageAdapter.java
@@ -108,7 +108,7 @@ public class FedilabPageAdapter extends FragmentStatePagerAdapter {
             } else if (pinnedTimeline.type == Timeline.TimeLineEnum.TAG) {
                 bundle.putSerializable(Helper.ARG_TAG_TIMELINE, pinnedTimeline.tagTimeline);
             } else if (pinnedTimeline.type == Timeline.TimeLineEnum.REMOTE) {
-                bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinned);
+                bundle.putSerializable(Helper.ARG_REMOTE_INSTANCE, pinnedTimeline);
             }
 
         }