From cf439c0e802e159c0162909fc10074751b515a2d Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 3 Jan 2017 13:06:11 -0800 Subject: [PATCH] Disable nav drawer in Settings app. Bug: 34054123 Test: runtest --path frameworks/base/packages/SettingsLib/tests/integ/src/com/android/settingslib/drawer/SettingsDrawerActivityTest.java Change-Id: Ia6ae42315c3d1798803b9554aa8400aafa2f31fa --- packages/SettingsLib/res/values/config.xml | 3 ++ .../drawer/SettingsDrawerActivity.java | 29 +++++++++++++++---- .../drawer/SettingsDrawerActivityTest.java | 12 ++++---- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/packages/SettingsLib/res/values/config.xml b/packages/SettingsLib/res/values/config.xml index 64f21b50c0bc6..ee69b56ef472a 100755 --- a/packages/SettingsLib/res/values/config.xml +++ b/packages/SettingsLib/res/values/config.xml @@ -26,6 +26,9 @@ false + + false + diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java index 86514dc5a5cf2..5041e0dccc26d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java @@ -28,7 +28,6 @@ import android.content.pm.PackageManager; import android.content.res.TypedArray; import android.os.AsyncTask; import android.os.Bundle; -import android.os.UserManager; import android.provider.Settings; import android.support.v4.widget.DrawerLayout; import android.util.ArraySet; @@ -72,7 +71,6 @@ public class SettingsDrawerActivity extends Activity { private FrameLayout mContentHeaderContainer; private DrawerLayout mDrawerLayout; private boolean mShowingMenu; - private UserManager mUserManager; // Remove below after new IA @Deprecated @@ -108,6 +106,9 @@ public class SettingsDrawerActivity extends Activity { mDrawerLayout = null; return; } + if (!isNavDrawerEnabled()) { + setIsDrawerPresent(false); + } if (!isDashboardFeatureEnabled()) { getDashboardCategories(); } @@ -122,7 +123,6 @@ public class SettingsDrawerActivity extends Activity { } }); - mUserManager = UserManager.get(this); if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime) + " ms"); } @@ -137,6 +137,15 @@ public class SettingsDrawerActivity extends Activity { return super.onOptionsItemSelected(item); } + @Override + public boolean onNavigateUp() { + if (!isNavDrawerEnabled()) { + finish(); + return true; + } + return super.onNavigateUp(); + } + @Override protected void onResume() { super.onResume(); @@ -277,10 +286,13 @@ public class SettingsDrawerActivity extends Activity { } public void showMenuIcon() { - mShowingMenu = true; - getActionBar().setHomeAsUpIndicator(R.drawable.ic_menu); - getActionBar().setHomeActionContentDescription(R.string.content_description_menu_button); getActionBar().setDisplayHomeAsUpEnabled(true); + if (isNavDrawerEnabled()) { + mShowingMenu = true; + getActionBar().setHomeAsUpIndicator(R.drawable.ic_menu); + getActionBar().setHomeActionContentDescription( + R.string.content_description_menu_button); + } } public List getDashboardCategories() { @@ -429,6 +441,11 @@ public class SettingsDrawerActivity extends Activity { return false; } + boolean isNavDrawerEnabled() { + return !isDashboardFeatureEnabled() + || getResources().getBoolean(R.bool.config_enable_nav_drawer); + } + private class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/drawer/SettingsDrawerActivityTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/drawer/SettingsDrawerActivityTest.java index 1e87ea0f18ef3..2fd5ec08656b8 100644 --- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/drawer/SettingsDrawerActivityTest.java +++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/drawer/SettingsDrawerActivityTest.java @@ -52,34 +52,34 @@ public class SettingsDrawerActivityTest { } @Test - public void startActivityWithNoExtra_showNoHamburgerMenu() { + public void startActivityWithNoExtra_showNoNavUp() { Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); instrumentation.startActivitySync(new Intent(instrumentation.getTargetContext(), TestActivity.class)); - onView(withContentDescription(R.string.content_description_menu_button)) + onView(withContentDescription(com.android.internal.R.string.action_bar_up_description)) .check(doesNotExist()); } @Test - public void startActivityWithExtraToHideMenu_showNoHamburgerMenu() { + public void startActivityWithExtraToHideMenu_showNavUp() { Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); Intent intent = new Intent(instrumentation.getTargetContext(), TestActivity.class) .putExtra(TestActivity.EXTRA_SHOW_MENU, false); instrumentation.startActivitySync(intent); - onView(withContentDescription(R.string.content_description_menu_button)) + onView(withContentDescription(com.android.internal.R.string.action_bar_up_description)) .check(doesNotExist()); } @Test - public void startActivityWithExtraToShowMenu_showHamburgerMenu() { + public void startActivityWithExtraToShowMenu_showNavUp() { Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); Intent intent = new Intent(instrumentation.getTargetContext(), TestActivity.class) .putExtra(TestActivity.EXTRA_SHOW_MENU, true); instrumentation.startActivitySync(intent); - onView(withContentDescription(R.string.content_description_menu_button)) + onView(withContentDescription(com.android.internal.R.string.action_bar_up_description)) .check(matches(isDisplayed())); }