diff options
author | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-12-12 15:03:40 +0100 |
---|---|---|
committer | Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de> | 2016-12-12 15:03:40 +0100 |
commit | ae08d65dc25290d8d411ff44d7eb07f4cb74e8c6 (patch) | |
tree | 1afe8d827942011eafc2afebd0ae158b24f8b38e /packages/SettingsProvider/src | |
parent | 90e1e6b2e9b79d444545d729561cf7fc099a8f10 (diff) | |
parent | 2df190c3a2ed1e339bb34c175fa227f90e7cbb02 (diff) | |
download | frameworks_base-ae08d65dc25290d8d411ff44d7eb07f4cb74e8c6.zip frameworks_base-ae08d65dc25290d8d411ff44d7eb07f4cb74e8c6.tar.gz frameworks_base-ae08d65dc25290d8d411ff44d7eb07f4cb74e8c6.tar.bz2 |
Merge branch 'cm-13.0' of https://github.com/CyanogenMod/android_frameworks_base into replicant-6.0
Diffstat (limited to 'packages/SettingsProvider/src')
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java | 64 | ||||
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 18 |
2 files changed, 68 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)); } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 5c871ca..c075e0b 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -2023,6 +2023,7 @@ public class SettingsProvider extends ContentProvider { if ((oldVersion == newVersion || oldVersion == CM_SETTINGS_DB_VERSION)) { if (oldVersion == CM_SETTINGS_DB_VERSION && !hasReplayedDefaultsFromL()) { forceReplayAOSPDefaults(mUserId); + forceMigrateProfilesEnabled(mUserId); setDefaultsReplayedFromLFlag(); } return; @@ -2221,6 +2222,23 @@ public class SettingsProvider extends ContentProvider { } } + private void forceMigrateProfilesEnabled(int userId) { + final SettingsState systemSettings = getSystemSettingsLocked(userId); + final Setting settingLocked = systemSettings.getSettingLocked( + CMSettings.System.SYSTEM_PROFILES_ENABLED); + if (settingLocked != null) { + final String value = settingLocked.getValue(); + if (value != null) { + CMSettings.System.putStringForUser(getContext().getContentResolver(), + CMSettings.System.SYSTEM_PROFILES_ENABLED, + value, + userId); + systemSettings.deleteSettingLocked( + CMSettings.System.SYSTEM_PROFILES_ENABLED); + } + } + } + } } } |