Show toolbar back button on subsettings pages

Test: Back button displayed and functional on subsettings
Bug: 187732263
Change-Id: I6a3679de3a00480f5a0861f966d178be25f001d4
This commit is contained in:
Brian Isganitis
2021-05-26 20:43:15 -04:00
parent ed49a7187d
commit 6afcfd7cbd
2 changed files with 30 additions and 1 deletions

View File

@@ -27,6 +27,7 @@ import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
import static androidx.test.espresso.intent.matcher.IntentMatchers.hasExtra;
import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.withContentDescription;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
@@ -109,6 +110,7 @@ public class SettingsActivityTest {
onView(withText("About")).check(matches(isDisplayed()));
onView(withText("Version")).check(matches(isDisplayed()));
onView(withContentDescription("Navigate up")).check(matches(isDisplayed()));
}
@Test
@@ -119,6 +121,7 @@ public class SettingsActivityTest {
onView(withText("Developer Options")).check(matches(isDisplayed()));
onView(withId(R.id.filter_box)).check(matches(isDisplayed()));
onView(withContentDescription("Navigate up")).check(matches(isDisplayed()));
}
@Test
@@ -134,4 +137,16 @@ public class SettingsActivityTest {
assertThat(e.getMessage()).contains(fragmentClass);
}
}
@Test
public void testSettings_backButtonFinishesActivity() {
Bundle fragmentArgs = new Bundle();
fragmentArgs.putString(ARG_PREFERENCE_ROOT, "about_screen");
Intent intent = new Intent(mApplicationContext, SettingsActivity.class)
.putExtra(EXTRA_FRAGMENT_ARGS, fragmentArgs);
ActivityScenario<SettingsActivity> scenario = ActivityScenario.launch(intent);
onView(withContentDescription("Navigate up")).perform(click());
scenario.onActivity(activity -> assertThat(activity.isFinishing()).isTrue());
}
}

View File

@@ -24,6 +24,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MenuItem;
import android.view.View;
import androidx.annotation.NonNull;
@@ -86,8 +87,12 @@ public class SettingsActivity extends FragmentActivity
setActionBar(findViewById(R.id.action_bar));
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
Intent intent = getIntent();
if (intent.hasExtra(EXTRA_FRAGMENT) || intent.hasExtra(EXTRA_FRAGMENT_ARGS)) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
if (savedInstanceState == null) {
Intent intent = getIntent();
Bundle args = intent.getBundleExtra(EXTRA_FRAGMENT_ARGS);
if (args == null) {
args = new Bundle();
@@ -164,6 +169,15 @@ public class SettingsActivity extends FragmentActivity
return startPreference(getString(R.string.settings_fragment_name), args, pref.getKey());
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* This fragment shows the launcher preferences.
*/