From fffc5b9eb4679f08bc6e01aaff75de7ca7afb877 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Wed, 25 Aug 2021 20:34:08 +0800 Subject: [PATCH] Fix clicking a subreddit in subreddit suggestions goes to the subreddit page instead of returning the subreddit name in several activities. --- .../activities/SearchActivity.java | 25 +++++++++++++------ app/src/main/res/layout/activity_search.xml | 3 ++- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java index 34d57efc..66369953 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java @@ -41,7 +41,6 @@ import ml.docilealligator.infinityforreddit.adapters.SearchActivityRecyclerViewA import ml.docilealligator.infinityforreddit.adapters.SubredditAutocompleteRecyclerViewAdapter; import ml.docilealligator.infinityforreddit.apis.RedditAPI; import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper; -import ml.docilealligator.infinityforreddit.customviews.LinearLayoutManagerBugFixed; import ml.docilealligator.infinityforreddit.events.SwitchAccountEvent; import ml.docilealligator.infinityforreddit.recentsearchquery.DeleteRecentSearchQuery; import ml.docilealligator.infinityforreddit.recentsearchquery.RecentSearchQuery; @@ -183,11 +182,24 @@ public class SearchActivity extends BaseActivity { subredditAutocompleteRecyclerViewAdapter = new SubredditAutocompleteRecyclerViewAdapter(this, mCustomThemeWrapper, subredditData -> { - Intent intent = new Intent(SearchActivity.this, ViewSubredditDetailActivity.class); - intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY, subredditData.getName()); - startActivity(intent); - finish(); - }); + if (searchOnlySubreddits) { + Intent returnIntent = new Intent(); + if (getIntent().getBooleanExtra(EXTRA_IS_MULTI_SELECTION, false)) { + ArrayList subredditNameList = new ArrayList<>(); + subredditNameList.add(subredditData.getName()); + returnIntent.putStringArrayListExtra(RETURN_EXTRA_SELECTED_SUBREDDIT_NAMES, subredditNameList); + } else { + returnIntent.putExtra(EXTRA_RETURN_SUBREDDIT_NAME, subredditData.getName()); + returnIntent.putExtra(EXTRA_RETURN_SUBREDDIT_ICON_URL, subredditData.getIconUrl()); + } + setResult(Activity.RESULT_OK, returnIntent); + } else { + Intent intent = new Intent(SearchActivity.this, ViewSubredditDetailActivity.class); + intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY, subredditData.getName()); + startActivity(intent); + } + finish(); + }); simpleSearchView.setOnQueryTextListener(new SimpleSearchView.OnQueryTextListener() { @Override @@ -287,7 +299,6 @@ public class SearchActivity extends BaseActivity { }); recyclerView.setVisibility(View.VISIBLE); recyclerView.setNestedScrollingEnabled(false); - recyclerView.setLayoutManager(new LinearLayoutManagerBugFixed(this)); recyclerView.setAdapter(adapter); if (mSharedPreferences.getBoolean(SharedPreferencesUtils.ENABLE_SEARCH_HISTORY, true)) { diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index 7de8bd69..29b5b94f 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -95,7 +95,8 @@ android:id="@+id/recycler_view_search_activity" android:layout_width="match_parent" android:layout_height="wrap_content" - android:visibility="gone" /> + android:visibility="gone" + app:layoutManager=".customviews.LinearLayoutManagerBugFixed" />