Skip to content

Commit 8625b3b

Browse files
Continue adding searching in multireddit feature.
1 parent 5663d33 commit 8625b3b

File tree

2 files changed

+42
-31
lines changed

2 files changed

+42
-31
lines changed

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

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public class SearchActivity extends BaseActivity {
6767

6868
public static final String EXTRA_QUERY = "EQ";
6969
public static final String EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME = "ESISOUN";
70+
public static final String EXTRA_SEARCH_IN_MULTIREDDIT = "ESIM";
7071
public static final String EXTRA_SEARCH_IN_THING_TYPE = "ESITY";
7172
public static final String EXTRA_SEARCH_ONLY_SUBREDDITS = "ESOS";
7273
public static final String EXTRA_SEARCH_ONLY_USERS = "ESOU";
@@ -80,8 +81,9 @@ public class SearchActivity extends BaseActivity {
8081
public static final String EXTRA_IS_MULTI_SELECTION = "EIMS";
8182
public static final int SUICIDE_PREVENTION_ACTIVITY_REQUEST_CODE = 101;
8283

83-
private static final String SUBREDDIT_NAME_STATE = "SNS";
84+
private static final String SEARCH_IN_SUBREDDIT_OR_NAME_STATE = "SNS";
8485
private static final String SEARCH_IN_THING_TYPE_STATE = "SITTS";
86+
private static final String SEARCH_IN_MULTIREDDIT_STATE = "SIMS";
8587

8688
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
8789
private static final int SUBREDDIT_SEARCH_REQUEST_CODE = 1;
@@ -300,14 +302,11 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
300302
});
301303

302304
if (savedInstanceState != null) {
303-
searchInSubredditOrUserName = savedInstanceState.getString(SUBREDDIT_NAME_STATE);
305+
searchInSubredditOrUserName = savedInstanceState.getString(SEARCH_IN_SUBREDDIT_OR_NAME_STATE);
304306
searchInThingType = savedInstanceState.getInt(SEARCH_IN_THING_TYPE_STATE);
307+
searchInMultiReddit = savedInstanceState.getParcelable(SEARCH_IN_MULTIREDDIT_STATE);
305308

306-
if (searchInSubredditOrUserName == null) {
307-
binding.subredditNameTextViewSearchActivity.setText(R.string.all_subreddits);
308-
} else {
309-
binding.subredditNameTextViewSearchActivity.setText(searchInSubredditOrUserName);
310-
}
309+
setSearchInThingText();
311310
} else {
312311
query = getIntent().getStringExtra(EXTRA_QUERY);
313312
}
@@ -321,21 +320,9 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
321320

322321
searchInSubredditOrUserName = returnIntent.getStringExtra(SelectThingReturnKey.RETURN_EXTRA_SUBREDDIT_OR_USER_NAME);
323322
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);
337324

338-
}
325+
setSearchInThingText();
339326
});
340327

341328
requestThingSelectionForAnotherActivityLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
@@ -354,10 +341,13 @@ public void onDismissed(Snackbar transientBottomBar, int event) {
354341
}
355342

356343
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) {
359348
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());
361351
}
362352
}
363353

