From 177218b9818f1d9b4bc2f350fa4a65778f4f91f9 Mon Sep 17 00:00:00 2001 From: d34d Date: Tue, 17 Nov 2015 10:13:10 -0800 Subject: settings: Implicitly use CMSettings for legacy settings Change-Id: Ibb04c5612ae010b0d19d6e58b994940f1349e384 --- .../com/android/commands/settings/SettingsCmd.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'cmds') diff --git a/cmds/settings/src/com/android/commands/settings/SettingsCmd.java b/cmds/settings/src/com/android/commands/settings/SettingsCmd.java index b6cdbeb..64610fe 100644 --- a/cmds/settings/src/com/android/commands/settings/SettingsCmd.java +++ b/cmds/settings/src/com/android/commands/settings/SettingsCmd.java @@ -29,6 +29,7 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.provider.Settings; +import android.text.TextUtils; import cyanogenmod.providers.CMSettings; import java.util.ArrayList; @@ -140,6 +141,13 @@ public final class SettingsCmd { mUser = UserHandle.USER_OWNER; } + // Implicitly use CMSettings provider if the setting is a legacy setting + if (!mUseCMSettingsProvider && isLegacySetting(mTable, mKey)) { + System.err.println("'" + mKey + "' has moved to CMSettings. Use --cm to avoid " + + "this warning in the future."); + mUseCMSettingsProvider = true; + } + try { IActivityManager activityManager = ActivityManagerNative.getDefault(); IContentProvider provider = null; @@ -329,6 +337,19 @@ public final class SettingsCmd { System.err.println("If '--cm' is given, the operations are performed on the CMSettings provider."); } + private static boolean isLegacySetting(String table, String key) { + if (!TextUtils.isEmpty(key)) { + if ("system".equals(table)) { + return CMSettings.System.isLegacySetting(key); + } else if ("secure".equals(table)) { + return CMSettings.Secure.isLegacySetting(key); + } else if ("global".equals(table)) { + return CMSettings.Global.isLegacySetting(key); + } + } + return false; + } + public static String resolveCallingPackage() { switch (android.os.Process.myUid()) { case Process.ROOT_UID: { -- cgit v1.1