diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2014-07-23 18:15:42 -0700 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2014-07-23 18:20:53 -0700 |
commit | b0a464fd2cbbe00821d483d28e76a04ac17996ea (patch) | |
tree | b6e020e33f571ceb2dfd624ed36a96fe34e1a86a /src/com/android/settings/HomeSettings.java | |
parent | ceb335f88fc0df88dafc8063733842afe35c5da1 (diff) | |
download | packages_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.java | 44 |
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; |