diff options
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/tuner/TunerService.java')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/tuner/TunerService.java | 51 |
1 files changed, 44 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java index 50234b2..3e7477c 100644 --- a/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java +++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerService.java @@ -31,6 +31,7 @@ import android.os.Handler; import android.os.Looper; import android.os.UserHandle; import android.provider.Settings; +import android.text.TextUtils; import android.util.ArrayMap; import com.android.systemui.BatteryMeterView; @@ -40,6 +41,7 @@ import com.android.systemui.SystemUI; import com.android.systemui.SystemUIApplication; import com.android.systemui.settings.CurrentUserTracker; import com.android.systemui.statusbar.phone.SystemUIDialog; +import cyanogenmod.providers.CMSettings; import java.util.ArrayList; import java.util.HashMap; @@ -84,17 +86,31 @@ public class TunerService extends SystemUI { } private void addTunable(Tunable tunable, String key) { + addTunableByProvider(tunable, key, false); + } + + public void addTunableByProvider(Tunable tunable, String key, boolean cm) { if (!mTunableLookup.containsKey(key)) { mTunableLookup.put(key, new ArrayList<Tunable>()); } mTunableLookup.get(key).add(tunable); - Uri uri = Settings.Secure.getUriFor(key); + Uri uri; + if (!cm) { + uri = Settings.Secure.getUriFor(key); + } else { + uri = CMSettings.Secure.getUriFor(key); + } if (!mListeningUris.containsKey(uri)) { mListeningUris.put(uri, key); mContentResolver.registerContentObserver(uri, false, mObserver, mCurrentUser); } // Send the first state. - String value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + String value; + if (cm) { + value = CMSettings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + } else { + value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + } tunable.onTuningChanged(key, value); } @@ -116,7 +132,18 @@ public class TunerService extends SystemUI { public void reloadSetting(Uri uri) { String key = mListeningUris.get(uri); - String value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + + // Handle possible null keys + if (TextUtils.isEmpty(key)) { + return; + } + + String value; + if (uri.getAuthority().equals(CMSettings.AUTHORITY)) { + value = CMSettings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + } else { + value = Settings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + } for (Tunable tunable : mTunableLookup.get(key)) { tunable.onTuningChanged(key, value); } @@ -124,8 +151,14 @@ public class TunerService extends SystemUI { private void reloadAll() { for (String key : mTunableLookup.keySet()) { - String value = Settings.Secure.getStringForUser(mContentResolver, key, - mCurrentUser); + String value; + Uri uri = CMSettings.Secure.getUriFor(key); + if (uri.getAuthority() != null && uri.getAuthority().equals(CMSettings.AUTHORITY)) { + value = CMSettings.Secure.getStringForUser(mContentResolver, key, mCurrentUser); + } else { + value = Settings.Secure.getStringForUser(mContentResolver, key, + mCurrentUser); + } for (Tunable tunable : mTunableLookup.get(key)) { tunable.onTuningChanged(key, value); } @@ -135,13 +168,17 @@ public class TunerService extends SystemUI { public void clearAll() { // A couple special cases. Settings.Global.putString(mContentResolver, DemoMode.DEMO_MODE_ALLOWED, null); - Settings.System.putString(mContentResolver, BatteryMeterView.SHOW_PERCENT_SETTING, null); Intent intent = new Intent(DemoMode.ACTION_DEMO); intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_EXIT); mContext.sendBroadcast(intent); for (String key : mTunableLookup.keySet()) { - Settings.Secure.putString(mContentResolver, key, null); + Uri uri = CMSettings.Secure.getUriFor(key); + if (uri.getAuthority() != null && uri.getAuthority().equals(CMSettings.AUTHORITY)) { + CMSettings.Secure.putString(mContentResolver, key, null); + } else { + Settings.Secure.putString(mContentResolver, key, null); + } } } |