summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml2
-rw-r--r--res/drawable-hdpi/appwidget_bg.9.pngbin5836 -> 8127 bytes
-rw-r--r--res/xml/appwidget_info.xml4
-rw-r--r--src/com/android/settings/bluetooth/LocalBluetoothManager.java3
-rw-r--r--src/com/android/settings/widget/SettingsAppWidgetProvider.java49
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
index 88e84db..78fb89a 100644
--- a/res/drawable-hdpi/appwidget_bg.9.png
+++ b/res/drawable-hdpi/appwidget_bg.9.png
Binary files differ
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);
+ }
}
/**