aboutsummaryrefslogtreecommitdiffstats
path: root/sdk
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2016-04-29 15:25:13 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-05-02 16:17:41 -0700
commitfd4b383b71cd21b5bfc03e782573a938b8abe505 (patch)
tree4800394a051333f452dfb57b2b4f66151916d29f /sdk
parent94dd91a34c42ba991651a11665fa2fc1806af43e (diff)
downloadvendor_cmsdk-fd4b383b71cd21b5bfc03e782573a938b8abe505.zip
vendor_cmsdk-fd4b383b71cd21b5bfc03e782573a938b8abe505.tar.gz
vendor_cmsdk-fd4b383b71cd21b5bfc03e782573a938b8abe505.tar.bz2
CMSettings: intercept Settings calls to DEV_FORCE_SHOW_NAVBAR
Because DEV_FORCE_SHOW_NAVBAR has lived in Settings.System, Settings.Secure, and now in CMSettings.Secure, we need to return the proper value no matter which place an app might query. Ticket: CYNGNOS-2480 Change-Id: Ie84df9763aa3714ec4ce4d033dc73be4de3f1f00 Signed-off-by: Roman Birg <roman@cyngn.com>
Diffstat (limited to 'sdk')
-rw-r--r--sdk/src/java/cyanogenmod/providers/CMSettings.java31
1 files changed, 29 insertions, 2 deletions
diff --git a/sdk/src/java/cyanogenmod/providers/CMSettings.java b/sdk/src/java/cyanogenmod/providers/CMSettings.java
index b6ed449..f739d42 100644
--- a/sdk/src/java/cyanogenmod/providers/CMSettings.java
+++ b/sdk/src/java/cyanogenmod/providers/CMSettings.java
@@ -438,6 +438,12 @@ public final class CMSettings {
CALL_METHOD_GET_SYSTEM,
CALL_METHOD_PUT_SYSTEM);
+ protected static final ArraySet<String> MOVED_TO_SECURE;
+ static {
+ MOVED_TO_SECURE = new ArraySet<>(1);
+ MOVED_TO_SECURE.add(Secure.DEV_FORCE_SHOW_NAVBAR);
+ }
+
// region Methods
/**
@@ -501,6 +507,11 @@ public final class CMSettings {
/** @hide */
public static String getStringForUser(ContentResolver resolver, String name,
int userId) {
+ if (MOVED_TO_SECURE.contains(name)) {
+ Log.w(TAG, "Setting " + name + " has moved from CMSettings.System"
+ + " to CMSettings.Secure, value is unchanged.");
+ return CMSettings.Secure.getStringForUser(resolver, name, userId);
+ }
return sNameValueCache.getStringForUser(resolver, name, userId);
}
@@ -1914,7 +1925,15 @@ public final class CMSettings {
* @hide
*/
public static boolean shouldInterceptSystemProvider(String key) {
- return key.equals(System.SYSTEM_PROFILES_ENABLED);
+ switch (key) {
+ case System.SYSTEM_PROFILES_ENABLED:
+ // some apps still query Settings.System.DEV_FORCE_SHOW_NAVBAR;
+ // we intercept the call, and return CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR's value
+ case Secure.DEV_FORCE_SHOW_NAVBAR:
+ return true;
+ default:
+ return false;
+ }
}
/**
@@ -2853,7 +2872,15 @@ public final class CMSettings {
* @hide
*/
public static boolean shouldInterceptSystemProvider(String key) {
- return false;
+ switch (key) {
+ // some apps still query Settings.System.DEV_FORCE_SHOW_NAVBAR, and it was moved to
+ // Settings.Secure, then CMSettings.Secure. Forward queries from Settings.Secure
+ // to CMSettings.Secure here just in case an app stuck with the Settings.Secure call
+ case DEV_FORCE_SHOW_NAVBAR:
+ return true;
+ default:
+ return false;
+ }
}
}