settings command list by user
bug: 119872843
Test: $ adb -e shell settings list
Bad arguments
$ adb -e shell settings list secure
$ adb -e shell settings list gl
Invalid namespace 'gl'
$ adb -e shell settings list global
...
$ adb -e shell settings list --user 10 global
...
$ adb -e shell settings list --user 0 global
...
$ adb -e shell settings put --user 10 secure zzz.test true
$ adb -e shell settings get --user 10 secure zzz.test
true
$ adb -e shell settings get --user 0 secure zzz.test
null
$ adb -e shell settings list --user 0 secure
... zzz.test not present ...
$ adb -e shell settings list --user 10 secure
...
zzz.test=true
Change-Id: I8ab3d20cbe9221a52f85151d97e0c6d92bf7bb43
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 2227642..00ea45c 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -186,6 +186,7 @@
Settings.NameValueTable.VALUE, null);
public static final String RESULT_ROWS_DELETED = "result_rows_deleted";
+ public static final String RESULT_SETTINGS_LIST = "result_settings_list";
// Overlay specified settings whitelisted for Instant Apps
private static final Set<String> OVERLAY_ALLOWED_GLOBAL_INSTANT_APP_SETTINGS = new ArraySet<>();
@@ -483,6 +484,27 @@
return result;
}
+ case Settings.CALL_METHOD_LIST_SYSTEM: {
+ Bundle result = new Bundle();
+ result.putStringArrayList(RESULT_SETTINGS_LIST,
+ buildSettingsList(getAllSystemSettings(requestingUserId, null)));
+ return result;
+ }
+
+ case Settings.CALL_METHOD_LIST_SECURE: {
+ Bundle result = new Bundle();
+ result.putStringArrayList(RESULT_SETTINGS_LIST,
+ buildSettingsList(getAllSecureSettings(requestingUserId, null)));
+ return result;
+ }
+
+ case Settings.CALL_METHOD_LIST_GLOBAL: {
+ Bundle result = new Bundle();
+ result.putStringArrayList(RESULT_SETTINGS_LIST,
+ buildSettingsList(getAllGlobalSettings(null)));
+ return result;
+ }
+
default: {
Slog.w(LOG_TAG, "call() with invalid method: " + method);
} break;
@@ -552,6 +574,20 @@
}
}
+ private ArrayList<String> buildSettingsList(Cursor cursor) {
+ final ArrayList<String> lines = new ArrayList<String>();
+ try {
+ while (cursor != null && cursor.moveToNext()) {
+ lines.add(cursor.getString(1) + "=" + cursor.getString(2));
+ }
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+ return lines;
+ }
+
@Override
public Uri insert(Uri uri, ContentValues values) {
if (DEBUG) {