From f85e0fc54cec74ed3413e41aa90ed0b421063ec6 Mon Sep 17 00:00:00 2001 From: Austin Huang Date: Thu, 31 Dec 2020 20:20:46 -0500 Subject: [PATCH] close #491 --- .../instagrabber/fragments/HashTagFragment.java | 2 +- .../instagrabber/fragments/LocationFragment.java | 2 +- .../fragments/NotificationsViewerFragment.java | 4 ++-- .../fragments/StoryListViewerFragment.java | 11 +++++++++-- .../instagrabber/fragments/StoryViewerFragment.java | 12 +++++++----- .../instagrabber/fragments/main/FeedFragment.java | 2 +- .../instagrabber/fragments/main/ProfileFragment.java | 4 ++-- .../instagrabber/webservices/StoriesService.java | 3 ++- app/src/main/res/navigation/feed_nav_graph.xml | 4 ++++ app/src/main/res/navigation/hashtag_nav_graph.xml | 4 ++++ app/src/main/res/navigation/location_nav_graph.xml | 4 ++++ .../res/navigation/notification_viewer_nav_graph.xml | 4 ++++ app/src/main/res/navigation/profile_nav_graph.xml | 4 ++++ app/src/main/res/navigation/story_list_nav_graph.xml | 4 ++++ 14 files changed, 49 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java b/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java index 8e30f318..10fc0482 100644 --- a/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/HashTagFragment.java @@ -554,7 +554,7 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe if (!hasStories) return; // show stories final NavDirections action = HashTagFragmentDirections - .actionHashtagFragmentToStoryViewerFragment(-1, null, true, false, hashtagModel.getName(), hashtagModel.getName(), false); + .actionHashtagFragmentToStoryViewerFragment(-1, null, true, false, hashtagModel.getName(), hashtagModel.getName(), false, false); NavHostFragment.findNavController(this).navigate(action); }); } diff --git a/app/src/main/java/awais/instagrabber/fragments/LocationFragment.java b/app/src/main/java/awais/instagrabber/fragments/LocationFragment.java index 3a0007dc..c48d4939 100644 --- a/app/src/main/java/awais/instagrabber/fragments/LocationFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/LocationFragment.java @@ -523,7 +523,7 @@ public class LocationFragment extends Fragment implements SwipeRefreshLayout.OnR if (hasStories) { // show stories final NavDirections action = LocationFragmentDirections - .actionLocationFragmentToStoryViewerFragment(-1, null, false, true, locationId, locationModel.getName(), false); + .actionLocationFragmentToStoryViewerFragment(-1, null, false, true, locationId, locationModel.getName(), false, false); NavHostFragment.findNavController(this).navigate(action); } }); diff --git a/app/src/main/java/awais/instagrabber/fragments/NotificationsViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/NotificationsViewerFragment.java index 34a2ba39..34559f0e 100644 --- a/app/src/main/java/awais/instagrabber/fragments/NotificationsViewerFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/NotificationsViewerFragment.java @@ -77,7 +77,7 @@ public final class NotificationsViewerFragment extends Fragment implements Swipe public void onPreviewClick(final NotificationModel model) { if (model.getType() == NotificationType.RESPONDED_STORY) { final NavDirections action = NotificationsViewerFragmentDirections.actionNotificationsViewerFragmentToStoryViewerFragment( - -1, null, false, false, model.getPostId(), model.getUsername(), false); + -1, null, false, false, model.getPostId(), model.getUsername(), false, true); NavHostFragment.findNavController(NotificationsViewerFragment.this).navigate(action); } else { @@ -155,7 +155,7 @@ public final class NotificationsViewerFragment extends Fragment implements Swipe } else if (model.getType() == NotificationType.RESPONDED_STORY) { final NavDirections action = NotificationsViewerFragmentDirections.actionNotificationsViewerFragmentToStoryViewerFragment( - -1, null, false, false, model.getPostId(), model.getUsername(), false); + -1, null, false, false, model.getPostId(), model.getUsername(), false, true); NavHostFragment.findNavController(NotificationsViewerFragment.this).navigate(action); return; } diff --git a/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java index a082938b..dd851198 100644 --- a/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/StoryListViewerFragment.java @@ -63,7 +63,7 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr @Override public void onFeedStoryClick(final FeedStoryModel model, final int position) { if (model == null) return; - final NavDirections action = StoryListViewerFragmentDirections.actionStoryListFragmentToStoryViewerFragment(position, null, false, false, null, null, false); + final NavDirections action = StoryListViewerFragmentDirections.actionStoryListFragmentToStoryViewerFragment(position, null, false, false, null, null, false, false); NavHostFragment.findNavController(StoryListViewerFragment.this).navigate(action); } @@ -78,7 +78,7 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr public void onHighlightClick(final HighlightModel model, final int position) { if (model == null) return; final NavDirections action = StoryListViewerFragmentDirections.actionStoryListFragmentToStoryViewerFragment( - position, getString(R.string.action_archive), false, false, null, null, true); + position, getString(R.string.action_archive), false, false, null, null, true, false); NavHostFragment.findNavController(StoryListViewerFragment.this).navigate(action); } @@ -138,6 +138,13 @@ public final class StoryListViewerFragment extends Fragment implements SwipeRefr shouldRefresh = false; } + @Override + public void onResume() { + super.onResume(); + final ActionBar actionBar = fragmentActivity.getSupportActionBar(); + if (actionBar != null) actionBar.setTitle(type == "feed" ? R.string.feed_stories : R.string.action_archive); + } + @Override public void onDestroy() { if (archivesViewModel != null) archivesViewModel.getList().postValue(null); diff --git a/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java b/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java index 900537c8..df9f8744 100644 --- a/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/StoryViewerFragment.java @@ -133,14 +133,13 @@ public class StoryViewerFragment extends Fragment { private SimpleExoPlayer player; private boolean isHashtag, isLoc; private String highlight; - private boolean fetching = false, sticking = false; + private boolean fetching = false, sticking = false, shouldRefresh = true; private int currentFeedStoryIndex; private double sliderValue; private StoriesViewModel storiesViewModel; - private boolean shouldRefresh = true; private StoryViewerFragmentArgs fragmentArgs; private ViewModel viewModel; - private boolean isHighlight, isArchive; + private boolean isHighlight, isArchive, isNotification; private final String cookie = settingsHelper.getString(Constants.COOKIE); @@ -258,6 +257,7 @@ public class StoryViewerFragment extends Fragment { highlight = fragmentArgs.getHighlight(); isHighlight = !TextUtils.isEmpty(highlight); isArchive = fragmentArgs.getIsArchive(); + isNotification = fragmentArgs.getIsNotification(); if (currentFeedStoryIndex >= 0) { viewModel = isHighlight ? isArchive @@ -693,7 +693,7 @@ public class StoryViewerFragment extends Fragment { } storiesViewModel.getList().setValue(Collections.emptyList()); if (currentStoryMediaId == null) return; - else if (currentFeedStoryIndex == -1) { + else if (isNotification) { storiesService.fetch(currentStoryMediaId, new ServiceCallback() { @Override public void onSuccess(final StoryModel storyModel) { @@ -728,7 +728,9 @@ public class StoryViewerFragment extends Fragment { binding.storiesList.setVisibility(View.GONE); return; } - binding.storiesList.setVisibility(View.VISIBLE); + binding.storiesList.setVisibility((storyModels.size() == 1 && currentFeedStoryIndex == -1) ? View.GONE : View.VISIBLE); + binding.btnBackward.setVisibility(currentFeedStoryIndex == -1 ? View.GONE : View.VISIBLE); + binding.btnForward.setVisibility(currentFeedStoryIndex == -1 ? View.GONE : View.VISIBLE); storiesViewModel.getList().setValue(storyModels); currentStory = storyModels.get(0); refreshStory(); diff --git a/app/src/main/java/awais/instagrabber/fragments/main/FeedFragment.java b/app/src/main/java/awais/instagrabber/fragments/main/FeedFragment.java index 05c81b57..832977c8 100644 --- a/app/src/main/java/awais/instagrabber/fragments/main/FeedFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/main/FeedFragment.java @@ -357,7 +357,7 @@ public class FeedFragment extends Fragment implements SwipeRefreshLayout.OnRefre new FeedStoriesAdapter.OnFeedStoryClickListener() { @Override public void onFeedStoryClick(FeedStoryModel model, int position) { - final NavDirections action = FeedFragmentDirections.actionFeedFragmentToStoryViewerFragment(position, null, false, false, null, null, false); + final NavDirections action = FeedFragmentDirections.actionFeedFragmentToStoryViewerFragment(position, null, false, false, null, null, false, false); NavHostFragment.findNavController(FeedFragment.this).navigate(action); } diff --git a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java index 834e9efd..d5ab821d 100644 --- a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java @@ -1008,7 +1008,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe if (which == 1) { // show stories final NavDirections action = ProfileFragmentDirections - .actionProfileFragmentToStoryViewerFragment(-1, null, false, false, profileModel.getId(), username, false); + .actionProfileFragmentToStoryViewerFragment(-1, null, false, false, profileModel.getId(), username, false, false); NavHostFragment.findNavController(this).navigate(action); return; } @@ -1069,7 +1069,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe highlightsViewModel = new ViewModelProvider(fragmentActivity).get(HighlightsViewModel.class); highlightsAdapter = new HighlightsAdapter((model, position) -> { final NavDirections action = ProfileFragmentDirections - .actionProfileFragmentToStoryViewerFragment(position, model.getTitle(), false, false, null, null, false); + .actionProfileFragmentToStoryViewerFragment(position, model.getTitle(), false, false, null, null, false, false); NavHostFragment.findNavController(this).navigate(action); }); final Context context = getContext(); diff --git a/app/src/main/java/awais/instagrabber/webservices/StoriesService.java b/app/src/main/java/awais/instagrabber/webservices/StoriesService.java index 7d8fe4ce..7ea3b5c9 100644 --- a/app/src/main/java/awais/instagrabber/webservices/StoriesService.java +++ b/app/src/main/java/awais/instagrabber/webservices/StoriesService.java @@ -217,7 +217,7 @@ public class StoriesService extends BaseService { null, highlightNode.getString(Constants.EXTRAS_ID), highlightNode.getJSONObject("cover_image_version").getString("url"), - highlightNode.getLong("timestamp"), + highlightNode.getLong("latest_reel_media"), highlightNode.getInt("media_count") )); } @@ -246,6 +246,7 @@ public class StoriesService extends BaseService { final boolean highlight, final ServiceCallback> callback) { final String url = buildUrl(id, isLoc, isHashtag, highlight); + Log.d("austin_debug", url); final Call userStoryCall = repository.getUserStory(Constants.I_USER_AGENT, url); userStoryCall.enqueue(new Callback() { @Override diff --git a/app/src/main/res/navigation/feed_nav_graph.xml b/app/src/main/res/navigation/feed_nav_graph.xml index c086439f..1c2d8b62 100644 --- a/app/src/main/res/navigation/feed_nav_graph.xml +++ b/app/src/main/res/navigation/feed_nav_graph.xml @@ -134,5 +134,9 @@ android:name="isArchive" app:argType="boolean" app:nullable="false" /> + \ No newline at end of file diff --git a/app/src/main/res/navigation/hashtag_nav_graph.xml b/app/src/main/res/navigation/hashtag_nav_graph.xml index 633d0cd0..8af163c2 100644 --- a/app/src/main/res/navigation/hashtag_nav_graph.xml +++ b/app/src/main/res/navigation/hashtag_nav_graph.xml @@ -101,6 +101,10 @@ android:name="isArchive" app:argType="boolean" app:nullable="false" /> + + \ No newline at end of file diff --git a/app/src/main/res/navigation/notification_viewer_nav_graph.xml b/app/src/main/res/navigation/notification_viewer_nav_graph.xml index 9f25e79e..4dcc184d 100644 --- a/app/src/main/res/navigation/notification_viewer_nav_graph.xml +++ b/app/src/main/res/navigation/notification_viewer_nav_graph.xml @@ -93,5 +93,9 @@ android:name="isArchive" app:argType="boolean" app:nullable="false" /> + \ No newline at end of file diff --git a/app/src/main/res/navigation/profile_nav_graph.xml b/app/src/main/res/navigation/profile_nav_graph.xml index 108fd442..bf78ac76 100644 --- a/app/src/main/res/navigation/profile_nav_graph.xml +++ b/app/src/main/res/navigation/profile_nav_graph.xml @@ -183,6 +183,10 @@ android:name="isArchive" app:argType="boolean" app:nullable="false" /> + + \ No newline at end of file