@@ -462,13 +452,30 @@ private void openSearchResult(String query) {
462452
intent.putExtra(SearchResultActivity.EXTRA_QUERY, query);
463453
if (searchInSubredditOrUserName != null) {
464454
intent.putExtra(SearchResultActivity.EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME, searchInSubredditOrUserName);
455+
intent.putExtra(SearchResultActivity.EXTRA_SEARCH_IN_MULTIREDDIT, searchInMultiReddit);
465456
intent.putExtra(SearchResultActivity.EXTRA_SEARCH_IN_THING_TYPE, searchInThingType);
466457
}
467458
startActivity(intent);
468459
finish();
469460
}
470461
}
471462

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+
472479
@Override
473480
public SharedPreferences getDefaultSharedPreferences() {
474481
return mSharedPreferences;
@@ -529,11 +536,7 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten
529536
searchInSubredditOrUserName = data.getStringExtra(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_NAME);
530537
searchInThingType = data.getIntExtra(SubredditSelectionActivity.EXTRA_RETURN_THING_TYPE, SelectThingReturnKey.THING_TYPE.SUBREDDIT);
531538

532-
if (searchInSubredditOrUserName == null) {
533-
binding.subredditNameTextViewSearchActivity.setText(R.string.all_subreddits);
534-
} else {
535-
binding.subredditNameTextViewSearchActivity.setText(searchInSubredditOrUserName);
536-
}
539+
setSearchInThingText();
537540
} else if (requestCode == SUBREDDIT_SEARCH_REQUEST_CODE) {
538541
Intent returnIntent = new Intent();
539542
if (getIntent().getBooleanExtra(EXTRA_IS_MULTI_SELECTION, false)) {
@@ -579,8 +582,9 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
579582
@Override
580583
public void onSaveInstanceState(@NonNull Bundle outState) {
581584
super.onSaveInstanceState(outState);
582-
outState.putString(SUBREDDIT_NAME_STATE, searchInSubredditOrUserName);
585+
outState.putString(SEARCH_IN_SUBREDDIT_OR_NAME_STATE, searchInSubredditOrUserName);
583586
outState.putInt(SEARCH_IN_THING_TYPE_STATE, searchInThingType);
587+
outState.putParcelable(SEARCH_IN_MULTIREDDIT_STATE, searchInMultiReddit);
584588
}
585589

586590
@Override

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
import ml.docilealligator.infinityforreddit.fragments.PostFragment;
6666
import ml.docilealligator.infinityforreddit.fragments.SubredditListingFragment;
6767
import ml.docilealligator.infinityforreddit.fragments.UserListingFragment;
68+
import ml.docilealligator.infinityforreddit.multireddit.MultiReddit;
6869
import ml.docilealligator.infinityforreddit.post.PostPagingSource;
6970
import ml.docilealligator.infinityforreddit.recentsearchquery.InsertRecentSearchQuery;
7071
import ml.docilealligator.infinityforreddit.subreddit.ParseSubredditData;
@@ -85,8 +86,9 @@ public class SearchResultActivity extends BaseActivity implements SortTypeSelect
8586
public static final String EXTRA_QUERY = "EQ";
8687
public static final String EXTRA_TRENDING_SOURCE = "ETS";
8788
public static final String EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME = "ESISOUN";
88-
public static final String EXTRA_SHOULD_RETURN_SUBREDDIT_AND_USER_NAME = "ESRSAUN";
89+
public static final String EXTRA_SEARCH_IN_MULTIREDDIT = "ESIM";
8990
public static final String EXTRA_SEARCH_IN_THING_TYPE = "ESITT";
91+
public static final String EXTRA_SHOULD_RETURN_SUBREDDIT_AND_USER_NAME = "ESRSAUN";
9092

9193
private static final String INSERT_SEARCH_QUERY_SUCCESS_STATE = "ISQSS";
9294

@@ -121,6 +123,7 @@ public class SearchResultActivity extends BaseActivity implements SortTypeSelect
121123
private Call<String> subredditAutocompleteCall;
122124
private String mQuery;
123125
private String mSearchInSubredditOrUserName;
126+
private MultiReddit mSearchInMultiReddit;
124127
@SelectThingReturnKey.THING_TYPE
125128
private int mSearchInThingType;
126129
private boolean mInsertSearchQuerySuccess;
@@ -181,6 +184,7 @@ protected void onCreate(Bundle savedInstanceState) {
181184
String query = intent.getStringExtra(EXTRA_QUERY);
182185

183186
mSearchInSubredditOrUserName = intent.getStringExtra(EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME);
187+
mSearchInMultiReddit = intent.getParcelableExtra(EXTRA_SEARCH_IN_MULTIREDDIT);
184188
mSearchInThingType = intent.getIntExtra(EXTRA_SEARCH_IN_THING_TYPE, SelectThingReturnKey.THING_TYPE.SUBREDDIT);
185189
mReturnSubredditAndUserName = intent.getBooleanExtra(EXTRA_SHOULD_RETURN_SUBREDDIT_AND_USER_NAME, false);
186190

@@ -343,6 +347,7 @@ public void onPageSelected(int position) {
343347
Intent intent = new Intent(this, SearchActivity.class);
344348
if (mSearchInSubredditOrUserName != null && !mSearchInSubredditOrUserName.equals("")) {
345349
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME, mSearchInSubredditOrUserName);
350+
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_MULTIREDDIT, mSearchInMultiReddit);
346351
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_THING_TYPE, mSearchInThingType);
347352
}
348353
startActivity(intent);
@@ -432,6 +437,7 @@ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
432437
Intent intent = new Intent(this, SearchActivity.class);
433438
if (mSearchInSubredditOrUserName != null && !mSearchInSubredditOrUserName.equals("")) {
434439
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME, mSearchInSubredditOrUserName);
440+
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_MULTIREDDIT, mSearchInMultiReddit);
435441
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_THING_TYPE, mSearchInThingType);
436442
}
437443
intent.putExtra(SearchActivity.EXTRA_QUERY, mQuery);
@@ -545,6 +551,7 @@ public void fabOptionSelected(int option) {
545551
Intent intent = new Intent(this, SearchActivity.class);
546552
if (mSearchInSubredditOrUserName != null && !mSearchInSubredditOrUserName.equals("")) {
547553
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_SUBREDDIT_OR_USER_NAME, mSearchInSubredditOrUserName);
554+
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_MULTIREDDIT, mSearchInMultiReddit);
548555
intent.putExtra(SearchActivity.EXTRA_SEARCH_IN_THING_TYPE, mSearchInThingType);
549556
}
550557
startActivity(intent);

0 commit comments

Comments
 (0)