diff options
-rw-r--r-- | AndroidManifest.xml | 2 | ||||
-rw-r--r-- | res/drawable-hdpi/appwidget_bg.9.png | bin | 5836 -> 8127 bytes | |||
-rw-r--r-- | res/xml/appwidget_info.xml | 4 | ||||
-rw-r--r-- | src/com/android/settings/bluetooth/LocalBluetoothManager.java | 3 | ||||
-rw-r--r-- | src/com/android/settings/widget/SettingsAppWidgetProvider.java | 49 |
5 files changed, 47 insertions, 11 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c666871..1ea703c 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -444,7 +444,7 @@ android:label="@string/bluetooth_connect_specific_profiles_title" /> <activity android:name=".bluetooth.BluetoothPairingDialog" - android:label="@string/bluetooth_pairing_dialog" + android:label="@string/bluetooth_pairing_request" android:excludeFromRecents="true" android:theme="@*android:style/Theme.Dialog.Alert"> <intent-filter> diff --git a/res/drawable-hdpi/appwidget_bg.9.png b/res/drawable-hdpi/appwidget_bg.9.png Binary files differindex 88e84db..78fb89a 100644 --- a/res/drawable-hdpi/appwidget_bg.9.png +++ b/res/drawable-hdpi/appwidget_bg.9.png diff --git a/res/xml/appwidget_info.xml b/res/xml/appwidget_info.xml index 2186dab..8775bbc 100644 --- a/res/xml/appwidget_info.xml +++ b/res/xml/appwidget_info.xml @@ -15,8 +15,8 @@ --> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" - android:minWidth="294dip" - android:minHeight="72dip" + android:minWidth="311dip" + android:minHeight="80dip" android:initialLayout="@layout/widget" > </appwidget-provider> diff --git a/src/com/android/settings/bluetooth/LocalBluetoothManager.java b/src/com/android/settings/bluetooth/LocalBluetoothManager.java index 7037582..775b120 100644 --- a/src/com/android/settings/bluetooth/LocalBluetoothManager.java +++ b/src/com/android/settings/bluetooth/LocalBluetoothManager.java @@ -256,7 +256,8 @@ public class LocalBluetoothManager { CachedBluetoothDevice cachedDevice = mCachedDeviceManager.findDevice(device); String name = null; if (cachedDevice == null) { - name = device.getName(); + if (device != null) name = device.getName(); + if (name == null) { name = mContext.getString(R.string.bluetooth_remote_device); } diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 1f3c9f1..ab77b05 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -158,7 +158,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { } else { views.setImageViewResource(R.id.btn_brightness, R.drawable.widget_btn_brightness_off); } - if (getBackgroundDataState(context)) { + if (getSync(context)) { views.setImageViewResource(R.id.btn_sync, R.drawable.widget_btn_sync); } else { views.setImageViewResource(R.id.btn_sync, R.drawable.widget_btn_sync_off); @@ -217,7 +217,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { } else if (buttonId == BUTTON_BRIGHTNESS) { toggleBrightness(context); } else if (buttonId == BUTTON_SYNC) { - toggleBackgroundData(context); + toggleSync(context); } else if (buttonId == BUTTON_GPS) { toggleGps(context); } else if (buttonId == BUTTON_BLUETOOTH) { @@ -275,16 +275,51 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { } /** - * Toggle background data and sync tickles. + * Gets the state of auto-sync. + * + * @param context + * @return true if enabled + */ + private static boolean getSync(Context context) { + boolean backgroundData = getBackgroundDataState(context); + boolean sync = ContentResolver.getMasterSyncAutomatically(); + return backgroundData && sync; + } + + /** + * Toggle auto-sync * * @param context */ - private void toggleBackgroundData(Context context) { + private void toggleSync(Context context) { ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - boolean sync = getBackgroundDataState(context); - connManager.setBackgroundDataSetting(!sync); - ContentResolver.setMasterSyncAutomatically(!sync); + boolean backgroundData = getBackgroundDataState(context); + boolean sync = ContentResolver.getMasterSyncAutomatically(); + + // four cases to handle: + // setting toggled from off to on: + // 1. background data was off, sync was off: turn on both + if (!backgroundData && !sync) { + connManager.setBackgroundDataSetting(true); + ContentResolver.setMasterSyncAutomatically(true); + } + + // 2. background data was off, sync was on: turn on background data + if (!backgroundData && sync) { + connManager.setBackgroundDataSetting(true); + } + + // 3. background data was on, sync was off: turn on sync + if (backgroundData && !sync) { + ContentResolver.setMasterSyncAutomatically(true); + } + + // setting toggled from on to off: + // 4. background data was on, sync was on: turn off sync + if (backgroundData && sync) { + ContentResolver.setMasterSyncAutomatically(false); + } } /** |