Skip to content

Commit 4c40d64

Browse files
Pass data back to the original SearchActivity after selecting a subreddit or user in SearchResultActivity.
1 parent 6fd0b83 commit 4c40d64

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ public class SearchActivity extends BaseActivity {
116116
private Runnable autoCompleteRunnable;
117117
private Call<String> subredditAutocompleteCall;
118118
RecentSearchQueryViewModel mRecentSearchQueryViewModel;
119-
private ActivityResultLauncher<Intent> requestThingSelectionLauncher;
119+
private ActivityResultLauncher<Intent> requestThingSelectionForCurrentActivityLauncher;
120+
private ActivityResultLauncher<Intent> requestThingSelectionForOtherActivityLauncher;
120121
private ActivitySearchBinding binding;
121122

122123
@Override
@@ -151,7 +152,7 @@ protected void onCreate(Bundle savedInstanceState) {
151152
binding.searchEditTextSearchActivity.setHint(R.string.search_only_subreddits_hint);
152153
} else if (searchOnlyUsers) {
153154
binding.searchEditTextSearchActivity.setHint(R.string.search_only_users_hint);
154-
} else {
155+
} else if (searchSubredditsAndUsers) {
155156
binding.searchEditTextSearchActivity.setHint(R.string.search_subreddits_and_users_hint);
156157
}
157158

@@ -309,7 +310,7 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
309310
}
310311
bindView();
311312

312-
requestThingSelectionLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
313+
requestThingSelectionForCurrentActivityLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
313314
Intent returnIntent = result.getData();
314315
if (returnIntent == null) {
315316
return;
@@ -325,13 +326,18 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
325326
}
326327
});
327328

329+
requestThingSelectionForOtherActivityLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
330+
setResult(RESULT_OK, result.getData());
331+
finish();
332+
});
333+
328334
if (searchOnlySubreddits || searchOnlyUsers || searchSubredditsAndUsers) {
329335
binding.subredditNameRelativeLayoutSearchActivity.setVisibility(View.GONE);
330336
} else {
331337
binding.subredditNameRelativeLayoutSearchActivity.setOnClickListener(view -> {
332338
Intent intent = new Intent(this, SubscribedThingListingActivity.class);
333339
intent.putExtra(SubscribedThingListingActivity.EXTRA_THING_SELECTION_MODE, true);
334-
requestThingSelectionLauncher.launch(intent);
340+
requestThingSelectionForCurrentActivityLauncher.launch(intent);
335341
});
336342
}
337343

@@ -438,7 +444,7 @@ private void openSearchResult(String query) {
438444
Intent intent = new Intent(this, SearchResultActivity.class);
439445
intent.putExtra(SearchResultActivity.EXTRA_QUERY, query);
440446
intent.putExtra(SearchResultActivity.EXTRA_SHOULD_RETURN_SUBREDDIT_AND_USER_NAME, true);
441-
startActivity(intent);
447+
requestThingSelectionForOtherActivityLauncher.launch(intent);
442448
} else {
443449
Intent intent = new Intent(SearchActivity.this, SearchResultActivity.class);
444450
intent.putExtra(SearchResultActivity.EXTRA_QUERY, query);

0 commit comments

Comments
 (0)