summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java')
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java
index e2826ceff..b41cd8136 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java
@@ -124,7 +124,7 @@ public class FragmentMastodonContext extends Fragment {
}
};
private Status focusedStatus;
- private String remote_instance;
+ private String remote_instance, focusedStatusURI;
private Status firstStatus;
private boolean pullToRefresh;
private String user_token, user_instance;
@@ -153,9 +153,11 @@ public class FragmentMastodonContext extends Fragment {
focusedStatus = null;
pullToRefresh = false;
+ focusedStatusURI = null;
if (getArguments() != null) {
focusedStatus = (Status) getArguments().getSerializable(Helper.ARG_STATUS);
remote_instance = getArguments().getString(Helper.ARG_REMOTE_INSTANCE, null);
+ focusedStatusURI = getArguments().getString(Helper.ARG_FOCUSED_STATUS_URI, null);
}
if (remote_instance != null) {
user_instance = remote_instance;
@@ -264,7 +266,22 @@ public class FragmentMastodonContext extends Fragment {
}
binding.recyclerView.addItemDecoration(new DividerDecoration(requireActivity(), statuses));
binding.swipeContainer.setRefreshing(false);
- binding.recyclerView.scrollToPosition(statusPosition);
+ if (focusedStatusURI == null) {
+ binding.recyclerView.scrollToPosition(statusPosition);
+ } else {
+ int position = 0;
+ boolean found = false;
+ for (Status status : statuses) {
+ if (status.uri.compareToIgnoreCase(focusedStatusURI) == 0) {
+ found = true;
+ break;
+ }
+ position++;
+ }
+ if (found) {
+ binding.recyclerView.scrollToPosition(position);
+ }
+ }
}
@Override