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 34351fc9..cd6c2c5c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SearchActivity.java @@ -58,6 +58,7 @@ public class SearchActivity extends BaseActivity { static final String EXTRA_RETURN_USER_NAME = "ERUN"; static final String EXTRA_RETURN_USER_ICON_URL = "ERUIU"; static final String EXTRA_IS_MULTI_SELECTION = "EIMS"; + static final int SUICIDE_PREVENTION_ACTIVITY_REQUEST_CODE = 101; private static final String SUBREDDIT_NAME_STATE = "SNS"; private static final String SUBREDDIT_IS_USER_STATE = "SIUS"; @@ -251,31 +252,36 @@ public class SearchActivity extends BaseActivity { private void search(String query) { if (query.equalsIgnoreCase("suicide") && mSharedPreferences.getBoolean(SharedPreferencesUtils.SHOW_SUICIDE_PREVENTION_ACTIVITY, true)) { Intent intent = new Intent(this, SuicidePreventionActivity.class); - startActivity(intent); + intent.putExtra(SuicidePreventionActivity.EXTRA_QUERY, query); + startActivityForResult(intent, SUICIDE_PREVENTION_ACTIVITY_REQUEST_CODE); } else { - if (searchOnlySubreddits) { - Intent intent = new Intent(SearchActivity.this, SearchSubredditsResultActivity.class); - intent.putExtra(SearchSubredditsResultActivity.EXTRA_QUERY, query); - intent.putExtra(SearchSubredditsResultActivity.EXTRA_IS_MULTI_SELECTION, getIntent().getBooleanExtra(EXTRA_IS_MULTI_SELECTION, false)); - startActivityForResult(intent, SUBREDDIT_SEARCH_REQUEST_CODE); - } else if (searchOnlyUsers) { - Intent intent = new Intent(this, SearchUsersResultActivity.class); - intent.putExtra(SearchUsersResultActivity.EXTRA_QUERY, query); - intent.putExtra(SearchUsersResultActivity.EXTRA_IS_MULTI_SELECTION, getIntent().getBooleanExtra(EXTRA_IS_MULTI_SELECTION, false)); - startActivityForResult(intent, USER_SEARCH_REQUEST_CODE); - } else { - Intent intent = new Intent(SearchActivity.this, SearchResultActivity.class); - intent.putExtra(SearchResultActivity.EXTRA_QUERY, query); - if (subredditName != null) { - if (subredditIsUser) { - intent.putExtra(SearchResultActivity.EXTRA_SUBREDDIT_NAME, "u_" + subredditName); - } else { - intent.putExtra(SearchResultActivity.EXTRA_SUBREDDIT_NAME, subredditName); - } + openSearchResult(query); + } + } + + private void openSearchResult(String query) { + if (searchOnlySubreddits) { + Intent intent = new Intent(SearchActivity.this, SearchSubredditsResultActivity.class); + intent.putExtra(SearchSubredditsResultActivity.EXTRA_QUERY, query); + intent.putExtra(SearchSubredditsResultActivity.EXTRA_IS_MULTI_SELECTION, getIntent().getBooleanExtra(EXTRA_IS_MULTI_SELECTION, false)); + startActivityForResult(intent, SUBREDDIT_SEARCH_REQUEST_CODE); + } else if (searchOnlyUsers) { + Intent intent = new Intent(this, SearchUsersResultActivity.class); + intent.putExtra(SearchUsersResultActivity.EXTRA_QUERY, query); + intent.putExtra(SearchUsersResultActivity.EXTRA_IS_MULTI_SELECTION, getIntent().getBooleanExtra(EXTRA_IS_MULTI_SELECTION, false)); + startActivityForResult(intent, USER_SEARCH_REQUEST_CODE); + } else { + Intent intent = new Intent(SearchActivity.this, SearchResultActivity.class); + intent.putExtra(SearchResultActivity.EXTRA_QUERY, query); + if (subredditName != null) { + if (subredditIsUser) { + intent.putExtra(SearchResultActivity.EXTRA_SUBREDDIT_NAME, "u_" + subredditName); + } else { + intent.putExtra(SearchResultActivity.EXTRA_SUBREDDIT_NAME, subredditName); } - startActivity(intent); - finish(); } + startActivity(intent); + finish(); } } @@ -373,6 +379,8 @@ public class SearchActivity extends BaseActivity { } setResult(Activity.RESULT_OK, returnIntent); finish(); + } else if (requestCode == SUICIDE_PREVENTION_ACTIVITY_REQUEST_CODE) { + openSearchResult(data.getStringExtra(SuicidePreventionActivity.EXTRA_RETURN_QUERY)); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SuicidePreventionActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SuicidePreventionActivity.java index 998053b5..08e51b14 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SuicidePreventionActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SuicidePreventionActivity.java @@ -1,5 +1,6 @@ package ml.docilealligator.infinityforreddit.activities; +import android.content.Intent; import android.content.SharedPreferences; import android.content.res.ColorStateList; import android.os.Bundle; @@ -21,6 +22,8 @@ import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils; public class SuicidePreventionActivity extends BaseActivity { + static final String EXTRA_QUERY = "EQ"; + static final String EXTRA_RETURN_QUERY = "ERQ"; @BindView(R.id.linear_layout_suicide_prevention_activity) LinearLayout linearLayout; @BindView(R.id.quote_text_view_suicide_prevention_activity) @@ -57,6 +60,9 @@ public class SuicidePreventionActivity extends BaseActivity { if (doNotShowThisAgainCheckBox.isChecked()) { mSharedPreferences.edit().putBoolean(SharedPreferencesUtils.SHOW_SUICIDE_PREVENTION_ACTIVITY, false).apply(); } + Intent returnIntent = new Intent(); + returnIntent.putExtra(EXTRA_RETURN_QUERY, getIntent().getStringExtra(EXTRA_QUERY)); + setResult(RESULT_OK, returnIntent); finish(); }); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3a694e54..3993d4ad 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1049,7 +1049,7 @@ Cannot access the file If you are looking for a sign not to kill yourself, this is it.\u2764 - Do not show this again + Don\'t show this again Continue