@@ -67,6 +67,7 @@ public class SearchActivity extends BaseActivity {
67
67
68
68
public static final String EXTRA_QUERY = "EQ" ;
69
69
public static final String EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME = "ESISOUN" ;
70
+ public static final String EXTRA_SEARCH_IN_MULTIREDDIT = "ESIM" ;
70
71
public static final String EXTRA_SEARCH_IN_THING_TYPE = "ESITY" ;
71
72
public static final String EXTRA_SEARCH_ONLY_SUBREDDITS = "ESOS" ;
72
73
public static final String EXTRA_SEARCH_ONLY_USERS = "ESOU" ;
@@ -80,8 +81,9 @@ public class SearchActivity extends BaseActivity {
80
81
public static final String EXTRA_IS_MULTI_SELECTION = "EIMS" ;
81
82
public static final int SUICIDE_PREVENTION_ACTIVITY_REQUEST_CODE = 101 ;
82
83
83
- private static final String SUBREDDIT_NAME_STATE = "SNS" ;
84
+ private static final String SEARCH_IN_SUBREDDIT_OR_NAME_STATE = "SNS" ;
84
85
private static final String SEARCH_IN_THING_TYPE_STATE = "SITTS" ;
86
+ private static final String SEARCH_IN_MULTIREDDIT_STATE = "SIMS" ;
85
87
86
88
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0 ;
87
89
private static final int SUBREDDIT_SEARCH_REQUEST_CODE = 1 ;
@@ -300,14 +302,11 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
300
302
});
301
303
302
304
if (savedInstanceState != null ) {
303
- searchInSubredditOrUserName = savedInstanceState .getString (SUBREDDIT_NAME_STATE );
305
+ searchInSubredditOrUserName = savedInstanceState .getString (SEARCH_IN_SUBREDDIT_OR_NAME_STATE );
304
306
searchInThingType = savedInstanceState .getInt (SEARCH_IN_THING_TYPE_STATE );
307
+ searchInMultiReddit = savedInstanceState .getParcelable (SEARCH_IN_MULTIREDDIT_STATE );
305
308
306
- if (searchInSubredditOrUserName == null ) {
307
- binding .subredditNameTextViewSearchActivity .setText (R .string .all_subreddits );
308
- } else {
309
- binding .subredditNameTextViewSearchActivity .setText (searchInSubredditOrUserName );
310
- }
309
+ setSearchInThingText ();
311
310
} else {
312
311
query = getIntent ().getStringExtra (EXTRA_QUERY );
313
312
}
@@ -321,21 +320,9 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
321
320
322
321
searchInSubredditOrUserName = returnIntent .getStringExtra (SelectThingReturnKey .RETURN_EXTRA_SUBREDDIT_OR_USER_NAME );
323
322
searchInThingType = returnIntent .getIntExtra (SelectThingReturnKey .RETURN_EXTRA_THING_TYPE , SelectThingReturnKey .THING_TYPE .SUBREDDIT );
324
- searchInMultiReddit = returnIntent .getExtras ().getParcelable (SelectThingReturnKey .RETRUN_EXTRA_MULTIREDDIT );
325
-
326
- switch (searchInThingType ) {
327
- case SelectThingReturnKey .THING_TYPE .SUBREDDIT :
328
- case SelectThingReturnKey .THING_TYPE .USER :
329
- if (searchInSubredditOrUserName == null ) {
330
- binding .subredditNameTextViewSearchActivity .setText (R .string .all_subreddits );
331
- } else {
332
- binding .subredditNameTextViewSearchActivity .setText (searchInSubredditOrUserName );
333
- }
334
- break ;
335
- case SelectThingReturnKey .THING_TYPE .MULTIREDDIT :
336
- binding .subredditNameTextViewSearchActivity .setText (searchInMultiReddit .getDisplayName ());
323
+ searchInMultiReddit = returnIntent .getParcelableExtra (SelectThingReturnKey .RETRUN_EXTRA_MULTIREDDIT );
337
324
338
- }
325
+ setSearchInThingText ();
339
326
});
340
327
341
328
requestThingSelectionForAnotherActivityLauncher = registerForActivityResult (new ActivityResultContracts .StartActivityForResult (), result -> {
@@ -354,10 +341,13 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
354
341
}
355
342
356
343
Intent intent = getIntent ();
357
- if (intent .hasExtra (EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME )) {
358
- searchInSubredditOrUserName = intent .getStringExtra (EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME );
344
+ searchInSubredditOrUserName = intent .getStringExtra (EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME );
345
+ searchInMultiReddit = intent .getParcelableExtra (EXTRA_SEARCH_IN_MULTIREDDIT );
346
+ searchInThingType = intent .getIntExtra (EXTRA_SEARCH_IN_THING_TYPE , SelectThingReturnKey .THING_TYPE .SUBREDDIT );
347
+ if (searchInSubredditOrUserName != null ) {
359
348
binding .subredditNameTextViewSearchActivity .setText (searchInSubredditOrUserName );
360
- searchInThingType = intent .getIntExtra (EXTRA_SEARCH_IN_THING_TYPE , SelectThingReturnKey .THING_TYPE .SUBREDDIT );
349
+ } else if (searchInMultiReddit != null ) {
350
+ binding .subredditNameTextViewSearchActivity .setText (searchInMultiReddit .getDisplayName ());
361
351
}
362
352
}
363
353
@@ -462,13 +452,30 @@ private void openSearchResult(String query) {
462
452
intent .putExtra (SearchResultActivity .EXTRA_QUERY , query );
463
453
if (searchInSubredditOrUserName != null ) {
464
454
intent .putExtra (SearchResultActivity .EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME , searchInSubredditOrUserName );
455
+ intent .putExtra (SearchResultActivity .EXTRA_SEARCH_IN_MULTIREDDIT , searchInMultiReddit );
465
456
intent .putExtra (SearchResultActivity .EXTRA_SEARCH_IN_THING_TYPE , searchInThingType );
466
457
}
467
458
startActivity (intent );
468
459
finish ();
469
460
}
470
461
}
471
462
463
+ private void setSearchInThingText () {
464
+ switch (searchInThingType ) {
465
+ case SelectThingReturnKey .THING_TYPE .SUBREDDIT :
466
+ case SelectThingReturnKey .THING_TYPE .USER :
467
+ if (searchInSubredditOrUserName == null ) {
468
+ binding .subredditNameTextViewSearchActivity .setText (R .string .all_subreddits );
469
+ } else {
470
+ binding .subredditNameTextViewSearchActivity .setText (searchInSubredditOrUserName );
471
+ }
472
+ break ;
473
+ case SelectThingReturnKey .THING_TYPE .MULTIREDDIT :
474
+ binding .subredditNameTextViewSearchActivity .setText (searchInMultiReddit .getDisplayName ());
475
+
476
+ }
477
+ }
478
+
472
479
@ Override
473
480
public SharedPreferences getDefaultSharedPreferences () {
474
481
return mSharedPreferences ;
@@ -529,11 +536,7 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten
529
536
searchInSubredditOrUserName = data .getStringExtra (SubredditSelectionActivity .EXTRA_RETURN_SUBREDDIT_NAME );
530
537
searchInThingType = data .getIntExtra (SubredditSelectionActivity .EXTRA_RETURN_THING_TYPE , SelectThingReturnKey .THING_TYPE .SUBREDDIT );
531
538
532
- if (searchInSubredditOrUserName == null ) {
533
- binding .subredditNameTextViewSearchActivity .setText (R .string .all_subreddits );
534
- } else {
535
- binding .subredditNameTextViewSearchActivity .setText (searchInSubredditOrUserName );
536
- }
539
+ setSearchInThingText ();
537
540
} else if (requestCode == SUBREDDIT_SEARCH_REQUEST_CODE ) {
538
541
Intent returnIntent = new Intent ();
539
542
if (getIntent ().getBooleanExtra (EXTRA_IS_MULTI_SELECTION , false )) {
@@ -579,8 +582,9 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
579
582
@ Override
580
583
public void onSaveInstanceState (@ NonNull Bundle outState ) {
581
584
super .onSaveInstanceState (outState );
582
- outState .putString (SUBREDDIT_NAME_STATE , searchInSubredditOrUserName );
585
+ outState .putString (SEARCH_IN_SUBREDDIT_OR_NAME_STATE , searchInSubredditOrUserName );
583
586
outState .putInt (SEARCH_IN_THING_TYPE_STATE , searchInThingType );
587
+ outState .putParcelable (SEARCH_IN_MULTIREDDIT_STATE , searchInMultiReddit );
584
588
}
585
589
586
590
@ Override
0 commit comments