From 4b21f7cd9424eeb83838071a4419912ee5d5e41d Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 6 Oct 2010 14:28:23 -0700 Subject: Fix issue #3062691: GPS enable bypass via com.android.settings.widget.SettingsAppWidgetProvider Make the receiver private. Also fix to correctly update when sync status changes. Change-Id: I35481bf5b473196b00427da4df49aa76f691d38b --- .../android/settings/widget/SettingsAppWidgetProvider.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/com/android/settings/widget') diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 533b5e4ed..8f17e05e6 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -23,8 +23,8 @@ import android.bluetooth.BluetoothAdapter; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; -import android.content.IContentService; import android.content.Intent; +import android.content.SyncStorageEngine; import android.content.pm.PackageManager; import android.location.LocationManager; import android.net.ConnectivityManager; @@ -538,9 +538,6 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { @Override public void onActualStateChange(Context context, Intent unused) { - // Well, ACTION_CLOSE_SYSTEM_DIALOGS fired. So _maybe_ - // the Sync settings changed. - // TODO: find something more reliable. setCurrentState(context, getActualState(context)); } @@ -713,11 +710,8 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { sBluetoothState.onActualStateChange(context, intent); } else if (LocationManager.PROVIDERS_CHANGED_ACTION.equals(action)) { sGpsState.onActualStateChange(context, intent); - } else if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) { - // Sadly, for lack of a "sync settings changed" intent, - // this is where we check where sync is enabled or not. - // It's not 100% reliable though as there are paths where - // this doesn't fire. + } else if (SyncStorageEngine.SYNC_CONNECTION_SETTING_CHANGED_INTENT.getAction() + .equals(action)) { sSyncState.onActualStateChange(context, intent); } else if (intent.hasCategory(Intent.CATEGORY_ALTERNATIVE)) { Uri data = intent.getData(); -- cgit v1.2.3