diff --git a/packages/SystemUI/src/com/android/systemui/tuner/PluginFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/PluginFragment.java index f91e45d05e79f..27bf534c290e7 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/PluginFragment.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/PluginFragment.java @@ -169,16 +169,23 @@ public class PluginFragment extends PreferenceFragment { protected boolean persistBoolean(boolean value) { final int desiredState = value ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED; + boolean shouldSendBroadcast = false; for (int i = 0; i < mInfo.services.length; i++) { ComponentName componentName = new ComponentName(mInfo.packageName, mInfo.services[i].name); - mPm.setComponentEnabledSetting(componentName, desiredState, - PackageManager.DONT_KILL_APP); + + if (mPm.getComponentEnabledSetting(componentName) != desiredState) { + mPm.setComponentEnabledSetting(componentName, desiredState, + PackageManager.DONT_KILL_APP); + shouldSendBroadcast = true; + } + } + if (shouldSendBroadcast) { + final String pkg = mInfo.packageName; + final Intent intent = new Intent(PluginManager.PLUGIN_CHANGED, + pkg != null ? Uri.fromParts("package", pkg, null) : null); + getContext().sendBroadcast(intent); } - final String pkg = mInfo.packageName; - final Intent intent = new Intent(PluginManager.PLUGIN_CHANGED, - pkg != null ? Uri.fromParts("package", pkg, null) : null); - getContext().sendBroadcast(intent); return true; }