diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2012-08-16 12:22:23 -0700 |
---|---|---|
committer | Svetoslav Ganov <svetoslavganov@google.com> | 2012-08-16 12:22:23 -0700 |
commit | ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e (patch) | |
tree | 29438f2102ae8577323f3f7de09b3b03b62e4893 | |
parent | 14250ccf22f88ce0a44b4fa1ec992da9344ffe18 (diff) | |
parent | 80c904df159f5a19517ec0246c35d69e40534747 (diff) | |
download | frameworks_base-ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e.zip frameworks_base-ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e.tar.gz frameworks_base-ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e.tar.bz2 |
resolved conflicts for merge of 80c904df to jb-mr1-dev
Change-Id: Ic2f8d64cd716d04a533ca0685d1fb0d5e2a21933
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java | 72 |
1 files changed, 63 insertions, 9 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index 4552a55..1481eb2 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -38,7 +38,6 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.content.PackageHelper; -import com.android.internal.telephony.BaseCommands; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.RILConstants; @@ -65,7 +64,7 @@ public class DatabaseHelper extends SQLiteOpenHelper { // database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion' // is properly propagated through your change. Not doing so will result in a loss of user // settings. - private static final int DATABASE_VERSION = 80; + private static final int DATABASE_VERSION = 81; private Context mContext; @@ -1073,9 +1072,55 @@ public class DatabaseHelper extends SQLiteOpenHelper { upgradeVersion = 79; } + if (upgradeVersion == 79) { + // Before touch exploration was a global setting controlled by the user + // via the UI. However, if the enabled accessibility services do not + // handle touch exploration mode, enabling it makes no sense. Therefore, + // now the services request touch exploration mode and the user is + // presented with a dialog to allow that and if she does we store that + // in the database. As a result of this change a user that has enabled + // accessibility, touch exploration, and some accessibility services + // may lose touch exploration state, thus rendering the device useless + // unless sighted help is provided, since the enabled service(s) are + // not in the list of services to which the user granted a permission + // to put the device in touch explore mode. Here we are allowing all + // enabled accessibility services to toggle touch exploration provided + // accessibility and touch exploration are enabled and no services can + // toggle touch exploration. Note that the user has already manually + // enabled the services and touch exploration which means the she has + // given consent to have these services work in touch exploration mode. + final boolean accessibilityEnabled = getIntValueFromTable(db, "secure", + Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1; + final boolean touchExplorationEnabled = getIntValueFromTable(db, "secure", + Settings.Secure.TOUCH_EXPLORATION_ENABLED, 0) == 1; + if (accessibilityEnabled && touchExplorationEnabled) { + String enabledServices = getStringValueFromTable(db, "secure", + Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, ""); + String touchExplorationGrantedServices = getStringValueFromTable(db, "secure", + Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES, ""); + if (TextUtils.isEmpty(touchExplorationGrantedServices) + && !TextUtils.isEmpty(enabledServices)) { + SQLiteStatement stmt = null; + try { + db.beginTransaction(); + stmt = db.compileStatement("INSERT OR REPLACE INTO secure(name,value)" + + " VALUES(?,?);"); + loadSetting(stmt, + Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES, + enabledServices); + db.setTransactionSuccessful(); + } finally { + db.endTransaction(); + if (stmt != null) stmt.close(); + } + } + } + upgradeVersion = 80; + } + // vvv Jelly Bean MR1 changes begin here vvv - if (upgradeVersion == 79) { + if (upgradeVersion == 80) { // update screensaver settings db.beginTransaction(); SQLiteStatement stmt = null; @@ -1093,10 +1138,9 @@ public class DatabaseHelper extends SQLiteOpenHelper { db.endTransaction(); if (stmt != null) stmt.close(); } - upgradeVersion = 80; + upgradeVersion = 81; } - // *** Remember to update DATABASE_VERSION above! if (upgradeVersion != currentVersion) { @@ -1743,18 +1787,28 @@ public class DatabaseHelper extends SQLiteOpenHelper { } private int getIntValueFromSystem(SQLiteDatabase db, String name, int defaultValue) { - int value = defaultValue; + return getIntValueFromTable(db, "system", name, defaultValue); + } + + private int getIntValueFromTable(SQLiteDatabase db, String table, String name, + int defaultValue) { + String value = getStringValueFromTable(db, table, name, null); + return (value != null) ? Integer.parseInt(value) : defaultValue; + } + + private String getStringValueFromTable(SQLiteDatabase db, String table, String name, + String defaultValue) { Cursor c = null; try { - c = db.query("system", new String[] { Settings.System.VALUE }, "name='" + name + "'", + c = db.query(table, new String[] { Settings.System.VALUE }, "name='" + name + "'", null, null, null, null); if (c != null && c.moveToFirst()) { String val = c.getString(0); - value = val == null ? defaultValue : Integer.parseInt(val); + return val == null ? defaultValue : val; } } finally { if (c != null) c.close(); } - return value; + return defaultValue; } } |