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>
This commit is contained in:
parent
94dd91a34c
commit
fd4b383b71
|
@ -438,6 +438,12 @@ public final class CMSettings {
|
||||||
CALL_METHOD_GET_SYSTEM,
|
CALL_METHOD_GET_SYSTEM,
|
||||||
CALL_METHOD_PUT_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
|
// region Methods
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -501,6 +507,11 @@ public final class CMSettings {
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public static String getStringForUser(ContentResolver resolver, String name,
|
public static String getStringForUser(ContentResolver resolver, String name,
|
||||||
int userId) {
|
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);
|
return sNameValueCache.getStringForUser(resolver, name, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1914,7 +1925,15 @@ public final class CMSettings {
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static boolean shouldInterceptSystemProvider(String key) {
|
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
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static boolean shouldInterceptSystemProvider(String key) {
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue