diff options
Diffstat (limited to 'packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java')
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java | 64 |
1 files changed, 50 insertions, 14 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index 858baa5..68fde92 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -44,6 +44,12 @@ import android.provider.Settings.Secure; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.content.res.AssetManager; +import android.util.DisplayMetrics; +import android.content.pm.PackageManager.NameNotFoundException; + import com.android.ims.ImsConfig; import com.android.internal.content.PackageHelper; @@ -102,6 +108,7 @@ class DatabaseHelper extends SQLiteOpenHelper { private static final String TABLE_SYSTEM = "system"; private static final String TABLE_SECURE = "secure"; private static final String TABLE_GLOBAL = "global"; + private String mPublicSrcDir; static { mValidTables.add(TABLE_SYSTEM); @@ -133,6 +140,13 @@ class DatabaseHelper extends SQLiteOpenHelper { super(context, dbNameForUser(userHandle), null, DATABASE_VERSION); mContext = context; mUserHandle = userHandle; + try { + String packageName = mContext.getPackageName(); + mPublicSrcDir = mContext.getPackageManager().getApplicationInfo(packageName, 0) + .publicSourceDir; + } catch (NameNotFoundException e) { + e.printStackTrace(); + } } public static boolean isValidTable(String name) { @@ -2070,7 +2084,7 @@ class DatabaseHelper extends SQLiteOpenHelper { } String[] systemToSecure = new String[] { - CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR, + CMSettings.Global.DEV_FORCE_SHOW_NAVBAR, CMSettings.Secure.KEYBOARD_BRIGHTNESS, CMSettings.Secure.BUTTON_BRIGHTNESS, CMSettings.Secure.BUTTON_BACKLIGHT_TIMEOUT @@ -2247,7 +2261,7 @@ class DatabaseHelper extends SQLiteOpenHelper { try { LockPatternUtils lpu = new LockPatternUtils(mContext); List<LockPatternView.Cell> cellPattern = - LockPatternUtils.stringToPattern(lockPattern, lpu.getLockPatternSize()); + LockPatternUtils.stringToPattern(lockPattern, lpu.getLockPatternSize(mUserHandle)); lpu.saveLockPattern(cellPattern, null, UserHandle.USER_OWNER); } catch (IllegalArgumentException e) { // Don't want corrupted lock pattern to hang the reboot process @@ -2617,6 +2631,8 @@ class DatabaseHelper extends SQLiteOpenHelper { R.bool.def_sound_effects_enabled); loadBooleanSetting(stmt, Settings.System.HAPTIC_FEEDBACK_ENABLED, R.bool.def_haptic_feedback); + loadBooleanSetting(stmt, CMSettings.System.VOLUME_ADJUST_SOUNDS_ENABLED, + R.bool.def_volume_adjust_sounds_enabled); loadIntegerSetting(stmt, Settings.System.LOCKSCREEN_SOUNDS_ENABLED, R.integer.def_lockscreen_sounds_enabled); @@ -2838,7 +2854,7 @@ class DatabaseHelper extends SQLiteOpenHelper { RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); // Data roaming default, based on build - loadBooleanSetting(stmt, Settings.Global.DATA_ROAMING, + loadRegionLockedBooleanSetting(stmt, Settings.Global.DATA_ROAMING, R.bool.def_enable_data_roaming); loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED, @@ -2859,20 +2875,10 @@ class DatabaseHelper extends SQLiteOpenHelper { } // Mobile Data default, based on build - loadBooleanSetting(stmt, Settings.Global.MOBILE_DATA, + loadRegionLockedBooleanSetting(stmt, Settings.Global.MOBILE_DATA, R.bool.def_enable_mobile_data); int phoneCount = TelephonyManager.getDefault().getPhoneCount(); - // SUB specific flags for Multisim devices - for (int phoneId = 0; phoneId < MAX_PHONE_COUNT; phoneId++) { - // Mobile Data default, based on build - loadBooleanSetting(stmt, Settings.Global.MOBILE_DATA + phoneId, - R.bool.def_enable_mobile_data); - - // Data roaming default, based on build - loadBooleanSetting(stmt, Settings.Global.DATA_ROAMING + phoneId, - R.bool.def_enable_data_roaming); - } loadBooleanSetting(stmt, Settings.Global.NETSTATS_ENABLED, R.bool.def_netstats_enabled); @@ -2997,6 +3003,36 @@ class DatabaseHelper extends SQLiteOpenHelper { stmt.execute(); } + private Resources getRegionLockedResources() { + Configuration tempConfiguration = new Configuration(); + String mcc = SystemProperties.get("ro.prebundled.mcc"); + Resources customResources = null; + if (!TextUtils.isEmpty(mcc)) { + tempConfiguration.mcc = Integer.parseInt(mcc); + AssetManager assetManager = new AssetManager(); + assetManager.addAssetPath(mPublicSrcDir); + customResources = new Resources(assetManager, new DisplayMetrics(), + tempConfiguration); + } + + return customResources; + } + + private void loadRegionLockedStringSetting(SQLiteStatement stmt, String key, int resid) { + Resources customResources = getRegionLockedResources(); + loadSetting(stmt, key, customResources == null ? mContext.getResources().getString(resid) + : customResources.getString(resid)); + } + + private void loadRegionLockedBooleanSetting(SQLiteStatement stmt, String key, int resId) { + Resources customResources = getRegionLockedResources(); + if (customResources == null) { + customResources = mContext.getResources(); + } + + loadSetting(stmt, key, customResources.getBoolean(resId) ? "1" : "0"); + } + private void loadStringSetting(SQLiteStatement stmt, String key, int resid) { loadSetting(stmt, key, mContext.getResources().getString(resid)); } |