summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/HomeSettings.java
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2014-07-23 18:15:42 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2014-07-23 18:20:53 -0700
commitb0a464fd2cbbe00821d483d28e76a04ac17996ea (patch)
treeb6e020e33f571ceb2dfd624ed36a96fe34e1a86a /src/com/android/settings/HomeSettings.java
parentceb335f88fc0df88dafc8063733842afe35c5da1 (diff)
downloadpackages_apps_Settings-b0a464fd2cbbe00821d483d28e76a04ac17996ea.zip
packages_apps_Settings-b0a464fd2cbbe00821d483d28e76a04ac17996ea.tar.gz
packages_apps_Settings-b0a464fd2cbbe00821d483d28e76a04ac17996ea.tar.bz2
Fix how Home Activities are refreshed
- remove that HomePackageReceiver from the AndroidManifest that could force Settings to run - use a HomePackageReceiver into HomeSettings and DashboardSummary - fix also the BatteryInfoReceiver for refreshing the Dashboard Change-Id: Id3891529fc176e7e4c450f2ce723f8ac2af66c58
Diffstat (limited to 'src/com/android/settings/HomeSettings.java')
-rw-r--r--src/com/android/settings/HomeSettings.java44
1 files changed, 35 insertions, 9 deletions
diff --git a/src/com/android/settings/HomeSettings.java b/src/com/android/settings/HomeSettings.java
index 6d5883c..9177c73 100644
--- a/src/com/android/settings/HomeSettings.java
+++ b/src/com/android/settings/HomeSettings.java
@@ -48,6 +48,7 @@ import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.RadioButton;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Index;
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
@@ -61,14 +62,23 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl
public static final String HOME_SHOW_NOTICE = "show";
- PreferenceGroup mPrefGroup;
+ private class HomePackageReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ buildHomeActivitiesList();
+ Index.getInstance(context).updateFromClassNameResource(
+ HomeSettings.class.getName(), true, true);
+ }
+ }
- PackageManager mPm;
- ComponentName[] mHomeComponentSet;
- ArrayList<HomeAppPreference> mPrefs;
- HomeAppPreference mCurrentHome = null;
- final IntentFilter mHomeFilter;
- boolean mShowNotice;
+ private PreferenceGroup mPrefGroup;
+ private PackageManager mPm;
+ private ComponentName[] mHomeComponentSet;
+ private ArrayList<HomeAppPreference> mPrefs;
+ private HomeAppPreference mCurrentHome = null;
+ private final IntentFilter mHomeFilter;
+ private boolean mShowNotice;
+ private HomePackageReceiver mHomePackageReceiver = new HomePackageReceiver();
public HomeSettings() {
mHomeFilter = new IntentFilter(Intent.ACTION_MAIN);
@@ -151,7 +161,7 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl
}
}
- void buildHomeActivitiesList() {
+ private void buildHomeActivitiesList() {
ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
ComponentName currentDefaultHome = mPm.getHomeActivities(homeActivities);
@@ -207,10 +217,26 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl
@Override
public 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.addCategory(Intent.CATEGORY_HOME);
+ filter.addCategory(Intent.CATEGORY_LAUNCHER);
+ filter.addDataScheme("package");
+ getActivity().registerReceiver(mHomePackageReceiver, filter);
+
buildHomeActivitiesList();
}
- class HomeAppPreference extends Preference {
+ @Override
+ public void onPause() {
+ super.onPause();
+ getActivity().unregisterReceiver(mHomePackageReceiver);
+ }
+
+ private class HomeAppPreference extends Preference {
ComponentName activityName;
int index;
HomeSettings fragment;