DatabaseHelper.java revision 0499bb5de45cf5542db7ac42406cd856d3386f1f
154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project/* 254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * 454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * you may not use this file except in compliance with the License. 654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * You may obtain a copy of the License at 754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * 854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * 1054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * See the License for the specific language governing permissions and 1454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * limitations under the License. 1554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */ 1654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 1754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectpackage com.android.providers.settings; 1854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 1954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.content.ComponentName; 2054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.content.ContentValues; 2154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.content.Context; 2254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.content.Intent; 2354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.content.pm.ActivityInfo; 2413579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackbornimport android.content.pm.IPackageManager; 2554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.content.pm.PackageManager; 26f02811f7853202c0934622702ebb9c82e6ab0592Romain Guyimport android.content.res.XmlResourceParser; 2754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.database.Cursor; 2854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.database.sqlite.SQLiteDatabase; 2954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.database.sqlite.SQLiteOpenHelper; 3054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.database.sqlite.SQLiteStatement; 3154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.media.AudioManager; 3254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.media.AudioService; 3354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.net.ConnectivityManager; 34147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichetimport android.os.Build; 3506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tateimport android.os.Environment; 3613579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackbornimport android.os.RemoteException; 3713579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackbornimport android.os.ServiceManager; 3854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.os.SystemProperties; 3906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tateimport android.os.UserHandle; 4054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.provider.Settings; 41625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkeyimport android.provider.Settings.Global; 42156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasaniimport android.provider.Settings.Secure; 4354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.text.TextUtils; 4454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport android.util.Log; 4540e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu 460499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.comimport com.android.ims.ImsConfig; 47fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport com.android.internal.content.PackageHelper; 48fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport com.android.internal.telephony.RILConstants; 49b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kallaimport com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager; 50fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport com.android.internal.util.XmlUtils; 51fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport com.android.internal.widget.LockPatternUtils; 52fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport com.android.internal.widget.LockPatternView; 53fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne 54fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport org.xmlpull.v1.XmlPullParser; 55fa53d3002fadf8640600c1840962021a821b8baeGilles Debunneimport org.xmlpull.v1.XmlPullParserException; 56fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne 5706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tateimport java.io.File; 5854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport java.io.IOException; 5924117ce3ae32c40798d2d9bda80675814f76730dDianne Hackbornimport java.util.HashSet; 6054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Projectimport java.util.List; 6154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 6254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project/** 6354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Database helper class for {@link SettingsProvider}. 6454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Mostly just has a bit {@link #onCreate} to initialize the database. 6554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */ 66074da8f9aa424b25d84f4e4eb762ca534ea96716James Wylderpublic class DatabaseHelper extends SQLiteOpenHelper { 6754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private static final String TAG = "SettingsProvider"; 6854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private static final String DATABASE_NAME = "settings.db"; 69f186055a53758fd4112ab3c470cda6337a18fa33Jim Miller 70f186055a53758fd4112ab3c470cda6337a18fa33Jim Miller // Please, please please. If you update the database version, check to make sure the 71f186055a53758fd4112ab3c470cda6337a18fa33Jim Miller // database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion' 72f186055a53758fd4112ab3c470cda6337a18fa33Jim Miller // is properly propagated through your change. Not doing so will result in a loss of user 73f186055a53758fd4112ab3c470cda6337a18fa33Jim Miller // settings. 740499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com private static final int DATABASE_VERSION = 114; 759bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 7654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private Context mContext; 7706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private int mUserHandle; 7854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 7924117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn private static final HashSet<String> mValidTables = new HashSet<String>(); 8024117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn 8106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private static final String TABLE_SYSTEM = "system"; 8206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private static final String TABLE_SECURE = "secure"; 8306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private static final String TABLE_GLOBAL = "global"; 8406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 8524117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn static { 8606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate mValidTables.add(TABLE_SYSTEM); 8706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate mValidTables.add(TABLE_SECURE); 8806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate mValidTables.add(TABLE_GLOBAL); 8924117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn mValidTables.add("bluetooth_devices"); 9024117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn mValidTables.add("bookmarks"); 9124117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn 9224117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn // These are old. 9324117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn mValidTables.add("favorites"); 9424117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn mValidTables.add("gservices"); 9524117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn mValidTables.add("old_favorites"); 9624117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn } 9724117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn 9806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate static String dbNameForUser(final int userHandle) { 9906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // The owner gets the unadorned db name; 10006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (userHandle == UserHandle.USER_OWNER) { 10106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate return DATABASE_NAME; 10206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } else { 10306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Place the database in the user-specific data tree so that it's 10406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // cleaned up automatically when the user is deleted. 10506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate File databaseFile = new File( 10606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate Environment.getUserSystemDirectory(userHandle), DATABASE_NAME); 10706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate return databaseFile.getPath(); 10806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 10906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 11006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 11106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate public DatabaseHelper(Context context, int userHandle) { 11206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate super(context, dbNameForUser(userHandle), null, DATABASE_VERSION); 11354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project mContext = context; 11406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate mUserHandle = userHandle; 11554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 11654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 11724117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn public static boolean isValidTable(String name) { 11824117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn return mValidTables.contains(name); 11924117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn } 12024117ce3ae32c40798d2d9bda80675814f76730dDianne Hackborn 121f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project private void createSecureTable(SQLiteDatabase db) { 122f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("CREATE TABLE secure (" + 123f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project "_id INTEGER PRIMARY KEY AUTOINCREMENT," + 124f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project "name TEXT UNIQUE ON CONFLICT REPLACE," + 125f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project "value TEXT" + 126f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project ");"); 127f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("CREATE INDEX secureIndex1 ON secure (name);"); 128f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 1299bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 13006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private void createGlobalTable(SQLiteDatabase db) { 13106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate db.execSQL("CREATE TABLE global (" + 13206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "_id INTEGER PRIMARY KEY AUTOINCREMENT," + 13306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "name TEXT UNIQUE ON CONFLICT REPLACE," + 13406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "value TEXT" + 13506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate ");"); 13606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate db.execSQL("CREATE INDEX globalIndex1 ON global (name);"); 13706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 13806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 13954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project @Override 14054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project public void onCreate(SQLiteDatabase db) { 14154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("CREATE TABLE system (" + 14254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "_id INTEGER PRIMARY KEY AUTOINCREMENT," + 14354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "name TEXT UNIQUE ON CONFLICT REPLACE," + 14454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "value TEXT" + 14554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project ");"); 14654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("CREATE INDEX systemIndex1 ON system (name);"); 14754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 148f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project createSecureTable(db); 149f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project 15006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Only create the global table for the singleton 'owner' user 15106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 15206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate createGlobalTable(db); 15306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 15406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 15554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("CREATE TABLE bluetooth_devices (" + 15654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "_id INTEGER PRIMARY KEY," + 15754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "name TEXT," + 15854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "addr TEXT," + 15954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "channel INTEGER," + 16054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "type INTEGER" + 16154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project ");"); 16254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 16354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("CREATE TABLE bookmarks (" + 16454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "_id INTEGER PRIMARY KEY," + 16554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "title TEXT," + 16654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "folder TEXT," + 16754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "intent TEXT," + 16854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "shortcut INTEGER," + 16954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project "ordering INTEGER" + 17054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project ");"); 17154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 17254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("CREATE INDEX bookmarksIndex1 ON bookmarks (folder);"); 17354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("CREATE INDEX bookmarksIndex2 ON bookmarks (shortcut);"); 17454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 17554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Populate bookmarks table with initial bookmarks 17613579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn boolean onlyCore = false; 17713579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn try { 17813579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn onlyCore = IPackageManager.Stub.asInterface(ServiceManager.getService( 17913579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn "package")).isOnlyCoreApps(); 18013579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn } catch (RemoteException e) { 18113579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn } 18213579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn if (!onlyCore) { 18313579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn loadBookmarks(db); 18413579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn } 18554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 18654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Load initial volume levels into DB 18754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project loadVolumeLevels(db); 18854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 18954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Load inital settings values 19054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project loadSettings(db); 19154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 19254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 19354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project @Override 19454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) { 19554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project Log.w(TAG, "Upgrading settings database from version " + oldVersion + " to " 19654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project + currentVersion); 1979bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 19854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project int upgradeVersion = oldVersion; 19954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 20054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Pattern for upgrade blocks: 20154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // 20254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // if (upgradeVersion == [the DATABASE_VERSION you set] - 1) { 20354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // .. your upgrade logic.. 20454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // upgradeVersion = [the DATABASE_VERSION you set] 20554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // } 2069bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 20754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (upgradeVersion == 20) { 20854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project /* 20954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Version 21 is part of the volume control refresh. There is no 21054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * longer a UI-visible for setting notification vibrate on/off (in 21154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * our design), but the functionality still exists. Force the 21254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * notification vibrate to on. 21354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */ 21454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project loadVibrateSetting(db, true); 21554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 21654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project upgradeVersion = 21; 21754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 2189bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 21954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (upgradeVersion < 22) { 22054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project upgradeVersion = 22; 22154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Upgrade the lock gesture storage location and format 22254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project upgradeLockPatternLocation(db); 22354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 22454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 22554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (upgradeVersion < 23) { 22654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("UPDATE favorites SET iconResource=0 WHERE iconType=0"); 22754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project upgradeVersion = 23; 22854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 22954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 23054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (upgradeVersion == 23) { 23154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.beginTransaction(); 23254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project try { 23354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("ALTER TABLE favorites ADD spanX INTEGER"); 23454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("ALTER TABLE favorites ADD spanY INTEGER"); 23554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Shortcuts, applications, folders 23654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("UPDATE favorites SET spanX=1, spanY=1 WHERE itemType<=0"); 23754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Photo frames, clocks 23804e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville db.execSQL( 23904e71b3db84fd5f7fc4eefb49a33154ea91ec9fcWink Saville "UPDATE favorites SET spanX=2, spanY=2 WHERE itemType=1000 or itemType=1002"); 24054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Search boxes 24154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("UPDATE favorites SET spanX=4, spanY=1 WHERE itemType=1001"); 24254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.setTransactionSuccessful(); 24354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } finally { 24454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.endTransaction(); 24554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 24654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project upgradeVersion = 24; 24754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 2489bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 24954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (upgradeVersion == 24) { 25054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.beginTransaction(); 25154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project try { 25254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // The value of the constants for preferring wifi or preferring mobile have been 25354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // swapped, so reload the default. 25454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DELETE FROM system WHERE name='network_preference'"); 25554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("INSERT INTO system ('name', 'value') values ('network_preference', '" + 25654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project ConnectivityManager.DEFAULT_NETWORK_PREFERENCE + "')"); 25754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.setTransactionSuccessful(); 25854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } finally { 25954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.endTransaction(); 26054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 26154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project upgradeVersion = 25; 26254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 263f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project 264f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project if (upgradeVersion == 25) { 265f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.beginTransaction(); 266f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project try { 267f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("ALTER TABLE favorites ADD uri TEXT"); 268f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("ALTER TABLE favorites ADD displayMode INTEGER"); 269f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.setTransactionSuccessful(); 270f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } finally { 271f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.endTransaction(); 272f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 273f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project upgradeVersion = 26; 274f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 2759bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 276f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project if (upgradeVersion == 26) { 277f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project // This introduces the new secure settings table. 278f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.beginTransaction(); 279f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project try { 280f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project createSecureTable(db); 281f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.setTransactionSuccessful(); 282f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } finally { 283f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.endTransaction(); 284f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 285f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project upgradeVersion = 27; 286f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 2879bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 288f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project if (upgradeVersion == 27) { 289156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani String[] settingsToMove = { 290f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.ADB_ENABLED, 291f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.ANDROID_ID, 292f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.BLUETOOTH_ON, 293f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.DATA_ROAMING, 294f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.DEVICE_PROVISIONED, 295f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.HTTP_PROXY, 296f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.INSTALL_NON_MARKET_APPS, 297f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.LOCATION_PROVIDERS_ALLOWED, 298f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.LOGGING_ID, 299f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.NETWORK_PREFERENCE, 300f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.PARENTAL_CONTROL_ENABLED, 301f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.PARENTAL_CONTROL_LAST_UPDATE, 302f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.PARENTAL_CONTROL_REDIRECT_URL, 303f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.SETTINGS_CLASSNAME, 304f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.USB_MASS_STORAGE_ENABLED, 305f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.USE_GOOGLE_MAIL, 306f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 307f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY, 308f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_NUM_OPEN_NETWORKS_KEPT, 309f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_ON, 310f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE, 311f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_AP_COUNT, 312f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS, 313f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED, 314f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS, 315f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT, 316f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_MAX_AP_CHECKS, 317f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_ON, 318f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_PING_COUNT, 319f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_PING_DELAY_MS, 320f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS, 321f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project }; 3229219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false); 323f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project upgradeVersion = 28; 324f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 3259bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 326f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project if (upgradeVersion == 28 || upgradeVersion == 29) { 327f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project // Note: The upgrade to 28 was flawed since it didn't delete the old 328f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project // setting first before inserting. Combining 28 and 29 with the 329f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project // fixed version. 330f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project 331f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project // This upgrade adds the STREAM_NOTIFICATION type to the list of 332f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project // types affected by ringer modes (silent, vibrate, etc.) 333f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.beginTransaction(); 334f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project try { 335f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("DELETE FROM system WHERE name='" 336f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "'"); 337f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project int newValue = (1 << AudioManager.STREAM_RING) 338f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project | (1 << AudioManager.STREAM_NOTIFICATION) 339f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project | (1 << AudioManager.STREAM_SYSTEM); 340f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("INSERT INTO system ('name', 'value') values ('" 341f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "', '" 342f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project + String.valueOf(newValue) + "')"); 343f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.setTransactionSuccessful(); 344f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } finally { 345f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.endTransaction(); 346f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 3479bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 348f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project upgradeVersion = 30; 349f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 3509bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 3519266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project if (upgradeVersion == 30) { 3529266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project /* 3539266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project * Upgrade 31 clears the title for all quick launch shortcuts so the 3549266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project * activities' titles will be resolved at display time. Also, the 3559266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project * folder is changed to '@quicklaunch'. 3569266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project */ 3579266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project db.beginTransaction(); 3589266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project try { 3599266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project db.execSQL("UPDATE bookmarks SET folder = '@quicklaunch'"); 3609266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project db.execSQL("UPDATE bookmarks SET title = ''"); 3619266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project db.setTransactionSuccessful(); 3629266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project } finally { 3639266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project db.endTransaction(); 3649266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project } 3659266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project upgradeVersion = 31; 3669266c558bf1d21ff647525ff99f7dadbca417309The Android Open Source Project } 367f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (upgradeVersion == 31) { 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* 370ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project * Animations are now managed in preferences, and may be 371ba87e3e6c985e7175152993b5efcc7dd2f0e1c93The Android Open Source Project * enabled or disabled based on product resources. 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.beginTransaction(); 37489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.execSQL("DELETE FROM system WHERE name='" 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + Settings.System.WINDOW_ANIMATION_SCALE + "'"); 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.execSQL("DELETE FROM system WHERE name='" 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + Settings.System.TRANSITION_ANIMATION_SCALE + "'"); 38089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT INTO system(name,value)" 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + " VALUES(?,?);"); 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadDefaultAnimationSettings(stmt); 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.setTransactionSuccessful(); 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } finally { 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.endTransaction(); 38689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project upgradeVersion = 32; 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (upgradeVersion == 32) { 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // The Wi-Fi watchdog SSID list is now seeded with the value of 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // the property ro.com.android.wifi-watchlist 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String wifiWatchList = SystemProperties.get("ro.com.android.wifi-watchlist"); 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (!TextUtils.isEmpty(wifiWatchList)) { 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.beginTransaction(); 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.execSQL("INSERT OR IGNORE INTO secure(name,value) values('" + 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Settings.Secure.WIFI_WATCHDOG_WATCH_LIST + "','" + 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project wifiWatchList + "');"); 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.setTransactionSuccessful(); 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } finally { 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project db.endTransaction(); 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project upgradeVersion = 33; 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 4089bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 4094df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project if (upgradeVersion == 33) { 4104df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project // Set the default zoom controls to: tap-twice to bring up +/- 4114df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project db.beginTransaction(); 4124df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project try { 4134df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project db.execSQL("INSERT INTO system(name,value) values('zoom','2');"); 4144df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project db.setTransactionSuccessful(); 4154df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project } finally { 4164df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project db.endTransaction(); 4174df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project } 4184df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project upgradeVersion = 34; 4194df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project } 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 421bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood if (upgradeVersion == 34) { 422bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood db.beginTransaction(); 42389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 424bcab8df83e6e769a7cbcc742e72b47d665998793Mike Lockwood try { 42589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 426cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn + " VALUES(?,?);"); 427cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn loadSecure35Settings(stmt); 428cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn db.setTransactionSuccessful(); 429cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn } finally { 430cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn db.endTransaction(); 43189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 432cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn } 433f186055a53758fd4112ab3c470cda6337a18fa33Jim Miller upgradeVersion = 35; 43402901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood } 43502901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood // due to a botched merge from donut to eclair, the initialization of ASSISTED_GPS_ENABLED 43602901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood // was accidentally done out of order here. 43702901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood // to fix this, ASSISTED_GPS_ENABLED is now initialized while upgrading from 38 to 39, 43802901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood // and we intentionally do nothing from 35 to 36 now. 43902901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood if (upgradeVersion == 35) { 440575d1af980f4b4866325bfc487455f54606cf49eThe Android Open Source Project upgradeVersion = 36; 441cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn } 44202901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood 443a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent if (upgradeVersion == 36) { 444a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent // This upgrade adds the STREAM_SYSTEM_ENFORCED type to the list of 445a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent // types affected by ringer modes (silent, vibrate, etc.) 446a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent db.beginTransaction(); 447a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent try { 448a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent db.execSQL("DELETE FROM system WHERE name='" 449a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "'"); 450a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent int newValue = (1 << AudioManager.STREAM_RING) 451a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent | (1 << AudioManager.STREAM_NOTIFICATION) 452a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent | (1 << AudioManager.STREAM_SYSTEM) 453a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent | (1 << AudioManager.STREAM_SYSTEM_ENFORCED); 454a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent db.execSQL("INSERT INTO system ('name', 'value') values ('" 455a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "', '" 456a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent + String.valueOf(newValue) + "')"); 457a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent db.setTransactionSuccessful(); 458a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent } finally { 459a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent db.endTransaction(); 460a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent } 4614880575bacd9f49d864e8b61efca8cdeb231895cJim Miller upgradeVersion = 37; 462a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent } 463a553c25b33c99b345cf1c8688f8df0ed8df14e5aEric Laurent 464bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood if (upgradeVersion == 37) { 465bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood db.beginTransaction(); 46689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 467bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood try { 46889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 469bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood + " VALUES(?,?);"); 470bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood loadStringSetting(stmt, Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS, 471bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood R.string.airplane_mode_toggleable_radios); 472bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood db.setTransactionSuccessful(); 473bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood } finally { 474bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood db.endTransaction(); 47589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 476bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood } 477bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood upgradeVersion = 38; 478bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood } 479bd5ddf01e4d629982fa8bb667d4be7c5ec3aa79fMike Lockwood 48002901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood if (upgradeVersion == 38) { 48102901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood db.beginTransaction(); 48202901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood try { 48302901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood String value = 48402901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood mContext.getResources().getBoolean(R.bool.assisted_gps_enabled) ? "1" : "0"; 48502901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood db.execSQL("INSERT OR IGNORE INTO secure(name,value) values('" + 486bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.ASSISTED_GPS_ENABLED + "','" + value + "');"); 48702901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood db.setTransactionSuccessful(); 48802901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood } finally { 48902901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood db.endTransaction(); 49002901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood } 49102901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood 49202901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood upgradeVersion = 39; 49302901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood } 49402901eb7f21751b8a9486ffa9f50531bd59133a2Mike Lockwood 495951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy if (upgradeVersion == 39) { 496f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani upgradeAutoBrightness(db); 497951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy upgradeVersion = 40; 498951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy } 499951764b97010dfa073126f52b43ea1bdf1b35998Dan Murphy 500bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn if (upgradeVersion == 40) { 501bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn /* 502bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn * All animations are now turned on by default! 503bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn */ 504bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn db.beginTransaction(); 50589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 506bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn try { 507bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn db.execSQL("DELETE FROM system WHERE name='" 508bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn + Settings.System.WINDOW_ANIMATION_SCALE + "'"); 509bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn db.execSQL("DELETE FROM system WHERE name='" 510bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn + Settings.System.TRANSITION_ANIMATION_SCALE + "'"); 51189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT INTO system(name,value)" 512bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn + " VALUES(?,?);"); 513bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn loadDefaultAnimationSettings(stmt); 514bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn db.setTransactionSuccessful(); 515bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn } finally { 516bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn db.endTransaction(); 51789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 518bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn } 519bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn upgradeVersion = 41; 520bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn } 521bfe319e06aa56c081d0d94d64a8181291d7f7388Dianne Hackborn 522075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn if (upgradeVersion == 41) { 523075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn /* 524075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn * Initialize newly public haptic feedback setting 525075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn */ 526075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn db.beginTransaction(); 52789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 528075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn try { 529075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn db.execSQL("DELETE FROM system WHERE name='" 530075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn + Settings.System.HAPTIC_FEEDBACK_ENABLED + "'"); 53189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT INTO system(name,value)" 532075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn + " VALUES(?,?);"); 533075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn loadDefaultHapticSettings(stmt); 534075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn db.setTransactionSuccessful(); 535075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn } finally { 536075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn db.endTransaction(); 53789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 538075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn } 539075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn upgradeVersion = 42; 540075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn } 541075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn 542ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani if (upgradeVersion == 42) { 543ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani /* 544ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani * Initialize new notification pulse setting 545ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani */ 546ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani db.beginTransaction(); 54789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 548ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani try { 54989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT INTO system(name,value)" 550ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani + " VALUES(?,?);"); 551ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_PULSE, 552ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani R.bool.def_notification_pulse); 553ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani db.setTransactionSuccessful(); 554ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani } finally { 555ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani db.endTransaction(); 55689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 557ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani } 558ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani upgradeVersion = 43; 559ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani } 560ae3ed706702a5ebe6ffcc08b941b1401c9a24b89Amith Yamasani 561484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent if (upgradeVersion == 43) { 562484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent /* 563484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent * This upgrade stores bluetooth volume separately from voice volume 564484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent */ 565484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent db.beginTransaction(); 56689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 567484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent try { 56889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 569484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent + " VALUES(?,?);"); 570484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent loadSetting(stmt, Settings.System.VOLUME_BLUETOOTH_SCO, 571484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_BLUETOOTH_SCO]); 572484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent db.setTransactionSuccessful(); 573484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent } finally { 574484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent db.endTransaction(); 57589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 576484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent } 577484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent upgradeVersion = 44; 578484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent } 579484d2888680e18e6ad8c3fcc51e3b70a705a096eEric Laurent 580aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker if (upgradeVersion == 44) { 581aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker /* 582aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker * Gservices was moved into vendor/google. 583aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker */ 584aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker db.execSQL("DROP TABLE IF EXISTS gservices"); 585aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker db.execSQL("DROP INDEX IF EXISTS gservicesIndex1"); 586aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker upgradeVersion = 45; 587aed8f8eb1491a21c8c71d39258b70edb74533a62Doug Zongker } 58887734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat 58987734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat if (upgradeVersion == 45) { 59087734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat /* 59187734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat * New settings for MountService 59287734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat */ 59387734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.beginTransaction(); 59487734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat try { 59587734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.execSQL("INSERT INTO secure(name,value) values('" + 59687734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat Settings.Secure.MOUNT_PLAY_NOTIFICATION_SND + "','1');"); 59787734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.execSQL("INSERT INTO secure(name,value) values('" + 59887734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat Settings.Secure.MOUNT_UMS_AUTOSTART + "','0');"); 59987734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.execSQL("INSERT INTO secure(name,value) values('" + 60087734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat Settings.Secure.MOUNT_UMS_PROMPT + "','1');"); 60187734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.execSQL("INSERT INTO secure(name,value) values('" + 60287734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat Settings.Secure.MOUNT_UMS_NOTIFY_ENABLED + "','1');"); 60387734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.setTransactionSuccessful(); 60487734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat } finally { 60587734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat db.endTransaction(); 60687734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat } 60787734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat upgradeVersion = 46; 60887734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat } 60987734d3bc118cba8f42845ddd51f10edadb84abfSan Mehat 610df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn if (upgradeVersion == 46) { 611df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn /* 612df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn * The password mode constants have changed; reset back to no 613df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn * password. 614df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn */ 615df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn db.beginTransaction(); 616df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn try { 617df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn db.execSQL("DELETE FROM system WHERE name='lockscreen.password_type';"); 618df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn db.setTransactionSuccessful(); 619df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn } finally { 620df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn db.endTransaction(); 621df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn } 622df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn upgradeVersion = 47; 623df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn } 624df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn 6256176677e01964cb5751ff217c091571ce6a8b5fbJim Miller 6269327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn if (upgradeVersion == 47) { 6279327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn /* 6289327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn * The password mode constants have changed again; reset back to no 6299327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn * password. 6309327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn */ 6319327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn db.beginTransaction(); 6329327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn try { 6339327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn db.execSQL("DELETE FROM system WHERE name='lockscreen.password_type';"); 6349327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn db.setTransactionSuccessful(); 6359327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } finally { 6369327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn db.endTransaction(); 6379327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } 6389327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn upgradeVersion = 48; 6399327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn } 6406176677e01964cb5751ff217c091571ce6a8b5fbJim Miller 6415d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau if (upgradeVersion == 48) { 6425d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau /* 64321f1bd17b2dfe361acbb28453b3f3b1a110932faDianne Hackborn * Default recognition service no longer initialized here, 64421f1bd17b2dfe361acbb28453b3f3b1a110932faDianne Hackborn * moved to RecognitionManagerService. 6455d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau */ 6465d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau upgradeVersion = 49; 6475d34e9b63d5305934dcedac11e8dd658ae23c174Mike LeBeau } 64831f90b62e8c83270094f5b0b4c75a0e06d72cd75Jim Miller 6490e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler if (upgradeVersion == 49) { 6500e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler /* 6510e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler * New settings for new user interface noises. 6520e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler */ 6530e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler db.beginTransaction(); 65489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 6550e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler try { 65689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT INTO system(name,value)" 6570e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler + " VALUES(?,?);"); 6580e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler loadUISoundEffectsSettings(stmt); 6590e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler db.setTransactionSuccessful(); 6600e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler } finally { 6610e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler db.endTransaction(); 66289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 6630e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler } 6640e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler 6650e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler upgradeVersion = 50; 6660e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler } 6670e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler 668f1cbfff03ac53be9475f419d16a2e79b6c28a494Oscar Montemayor if (upgradeVersion == 50) { 669f1cbfff03ac53be9475f419d16a2e79b6c28a494Oscar Montemayor /* 67040e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu * Install location no longer initiated here. 671f1cbfff03ac53be9475f419d16a2e79b6c28a494Oscar Montemayor */ 672f1cbfff03ac53be9475f419d16a2e79b6c28a494Oscar Montemayor upgradeVersion = 51; 673f1cbfff03ac53be9475f419d16a2e79b6c28a494Oscar Montemayor } 674f1cbfff03ac53be9475f419d16a2e79b6c28a494Oscar Montemayor 675156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani if (upgradeVersion == 51) { 676156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani /* Move the lockscreen related settings to Secure, including some private ones. */ 677156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani String[] settingsToMove = { 678156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani Secure.LOCK_PATTERN_ENABLED, 679156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani Secure.LOCK_PATTERN_VISIBLE, 680156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED, 681156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani "lockscreen.password_type", 682156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani "lockscreen.lockoutattemptdeadline", 683156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani "lockscreen.patterneverchosen", 684156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani "lock_pattern_autolock", 685156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani "lockscreen.lockedoutpermanently", 686156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani "lockscreen.password_salt" 687156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani }; 6889219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false); 689156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani upgradeVersion = 52; 690156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } 691156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani 6921c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler if (upgradeVersion == 52) { 6931c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler // new vibration/silent mode settings 6941c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler db.beginTransaction(); 69589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 6961c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler try { 69789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT INTO system(name,value)" 6981c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler + " VALUES(?,?);"); 6991c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler loadBooleanSetting(stmt, Settings.System.VIBRATE_IN_SILENT, 7001c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler R.bool.def_vibrate_in_silent); 7011c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler db.setTransactionSuccessful(); 7021c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler } finally { 7031c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler db.endTransaction(); 70489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 7051c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler } 7061c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler 7071c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler upgradeVersion = 53; 7081c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler } 7093c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 710089262dc022d87e31eefc536025be6c015c7ebdeSuchi Amalapurapu if (upgradeVersion == 53) { 711089262dc022d87e31eefc536025be6c015c7ebdeSuchi Amalapurapu /* 71240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu * New settings for set install location UI no longer initiated here. 713089262dc022d87e31eefc536025be6c015c7ebdeSuchi Amalapurapu */ 714089262dc022d87e31eefc536025be6c015c7ebdeSuchi Amalapurapu upgradeVersion = 54; 715089262dc022d87e31eefc536025be6c015c7ebdeSuchi Amalapurapu } 7161c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler 717b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani if (upgradeVersion == 54) { 718b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani /* 719b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani * Update the screen timeout value if set to never 720b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani */ 721b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani db.beginTransaction(); 722b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani try { 723b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani upgradeScreenTimeoutFromNever(db); 724b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani db.setTransactionSuccessful(); 725b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } finally { 726b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani db.endTransaction(); 727b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } 728b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani 729b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani upgradeVersion = 55; 730b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } 731b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani 73240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu if (upgradeVersion == 55) { 73340e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu /* Move the install location settings. */ 73440e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu String[] settingsToMove = { 735625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Global.SET_INSTALL_LOCATION, 736625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Global.DEFAULT_INSTALL_LOCATION 73740e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu }; 7389219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE, settingsToMove, false); 73940e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu db.beginTransaction(); 74040e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu SQLiteStatement stmt = null; 74140e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu try { 74240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu stmt = db.compileStatement("INSERT INTO system(name,value)" 74340e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu + " VALUES(?,?);"); 744625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey loadSetting(stmt, Global.SET_INSTALL_LOCATION, 0); 745625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey loadSetting(stmt, Global.DEFAULT_INSTALL_LOCATION, 74640e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu PackageHelper.APP_INSTALL_AUTO); 74740e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu db.setTransactionSuccessful(); 74840e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu } finally { 74940e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu db.endTransaction(); 75040e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu if (stmt != null) stmt.close(); 75140e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu } 75240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu upgradeVersion = 56; 75340e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu } 7546659284d68bb04539891456700c8da2d0bae7d09Jake Hamby 7556659284d68bb04539891456700c8da2d0bae7d09Jake Hamby if (upgradeVersion == 56) { 7566659284d68bb04539891456700c8da2d0bae7d09Jake Hamby /* 7576659284d68bb04539891456700c8da2d0bae7d09Jake Hamby * Add Bluetooth to list of toggleable radios in airplane mode 7586659284d68bb04539891456700c8da2d0bae7d09Jake Hamby */ 7596659284d68bb04539891456700c8da2d0bae7d09Jake Hamby db.beginTransaction(); 7606659284d68bb04539891456700c8da2d0bae7d09Jake Hamby SQLiteStatement stmt = null; 7616659284d68bb04539891456700c8da2d0bae7d09Jake Hamby try { 7626659284d68bb04539891456700c8da2d0bae7d09Jake Hamby db.execSQL("DELETE FROM system WHERE name='" 7636659284d68bb04539891456700c8da2d0bae7d09Jake Hamby + Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS + "'"); 7646659284d68bb04539891456700c8da2d0bae7d09Jake Hamby stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 7656659284d68bb04539891456700c8da2d0bae7d09Jake Hamby + " VALUES(?,?);"); 7666659284d68bb04539891456700c8da2d0bae7d09Jake Hamby loadStringSetting(stmt, Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS, 7676659284d68bb04539891456700c8da2d0bae7d09Jake Hamby R.string.airplane_mode_toggleable_radios); 7686659284d68bb04539891456700c8da2d0bae7d09Jake Hamby db.setTransactionSuccessful(); 7696659284d68bb04539891456700c8da2d0bae7d09Jake Hamby } finally { 7706659284d68bb04539891456700c8da2d0bae7d09Jake Hamby db.endTransaction(); 7716659284d68bb04539891456700c8da2d0bae7d09Jake Hamby if (stmt != null) stmt.close(); 7726659284d68bb04539891456700c8da2d0bae7d09Jake Hamby } 7736659284d68bb04539891456700c8da2d0bae7d09Jake Hamby upgradeVersion = 57; 7746659284d68bb04539891456700c8da2d0bae7d09Jake Hamby } 775585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov 7765cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani /************* The following are Honeycomb changes ************/ 7775cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani 778585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov if (upgradeVersion == 57) { 779585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov /* 780585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov * New settings to: 781585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov * 1. Enable injection of accessibility scripts in WebViews. 782585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov * 2. Define the key bindings for traversing web content in WebViews. 783585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov */ 784585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov db.beginTransaction(); 785585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov SQLiteStatement stmt = null; 786585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov try { 787585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value)" 788585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov + " VALUES(?,?);"); 789585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION, 790585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov R.bool.def_accessibility_script_injection); 791585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov stmt.close(); 792585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value)" 793585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov + " VALUES(?,?);"); 794585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov loadStringSetting(stmt, Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS, 795585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov R.string.def_accessibility_web_content_key_bindings); 796585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov db.setTransactionSuccessful(); 797585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov } finally { 798585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov db.endTransaction(); 799585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov if (stmt != null) stmt.close(); 800585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov } 801585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov upgradeVersion = 58; 802585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov } 803585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov 804ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani if (upgradeVersion == 58) { 805ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani /* Add default for new Auto Time Zone */ 8065cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani int autoTimeValue = getIntValueFromSystem(db, Settings.System.AUTO_TIME, 0); 807ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani db.beginTransaction(); 808ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani SQLiteStatement stmt = null; 809ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani try { 8105cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani stmt = db.compileStatement("INSERT INTO system(name,value)" + " VALUES(?,?);"); 8115cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani loadSetting(stmt, Settings.System.AUTO_TIME_ZONE, 8125cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani autoTimeValue); // Sync timezone to NITZ if auto_time was enabled 813ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani db.setTransactionSuccessful(); 814ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani } finally { 815ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani db.endTransaction(); 816ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani if (stmt != null) stmt.close(); 817ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani } 818ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani upgradeVersion = 59; 819ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani } 820ad450be78bb99a965b6aeb7cec04f865da59f052Amith Yamasani 821b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler if (upgradeVersion == 59) { 822b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler // Persistence for the rotation lock feature. 823b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler db.beginTransaction(); 824b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler SQLiteStatement stmt = null; 825b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler try { 826b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler stmt = db.compileStatement("INSERT INTO system(name,value)" 827b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler + " VALUES(?,?);"); 828b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler loadBooleanSetting(stmt, Settings.System.USER_ROTATION, 829b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler R.integer.def_user_rotation); // should be zero degrees 830b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler db.setTransactionSuccessful(); 831b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler } finally { 832b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler db.endTransaction(); 833b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler if (stmt != null) stmt.close(); 834b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler } 835b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler upgradeVersion = 60; 836b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler } 837b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler 8380038931043f8edf9c32645e5caf96f217cef01deAmith Yamasani if (upgradeVersion == 60) { 8395cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Don't do this for upgrades from Gingerbread 8405cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Were only required for intra-Honeycomb upgrades for testing 8415cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // upgradeScreenTimeout(db); 8420038931043f8edf9c32645e5caf96f217cef01deAmith Yamasani upgradeVersion = 61; 8430038931043f8edf9c32645e5caf96f217cef01deAmith Yamasani } 8440038931043f8edf9c32645e5caf96f217cef01deAmith Yamasani 84579373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani if (upgradeVersion == 61) { 8465cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Don't do this for upgrades from Gingerbread 8475cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Were only required for intra-Honeycomb upgrades for testing 8485cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // upgradeScreenTimeout(db); 84979373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani upgradeVersion = 62; 85079373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani } 85179373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani 852f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani // Change the default for screen auto-brightness mode 853f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani if (upgradeVersion == 62) { 8545cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Don't do this for upgrades from Gingerbread 8555cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Were only required for intra-Honeycomb upgrades for testing 8565cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // upgradeAutoBrightness(db); 857f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani upgradeVersion = 63; 858f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani } 859f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani 86025101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent if (upgradeVersion == 63) { 86125101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent // This upgrade adds the STREAM_MUSIC type to the list of 86225101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent // types affected by ringer modes (silent, vibrate, etc.) 86325101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent db.beginTransaction(); 86425101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent try { 86525101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent db.execSQL("DELETE FROM system WHERE name='" 86625101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "'"); 86725101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent int newValue = (1 << AudioManager.STREAM_RING) 86825101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent | (1 << AudioManager.STREAM_NOTIFICATION) 86925101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent | (1 << AudioManager.STREAM_SYSTEM) 87025101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent | (1 << AudioManager.STREAM_SYSTEM_ENFORCED) 87125101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent | (1 << AudioManager.STREAM_MUSIC); 87225101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent db.execSQL("INSERT INTO system ('name', 'value') values ('" 87325101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "', '" 87425101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent + String.valueOf(newValue) + "')"); 87525101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent db.setTransactionSuccessful(); 87625101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent } finally { 87725101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent db.endTransaction(); 87825101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent } 87925101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent upgradeVersion = 64; 88025101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent } 88125101b0b9a84571ead15b26e9f4cd9c4298d7823Eric Laurent 88254d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov if (upgradeVersion == 64) { 88354d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov // New setting to configure the long press timeout. 88454d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov db.beginTransaction(); 88554d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov SQLiteStatement stmt = null; 88654d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov try { 88754d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value)" 88854d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov + " VALUES(?,?);"); 88954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov loadIntegerSetting(stmt, Settings.Secure.LONG_PRESS_TIMEOUT, 89054d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov R.integer.def_long_press_timeout_millis); 89154d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov stmt.close(); 89254d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov db.setTransactionSuccessful(); 89354d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov } finally { 89454d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov db.endTransaction(); 89554d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov if (stmt != null) stmt.close(); 89654d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov } 89754d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov upgradeVersion = 65; 89854d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov } 89954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov 9005cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani /************* The following are Ice Cream Sandwich changes ************/ 9015cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani 902fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne if (upgradeVersion == 65) { 903fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne /* 904fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne * Animations are removed from Settings. Turned on by default 905fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne */ 906fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne db.beginTransaction(); 907fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne SQLiteStatement stmt = null; 908fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne try { 909fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne db.execSQL("DELETE FROM system WHERE name='" 910fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne + Settings.System.WINDOW_ANIMATION_SCALE + "'"); 911fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne db.execSQL("DELETE FROM system WHERE name='" 912fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne + Settings.System.TRANSITION_ANIMATION_SCALE + "'"); 913fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne stmt = db.compileStatement("INSERT INTO system(name,value)" 914fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne + " VALUES(?,?);"); 915fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne loadDefaultAnimationSettings(stmt); 916fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne db.setTransactionSuccessful(); 917fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne } finally { 918fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne db.endTransaction(); 919fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne if (stmt != null) stmt.close(); 920fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne } 921fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne upgradeVersion = 66; 922fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne } 923fa53d3002fadf8640600c1840962021a821b8baeGilles Debunne 924c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent if (upgradeVersion == 66) { 92542722bfa136f5616872a2c4e199813e804621c81Amith Yamasani // This upgrade makes sure that MODE_RINGER_STREAMS_AFFECTED is set 92642722bfa136f5616872a2c4e199813e804621c81Amith Yamasani // according to device voice capability 92742722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.beginTransaction(); 92842722bfa136f5616872a2c4e199813e804621c81Amith Yamasani try { 92942722bfa136f5616872a2c4e199813e804621c81Amith Yamasani int ringerModeAffectedStreams = (1 << AudioManager.STREAM_RING) | 93042722bfa136f5616872a2c4e199813e804621c81Amith Yamasani (1 << AudioManager.STREAM_NOTIFICATION) | 93142722bfa136f5616872a2c4e199813e804621c81Amith Yamasani (1 << AudioManager.STREAM_SYSTEM) | 93242722bfa136f5616872a2c4e199813e804621c81Amith Yamasani (1 << AudioManager.STREAM_SYSTEM_ENFORCED); 93342722bfa136f5616872a2c4e199813e804621c81Amith Yamasani if (!mContext.getResources().getBoolean( 93442722bfa136f5616872a2c4e199813e804621c81Amith Yamasani com.android.internal.R.bool.config_voice_capable)) { 93542722bfa136f5616872a2c4e199813e804621c81Amith Yamasani ringerModeAffectedStreams |= (1 << AudioManager.STREAM_MUSIC); 93642722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } 93742722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.execSQL("DELETE FROM system WHERE name='" 93842722bfa136f5616872a2c4e199813e804621c81Amith Yamasani + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "'"); 93942722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.execSQL("INSERT INTO system ('name', 'value') values ('" 94042722bfa136f5616872a2c4e199813e804621c81Amith Yamasani + Settings.System.MODE_RINGER_STREAMS_AFFECTED + "', '" 94142722bfa136f5616872a2c4e199813e804621c81Amith Yamasani + String.valueOf(ringerModeAffectedStreams) + "')"); 94242722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.setTransactionSuccessful(); 94342722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } finally { 94442722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.endTransaction(); 94542722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } 94642722bfa136f5616872a2c4e199813e804621c81Amith Yamasani upgradeVersion = 67; 94742722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } 948c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent 949a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov if (upgradeVersion == 67) { 950a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov // New setting to enable touch exploration. 951a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov db.beginTransaction(); 952a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov SQLiteStatement stmt = null; 953a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov try { 954a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value)" 955a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov + " VALUES(?,?);"); 956a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.TOUCH_EXPLORATION_ENABLED, 957a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov R.bool.def_touch_exploration_enabled); 958a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov stmt.close(); 959a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov db.setTransactionSuccessful(); 960a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov } finally { 961a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov db.endTransaction(); 962a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov if (stmt != null) stmt.close(); 963a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov } 964a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov upgradeVersion = 68; 965a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov } 966a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov 96742722bfa136f5616872a2c4e199813e804621c81Amith Yamasani if (upgradeVersion == 68) { 96842722bfa136f5616872a2c4e199813e804621c81Amith Yamasani // Enable all system sounds by default 96942722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.beginTransaction(); 97042722bfa136f5616872a2c4e199813e804621c81Amith Yamasani try { 97142722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.execSQL("DELETE FROM system WHERE name='" 97242722bfa136f5616872a2c4e199813e804621c81Amith Yamasani + Settings.System.NOTIFICATIONS_USE_RING_VOLUME + "'"); 97342722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.setTransactionSuccessful(); 97442722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } finally { 97542722bfa136f5616872a2c4e199813e804621c81Amith Yamasani db.endTransaction(); 97642722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } 97742722bfa136f5616872a2c4e199813e804621c81Amith Yamasani upgradeVersion = 69; 97842722bfa136f5616872a2c4e199813e804621c81Amith Yamasani } 979a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov 9808d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly if (upgradeVersion == 69) { 9818d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly // Add RADIO_NFC to AIRPLANE_MODE_RADIO and AIRPLANE_MODE_TOGGLEABLE_RADIOS 9828d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly String airplaneRadios = mContext.getResources().getString( 9838d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly R.string.def_airplane_mode_radios); 9848d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly String toggleableRadios = mContext.getResources().getString( 9858d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly R.string.airplane_mode_toggleable_radios); 9868d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly db.beginTransaction(); 9878d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly try { 9888d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly db.execSQL("UPDATE system SET value='" + airplaneRadios + "' " + 9898d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly "WHERE name='" + Settings.System.AIRPLANE_MODE_RADIOS + "'"); 9908d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly db.execSQL("UPDATE system SET value='" + toggleableRadios + "' " + 9918d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly "WHERE name='" + Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS + "'"); 9928d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly db.setTransactionSuccessful(); 9938d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly } finally { 9948d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly db.endTransaction(); 9958d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly } 9968d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly upgradeVersion = 70; 9978d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly } 9988d32a01bd24b8a0d1a98f0581b3394a78fab8242Nick Pelly 9996651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown if (upgradeVersion == 70) { 10006651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown // Update all built-in bookmarks. Some of the package names have changed. 10016651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown loadBookmarks(db); 10026651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown upgradeVersion = 71; 10036651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown } 10046651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown 100555f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov if (upgradeVersion == 71) { 100655f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov // New setting to specify whether to speak passwords in accessibility mode. 100755f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov db.beginTransaction(); 100855f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov SQLiteStatement stmt = null; 100955f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov try { 101055f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value)" 101155f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov + " VALUES(?,?);"); 101255f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, 101355f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov R.bool.def_accessibility_speak_password); 10146243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani db.setTransactionSuccessful(); 101555f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov } finally { 101655f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov db.endTransaction(); 101755f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov if (stmt != null) stmt.close(); 101855f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov } 101955f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov upgradeVersion = 72; 102055f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov } 102155f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov 10226243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani if (upgradeVersion == 72) { 10236243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani // update vibration settings 10246243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani db.beginTransaction(); 10256243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani SQLiteStatement stmt = null; 10266243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani try { 10276243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)" 10286243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani + " VALUES(?,?);"); 10296243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani loadBooleanSetting(stmt, Settings.System.VIBRATE_IN_SILENT, 10306243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani R.bool.def_vibrate_in_silent); 10316243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani db.setTransactionSuccessful(); 10326243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani } finally { 10336243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani db.endTransaction(); 10346243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani if (stmt != null) stmt.close(); 10356243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani } 10366243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani upgradeVersion = 73; 10376243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani } 10386243edd818b84adfbe712d5d233d6414b33653acAmith Yamasani 10393ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov if (upgradeVersion == 73) { 1040398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani upgradeVibrateSettingFromNone(db); 1041398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani upgradeVersion = 74; 1042398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani } 1043398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani 1044398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani if (upgradeVersion == 74) { 10453ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov // URL from which WebView loads a JavaScript based screen-reader. 10463ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov db.beginTransaction(); 10473ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov SQLiteStatement stmt = null; 10483ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov try { 10493ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value) VALUES(?,?);"); 10503ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov loadStringSetting(stmt, Settings.Secure.ACCESSIBILITY_SCREEN_READER_URL, 10513ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov R.string.def_accessibility_screen_reader_url); 10523ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov db.setTransactionSuccessful(); 10533ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov } finally { 10543ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov db.endTransaction(); 10553ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov if (stmt != null) stmt.close(); 10563ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov } 1057398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani upgradeVersion = 75; 10583ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov } 10597bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood if (upgradeVersion == 75) { 10607bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood db.beginTransaction(); 10617bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood SQLiteStatement stmt = null; 10627bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood Cursor c = null; 10637bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood try { 106406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate c = db.query(TABLE_SECURE, new String[] {"_id", "value"}, 10657bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood "name='lockscreen.disabled'", 10667bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood null, null, null, null); 10677bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood // only set default if it has not yet been set 10687bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood if (c == null || c.getCount() == 0) { 10697bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood stmt = db.compileStatement("INSERT INTO system(name,value)" 10707bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood + " VALUES(?,?);"); 10717bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, 10727bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood R.bool.def_lockscreen_disabled); 10737bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood } 10747bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood db.setTransactionSuccessful(); 10757bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood } finally { 10767bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood db.endTransaction(); 10777bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood if (c != null) c.close(); 10787bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood if (stmt != null) stmt.close(); 10797bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood } 10807bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood upgradeVersion = 76; 10817bef73900b075fc0a9078d418964ca8e7210d565Mike Lockwood } 10823ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov 1083bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent /************* The following are Jelly Bean changes ************/ 1084bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent 1085bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent if (upgradeVersion == 76) { 1086bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent // Removed VIBRATE_IN_SILENT setting 1087bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent db.beginTransaction(); 1088bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent try { 1089bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent db.execSQL("DELETE FROM system WHERE name='" 1090bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent + Settings.System.VIBRATE_IN_SILENT + "'"); 1091bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent db.setTransactionSuccessful(); 1092bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent } finally { 1093bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent db.endTransaction(); 1094bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent } 1095bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent 1096bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent upgradeVersion = 77; 1097bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent } 1098bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent 10993c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa if (upgradeVersion == 77) { 11003c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa // Introduce "vibrate when ringing" setting 11013c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa loadVibrateWhenRingingSetting(db); 11023c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 11033c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa upgradeVersion = 78; 11043c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa } 1105bffc3d1bd33eb2d8e00a9f8b6261d815db503311Eric Laurent 11063a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv if (upgradeVersion == 78) { 11073a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv // The JavaScript based screen-reader URL changes in JellyBean. 11083a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv db.beginTransaction(); 11093a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv SQLiteStatement stmt = null; 11103a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv try { 11113a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv stmt = db.compileStatement("INSERT OR REPLACE INTO secure(name,value)" 11123a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv + " VALUES(?,?);"); 11133a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv loadStringSetting(stmt, Settings.Secure.ACCESSIBILITY_SCREEN_READER_URL, 11143a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv R.string.def_accessibility_screen_reader_url); 11153a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv db.setTransactionSuccessful(); 11163a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv } finally { 11173a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv db.endTransaction(); 11183a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv if (stmt != null) stmt.close(); 11193a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv } 11203a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv upgradeVersion = 79; 11213a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv } 11223a67eb3be43bfd1f7735cf018c4cb552c6cbba08alanv 11238631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov if (upgradeVersion == 79) { 11248631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // Before touch exploration was a global setting controlled by the user 11258631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // via the UI. However, if the enabled accessibility services do not 11268631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // handle touch exploration mode, enabling it makes no sense. Therefore, 11278631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // now the services request touch exploration mode and the user is 11288631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // presented with a dialog to allow that and if she does we store that 11298631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // in the database. As a result of this change a user that has enabled 11308631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // accessibility, touch exploration, and some accessibility services 11318631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // may lose touch exploration state, thus rendering the device useless 11328631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // unless sighted help is provided, since the enabled service(s) are 11338631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // not in the list of services to which the user granted a permission 11348631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // to put the device in touch explore mode. Here we are allowing all 11358631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // enabled accessibility services to toggle touch exploration provided 11368631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // accessibility and touch exploration are enabled and no services can 11378631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // toggle touch exploration. Note that the user has already manually 11388631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // enabled the services and touch exploration which means the she has 11398631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov // given consent to have these services work in touch exploration mode. 114006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate final boolean accessibilityEnabled = getIntValueFromTable(db, TABLE_SECURE, 11418631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1; 114206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate final boolean touchExplorationEnabled = getIntValueFromTable(db, TABLE_SECURE, 11438631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov Settings.Secure.TOUCH_EXPLORATION_ENABLED, 0) == 1; 11448631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov if (accessibilityEnabled && touchExplorationEnabled) { 114506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate String enabledServices = getStringValueFromTable(db, TABLE_SECURE, 11468631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, ""); 114706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate String touchExplorationGrantedServices = getStringValueFromTable(db, TABLE_SECURE, 11488631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES, ""); 11498631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov if (TextUtils.isEmpty(touchExplorationGrantedServices) 11508631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov && !TextUtils.isEmpty(enabledServices)) { 11518631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov SQLiteStatement stmt = null; 11528631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov try { 11538631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov db.beginTransaction(); 11548631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov stmt = db.compileStatement("INSERT OR REPLACE INTO secure(name,value)" 11558631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov + " VALUES(?,?);"); 11568631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov loadSetting(stmt, 11578631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES, 11588631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov enabledServices); 11598631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov db.setTransactionSuccessful(); 11608631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } finally { 11618631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov db.endTransaction(); 11628631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov if (stmt != null) stmt.close(); 11638631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } 11648631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } 11658631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } 11668631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov upgradeVersion = 80; 11678631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } 11688631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov 1169fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler // vvv Jelly Bean MR1 changes begin here vvv 1170fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler 1171ca34bcf6746454c561b0c07ca5c6e42bd4a73e9eSvetoslav Ganov if (upgradeVersion == 80) { 1172fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler // update screensaver settings 1173fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler db.beginTransaction(); 1174fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler SQLiteStatement stmt = null; 1175fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler try { 1176fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler stmt = db.compileStatement("INSERT OR REPLACE INTO secure(name,value)" 1177fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler + " VALUES(?,?);"); 1178fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ENABLED, 1179ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.bool.config_dreamsEnabledByDefault); 1180fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 1181ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault); 11821a868b7981ca5f52e893fdf9f8f538c9d5ce241dJohn Spurlock loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP, 1183ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.bool.config_dreamsActivatedOnSleepByDefault); 11841a868b7981ca5f52e893fdf9f8f538c9d5ce241dJohn Spurlock loadStringSetting(stmt, Settings.Secure.SCREENSAVER_COMPONENTS, 1185ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.string.config_dreamsDefaultComponent); 1186ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock loadStringSetting(stmt, Settings.Secure.SCREENSAVER_DEFAULT_COMPONENT, 1187ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.string.config_dreamsDefaultComponent); 118806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 1189fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler db.setTransactionSuccessful(); 1190fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler } finally { 1191fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler db.endTransaction(); 1192fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler if (stmt != null) stmt.close(); 1193fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler } 1194ca34bcf6746454c561b0c07ca5c6e42bd4a73e9eSvetoslav Ganov upgradeVersion = 81; 1195fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler } 1196fdb7c36a108e6a7887de6611b3f1541e3009f2d5Daniel Sandler 119716e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings if (upgradeVersion == 81) { 119816e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings // Add package verification setting 119916e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings db.beginTransaction(); 120016e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings SQLiteStatement stmt = null; 120116e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings try { 120216e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings stmt = db.compileStatement("INSERT OR REPLACE INTO secure(name,value)" 120316e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings + " VALUES(?,?);"); 1204bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey loadBooleanSetting(stmt, Settings.Global.PACKAGE_VERIFIER_ENABLE, 120516e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings R.bool.def_package_verifier_enable); 120616e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings db.setTransactionSuccessful(); 120716e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings } finally { 120816e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings db.endTransaction(); 120916e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings if (stmt != null) stmt.close(); 121016e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings } 121116e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings upgradeVersion = 82; 121216e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings } 121316e119e798cd1e6dd94114bc910b2c1fd92b88e5rich cannings 121406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (upgradeVersion == 82) { 121506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Move to per-user settings dbs 121659c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 121706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 121859c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.beginTransaction(); 121959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate SQLiteStatement stmt = null; 122059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate try { 122159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate // Migrate now-global settings. Note that this happens before 122259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate // new users can be created. 122359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate createGlobalTable(db); 122459c5beec64af8ea20509998230b7b1de496702f6Christopher Tate String[] settingsToMove = hashsetToStringArray(SettingsProvider.sSystemGlobalKeys); 122559c5beec64af8ea20509998230b7b1de496702f6Christopher Tate moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove, false); 122659c5beec64af8ea20509998230b7b1de496702f6Christopher Tate settingsToMove = hashsetToStringArray(SettingsProvider.sSecureGlobalKeys); 122759c5beec64af8ea20509998230b7b1de496702f6Christopher Tate moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, false); 122859c5beec64af8ea20509998230b7b1de496702f6Christopher Tate 122959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.setTransactionSuccessful(); 123059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } finally { 123159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.endTransaction(); 123259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (stmt != null) stmt.close(); 123359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } 123406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 123506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate upgradeVersion = 83; 123606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 123706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 12381cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov if (upgradeVersion == 83) { 12391cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov // 1. Setting whether screen magnification is enabled. 12401cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov // 2. Setting for screen magnification scale. 12411cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov // 3. Setting for screen magnification auto update. 12421cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov db.beginTransaction(); 12431cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov SQLiteStatement stmt = null; 12441cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov try { 12451cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value) VALUES(?,?);"); 12461cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov loadBooleanSetting(stmt, 12471cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 12481cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov R.bool.def_accessibility_display_magnification_enabled); 12491cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov stmt.close(); 12501cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value) VALUES(?,?);"); 12511cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov loadFractionSetting(stmt, Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, 12521cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov R.fraction.def_accessibility_display_magnification_scale, 1); 12531cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov stmt.close(); 12541cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov stmt = db.compileStatement("INSERT INTO secure(name,value) VALUES(?,?);"); 12551cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov loadBooleanSetting(stmt, 12561cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE, 12571cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov R.bool.def_accessibility_display_magnification_auto_update); 12581a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate 12591a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate db.setTransactionSuccessful(); 12601cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov } finally { 12611cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov db.endTransaction(); 12621cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov if (stmt != null) stmt.close(); 12631cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov } 12641cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov upgradeVersion = 84; 12651cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov } 12661cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov 12671a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate if (upgradeVersion == 84) { 126859c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 126959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.beginTransaction(); 127059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate SQLiteStatement stmt = null; 127159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate try { 127259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate // Patch up the slightly-wrong key migration from 82 -> 83 for those 127359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate // devices that missed it, ignoring if the move is redundant 127459c5beec64af8ea20509998230b7b1de496702f6Christopher Tate String[] settingsToMove = { 127559c5beec64af8ea20509998230b7b1de496702f6Christopher Tate Settings.Secure.ADB_ENABLED, 127659c5beec64af8ea20509998230b7b1de496702f6Christopher Tate Settings.Secure.BLUETOOTH_ON, 127759c5beec64af8ea20509998230b7b1de496702f6Christopher Tate Settings.Secure.DATA_ROAMING, 127859c5beec64af8ea20509998230b7b1de496702f6Christopher Tate Settings.Secure.DEVICE_PROVISIONED, 127959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate Settings.Secure.INSTALL_NON_MARKET_APPS, 128059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate Settings.Secure.USB_MASS_STORAGE_ENABLED 128159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate }; 128259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); 128359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.setTransactionSuccessful(); 128459c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } finally { 128559c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.endTransaction(); 128659c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (stmt != null) stmt.close(); 128759c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } 12881a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate } 12891a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate upgradeVersion = 85; 12901a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate } 12911a9c0dfdbbeba1bc498170be283394ba3e0e9752Christopher Tate 12929219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate if (upgradeVersion == 85) { 129359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 129459c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.beginTransaction(); 129559c5beec64af8ea20509998230b7b1de496702f6Christopher Tate try { 129659c5beec64af8ea20509998230b7b1de496702f6Christopher Tate // Fix up the migration, ignoring already-migrated elements, to snap up to 129759c5beec64af8ea20509998230b7b1de496702f6Christopher Tate // date with new changes to the set of global versus system/secure settings 129859c5beec64af8ea20509998230b7b1de496702f6Christopher Tate String[] settingsToMove = { Settings.System.STAY_ON_WHILE_PLUGGED_IN }; 129959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove, true); 13009219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate 130159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.setTransactionSuccessful(); 130259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } finally { 130359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.endTransaction(); 130459c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } 13059219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate } 13069219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate upgradeVersion = 86; 13079219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate } 13089219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate 13094d8fc793f044cf2c857ac72ebe51641b8e6c413drich cannings if (upgradeVersion == 86) { 131059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 131159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.beginTransaction(); 131259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate try { 131359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate String[] settingsToMove = { 1314bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.PACKAGE_VERIFIER_ENABLE, 1315bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.PACKAGE_VERIFIER_TIMEOUT, 1316bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE 131759c5beec64af8ea20509998230b7b1de496702f6Christopher Tate }; 131859c5beec64af8ea20509998230b7b1de496702f6Christopher Tate moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); 13194d8fc793f044cf2c857ac72ebe51641b8e6c413drich cannings 132059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.setTransactionSuccessful(); 132159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } finally { 132259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.endTransaction(); 132359c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } 13244d8fc793f044cf2c857ac72ebe51641b8e6c413drich cannings } 13254d8fc793f044cf2c857ac72ebe51641b8e6c413drich cannings upgradeVersion = 87; 13264d8fc793f044cf2c857ac72ebe51641b8e6c413drich cannings } 13274d8fc793f044cf2c857ac72ebe51641b8e6c413drich cannings 1328c868b645b46685574955eaff9f8d46d9262a3357Christopher Tate if (upgradeVersion == 87) { 132959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 133059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.beginTransaction(); 133159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate try { 133259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate String[] settingsToMove = { 1333bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS, 1334bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS, 1335bdfce2ec05a3e9ca6acd6711de6133e06f2446e6Jeff Sharkey Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS 133659c5beec64af8ea20509998230b7b1de496702f6Christopher Tate }; 133759c5beec64af8ea20509998230b7b1de496702f6Christopher Tate moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); 1338c868b645b46685574955eaff9f8d46d9262a3357Christopher Tate 133959c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.setTransactionSuccessful(); 134059c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } finally { 134159c5beec64af8ea20509998230b7b1de496702f6Christopher Tate db.endTransaction(); 134259c5beec64af8ea20509998230b7b1de496702f6Christopher Tate } 1343c868b645b46685574955eaff9f8d46d9262a3357Christopher Tate } 1344c868b645b46685574955eaff9f8d46d9262a3357Christopher Tate upgradeVersion = 88; 1345c868b645b46685574955eaff9f8d46d9262a3357Christopher Tate } 1346c868b645b46685574955eaff9f8d46d9262a3357Christopher Tate 1347625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey if (upgradeVersion == 88) { 1348625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey if (mUserHandle == UserHandle.USER_OWNER) { 1349625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey db.beginTransaction(); 1350625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey try { 1351625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey String[] settingsToMove = { 1352625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD, 1353625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.BATTERY_DISCHARGE_THRESHOLD, 1354625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SEND_ACTION_APP_ERROR, 1355625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DROPBOX_AGE_SECONDS, 1356625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DROPBOX_MAX_FILES, 1357625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DROPBOX_QUOTA_KB, 1358625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DROPBOX_QUOTA_PERCENT, 1359625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DROPBOX_RESERVE_PERCENT, 1360625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DROPBOX_TAG_PREFIX, 1361625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.ERROR_LOGCAT_PREFIX, 1362625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL, 1363625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD, 1364625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE, 1365625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES, 1366625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES, 1367625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS, 1368625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.CONNECTIVITY_CHANGE_DELAY, 1369625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED, 1370625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.CAPTIVE_PORTAL_SERVER, 1371625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.NSD_ON, 1372625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SET_INSTALL_LOCATION, 1373625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DEFAULT_INSTALL_LOCATION, 1374625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY, 1375625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY, 1376625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT, 1377625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.HTTP_PROXY, 1378625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.GLOBAL_HTTP_PROXY_HOST, 1379625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.GLOBAL_HTTP_PROXY_PORT, 1380625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST, 1381625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.SET_GLOBAL_HTTP_PROXY, 1382625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey Settings.Global.DEFAULT_DNS_SERVER, 1383625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey }; 1384625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); 1385625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey db.setTransactionSuccessful(); 1386625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey } finally { 1387625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey db.endTransaction(); 1388625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey } 1389625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey } 1390625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey upgradeVersion = 89; 1391625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey } 1392625239a05401bbf18b04d9874cea3f82da7c29a1Jeff Sharkey 13930ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey if (upgradeVersion == 89) { 13940ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey if (mUserHandle == UserHandle.USER_OWNER) { 13950ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey db.beginTransaction(); 13960ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey try { 13970ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey String[] prefixesToMove = { 13980ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey Settings.Global.BLUETOOTH_HEADSET_PRIORITY_PREFIX, 13990ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey Settings.Global.BLUETOOTH_A2DP_SINK_PRIORITY_PREFIX, 14000ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey Settings.Global.BLUETOOTH_INPUT_DEVICE_PRIORITY_PREFIX, 14010ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey }; 14020ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 14030ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey movePrefixedSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, prefixesToMove); 14040ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 14050ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey db.setTransactionSuccessful(); 14060ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } finally { 14070ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey db.endTransaction(); 14080ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 14090ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 14100ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey upgradeVersion = 90; 14110ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 14120ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 14136e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey if (upgradeVersion == 90) { 14146e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey if (mUserHandle == UserHandle.USER_OWNER) { 14156e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey db.beginTransaction(); 14166e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey try { 14176e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey String[] systemToGlobal = { 14186e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.WINDOW_ANIMATION_SCALE, 14196e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.TRANSITION_ANIMATION_SCALE, 14206e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.ANIMATOR_DURATION_SCALE, 14216e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.FANCY_IME_ANIMATIONS, 14226e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.COMPATIBILITY_MODE, 14236e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.EMERGENCY_TONE, 14246e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.CALL_AUTO_RETRY, 14256e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.DEBUG_APP, 14266e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.WAIT_FOR_DEBUGGER, 14276e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.SHOW_PROCESSES, 14286e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.ALWAYS_FINISH_ACTIVITIES, 14296e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey }; 14306e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey String[] secureToGlobal = { 14316e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey Settings.Global.PREFERRED_NETWORK_MODE, 1432b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla Settings.Global.CDMA_SUBSCRIPTION_MODE, 14336e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey }; 14346e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 14356e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, systemToGlobal, true); 14366e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, secureToGlobal, true); 14376e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 14386e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey db.setTransactionSuccessful(); 14396e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey } finally { 14406e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey db.endTransaction(); 14416e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey } 14426e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey } 14436e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey upgradeVersion = 91; 14446e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey } 14456e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 144655b02226c07f276e143f9da6f752963882fb60d5Eric Laurent if (upgradeVersion == 91) { 144755b02226c07f276e143f9da6f752963882fb60d5Eric Laurent if (mUserHandle == UserHandle.USER_OWNER) { 144855b02226c07f276e143f9da6f752963882fb60d5Eric Laurent db.beginTransaction(); 144955b02226c07f276e143f9da6f752963882fb60d5Eric Laurent try { 145055b02226c07f276e143f9da6f752963882fb60d5Eric Laurent // Move ringer mode from system to global settings 1451531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani String[] settingsToMove = { Settings.Global.MODE_RINGER }; 145255b02226c07f276e143f9da6f752963882fb60d5Eric Laurent moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove, true); 145355b02226c07f276e143f9da6f752963882fb60d5Eric Laurent 145455b02226c07f276e143f9da6f752963882fb60d5Eric Laurent db.setTransactionSuccessful(); 145555b02226c07f276e143f9da6f752963882fb60d5Eric Laurent } finally { 145655b02226c07f276e143f9da6f752963882fb60d5Eric Laurent db.endTransaction(); 145755b02226c07f276e143f9da6f752963882fb60d5Eric Laurent } 145855b02226c07f276e143f9da6f752963882fb60d5Eric Laurent } 145955b02226c07f276e143f9da6f752963882fb60d5Eric Laurent upgradeVersion = 92; 146055b02226c07f276e143f9da6f752963882fb60d5Eric Laurent } 146155b02226c07f276e143f9da6f752963882fb60d5Eric Laurent 14627f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock if (upgradeVersion == 92) { 14637f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock SQLiteStatement stmt = null; 14647f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock try { 14657f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 14667f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock + " VALUES(?,?);"); 14677f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock if (mUserHandle == UserHandle.USER_OWNER) { 14687f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock // consider existing primary users to have made it through user setup 14697f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock // if the globally-scoped device-provisioned bit is set 14707f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock // (indicating they already made it through setup as primary) 14717f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock int deviceProvisioned = getIntValueFromTable(db, TABLE_GLOBAL, 14727f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock Settings.Global.DEVICE_PROVISIONED, 0); 14737f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock loadSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE, 14747f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock deviceProvisioned); 14757f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock } else { 14767f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock // otherwise use the default 14777f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock loadBooleanSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE, 14787f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock R.bool.def_user_setup_complete); 14797f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock } 14807f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock } finally { 14817f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock if (stmt != null) stmt.close(); 14827f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock } 14837f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock upgradeVersion = 93; 14847f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock } 14857f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock 1486531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani if (upgradeVersion == 93) { 1487531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani // Redo this step, since somehow it didn't work the first time for some users 1488531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani if (mUserHandle == UserHandle.USER_OWNER) { 1489531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani db.beginTransaction(); 1490531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani try { 1491531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani // Migrate now-global settings 1492531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani String[] settingsToMove = hashsetToStringArray(SettingsProvider.sSystemGlobalKeys); 1493531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_GLOBAL, settingsToMove, true); 1494531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani settingsToMove = hashsetToStringArray(SettingsProvider.sSecureGlobalKeys); 1495531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); 1496531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani 1497531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani db.setTransactionSuccessful(); 1498531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani } finally { 1499531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani db.endTransaction(); 1500531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani } 1501531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani } 1502531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani upgradeVersion = 94; 1503531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani } 1504531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani 150584e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown if (upgradeVersion == 94) { 150684e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown // Add wireless charging started sound setting 15072d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani if (mUserHandle == UserHandle.USER_OWNER) { 15082d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani db.beginTransaction(); 15092d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani SQLiteStatement stmt = null; 15102d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani try { 15112d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)" 15122d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani + " VALUES(?,?);"); 15132d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani loadStringSetting(stmt, Settings.Global.WIRELESS_CHARGING_STARTED_SOUND, 15142d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani R.string.def_wireless_charging_started_sound); 15152d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani db.setTransactionSuccessful(); 15162d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani } finally { 15172d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani db.endTransaction(); 15182d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani if (stmt != null) stmt.close(); 15192d43fabaf7c15ded1dcb463725754edfe41b42a1Amith Yamasani } 152084e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown } 152184e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown upgradeVersion = 95; 152284e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown } 152384e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown 152458f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate if (upgradeVersion == 95) { 152558f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 152658f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate db.beginTransaction(); 152758f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate try { 152858f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate String[] settingsToMove = { Settings.Global.BUGREPORT_IN_POWER_MENU }; 152958f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate moveSettingsToNewTable(db, TABLE_SECURE, TABLE_GLOBAL, settingsToMove, true); 153058f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate db.setTransactionSuccessful(); 153158f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate } finally { 153258f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate db.endTransaction(); 153358f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate } 153458f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate } 153558f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate upgradeVersion = 96; 153658f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate } 153758f41ecfa57bb1299cf0f8b13f6f5f5b4b7dde91Christopher Tate 1538d1ed3cea37e4156eab14b7dc8207a520c9eab700Mike Cleron if (upgradeVersion == 96) { 1539447d94684ee73046d769649d8247aacd581bd6e3Svetoslav Ganov // NOP bump due to a reverted change that some people got on upgrade. 1540d1ed3cea37e4156eab14b7dc8207a520c9eab700Mike Cleron upgradeVersion = 97; 1541d1ed3cea37e4156eab14b7dc8207a520c9eab700Mike Cleron } 1542d1ed3cea37e4156eab14b7dc8207a520c9eab700Mike Cleron 1543dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler if (upgradeVersion == 97) { 1544dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler if (mUserHandle == UserHandle.USER_OWNER) { 1545dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler db.beginTransaction(); 1546dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler SQLiteStatement stmt = null; 1547dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler try { 1548dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)" 1549dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler + " VALUES(?,?);"); 1550dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler loadIntegerSetting(stmt, Settings.Global.LOW_BATTERY_SOUND_TIMEOUT, 1551dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler R.integer.def_low_battery_sound_timeout); 1552dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler db.setTransactionSuccessful(); 1553dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler } finally { 1554dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler db.endTransaction(); 1555dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler if (stmt != null) stmt.close(); 1556dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler } 1557dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler } 1558dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler upgradeVersion = 98; 1559dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler } 1560dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler 156182a6c5c5ff04ab26fde4b3094a8f25da95a0f5f4Dan Sandler if (upgradeVersion == 98) { 156252e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler // no-op; LOCK_SCREEN_SHOW_NOTIFICATIONS now handled in version 106 156382a6c5c5ff04ab26fde4b3094a8f25da95a0f5f4Dan Sandler upgradeVersion = 99; 156482a6c5c5ff04ab26fde4b3094a8f25da95a0f5f4Dan Sandler } 156582a6c5c5ff04ab26fde4b3094a8f25da95a0f5f4Dan Sandler 15661cdd7dda61b30358c843e534394c32f24bc5271fChris Wren if (upgradeVersion == 99) { 156752e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler // no-op; HEADS_UP_NOTIFICATIONS_ENABLED now handled in version 100 15681cdd7dda61b30358c843e534394c32f24bc5271fChris Wren upgradeVersion = 100; 15691cdd7dda61b30358c843e534394c32f24bc5271fChris Wren } 157052e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler 15715242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren if (upgradeVersion == 100) { 157252e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler // note: LOCK_SCREEN_SHOW_NOTIFICATIONS now handled in version 106 15735242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren if (mUserHandle == UserHandle.USER_OWNER) { 15745242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren db.beginTransaction(); 15755242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren SQLiteStatement stmt = null; 15765242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren try { 157752e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)" 15785242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren + " VALUES(?,?);"); 15795242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren loadIntegerSetting(stmt, Global.HEADS_UP_NOTIFICATIONS_ENABLED, 15805242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren R.integer.def_heads_up_enabled); 15815242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren db.setTransactionSuccessful(); 15825242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren } finally { 15835242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren db.endTransaction(); 15845242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren if (stmt != null) stmt.close(); 15855242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren } 15865242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren } 15875242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren upgradeVersion = 101; 15885242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren } 15891cdd7dda61b30358c843e534394c32f24bc5271fChris Wren 1590147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet if (upgradeVersion == 101) { 1591147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet if (mUserHandle == UserHandle.USER_OWNER) { 1592147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet db.beginTransaction(); 1593147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet SQLiteStatement stmt = null; 1594147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet try { 1595147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" 1596147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet + " VALUES(?,?);"); 1597147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet loadSetting(stmt, Settings.Global.DEVICE_NAME, getDefaultDeviceName()); 1598147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet db.setTransactionSuccessful(); 1599147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet } finally { 1600147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet db.endTransaction(); 1601147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet if (stmt != null) stmt.close(); 1602147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet } 1603147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet } 1604147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet upgradeVersion = 102; 1605147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet } 1606147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet 1607aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate if (upgradeVersion == 102) { 1608aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate db.beginTransaction(); 1609aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate SQLiteStatement stmt = null; 1610aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate try { 1611aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate // The INSTALL_NON_MARKET_APPS setting is becoming per-user rather 1612aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate // than device-global. 1613aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 1614aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate // In the owner user, the global table exists so we can migrate the 1615aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate // entry from there to the secure table, preserving its value. 1616aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate String[] globalToSecure = { 1617aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate Settings.Secure.INSTALL_NON_MARKET_APPS 1618aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate }; 1619aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate moveSettingsToNewTable(db, TABLE_GLOBAL, TABLE_SECURE, globalToSecure, true); 1620aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate } else { 1621aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate // Secondary users' dbs don't have the global table, so institute the 1622aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate // default. 1623aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 1624aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate + " VALUES(?,?);"); 1625aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS, 1626aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate R.bool.def_install_non_market_apps); 1627aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate } 1628aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate db.setTransactionSuccessful(); 1629aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate } finally { 1630aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate db.endTransaction(); 1631aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate if (stmt != null) stmt.close(); 1632aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate } 1633aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate upgradeVersion = 103; 1634aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate } 1635a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown 1636a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown if (upgradeVersion == 103) { 1637a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown db.beginTransaction(); 1638a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown SQLiteStatement stmt = null; 1639a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown try { 1640a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown stmt = db.compileStatement("INSERT OR REPLACE INTO secure(name,value)" 1641a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown + " VALUES(?,?);"); 1642a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown loadBooleanSetting(stmt, Settings.Secure.WAKE_GESTURE_ENABLED, 1643a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown R.bool.def_wake_gesture_enabled); 1644a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown db.setTransactionSuccessful(); 1645a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown } finally { 1646a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown db.endTransaction(); 1647a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown if (stmt != null) stmt.close(); 1648a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown } 1649a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown upgradeVersion = 104; 1650a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown } 1651a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown 16521e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani if (upgradeVersion < 105) { 16531e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani if (mUserHandle == UserHandle.USER_OWNER) { 16541e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani db.beginTransaction(); 16551e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani SQLiteStatement stmt = null; 16561e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani try { 16571e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" 16581e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani + " VALUES(?,?);"); 16591e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani loadBooleanSetting(stmt, Settings.Global.GUEST_USER_ENABLED, 16601e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani R.bool.def_guest_user_enabled); 16611e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani db.setTransactionSuccessful(); 16621e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani } finally { 16631e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani db.endTransaction(); 16641e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani if (stmt != null) stmt.close(); 16651e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani } 16661e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani } 16671e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani upgradeVersion = 105; 16681e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani } 16691e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani 167052e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler if (upgradeVersion < 106) { 167152e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler // LOCK_SCREEN_SHOW_NOTIFICATIONS is now per-user. 167252e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler db.beginTransaction(); 167352e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler SQLiteStatement stmt = null; 167452e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler try { 167552e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 167652e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler + " VALUES(?,?);"); 1677cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren loadIntegerSetting(stmt, Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 1678cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren R.integer.def_lock_screen_show_notifications); 167952e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler if (mUserHandle == UserHandle.USER_OWNER) { 168052e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler final int oldShow = getIntValueFromTable(db, 168152e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler TABLE_GLOBAL, Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, -1); 168252e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler if (oldShow >= 0) { 168352e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler // overwrite the default with whatever you had 168452e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler loadSetting(stmt, Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, oldShow); 168552e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler final SQLiteStatement deleteStmt 168652e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler = db.compileStatement("DELETE FROM global WHERE name=?"); 168752e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler deleteStmt.bindString(1, Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS); 168852e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler deleteStmt.execute(); 168952e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler } 169052e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler } 169152e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler db.setTransactionSuccessful(); 169252e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler } finally { 169352e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler db.endTransaction(); 169452e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler if (stmt != null) stmt.close(); 169552e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler } 169652e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler upgradeVersion = 106; 169752e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler } 169849e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos 169949e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos if (upgradeVersion < 107) { 170049e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos // Add trusted sound setting 170149e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos if (mUserHandle == UserHandle.USER_OWNER) { 170249e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos db.beginTransaction(); 170349e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos SQLiteStatement stmt = null; 170449e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos try { 170549e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)" 170649e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos + " VALUES(?,?);"); 170749e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos loadStringSetting(stmt, Settings.Global.TRUSTED_SOUND, 170849e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos R.string.def_trusted_sound); 170949e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos db.setTransactionSuccessful(); 171049e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos } finally { 171149e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos db.endTransaction(); 171249e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos if (stmt != null) stmt.close(); 171349e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos } 171449e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos } 171549e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos upgradeVersion = 107; 171649e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos } 171749e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos 171849cb613c993a5fecf11d7ee6198068315762814eJeff Brown if (upgradeVersion < 108) { 171949cb613c993a5fecf11d7ee6198068315762814eJeff Brown // Reset the auto-brightness setting to default since the behavior 172049cb613c993a5fecf11d7ee6198068315762814eJeff Brown // of the feature is now quite different and is being presented to 172149cb613c993a5fecf11d7ee6198068315762814eJeff Brown // the user in a new way as "adaptive brightness". 172249cb613c993a5fecf11d7ee6198068315762814eJeff Brown db.beginTransaction(); 172349cb613c993a5fecf11d7ee6198068315762814eJeff Brown SQLiteStatement stmt = null; 172449cb613c993a5fecf11d7ee6198068315762814eJeff Brown try { 172549cb613c993a5fecf11d7ee6198068315762814eJeff Brown stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)" 172649cb613c993a5fecf11d7ee6198068315762814eJeff Brown + " VALUES(?,?);"); 172749cb613c993a5fecf11d7ee6198068315762814eJeff Brown loadBooleanSetting(stmt, Settings.System.SCREEN_BRIGHTNESS_MODE, 172849cb613c993a5fecf11d7ee6198068315762814eJeff Brown R.bool.def_screen_brightness_automatic_mode); 172949cb613c993a5fecf11d7ee6198068315762814eJeff Brown db.setTransactionSuccessful(); 173049cb613c993a5fecf11d7ee6198068315762814eJeff Brown } finally { 173149cb613c993a5fecf11d7ee6198068315762814eJeff Brown db.endTransaction(); 173249cb613c993a5fecf11d7ee6198068315762814eJeff Brown if (stmt != null) stmt.close(); 173349cb613c993a5fecf11d7ee6198068315762814eJeff Brown } 173449cb613c993a5fecf11d7ee6198068315762814eJeff Brown upgradeVersion = 108; 173549cb613c993a5fecf11d7ee6198068315762814eJeff Brown } 173649cb613c993a5fecf11d7ee6198068315762814eJeff Brown 1737cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren if (upgradeVersion < 109) { 1738cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren db.beginTransaction(); 1739cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren SQLiteStatement stmt = null; 1740cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren try { 1741cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 1742cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren + " VALUES(?,?);"); 1743cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren loadBooleanSetting(stmt, Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 1744cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren R.bool.def_lock_screen_allow_private_notifications); 1745cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren db.setTransactionSuccessful(); 1746cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren } finally { 1747cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren db.endTransaction(); 1748cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren if (stmt != null) stmt.close(); 1749cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren } 1750cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren upgradeVersion = 109; 1751cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren } 1752cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren 17532c830a2905b07639984499529f9a19aeb779a539Tyler Gunn if (upgradeVersion < 110) { 17542c830a2905b07639984499529f9a19aeb779a539Tyler Gunn // The SIP_CALL_OPTIONS value SIP_ASK_EACH_TIME is being deprecated. 17552c830a2905b07639984499529f9a19aeb779a539Tyler Gunn // If the SIP_CALL_OPTIONS setting is set to SIP_ASK_EACH_TIME, default to 17562c830a2905b07639984499529f9a19aeb779a539Tyler Gunn // SIP_ADDRESS_ONLY. 17572c830a2905b07639984499529f9a19aeb779a539Tyler Gunn db.beginTransaction(); 17582c830a2905b07639984499529f9a19aeb779a539Tyler Gunn SQLiteStatement stmt = null; 17592c830a2905b07639984499529f9a19aeb779a539Tyler Gunn try { 17602c830a2905b07639984499529f9a19aeb779a539Tyler Gunn stmt = db.compileStatement("UPDATE system SET value = ? " + 17612c830a2905b07639984499529f9a19aeb779a539Tyler Gunn "WHERE name = ? AND value = ?;"); 17622c830a2905b07639984499529f9a19aeb779a539Tyler Gunn stmt.bindString(1, Settings.System.SIP_ADDRESS_ONLY); 17632c830a2905b07639984499529f9a19aeb779a539Tyler Gunn stmt.bindString(2, Settings.System.SIP_CALL_OPTIONS); 17642c830a2905b07639984499529f9a19aeb779a539Tyler Gunn stmt.bindString(3, Settings.System.SIP_ASK_ME_EACH_TIME); 17652c830a2905b07639984499529f9a19aeb779a539Tyler Gunn stmt.execute(); 17662c830a2905b07639984499529f9a19aeb779a539Tyler Gunn db.setTransactionSuccessful(); 17672c830a2905b07639984499529f9a19aeb779a539Tyler Gunn } finally { 17682c830a2905b07639984499529f9a19aeb779a539Tyler Gunn db.endTransaction(); 17692c830a2905b07639984499529f9a19aeb779a539Tyler Gunn if (stmt != null) stmt.close(); 17702c830a2905b07639984499529f9a19aeb779a539Tyler Gunn } 17712c830a2905b07639984499529f9a19aeb779a539Tyler Gunn upgradeVersion = 110; 17722c830a2905b07639984499529f9a19aeb779a539Tyler Gunn } 17732c830a2905b07639984499529f9a19aeb779a539Tyler Gunn 17747d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock if (upgradeVersion < 111) { 17757d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock // reset ringer mode, so it doesn't force zen mode to follow 17767d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock if (mUserHandle == UserHandle.USER_OWNER) { 17777d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock db.beginTransaction(); 17787d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock SQLiteStatement stmt = null; 17797d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock try { 17807d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)" 17817d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock + " VALUES(?,?);"); 17827d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock loadSetting(stmt, Settings.Global.MODE_RINGER, AudioManager.RINGER_MODE_NORMAL); 17837d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock db.setTransactionSuccessful(); 17847d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock } finally { 17857d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock db.endTransaction(); 17867d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock if (stmt != null) stmt.close(); 17877d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock } 17887d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock } 17897d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock upgradeVersion = 111; 17907d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock } 17917d424b6c5080133c25e0c19dd0d6ce212e352a1dJohn Spurlock 1792550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet if (upgradeVersion < 112) { 1793550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet if (mUserHandle == UserHandle.USER_OWNER) { 1794550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet // When device name was added, we went with Manufacturer + Model, device name should 1795550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet // actually be Model only. 1796550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet // Update device name to Model if it wasn't modified by user. 1797550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet db.beginTransaction(); 1798550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet SQLiteStatement stmt = null; 1799550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet try { 1800550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet stmt = db.compileStatement("UPDATE global SET value = ? " 1801550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet + " WHERE name = ? AND value = ?"); 1802550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet stmt.bindString(1, getDefaultDeviceName()); // new default device name 1803550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet stmt.bindString(2, Settings.Global.DEVICE_NAME); 1804550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet stmt.bindString(3, getOldDefaultDeviceName()); // old default device name 1805550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet stmt.execute(); 1806550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet db.setTransactionSuccessful(); 1807550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet } finally { 1808550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet db.endTransaction(); 1809550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet if (stmt != null) stmt.close(); 1810550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet } 1811550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet } 1812550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet upgradeVersion = 112; 1813550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet } 1814550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet 181505af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown if (upgradeVersion < 113) { 181605af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown db.beginTransaction(); 181705af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown SQLiteStatement stmt = null; 181805af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown try { 181905af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 182005af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown + " VALUES(?,?);"); 182105af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT, 182205af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown R.integer.def_sleep_timeout); 182305af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown db.setTransactionSuccessful(); 182405af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown } finally { 182505af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown db.endTransaction(); 182605af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown if (stmt != null) stmt.close(); 182705af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown } 182805af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown upgradeVersion = 113; 182905af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown } 183005af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown 18310499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com if (upgradeVersion < 114) { 18320499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com db.beginTransaction(); 18330499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com SQLiteStatement stmt = null; 18340499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com try { 18350499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" 18360499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com + " VALUES(?,?);"); 18370499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com loadSetting(stmt, Settings.Global.VOLTE_VT_ENABLED, ImsConfig.FeatureValueConstants.ON); 18380499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com db.setTransactionSuccessful(); 18390499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com } finally { 18400499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com db.endTransaction(); 18410499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com if (stmt != null) stmt.close(); 18420499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com } 18430499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com upgradeVersion = 114; 18440499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com } 18451c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler // *** Remember to update DATABASE_VERSION above! 18461c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler 18471c7fa4836bfa7ff61f176461ca0557e90f714121Daniel Sandler if (upgradeVersion != currentVersion) { 184854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project Log.w(TAG, "Got stuck trying to upgrade from version " + upgradeVersion 184954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project + ", must wipe the settings provider"); 185006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate db.execSQL("DROP TABLE IF EXISTS global"); 185106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate db.execSQL("DROP TABLE IF EXISTS globalIndex1"); 185254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP TABLE IF EXISTS system"); 185354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP INDEX IF EXISTS systemIndex1"); 1854f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("DROP TABLE IF EXISTS secure"); 1855f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project db.execSQL("DROP INDEX IF EXISTS secureIndex1"); 185654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP TABLE IF EXISTS gservices"); 185754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP INDEX IF EXISTS gservicesIndex1"); 185854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP TABLE IF EXISTS bluetooth_devices"); 185954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP TABLE IF EXISTS bookmarks"); 186054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP INDEX IF EXISTS bookmarksIndex1"); 186154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP INDEX IF EXISTS bookmarksIndex2"); 186254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DROP TABLE IF EXISTS favorites"); 186354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project onCreate(db); 18646176677e01964cb5751ff217c091571ce6a8b5fbJim Miller 18656176677e01964cb5751ff217c091571ce6a8b5fbJim Miller // Added for diagnosing settings.db wipes after the fact 18666176677e01964cb5751ff217c091571ce6a8b5fbJim Miller String wipeReason = oldVersion + "/" + upgradeVersion + "/" + currentVersion; 18676176677e01964cb5751ff217c091571ce6a8b5fbJim Miller db.execSQL("INSERT INTO secure(name,value) values('" + 18686176677e01964cb5751ff217c091571ce6a8b5fbJim Miller "wiped_db_reason" + "','" + wipeReason + "');"); 186954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 187054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 187154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 1872a96798e4a548f5ec0e387b2cdd8d419378498ebdChristopher Tate private String[] hashsetToStringArray(HashSet<String> set) { 1873a96798e4a548f5ec0e387b2cdd8d419378498ebdChristopher Tate String[] array = new String[set.size()]; 1874a96798e4a548f5ec0e387b2cdd8d419378498ebdChristopher Tate return set.toArray(array); 1875a96798e4a548f5ec0e387b2cdd8d419378498ebdChristopher Tate } 1876a96798e4a548f5ec0e387b2cdd8d419378498ebdChristopher Tate 187706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private void moveSettingsToNewTable(SQLiteDatabase db, 187806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate String sourceTable, String destTable, 18799219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate String[] settingsToMove, boolean doIgnore) { 188006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Copy settings values from the source table to the dest, and remove from the source 1881156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani SQLiteStatement insertStmt = null; 1882156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani SQLiteStatement deleteStmt = null; 1883156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani 1884156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani db.beginTransaction(); 1885156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani try { 18869219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate insertStmt = db.compileStatement("INSERT " 18879219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate + (doIgnore ? " OR IGNORE " : "") 18889219874be99cc07660807cc5dc94b0d157ef8808Christopher Tate + " INTO " + destTable + " (name,value) SELECT name,value FROM " 188906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate + sourceTable + " WHERE name=?"); 189006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate deleteStmt = db.compileStatement("DELETE FROM " + sourceTable + " WHERE name=?"); 1891156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani 1892156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani for (String setting : settingsToMove) { 1893156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani insertStmt.bindString(1, setting); 1894156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani insertStmt.execute(); 1895156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani 1896156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani deleteStmt.bindString(1, setting); 1897156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani deleteStmt.execute(); 1898156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } 1899156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani db.setTransactionSuccessful(); 1900156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } finally { 1901156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani db.endTransaction(); 1902156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani if (insertStmt != null) { 1903156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani insertStmt.close(); 1904156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } 1905156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani if (deleteStmt != null) { 1906156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani deleteStmt.close(); 1907156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } 1908156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } 1909156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani } 1910156c43545529fb3d731ffdd9c4514d38758e3f06Amith Yamasani 19110ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey /** 19120ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey * Move any settings with the given prefixes from the source table to the 19130ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey * destination table. 19140ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey */ 19150ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey private void movePrefixedSettingsToNewTable( 19160ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey SQLiteDatabase db, String sourceTable, String destTable, String[] prefixesToMove) { 19170ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey SQLiteStatement insertStmt = null; 19180ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey SQLiteStatement deleteStmt = null; 19190ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 19200ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey db.beginTransaction(); 19210ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey try { 19220ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey insertStmt = db.compileStatement("INSERT INTO " + destTable 19230ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey + " (name,value) SELECT name,value FROM " + sourceTable 19240ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey + " WHERE substr(name,0,?)=?"); 19250ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey deleteStmt = db.compileStatement( 19260ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey "DELETE FROM " + sourceTable + " WHERE substr(name,0,?)=?"); 19270ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 19280ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey for (String prefix : prefixesToMove) { 19290ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey insertStmt.bindLong(1, prefix.length() + 1); 19300ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey insertStmt.bindString(2, prefix); 19310ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey insertStmt.execute(); 19320ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 19330ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey deleteStmt.bindLong(1, prefix.length() + 1); 19340ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey deleteStmt.bindString(2, prefix); 19350ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey deleteStmt.execute(); 19360ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 19370ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey db.setTransactionSuccessful(); 19380ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } finally { 19390ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey db.endTransaction(); 19400ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey if (insertStmt != null) { 19410ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey insertStmt.close(); 19420ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 19430ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey if (deleteStmt != null) { 19440ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey deleteStmt.close(); 19450ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 19460ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 19470ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey } 19480ac1028b0dc8713296e2face40abe5451ecd479cJeff Sharkey 194954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private void upgradeLockPatternLocation(SQLiteDatabase db) { 195006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate Cursor c = db.query(TABLE_SYSTEM, new String[] {"_id", "value"}, "name='lock_pattern'", 195154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project null, null, null, null); 195254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (c.getCount() > 0) { 195354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project c.moveToFirst(); 195454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project String lockPattern = c.getString(1); 195554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (!TextUtils.isEmpty(lockPattern)) { 195654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Convert lock pattern 195754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project try { 195831f90b62e8c83270094f5b0b4c75a0e06d72cd75Jim Miller LockPatternUtils lpu = new LockPatternUtils(mContext); 19599bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh List<LockPatternView.Cell> cellPattern = 196054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project LockPatternUtils.stringToPattern(lockPattern); 196154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project lpu.saveLockPattern(cellPattern); 196254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } catch (IllegalArgumentException e) { 196354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project // Don't want corrupted lock pattern to hang the reboot process 196454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 196554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 196654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project c.close(); 196706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate db.delete(TABLE_SYSTEM, "name='lock_pattern'", null); 196854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } else { 196954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project c.close(); 197054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 197154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 197254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 1973b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani private void upgradeScreenTimeoutFromNever(SQLiteDatabase db) { 1974b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani // See if the timeout is -1 (for "Never"). 197506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate Cursor c = db.query(TABLE_SYSTEM, new String[] { "_id", "value" }, "name=? AND value=?", 1976b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani new String[] { Settings.System.SCREEN_OFF_TIMEOUT, "-1" }, 1977b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani null, null, null); 1978b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani 1979b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani SQLiteStatement stmt = null; 1980b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani if (c.getCount() > 0) { 1981b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani c.close(); 1982b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani try { 1983b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)" 1984b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani + " VALUES(?,?);"); 19853c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 1986b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani // Set the timeout to 30 minutes in milliseconds 1987cd66caf015d18baa03a86796649550cb65cd99eaAmith Yamasani loadSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT, 1988cd66caf015d18baa03a86796649550cb65cd99eaAmith Yamasani Integer.toString(30 * 60 * 1000)); 1989b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } finally { 1990b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani if (stmt != null) stmt.close(); 1991b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } 1992b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } else { 1993b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani c.close(); 1994b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } 1995b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani } 1996b6e6ffae3564f0c8935cd2d307ffa4d17c57f992Amith Yamasani 1997398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani private void upgradeVibrateSettingFromNone(SQLiteDatabase db) { 1998398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani int vibrateSetting = getIntValueFromSystem(db, Settings.System.VIBRATE_ON, 0); 1999398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani // If the ringer vibrate value is invalid, set it to the default 2000398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani if ((vibrateSetting & 3) == AudioManager.VIBRATE_SETTING_OFF) { 2001398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani vibrateSetting = AudioService.getValueForVibrateSetting(0, 2002398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ONLY_SILENT); 2003398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani } 2004398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani // Apply the same setting to the notification vibrate value 2005398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani vibrateSetting = AudioService.getValueForVibrateSetting(vibrateSetting, 2006398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani AudioManager.VIBRATE_TYPE_NOTIFICATION, vibrateSetting); 2007398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani 2008398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani SQLiteStatement stmt = null; 2009398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani try { 2010398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)" 2011398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani + " VALUES(?,?);"); 2012398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani loadSetting(stmt, Settings.System.VIBRATE_ON, vibrateSetting); 2013398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani } finally { 2014398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani if (stmt != null) 2015398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani stmt.close(); 2016398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani } 2017398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani } 2018398c83cc07354ca28c7108b712017146dadd41a0Amith Yamasani 201979373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani private void upgradeScreenTimeout(SQLiteDatabase db) { 202079373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani // Change screen timeout to current default 202179373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani db.beginTransaction(); 202279373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani SQLiteStatement stmt = null; 202379373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani try { 202479373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)" 202579373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani + " VALUES(?,?);"); 202679373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani loadIntegerSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT, 202779373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani R.integer.def_screen_off_timeout); 202879373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani db.setTransactionSuccessful(); 202979373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani } finally { 203079373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani db.endTransaction(); 203179373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani if (stmt != null) 203279373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani stmt.close(); 203379373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani } 203479373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani } 203579373f660bd41d3824ce8c121077b29dfa4c29d9Amith Yamasani 2036f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani private void upgradeAutoBrightness(SQLiteDatabase db) { 2037f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani db.beginTransaction(); 2038f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani try { 2039f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani String value = 2040f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani mContext.getResources().getBoolean( 2041f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani R.bool.def_screen_brightness_automatic_mode) ? "1" : "0"; 2042f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani db.execSQL("INSERT OR REPLACE INTO system(name,value) values('" + 2043f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani Settings.System.SCREEN_BRIGHTNESS_MODE + "','" + value + "');"); 2044f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani db.setTransactionSuccessful(); 2045f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani } finally { 2046f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani db.endTransaction(); 2047f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani } 2048f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani } 2049f50c5113d0a426ba0a689b5a827f80bf9d2467e1Amith Yamasani 205054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project /** 205154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Loads the default set of bookmarked shortcuts from an xml file. 205254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * 205354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * @param db The database to write the values into 205454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */ 20556651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown private void loadBookmarks(SQLiteDatabase db) { 205654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project ContentValues values = new ContentValues(); 205754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 205854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project PackageManager packageManager = mContext.getPackageManager(); 2059f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy try { 2060f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy XmlResourceParser parser = mContext.getResources().getXml(R.xml.bookmarks); 206154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project XmlUtils.beginDocument(parser, "bookmarks"); 206254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 2063f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy final int depth = parser.getDepth(); 2064f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy int type; 2065f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy 2066f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy while (((type = parser.next()) != XmlPullParser.END_TAG || 2067f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy parser.getDepth() > depth) && type != XmlPullParser.END_DOCUMENT) { 2068f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy 2069f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy if (type != XmlPullParser.START_TAG) { 2070f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy continue; 2071f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy } 207254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 207354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project String name = parser.getName(); 207454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (!"bookmark".equals(name)) { 207554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project break; 207654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 207754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 207854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project String pkg = parser.getAttributeValue(null, "package"); 207954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project String cls = parser.getAttributeValue(null, "class"); 208054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project String shortcutStr = parser.getAttributeValue(null, "shortcut"); 20816651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown String category = parser.getAttributeValue(null, "category"); 2082f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy 2083585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov int shortcutValue = shortcutStr.charAt(0); 208454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (TextUtils.isEmpty(shortcutStr)) { 208554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project Log.w(TAG, "Unable to get shortcut for: " + pkg + "/" + cls); 20866651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown continue; 208754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 2088f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy 20896651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown final Intent intent; 20906651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown final String title; 20916651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown if (pkg != null && cls != null) { 20926651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown ActivityInfo info = null; 20936651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown ComponentName cn = new ComponentName(pkg, cls); 2094f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy try { 2095f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy info = packageManager.getActivityInfo(cn, 0); 20966651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown } catch (PackageManager.NameNotFoundException e) { 20976651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown String[] packages = packageManager.canonicalToCurrentPackageNames( 20986651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown new String[] { pkg }); 20996651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown cn = new ComponentName(packages[0], cls); 21006651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown try { 21016651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown info = packageManager.getActivityInfo(cn, 0); 21026651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown } catch (PackageManager.NameNotFoundException e1) { 21036651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown Log.w(TAG, "Unable to add bookmark: " + pkg + "/" + cls, e); 21046651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown continue; 21056651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown } 2106f02811f7853202c0934622702ebb9c82e6ab0592Romain Guy } 21076651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown 21086651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown intent = new Intent(Intent.ACTION_MAIN, null); 21096651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown intent.addCategory(Intent.CATEGORY_LAUNCHER); 211054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project intent.setComponent(cn); 21116651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown title = info.loadLabel(packageManager).toString(); 21126651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown } else if (category != null) { 2113f5b8671c340f189c50b41c53622f979b6d5e0a57Dianne Hackborn intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, category); 21146651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown title = ""; 21156651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown } else { 21166651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown Log.w(TAG, "Unable to add bookmark for shortcut " + shortcutStr 21176651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown + ": missing package/class or category attributes"); 21186651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown continue; 211954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 21206651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown 21216651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 21226651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown values.put(Settings.Bookmarks.INTENT, intent.toUri(0)); 21236651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown values.put(Settings.Bookmarks.TITLE, title); 21246651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown values.put(Settings.Bookmarks.SHORTCUT, shortcutValue); 21256651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown db.delete("bookmarks", "shortcut = ?", 21266651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown new String[] { Integer.toString(shortcutValue) }); 21276651a638348c15e89e265b0a53c775cac9beafa2Jeff Brown db.insert("bookmarks", null, values); 212854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 212954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } catch (XmlPullParserException e) { 213054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project Log.w(TAG, "Got execption parsing bookmarks.", e); 213154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } catch (IOException e) { 213254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project Log.w(TAG, "Got execption parsing bookmarks.", e); 213354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 213454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 213554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 213654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project /** 213754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * Loads the default volume levels. It is actually inserting the index of 213854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * the volume array for each of the volume controls. 213954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * 214054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project * @param db the database to insert the volume levels into 214154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project */ 214254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private void loadVolumeLevels(SQLiteDatabase db) { 214389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 214489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori try { 214589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 214689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori + " VALUES(?,?);"); 21473c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 214889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.VOLUME_MUSIC, 214989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_MUSIC]); 215089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.VOLUME_RING, 215189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_RING]); 215289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.VOLUME_SYSTEM, 215389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_SYSTEM]); 215489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting( 215589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt, 215689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori Settings.System.VOLUME_VOICE, 215789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_VOICE_CALL]); 215889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.VOLUME_ALARM, 215989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_ALARM]); 216089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting( 216189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt, 216289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori Settings.System.VOLUME_NOTIFICATION, 216389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_NOTIFICATION]); 216489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting( 216589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt, 216689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori Settings.System.VOLUME_BLUETOOTH_SCO, 216789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_BLUETOOTH_SCO]); 21683c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 2169c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent // By default: 2170c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent // - ringtones, notification, system and music streams are affected by ringer mode 2171c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent // on non voice capable devices (tablets) 2172c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent // - ringtones, notification and system streams are affected by ringer mode 2173c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent // on voice capable devices (phones) 2174c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent int ringerModeAffectedStreams = (1 << AudioManager.STREAM_RING) | 2175c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent (1 << AudioManager.STREAM_NOTIFICATION) | 2176c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent (1 << AudioManager.STREAM_SYSTEM) | 2177c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent (1 << AudioManager.STREAM_SYSTEM_ENFORCED); 2178c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent if (!mContext.getResources().getBoolean( 2179c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent com.android.internal.R.bool.config_voice_capable)) { 2180c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent ringerModeAffectedStreams |= (1 << AudioManager.STREAM_MUSIC); 2181c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent } 218289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.MODE_RINGER_STREAMS_AFFECTED, 2183c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent ringerModeAffectedStreams); 2184c1d4166289ce016965d1147f7e8d37862ee347ecEric Laurent 218589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.MUTE_STREAMS_AFFECTED, 218689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori ((1 << AudioManager.STREAM_MUSIC) | 218789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori (1 << AudioManager.STREAM_RING) | 218889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori (1 << AudioManager.STREAM_NOTIFICATION) | 218989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori (1 << AudioManager.STREAM_SYSTEM))); 219089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } finally { 219189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 219289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } 21933c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 21943c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa loadVibrateWhenRingingSetting(db); 219554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 219654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 219754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private void loadVibrateSetting(SQLiteDatabase db, boolean deleteOld) { 219854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project if (deleteOld) { 219954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project db.execSQL("DELETE FROM system WHERE name='" + Settings.System.VIBRATE_ON + "'"); 220054b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 22019bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 220289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 220389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori try { 220489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 220589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori + " VALUES(?,?);"); 22063c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 22075cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani // Vibrate on by default for ringer, on for notification 220889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori int vibrate = 0; 220989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori vibrate = AudioService.getValueForVibrateSetting(vibrate, 22105cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani AudioManager.VIBRATE_TYPE_NOTIFICATION, 22115cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani AudioManager.VIBRATE_SETTING_ONLY_SILENT); 22128932020f542ae6dd4750fa823bbf2d2bcf504267Joe Onorato vibrate |= AudioService.getValueForVibrateSetting(vibrate, 22135cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_ONLY_SILENT); 221489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.VIBRATE_ON, vibrate); 221589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } finally { 221689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 221789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } 221854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 221954b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 22203c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa private void loadVibrateWhenRingingSetting(SQLiteDatabase db) { 22213c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa // The default should be off. VIBRATE_SETTING_ONLY_SILENT should also be ignored here. 22223c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa // Phone app should separately check whether AudioManager#getRingerMode() returns 22233c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa // RINGER_MODE_VIBRATE, with which the device should vibrate anyway. 22243c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa int vibrateSetting = getIntValueFromSystem(db, Settings.System.VIBRATE_ON, 22253c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa AudioManager.VIBRATE_SETTING_OFF); 22263c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa boolean vibrateWhenRinging = ((vibrateSetting & 3) == AudioManager.VIBRATE_SETTING_ON); 22273c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 22283c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa SQLiteStatement stmt = null; 22293c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa try { 22303c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 22313c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa + " VALUES(?,?);"); 22323c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa loadSetting(stmt, Settings.System.VIBRATE_WHEN_RINGING, vibrateWhenRinging ? 1 : 0); 22333c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa } finally { 22343c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa if (stmt != null) stmt.close(); 22353c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa } 22363c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa } 22373c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 223854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private void loadSettings(SQLiteDatabase db) { 2239f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project loadSystemSettings(db); 22409bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh loadSecureSettings(db); 224106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // The global table only exists for the 'owner' user 224206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (mUserHandle == UserHandle.USER_OWNER) { 224306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadGlobalSettings(db); 224406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 2245f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 22469bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 2247f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project private void loadSystemSettings(SQLiteDatabase db) { 224889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 224989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori try { 225089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" 225189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori + " VALUES(?,?);"); 22523c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 225389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.System.DIM_SCREEN, 225489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_dim_screen); 225589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadIntegerSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT, 225689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.integer.def_screen_off_timeout); 22573c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 225889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori // Set default cdma DTMF type 225989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, 0); 22603c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 226189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori // Set default hearing aid 226289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.HEARING_AID, 0); 22633c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 226489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori // Set default tty mode 226589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.System.TTY_MODE, 0); 22663c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 226789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadIntegerSetting(stmt, Settings.System.SCREEN_BRIGHTNESS, 226889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.integer.def_screen_brightness); 22693c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 227089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.System.SCREEN_BRIGHTNESS_MODE, 227189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_screen_brightness_automatic_mode); 22723c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 227389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadDefaultAnimationSettings(stmt); 22743c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 227589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.System.ACCELEROMETER_ROTATION, 227689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_accelerometer_rotation); 22773c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 227889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadDefaultHapticSettings(stmt); 22793c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 228089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.System.NOTIFICATION_LIGHT_PULSE, 228189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_notification_pulse); 228242722bfa136f5616872a2c4e199813e804621c81Amith Yamasani 228389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadUISoundEffectsSettings(stmt); 228442722bfa136f5616872a2c4e199813e804621c81Amith Yamasani 22851a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown loadIntegerSetting(stmt, Settings.System.POINTER_SPEED, 22861a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown R.integer.def_pointer_speed); 228789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } finally { 228889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 228989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } 2290f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project } 22919bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 22920e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler private void loadUISoundEffectsSettings(SQLiteStatement stmt) { 229342722bfa136f5616872a2c4e199813e804621c81Amith Yamasani loadBooleanSetting(stmt, Settings.System.DTMF_TONE_WHEN_DIALING, 229442722bfa136f5616872a2c4e199813e804621c81Amith Yamasani R.bool.def_dtmf_tones_enabled); 229542722bfa136f5616872a2c4e199813e804621c81Amith Yamasani loadBooleanSetting(stmt, Settings.System.SOUND_EFFECTS_ENABLED, 229642722bfa136f5616872a2c4e199813e804621c81Amith Yamasani R.bool.def_sound_effects_enabled); 229742722bfa136f5616872a2c4e199813e804621c81Amith Yamasani loadBooleanSetting(stmt, Settings.System.HAPTIC_FEEDBACK_ENABLED, 229842722bfa136f5616872a2c4e199813e804621c81Amith Yamasani R.bool.def_haptic_feedback); 22990e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler 23000e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler loadIntegerSetting(stmt, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 23010e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler R.integer.def_lockscreen_sounds_enabled); 23020e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler } 23030e9d2af2d60b381ba52d0c25e583b3d2a9906051Daniel Sandler 23049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void loadDefaultAnimationSettings(SQLiteStatement stmt) { 23059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadFractionSetting(stmt, Settings.System.WINDOW_ANIMATION_SCALE, 23069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project R.fraction.def_window_animation_scale, 1); 23079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadFractionSetting(stmt, Settings.System.TRANSITION_ANIMATION_SCALE, 23089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project R.fraction.def_window_transition_scale, 1); 23099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 23109bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 2311075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn private void loadDefaultHapticSettings(SQLiteStatement stmt) { 2312075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn loadBooleanSetting(stmt, Settings.System.HAPTIC_FEEDBACK_ENABLED, 2313075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn R.bool.def_haptic_feedback); 2314075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn } 2315075a18d607c3aa8386b4d06aea22f4bfacbe447bDianne Hackborn 2316f013e1afd1e68af5e3b868c26a653bbfb39538f8The Android Open Source Project private void loadSecureSettings(SQLiteDatabase db) { 231789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori SQLiteStatement stmt = null; 231889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori try { 231989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori stmt = db.compileStatement("INSERT OR IGNORE INTO secure(name,value)" 232089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori + " VALUES(?,?);"); 23213c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 232289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadStringSetting(stmt, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, 232389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.string.def_location_providers_allowed); 23243c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 232589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori String wifiWatchList = SystemProperties.get("ro.com.android.wifi-watchlist"); 232689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (!TextUtils.isEmpty(wifiWatchList)) { 232789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.Secure.WIFI_WATCHDOG_WATCH_LIST, wifiWatchList); 232889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } 23293c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 233089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori // Don't do this. The SystemServer will initialize ADB_ENABLED from a 233189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori // persistent system property instead. 233289206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori //loadSetting(stmt, Settings.Secure.ADB_ENABLED, 0); 23333c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 233489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori // Allow mock locations default, based on build 233589206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSetting(stmt, Settings.Secure.ALLOW_MOCK_LOCATION, 233689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori "1".equals(SystemProperties.get("ro.allow.mock.location")) ? 1 : 0); 23373c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 233889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadSecure35Settings(stmt); 23393c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 234089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.Secure.MOUNT_PLAY_NOTIFICATION_SND, 234189206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_mount_play_notification_snd); 23423c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 234389206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.Secure.MOUNT_UMS_AUTOSTART, 234489206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_mount_ums_autostart); 23453c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 234689206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.Secure.MOUNT_UMS_PROMPT, 234789206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_mount_ums_prompt); 23483c60eeb1332661833638c863b2978422c2846140Daisuke Miyakawa 234989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori loadBooleanSetting(stmt, Settings.Secure.MOUNT_UMS_NOTIFY_ENABLED, 235089206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori R.bool.def_mount_ums_notify_enabled); 2351585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov 2352585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION, 2353585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov R.bool.def_accessibility_script_injection); 2354585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov 2355585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov loadStringSetting(stmt, Settings.Secure.ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS, 2356585f13f8dec4cbf55b3bc04d95425d647f0577b2Svetoslav Ganov R.string.def_accessibility_web_content_key_bindings); 2357d99d0dc43a3c26c77dd22e405efbdf0753d8309ePaul Westbrook 235854d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov loadIntegerSetting(stmt, Settings.Secure.LONG_PRESS_TIMEOUT, 235954d068ec6af0ee6d261a135400efe6816c6f5ffeSvetoslav Ganov R.integer.def_long_press_timeout_millis); 2360a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov 2361a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.TOUCH_EXPLORATION_ENABLED, 2362a28a16d1c2b58999d757a4cd3bc66a2f3499a2ebSvetoslav Ganov R.bool.def_touch_exploration_enabled); 236355f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov 236455f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, 236555f937abe1a4fedb86c2679c66f0b5220ec3780eSvetoslav Ganov R.bool.def_accessibility_speak_password); 23663ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov 23673ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov loadStringSetting(stmt, Settings.Secure.ACCESSIBILITY_SCREEN_READER_URL, 23683ca5a74c17a27e44ce13b39bc2f63edaa88c3ef5Svetoslav Ganov R.string.def_accessibility_screen_reader_url); 236986aeb06635ef8c7f3fb1b4a935d5e8da819e2a88Mike Lockwood 2370d1645f8d0f30709340eb6b6d6da5022bbab77024Amith Yamasani if (SystemProperties.getBoolean("ro.lockscreen.disable.default", false) == true) { 2371d1645f8d0f30709340eb6b6d6da5022bbab77024Amith Yamasani loadSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, "1"); 2372d1645f8d0f30709340eb6b6d6da5022bbab77024Amith Yamasani } else { 2373d1645f8d0f30709340eb6b6d6da5022bbab77024Amith Yamasani loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, 2374d1645f8d0f30709340eb6b6d6da5022bbab77024Amith Yamasani R.bool.def_lockscreen_disabled); 2375d1645f8d0f30709340eb6b6d6da5022bbab77024Amith Yamasani } 23762395527c9bb1cdc3bcd3dfcbc8b72b90ed3e7080Mike Lockwood 2377634471edc409f00f38633e334cd6853954a2b093John Spurlock loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ENABLED, 2378ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.bool.config_dreamsEnabledByDefault); 2379634471edc409f00f38633e334cd6853954a2b093John Spurlock loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK, 2380ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault); 23811a868b7981ca5f52e893fdf9f8f538c9d5ce241dJohn Spurlock loadBooleanSetting(stmt, Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP, 2382ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.bool.config_dreamsActivatedOnSleepByDefault); 23831a868b7981ca5f52e893fdf9f8f538c9d5ce241dJohn Spurlock loadStringSetting(stmt, Settings.Secure.SCREENSAVER_COMPONENTS, 2384ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.string.config_dreamsDefaultComponent); 23851a868b7981ca5f52e893fdf9f8f538c9d5ce241dJohn Spurlock loadStringSetting(stmt, Settings.Secure.SCREENSAVER_DEFAULT_COMPONENT, 2386ed108f3d125b0a4cc465057e3514caf781cdea19John Spurlock com.android.internal.R.string.config_dreamsDefaultComponent); 23871cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov 23881cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov loadBooleanSetting(stmt, Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 23891cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov R.bool.def_accessibility_display_magnification_enabled); 23901cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov 23911cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov loadFractionSetting(stmt, Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, 23921cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov R.fraction.def_accessibility_display_magnification_scale, 1); 23931cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov 23941cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov loadBooleanSetting(stmt, 23951cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE, 23961cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov R.bool.def_accessibility_display_magnification_auto_update); 23977f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock 23987f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock loadBooleanSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE, 23997f1c248e80c747663396c6112bd637b0ee558dcbJohn Spurlock R.bool.def_user_setup_complete); 2400c02c4a7c5b393c5527de17faca759ff00be61ce5Mike Lockwood 2401c02c4a7c5b393c5527de17faca759ff00be61ce5Mike Lockwood loadStringSetting(stmt, Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS, 2402c02c4a7c5b393c5527de17faca759ff00be61ce5Mike Lockwood R.string.def_immersive_mode_confirmations); 2403c02c4a7c5b393c5527de17faca759ff00be61ce5Mike Lockwood 2404aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS, 2405aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate R.bool.def_install_non_market_apps); 2406aa036a2db08e19397285062c98aaab7acbf80717Christopher Tate 2407a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown loadBooleanSetting(stmt, Settings.Secure.WAKE_GESTURE_ENABLED, 2408a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown R.bool.def_wake_gesture_enabled); 2409a20dda4a6eedeee1dcaf105d76c8d7d126ce0f1bJeff Brown 241052e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler loadIntegerSetting(stmt, Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 241152e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler R.integer.def_lock_screen_show_notifications); 241252e5701eea2da526191e997f9df5c41ef1e1c938Dan Sandler 2413cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren loadBooleanSetting(stmt, Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 2414cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren R.bool.def_lock_screen_allow_private_notifications); 2415cd8f4f71fc75b4f57d21c4e9f80f1107101ca369Chris Wren 241605af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT, 241705af6adb8d4fd5ea069c9aead5a877da9085daa8Jeff Brown R.integer.def_sleep_timeout); 241889206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori } finally { 241989206fdb3b75a8bc12ac75fc8a95a5c9c79c3220Vasu Nori if (stmt != null) stmt.close(); 24209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 242154b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 242254b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project 2423cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn private void loadSecure35Settings(SQLiteStatement stmt) { 2424cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn loadBooleanSetting(stmt, Settings.Secure.BACKUP_ENABLED, 2425cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn R.bool.def_backup_enabled); 242631f90b62e8c83270094f5b0b4c75a0e06d72cd75Jim Miller 2427cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn loadStringSetting(stmt, Settings.Secure.BACKUP_TRANSPORT, 2428cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn R.string.def_backup_transport); 2429cf098294da7a820d5c30d8ed2006ed5446ee1da9Dianne Hackborn } 24306176677e01964cb5751ff217c091571ce6a8b5fbJim Miller 243106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate private void loadGlobalSettings(SQLiteDatabase db) { 243206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate SQLiteStatement stmt = null; 243306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate try { 243406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate stmt = db.compileStatement("INSERT OR IGNORE INTO global(name,value)" 243506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate + " VALUES(?,?);"); 243606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 243706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // --- Previously in 'system' 243806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.AIRPLANE_MODE_ON, 243906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_airplane_mode_on); 244006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 244106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadStringSetting(stmt, Settings.Global.AIRPLANE_MODE_RADIOS, 244206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.string.def_airplane_mode_radios); 244306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 244406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadStringSetting(stmt, Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, 244506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.string.airplane_mode_toggleable_radios); 244606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 244706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.ASSISTED_GPS_ENABLED, 244806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.assisted_gps_enabled); 244906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 245006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.AUTO_TIME, 245106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_auto_time); // Sync time to NITZ 245206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 245306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.AUTO_TIME_ZONE, 245406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_auto_time_zone); // Sync timezone to NITZ 245506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 245606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadSetting(stmt, Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 245706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate ("1".equals(SystemProperties.get("ro.kernel.qemu")) || 245806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate mContext.getResources().getBoolean(R.bool.def_stay_on_while_plugged_in)) 245906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate ? 1 : 0); 246006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 246106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadIntegerSetting(stmt, Settings.Global.WIFI_SLEEP_POLICY, 246206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.integer.def_wifi_sleep_policy); 246306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 246455b02226c07f276e143f9da6f752963882fb60d5Eric Laurent loadSetting(stmt, Settings.Global.MODE_RINGER, 246555b02226c07f276e143f9da6f752963882fb60d5Eric Laurent AudioManager.RINGER_MODE_NORMAL); 246655b02226c07f276e143f9da6f752963882fb60d5Eric Laurent 246706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // --- Previously in 'secure' 24686f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate loadBooleanSetting(stmt, Settings.Global.PACKAGE_VERIFIER_ENABLE, 24696f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate R.bool.def_package_verifier_enable); 24706f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate 24716f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate loadBooleanSetting(stmt, Settings.Global.WIFI_ON, 24726f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate R.bool.def_wifi_on); 24736f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate 24746f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate loadBooleanSetting(stmt, Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 24756f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate R.bool.def_networks_available_notification_on); 24766f5a9a96523ecf97a9828a410dd1226df47ec4e6Christopher Tate 247706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.BLUETOOTH_ON, 247806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_bluetooth_on); 247906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 248006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Enable or disable Cell Broadcast SMS 248106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadSetting(stmt, Settings.Global.CDMA_CELL_BROADCAST_SMS, 248206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); 248306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 248406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Data roaming default, based on build 248506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadSetting(stmt, Settings.Global.DATA_ROAMING, 248606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "true".equalsIgnoreCase( 248706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate SystemProperties.get("ro.com.android.dataroaming", 248806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "false")) ? 1 : 0); 248906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 249006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED, 249106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_device_provisioned); 249206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 249306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate final int maxBytes = mContext.getResources().getInteger( 249406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.integer.def_download_manager_max_bytes_over_mobile); 249506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (maxBytes > 0) { 249606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadSetting(stmt, Settings.Global.DOWNLOAD_MAX_BYTES_OVER_MOBILE, 249706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate Integer.toString(maxBytes)); 249806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 249906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 250006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate final int recommendedMaxBytes = mContext.getResources().getInteger( 250106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.integer.def_download_manager_recommended_max_bytes_over_mobile); 250206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (recommendedMaxBytes > 0) { 250306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadSetting(stmt, Settings.Global.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE, 250406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate Integer.toString(recommendedMaxBytes)); 250506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 250606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 250706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // Mobile Data default, based on build 250806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadSetting(stmt, Settings.Global.MOBILE_DATA, 250906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "true".equalsIgnoreCase( 251006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate SystemProperties.get("ro.com.android.mobiledata", 251106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate "true")) ? 1 : 0); 251206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 251306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.NETSTATS_ENABLED, 251406efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_netstats_enabled); 251506efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 251606efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadBooleanSetting(stmt, Settings.Global.USB_MASS_STORAGE_ENABLED, 251706efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.bool.def_usb_mass_storage_enabled); 251806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 251906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate loadIntegerSetting(stmt, Settings.Global.WIFI_MAX_DHCP_RETRY_COUNT, 252006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate R.integer.def_max_dhcp_retries); 252106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 252289d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown loadBooleanSetting(stmt, Settings.Global.WIFI_DISPLAY_ON, 252389d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown R.bool.def_wifi_display_on); 252489d5546d7fd3a3bb19820c42e8b4527013dd6545Jeff Brown 2525b14288d4b13d7629f578c4854f5a14d4d9a06783Jim Miller loadStringSetting(stmt, Settings.Global.LOCK_SOUND, 2526b14288d4b13d7629f578c4854f5a14d4d9a06783Jim Miller R.string.def_lock_sound); 2527b14288d4b13d7629f578c4854f5a14d4d9a06783Jim Miller loadStringSetting(stmt, Settings.Global.UNLOCK_SOUND, 2528b14288d4b13d7629f578c4854f5a14d4d9a06783Jim Miller R.string.def_unlock_sound); 252949e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos loadStringSetting(stmt, Settings.Global.TRUSTED_SOUND, 253049e057d7eedb44f5397781254acab4e0ef08a9cfAdrian Roos R.string.def_trusted_sound); 2531531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadIntegerSetting(stmt, Settings.Global.POWER_SOUNDS_ENABLED, 2532531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.integer.def_power_sounds_enabled); 2533531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadStringSetting(stmt, Settings.Global.LOW_BATTERY_SOUND, 2534531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.string.def_low_battery_sound); 2535531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadIntegerSetting(stmt, Settings.Global.DOCK_SOUNDS_ENABLED, 2536531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.integer.def_dock_sounds_enabled); 2537531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadStringSetting(stmt, Settings.Global.DESK_DOCK_SOUND, 2538531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.string.def_desk_dock_sound); 2539531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadStringSetting(stmt, Settings.Global.DESK_UNDOCK_SOUND, 2540531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.string.def_desk_undock_sound); 2541531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadStringSetting(stmt, Settings.Global.CAR_DOCK_SOUND, 2542531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.string.def_car_dock_sound); 2543531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani loadStringSetting(stmt, Settings.Global.CAR_UNDOCK_SOUND, 2544531c237b82a948ac6599ba472bb95e26f71006cfAmith Yamasani R.string.def_car_undock_sound); 254584e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown loadStringSetting(stmt, Settings.Global.WIRELESS_CHARGING_STARTED_SOUND, 254684e2756c0f3794c6efe5568a9d09101ba689fb39Jeff Brown R.string.def_wireless_charging_started_sound); 2547b14288d4b13d7629f578c4854f5a14d4d9a06783Jim Miller 2548729f6685f9dfb7a1813a89dbf2298024d9da3813Dmytro Dubovyk loadIntegerSetting(stmt, Settings.Global.DOCK_AUDIO_MEDIA_ENABLED, 2549729f6685f9dfb7a1813a89dbf2298024d9da3813Dmytro Dubovyk R.integer.def_dock_audio_media_enabled); 2550729f6685f9dfb7a1813a89dbf2298024d9da3813Dmytro Dubovyk 25516e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey loadSetting(stmt, Settings.Global.SET_INSTALL_LOCATION, 0); 25526e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey loadSetting(stmt, Settings.Global.DEFAULT_INSTALL_LOCATION, 25536e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey PackageHelper.APP_INSTALL_AUTO); 25546e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 25556e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey // Set default cdma emergency tone 25566e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey loadSetting(stmt, Settings.Global.EMERGENCY_TONE, 0); 25576e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 25586e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey // Set default cdma call auto retry 25596e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey loadSetting(stmt, Settings.Global.CALL_AUTO_RETRY, 0); 25606e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 256197ecc9ec24056259495d2de4d10a4b312d83a57aNaveen Kalla // Set the preferred network mode to target desired value or Default 256297ecc9ec24056259495d2de4d10a4b312d83a57aNaveen Kalla // value defined in RILConstants 25636e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey int type; 256497ecc9ec24056259495d2de4d10a4b312d83a57aNaveen Kalla type = SystemProperties.getInt("ro.telephony.default_network", 25656e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey RILConstants.PREFERRED_NETWORK_MODE); 25666e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey loadSetting(stmt, Settings.Global.PREFERRED_NETWORK_MODE, type); 25676e2bee75cea415621165698fdd9ce857bbb8872eJeff Sharkey 2568b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla // Set the preferred cdma subscription source to target desired value or default 2569b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla // value defined in CdmaSubscriptionSourceManager 2570b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla type = SystemProperties.getInt("ro.telephony.default_cdma_sub", 2571b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla CdmaSubscriptionSourceManager.PREFERRED_CDMA_SUBSCRIPTION); 2572b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla loadSetting(stmt, Settings.Global.CDMA_SUBSCRIPTION_MODE, type); 2573b4d485c18448eadb92083c74fc84722250daeb5dNaveen Kalla 2574dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler loadIntegerSetting(stmt, Settings.Global.LOW_BATTERY_SOUND_TIMEOUT, 2575dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler R.integer.def_low_battery_sound_timeout); 2576dea6462aab31049d1f1055314491bc33a6f16b0dDaniel Sandler 25772c4254e4765b4fa675c268550e66a3d4341282bcOskar Grönqvist loadIntegerSetting(stmt, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 25782c4254e4765b4fa675c268550e66a3d4341282bcOskar Grönqvist R.integer.def_wifi_scan_always_available); 25792c4254e4765b4fa675c268550e66a3d4341282bcOskar Grönqvist 25805242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren loadIntegerSetting(stmt, Global.HEADS_UP_NOTIFICATIONS_ENABLED, 25815242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren R.integer.def_heads_up_enabled); 25825242cf3b38b29e4676a70091d38b51af5e5467e1Chris Wren 2583147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet loadSetting(stmt, Settings.Global.DEVICE_NAME, getDefaultDeviceName()); 2584147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet 25851e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani loadBooleanSetting(stmt, Settings.Global.GUEST_USER_ENABLED, 25861e9c21871e81642669079cd290ef47818a3165bdAmith Yamasani R.bool.def_guest_user_enabled); 25870499bb5de45cf5542db7ac42406cd856d3386f1fLibin.Tang@motorola.com loadSetting(stmt, Settings.Global.VOLTE_VT_ENABLED, ImsConfig.FeatureValueConstants.ON); 258806efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate // --- New global settings start here 258906efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } finally { 259006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate if (stmt != null) stmt.close(); 259106efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 259206efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate } 259306efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate 259454b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project private void loadSetting(SQLiteStatement stmt, String key, Object value) { 259554b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project stmt.bindString(1, key); 259654b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project stmt.bindString(2, value.toString()); 259754b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project stmt.execute(); 259854b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project } 25999bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 26009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void loadStringSetting(SQLiteStatement stmt, String key, int resid) { 26019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadSetting(stmt, key, mContext.getResources().getString(resid)); 26029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26039bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 26049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void loadBooleanSetting(SQLiteStatement stmt, String key, int resid) { 26059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadSetting(stmt, key, 26069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mContext.getResources().getBoolean(resid) ? "1" : "0"); 26079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26089bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 26099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void loadIntegerSetting(SQLiteStatement stmt, String key, int resid) { 26109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadSetting(stmt, key, 26119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Integer.toString(mContext.getResources().getInteger(resid))); 26129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26139bfbfbd40df381817c0c685b177a2a1d666e101dJaikumar Ganesh 26149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void loadFractionSetting(SQLiteStatement stmt, String key, int resid, int base) { 26159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project loadSetting(stmt, key, 26169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Float.toString(mContext.getResources().getFraction(resid, base, base))); 26179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 26185cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani 26195cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani private int getIntValueFromSystem(SQLiteDatabase db, String name, int defaultValue) { 262006efb530a479ea12398c1b3ee4b80e2ac85a1680Christopher Tate return getIntValueFromTable(db, TABLE_SYSTEM, name, defaultValue); 26218631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } 26228631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov 26238631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov private int getIntValueFromTable(SQLiteDatabase db, String table, String name, 26248631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov int defaultValue) { 26258631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov String value = getStringValueFromTable(db, table, name, null); 26268631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov return (value != null) ? Integer.parseInt(value) : defaultValue; 26278631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov } 26288631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov 26298631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov private String getStringValueFromTable(SQLiteDatabase db, String table, String name, 26308631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov String defaultValue) { 26315cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani Cursor c = null; 26325cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani try { 26338631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov c = db.query(table, new String[] { Settings.System.VALUE }, "name='" + name + "'", 26345cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani null, null, null, null); 26355cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani if (c != null && c.moveToFirst()) { 26365cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani String val = c.getString(0); 26378631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov return val == null ? defaultValue : val; 26385cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani } 26395cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani } finally { 26405cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani if (c != null) c.close(); 26415cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani } 26428631701bb770f3a4e3b2a139dc282f2244fe86e6Svetoslav Ganov return defaultValue; 26435cd1500cc4229fa6a8ddb5c70b055bb2c936c650Amith Yamasani } 2644147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet 2645550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet private String getOldDefaultDeviceName() { 2646ad59c43072a3e053eecb2cca831488dc49a3af33Jeff Sharkey return mContext.getResources().getString(R.string.def_device_name, 2647550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet Build.MANUFACTURER, Build.MODEL); 2648550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet } 2649550021ec5a2c8d741506c3fe5d1ee85139bc794aJerome Poichet 2650147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet private String getDefaultDeviceName() { 2651ad59c43072a3e053eecb2cca831488dc49a3af33Jeff Sharkey return mContext.getResources().getString(R.string.def_device_name_simple, Build.MODEL); 2652147b4d75e1d4ca795d45ffe51d83efd19a754cf2Jerome Poichet } 265354b6cfa9a9e5b861a9930af873580d6dc20f773The Android Open Source Project} 2654