Merge "Add Settings Dashboard refresh for Home activities" into lmp-dev

This commit is contained in:
Fabrice Di Meglio
2014-07-23 23:31:37 +00:00
committed by Android (Google) Code Review

View File

@@ -135,6 +135,7 @@ public class SettingsActivity extends Activity
private static final String SAVE_KEY_SEARCH_QUERY = ":settings:search_query"; private static final String SAVE_KEY_SEARCH_QUERY = ":settings:search_query";
private static final String SAVE_KEY_SHOW_HOME_AS_UP = ":settings:show_home_as_up"; private static final String SAVE_KEY_SHOW_HOME_AS_UP = ":settings:show_home_as_up";
private static final String SAVE_KEY_SHOW_SEARCH = ":settings:show_search"; private static final String SAVE_KEY_SHOW_SEARCH = ":settings:show_search";
private static final String SAVE_KEY_HOME_ACTIVITIES_COUNT = ":settings:home_activities_count";
/** /**
* When starting this activity, the invoking Intent can contain this extra * When starting this activity, the invoking Intent can contain this extra
@@ -350,6 +351,7 @@ public class SettingsActivity extends Activity
}; };
private boolean mNeedToRevertToInitialFragment = false; private boolean mNeedToRevertToInitialFragment = false;
private int mHomeActivitiesCount = 1;
public SwitchBar getSwitchBar() { public SwitchBar getSwitchBar() {
return mSwitchBar; return mSwitchBar;
@@ -527,6 +529,8 @@ public class SettingsActivity extends Activity
mDisplayHomeAsUpEnabled = savedState.getBoolean(SAVE_KEY_SHOW_HOME_AS_UP); mDisplayHomeAsUpEnabled = savedState.getBoolean(SAVE_KEY_SHOW_HOME_AS_UP);
mDisplaySearch = savedState.getBoolean(SAVE_KEY_SHOW_SEARCH); mDisplaySearch = savedState.getBoolean(SAVE_KEY_SHOW_SEARCH);
mHomeActivitiesCount = savedState.getInt(SAVE_KEY_HOME_ACTIVITIES_COUNT,
1 /* one home activity by default */);
} else { } else {
if (!mIsShowingDashboard) { if (!mIsShowingDashboard) {
// Search is shown we are launched thru a Settings "shortcut". UP will be shown // Search is shown we are launched thru a Settings "shortcut". UP will be shown
@@ -614,6 +618,14 @@ public class SettingsActivity extends Activity
} }
} }
} }
mHomeActivitiesCount = getHomeActivitiesCount();
}
private int getHomeActivitiesCount() {
final ArrayList<ResolveInfo> homeApps = new ArrayList<ResolveInfo>();
getPackageManager().getHomeActivities(homeApps);
return homeApps.size();
} }
private void setTitleFromIntent(Intent intent) { private void setTitleFromIntent(Intent intent) {
@@ -689,12 +701,21 @@ public class SettingsActivity extends Activity
String query = (mSearchView != null) ? mSearchView.getQuery().toString() : EMPTY_QUERY; String query = (mSearchView != null) ? mSearchView.getQuery().toString() : EMPTY_QUERY;
outState.putString(SAVE_KEY_SEARCH_QUERY, query); outState.putString(SAVE_KEY_SEARCH_QUERY, query);
} }
outState.putInt(SAVE_KEY_HOME_ACTIVITIES_COUNT, mHomeActivitiesCount);
} }
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
final int newHomeActivityCount = getHomeActivitiesCount();
if (newHomeActivityCount != mHomeActivitiesCount) {
mHomeActivitiesCount = newHomeActivityCount;
setNeedToRebuildCategories(true);
invalidateCategories();
}
mDevelopmentPreferencesListener = new SharedPreferences.OnSharedPreferenceChangeListener() { mDevelopmentPreferencesListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
@@ -1146,9 +1167,7 @@ public class SettingsActivity extends Activity
} }
try { try {
final ArrayList<ResolveInfo> homeApps = new ArrayList<ResolveInfo>(); if (mHomeActivitiesCount < 2) {
getPackageManager().getHomeActivities(homeApps);
if (homeApps.size() < 2) {
// When there's only one available home app, omit this settings // When there's only one available home app, omit this settings
// category entirely at the top level UI. If the user just // category entirely at the top level UI. If the user just
// uninstalled the penultimate home app candidiate, we also // uninstalled the penultimate home app candidiate, we also