From f1c1bb49f8d9d57b0138dbd4358e32f9ecff87de Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Mon, 27 Feb 2017 16:04:32 -0800 Subject: [PATCH] Remove drawer code from settings Change-Id: I3e9920f62745f6ba2236e37689f7603f9a30d6a9 Fix: 35809663 Test: make RunSettingsLibRoboTests --- .../res/layout/drawer_category.xml | 38 --- .../SettingsLib/res/layout/drawer_item.xml | 44 --- .../SettingsLib/res/layout/drawer_spacer.xml | 20 -- .../res/layout/settings_with_drawer.xml | 9 - packages/SettingsLib/res/values/config.xml | 3 - packages/SettingsLib/res/values/dimens.xml | 6 - .../drawer/SettingsDrawerActivity.java | 266 ++---------------- .../drawer/SettingsDrawerAdapter.java | 147 ---------- .../drawer/SettingsDrawerActivityTest.java | 10 - 9 files changed, 22 insertions(+), 521 deletions(-) delete mode 100644 packages/SettingsLib/res/layout/drawer_category.xml delete mode 100644 packages/SettingsLib/res/layout/drawer_item.xml delete mode 100644 packages/SettingsLib/res/layout/drawer_spacer.xml delete mode 100644 packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerAdapter.java diff --git a/packages/SettingsLib/res/layout/drawer_category.xml b/packages/SettingsLib/res/layout/drawer_category.xml deleted file mode 100644 index 72cfddb1a4319..0000000000000 --- a/packages/SettingsLib/res/layout/drawer_category.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - diff --git a/packages/SettingsLib/res/layout/drawer_item.xml b/packages/SettingsLib/res/layout/drawer_item.xml deleted file mode 100644 index d492ddfee0fec..0000000000000 --- a/packages/SettingsLib/res/layout/drawer_item.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - diff --git a/packages/SettingsLib/res/layout/drawer_spacer.xml b/packages/SettingsLib/res/layout/drawer_spacer.xml deleted file mode 100644 index 98120cf904d05..0000000000000 --- a/packages/SettingsLib/res/layout/drawer_spacer.xml +++ /dev/null @@ -1,20 +0,0 @@ - - diff --git a/packages/SettingsLib/res/layout/settings_with_drawer.xml b/packages/SettingsLib/res/layout/settings_with_drawer.xml index b659cee037800..e9c175f6fed00 100644 --- a/packages/SettingsLib/res/layout/settings_with_drawer.xml +++ b/packages/SettingsLib/res/layout/settings_with_drawer.xml @@ -47,13 +47,4 @@ android:layout_height="fill_parent" android:background="?android:attr/windowBackground" /> - - diff --git a/packages/SettingsLib/res/values/config.xml b/packages/SettingsLib/res/values/config.xml index ee69b56ef472a..64f21b50c0bc6 100755 --- a/packages/SettingsLib/res/values/config.xml +++ b/packages/SettingsLib/res/values/config.xml @@ -26,9 +26,6 @@ false - - false - diff --git a/packages/SettingsLib/res/values/dimens.xml b/packages/SettingsLib/res/values/dimens.xml index aa3661707130c..3322839ee213c 100644 --- a/packages/SettingsLib/res/values/dimens.xml +++ b/packages/SettingsLib/res/values/dimens.xml @@ -51,12 +51,6 @@ .75dp 7dp - 24dp - 24dp - 24dp - 300dp - 4dp - 32dp 14.5dp 9.5dp diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java index a8cab17b0fac7..457ce76d79ac0 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -18,7 +18,6 @@ package com.android.settingslib.drawer; import android.annotation.LayoutRes; import android.annotation.Nullable; import android.app.Activity; -import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; @@ -29,20 +28,15 @@ import android.content.res.TypedArray; import android.os.AsyncTask; import android.os.Bundle; import android.provider.Settings; -import android.support.v4.widget.DrawerLayout; import android.util.ArraySet; import android.util.Log; import android.util.Pair; -import android.view.Gravity; import android.view.LayoutInflater; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager.LayoutParams; -import android.widget.AdapterView; import android.widget.FrameLayout; -import android.widget.ListView; import android.widget.Toolbar; import com.android.settingslib.R; @@ -67,10 +61,7 @@ public class SettingsDrawerActivity extends Activity { private final PackageReceiver mPackageReceiver = new PackageReceiver(); private final List mCategoryListeners = new ArrayList<>(); - private SettingsDrawerAdapter mDrawerAdapter; private FrameLayout mContentHeaderContainer; - private DrawerLayout mDrawerLayout; - private boolean mShowingMenu; // Remove below after new IA @Deprecated @@ -94,122 +85,50 @@ public class SettingsDrawerActivity extends Activity { } super.setContentView(R.layout.settings_with_drawer); mContentHeaderContainer = (FrameLayout) findViewById(R.id.content_header_container); - mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - if (mDrawerLayout == null) { - return; - } + Toolbar toolbar = (Toolbar) findViewById(R.id.action_bar); if (theme.getBoolean(android.R.styleable.Theme_windowNoTitle, false)) { toolbar.setVisibility(View.GONE); - mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); - mDrawerLayout = null; return; } - if (!isNavDrawerEnabled()) { - setIsDrawerPresent(false); - } - if (!isDashboardFeatureEnabled()) { - getDashboardCategories(); - } setActionBar(toolbar); - mDrawerAdapter = new SettingsDrawerAdapter(this); - ListView listView = (ListView) findViewById(R.id.left_drawer); - listView.setAdapter(mDrawerAdapter); - listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - public void onItemClick(android.widget.AdapterView parent, View view, int position, - long id) { - onTileClicked(mDrawerAdapter.getTile(position)); - } - }); - if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime) - + " ms"); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (mShowingMenu && mDrawerLayout != null && item.getItemId() == android.R.id.home - && mDrawerAdapter.getCount() != 0) { - openDrawer(); - return true; + if (DEBUG_TIMING) { + Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime) + + " ms"); } - return super.onOptionsItemSelected(item); } @Override public boolean onNavigateUp() { - if (!isNavDrawerEnabled()) { - finish(); - return true; - } - return super.onNavigateUp(); + finish(); + return true; } @Override protected void onResume() { super.onResume(); + final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); + filter.addAction(Intent.ACTION_PACKAGE_REMOVED); + filter.addAction(Intent.ACTION_PACKAGE_CHANGED); + filter.addAction(Intent.ACTION_PACKAGE_REPLACED); + filter.addDataScheme("package"); + registerReceiver(mPackageReceiver, filter); - if (mDrawerLayout != null) { - final IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); - filter.addAction(Intent.ACTION_PACKAGE_REMOVED); - filter.addAction(Intent.ACTION_PACKAGE_CHANGED); - filter.addAction(Intent.ACTION_PACKAGE_REPLACED); - filter.addDataScheme("package"); - registerReceiver(mPackageReceiver, filter); - - if (isDashboardFeatureEnabled()) { - new CategoriesUpdateTask().execute(); - } else { - new CategoriesUpdater().execute(); - } - } + new CategoriesUpdateTask().execute(); final Intent intent = getIntent(); - if (intent != null) { - if (intent.hasExtra(EXTRA_SHOW_MENU)) { - if (intent.getBooleanExtra(EXTRA_SHOW_MENU, false)) { - // Intent explicitly set to show menu. - showMenuIcon(); - } - } else if (isNavDrawerEnabled() && isTopLevelTile(intent)) { - showMenuIcon(); - } + if (intent != null && intent.getBooleanExtra(EXTRA_SHOW_MENU, false)) { + // Intent explicitly set to show menu. + showMenuIcon(); } } @Override protected void onPause() { - if (mDrawerLayout != null) { - unregisterReceiver(mPackageReceiver); - } - + unregisterReceiver(mPackageReceiver); super.onPause(); } - private boolean isTopLevelTile(Intent intent) { - final ComponentName componentName = intent.getComponent(); - if (componentName == null) { - return false; - } - if (isDashboardFeatureEnabled()) { - final DashboardCategory homepageCategories = CategoryManager.get(this) - .getTilesByCategory(this, CategoryKey.CATEGORY_HOMEPAGE, getSettingPkg()); - return homepageCategories == - null ? false : homepageCategories.containsComponent(componentName); - } else { - // Look for a tile that has the same component as incoming intent - final List categories = getDashboardCategories(); - for (DashboardCategory category : categories) { - if (category.containsComponent(componentName)) { - return true; - } - } - if (DEBUG) { - Log.d(TAG, "Intent is not for top level settings " + intent); - } - return false; - } - } - /** * Gets the name of the intent action of the default setting app. Used to launch setting app * when Settings Home is clicked. @@ -226,30 +145,6 @@ public class SettingsDrawerActivity extends Activity { mCategoryListeners.remove(listener); } - public void setIsDrawerPresent(boolean isPresent) { - if (isPresent) { - mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - updateDrawer(); - } else { - if (mDrawerLayout != null) { - mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); - mDrawerLayout = null; - } - } - } - - public void openDrawer() { - if (mDrawerLayout != null) { - mDrawerLayout.openDrawer(Gravity.START); - } - } - - public void closeDrawer() { - if (mDrawerLayout != null) { - mDrawerLayout.closeDrawers(); - } - } - public void setContentHeaderView(View headerView) { mContentHeaderContainer.removeAllViews(); if (headerView != null) { @@ -276,31 +171,8 @@ public class SettingsDrawerActivity extends Activity { ((ViewGroup) findViewById(R.id.content_frame)).addView(view, params); } - public void updateDrawer() { - if (mDrawerLayout == null) { - return; - } - // TODO: Do this in the background with some loading. - if (isDashboardFeatureEnabled()) { - mDrawerAdapter.updateHomepageCategories(getSettingPkg()); - } else { - mDrawerAdapter.updateCategories(); - } - if (mDrawerAdapter.getCount() != 0) { - mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); - } else { - mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); - } - } - public void showMenuIcon() { getActionBar().setDisplayHomeAsUpEnabled(true); - if (isNavDrawerEnabled()) { - mShowingMenu = true; - getActionBar().setHomeAsUpIndicator(R.drawable.ic_menu); - getActionBar().setHomeActionContentDescription( - R.string.content_description_menu_button); - } } public List getDashboardCategories() { @@ -315,51 +187,12 @@ public class SettingsDrawerActivity extends Activity { } protected void onCategoriesChanged() { - updateDrawer(); final int N = mCategoryListeners.size(); for (int i = 0; i < N; i++) { mCategoryListeners.get(i).onCategoriesChanged(); } } - @Deprecated - public boolean openTile(Tile tile) { - closeDrawer(); - if (tile == null) { - Intent intent = new Intent(getSettingAction()).addFlags( - Intent.FLAG_ACTIVITY_CLEAR_TASK); - startActivity(intent); - return true; - } - try { - ProfileSelectDialog.updateUserHandlesIfNeeded(this /* context */, tile); - int numUserHandles = tile.userHandle.size(); - if (numUserHandles > 1) { - ProfileSelectDialog.show(getFragmentManager(), tile); - return false; - } else if (numUserHandles == 1) { - // Show menu on top level items. - tile.intent.putExtra(EXTRA_SHOW_MENU, true); - tile.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - startActivityAsUser(tile.intent, tile.userHandle.get(0)); - } else { - // Show menu on top level items. - tile.intent.putExtra(EXTRA_SHOW_MENU, true); - tile.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); - startActivity(tile.intent); - } - } catch (ActivityNotFoundException e) { - Log.w(TAG, "Couldn't find tile " + tile.intent, e); - } - return true; - } - - protected void onTileClicked(Tile tile) { - if (openTile(tile)) { - finish(); - } - } - public void onProfileTileOpen() { finish(); } @@ -375,8 +208,8 @@ public class SettingsDrawerActivity extends Activity { sTileBlacklist.add(component); } pm.setComponentEnabledSetting(component, enabled - ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED - : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED + : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } } @@ -385,11 +218,7 @@ public class SettingsDrawerActivity extends Activity { * Updates dashboard categories. Only necessary to call this after setTileEnabled */ public void updateCategories() { - if (isDashboardFeatureEnabled()) { - new CategoriesUpdateTask().execute(); - } else { - new CategoriesUpdater().execute(); - } + new CategoriesUpdateTask().execute(); } public String getSettingPkg() { @@ -400,42 +229,6 @@ public class SettingsDrawerActivity extends Activity { void onCategoriesChanged(); } - /** - * @deprecated remove after new IA - */ - @Deprecated - private class CategoriesUpdater extends AsyncTask> { - @Override - protected List doInBackground(Void... params) { - if (sConfigTracker.applyNewConfig(getResources())) { - sTileCache.clear(); - } - return TileUtils.getCategories(SettingsDrawerActivity.this, sTileCache); - } - - @Override - protected void onPreExecute() { - if (sConfigTracker == null || sTileCache == null) { - getDashboardCategories(); - } - } - - @Override - protected void onPostExecute(List dashboardCategories) { - for (int i = 0; i < dashboardCategories.size(); i++) { - DashboardCategory category = dashboardCategories.get(i); - for (int j = 0; j < category.tiles.size(); j++) { - Tile tile = category.tiles.get(j); - if (sTileBlacklist.contains(tile.intent.getComponent())) { - category.tiles.remove(j--); - } - } - } - sDashboardCategories = dashboardCategories; - onCategoriesChanged(); - } - } - private class CategoriesUpdateTask extends AsyncTask { private final CategoryManager mCategoryManager; @@ -457,25 +250,10 @@ public class SettingsDrawerActivity extends Activity { } } - /** - * @return {@code true} if IA (Information Architecture) is enabled. - */ - protected boolean isDashboardFeatureEnabled() { - return false; - } - - boolean isNavDrawerEnabled() { - return getResources().getBoolean(R.bool.config_enable_nav_drawer); - } - private class PackageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { - if (isDashboardFeatureEnabled()) { - new CategoriesUpdateTask().execute(); - } else { - new CategoriesUpdater().execute(); - } + new CategoriesUpdateTask().execute(); } } } diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerAdapter.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerAdapter.java deleted file mode 100644 index 75942f93b67bf..0000000000000 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerAdapter.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.settingslib.drawer; - -import android.graphics.drawable.Icon; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.TextView; - -import com.android.settingslib.R; - -import java.util.ArrayList; -import java.util.List; - -public class SettingsDrawerAdapter extends BaseAdapter { - - private final ArrayList mItems = new ArrayList<>(); - private final SettingsDrawerActivity mActivity; - - public SettingsDrawerAdapter(SettingsDrawerActivity activity) { - mActivity = activity; - } - - /** - * @deprecated Remove after new IA - */ - @Deprecated - void updateCategories() { - List categories = mActivity.getDashboardCategories(); - mItems.clear(); - // Spacer. - mItems.add(null); - Item tile = new Item(); - tile.label = mActivity.getString(R.string.home); - tile.icon = Icon.createWithResource(mActivity, R.drawable.home); - mItems.add(tile); - for (int i = 0; i < categories.size(); i++) { - Item category = new Item(); - category.icon = null; - DashboardCategory dashboardCategory = categories.get(i); - category.label = dashboardCategory.title; - mItems.add(category); - for (int j = 0; j < dashboardCategory.tiles.size(); j++) { - tile = new Item(); - Tile dashboardTile = dashboardCategory.tiles.get(j); - tile.label = dashboardTile.title; - tile.icon = dashboardTile.icon; - tile.tile = dashboardTile; - mItems.add(tile); - } - } - notifyDataSetChanged(); - } - - public void updateHomepageCategories(String settingPkg) { - final DashboardCategory category = CategoryManager.get(mActivity) - .getTilesByCategory(mActivity, CategoryKey.CATEGORY_HOMEPAGE, settingPkg); - mItems.clear(); - // Spacer. - mItems.add(null); - Item tile = new Item(); - tile.label = mActivity.getString(R.string.home); - tile.icon = Icon.createWithResource(mActivity, R.drawable.home); - mItems.add(tile); - for (int j = 0; j < category.tiles.size(); j++) { - tile = new Item(); - Tile dashboardTile = category.tiles.get(j); - tile.label = dashboardTile.title; - tile.icon = dashboardTile.icon; - tile.tile = dashboardTile; - mItems.add(tile); - } - notifyDataSetChanged(); - } - - public Tile getTile(int position) { - return mItems.get(position) != null ? mItems.get(position).tile : null; - } - - @Override - public int getCount() { - return mItems.size(); - } - - @Override - public Object getItem(int position) { - return mItems.get(position); - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public boolean isEnabled(int position) { - return mItems.get(position) != null && mItems.get(position).icon != null; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - Item item = mItems.get(position); - if (item == null) { - if (convertView == null || convertView.getId() != R.id.spacer) { - convertView = LayoutInflater.from(mActivity).inflate(R.layout.drawer_spacer, - parent, false); - } - return convertView; - } - if (convertView != null && convertView.getId() == R.id.spacer) { - convertView = null; - } - boolean isTile = item.icon != null; - if (convertView == null || (isTile != (convertView.getId() == R.id.tile_item))) { - convertView = LayoutInflater.from(mActivity).inflate(isTile ? R.layout.drawer_item - : R.layout.drawer_category, - parent, false); - } - if (isTile) { - ((ImageView) convertView.findViewById(android.R.id.icon)).setImageIcon(item.icon); - } - ((TextView) convertView.findViewById(android.R.id.title)).setText(item.label); - return convertView; - } - - private static class Item { - public Icon icon; - public CharSequence label; - public Tile tile; - } -} 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 c3f2f736b4414..752b5b0e152c0 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 @@ -86,16 +86,6 @@ public class SettingsDrawerActivityTest { .check(matches(isDisplayed())); } - @Test - public void startActivity_shouldNotHaveNavDrawer() { - Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); - Activity activity = instrumentation.startActivitySync( - new Intent(instrumentation.getTargetContext(), TestActivity.class)); - - assertThat(((SettingsDrawerActivity) activity).isNavDrawerEnabled()) - .isFalse(); - } - /** * Test Activity in this test. *