summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/provider/DeviceConfig.java7
-rw-r--r--core/java/android/provider/Settings.java13
-rw-r--r--core/java/com/android/internal/util/LatencyTracker.java58
-rw-r--r--packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java1
4 files changed, 20 insertions, 59 deletions
diff --git a/core/java/android/provider/DeviceConfig.java b/core/java/android/provider/DeviceConfig.java
index 97c9f4bbb4ba..0c4f8de449e6 100644
--- a/core/java/android/provider/DeviceConfig.java
+++ b/core/java/android/provider/DeviceConfig.java
@@ -457,6 +457,13 @@ public final class DeviceConfig {
*/
public static final String NAMESPACE_CONFIGURATION = "configuration";
+ /**
+ * LatencyTracker properties definitions.
+ *
+ * @hide
+ */
+ public static final String NAMESPACE_LATENCY_TRACKER = "latency_tracker";
+
private static final Object sLock = new Object();
@GuardedBy("sLock")
private static ArrayMap<OnPropertiesChangedListener, Pair<String, Executor>> sListeners =
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index a50a8356ebbd..884f8ccd5e54 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -14584,19 +14584,6 @@ public final class Settings {
*/
public static final String MAXIMUM_OBSCURING_OPACITY_FOR_TOUCH =
"maximum_obscuring_opacity_for_touch";
-
- /**
- * LatencyTracker settings.
- *
- * The following strings are supported as keys:
- * <pre>
- * enabled (boolean)
- * sampling_interval (int)
- * </pre>
- *
- * @hide
- */
- public static final String LATENCY_TRACKER = "latency_tracker";
}
/**
diff --git a/core/java/com/android/internal/util/LatencyTracker.java b/core/java/com/android/internal/util/LatencyTracker.java
index a87e8aaa0e64..8012540ed314 100644
--- a/core/java/com/android/internal/util/LatencyTracker.java
+++ b/core/java/com/android/internal/util/LatencyTracker.java
@@ -15,15 +15,11 @@
package com.android.internal.util;
import android.content.Context;
-import android.database.ContentObserver;
-import android.net.Uri;
import android.os.Build;
import android.os.SystemClock;
import android.os.Trace;
-import android.os.UserHandle;
-import android.provider.Settings;
+import android.provider.DeviceConfig;
import android.util.EventLog;
-import android.util.KeyValueListParser;
import android.util.Log;
import android.util.SparseLongArray;
@@ -135,8 +131,16 @@ public class LatencyTracker {
mSamplingInterval = DEFAULT_SAMPLING_INTERVAL;
// Post initialization to the background in case we're running on the main thread.
- BackgroundThread.getHandler().post(this::registerSettingsObserver);
- BackgroundThread.getHandler().post(this::readSettings);
+ BackgroundThread.getHandler().post(() -> this.updateProperties(
+ DeviceConfig.getProperties(DeviceConfig.NAMESPACE_LATENCY_TRACKER)));
+ DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_LATENCY_TRACKER,
+ BackgroundThread.getExecutor(), this::updateProperties);
+ }
+
+ private void updateProperties(DeviceConfig.Properties properties) {
+ mSamplingInterval = properties.getInt(SETTINGS_SAMPLING_INTERVAL_KEY,
+ DEFAULT_SAMPLING_INTERVAL);
+ mEnabled = properties.getBoolean(SETTINGS_ENABLED_KEY, DEFAULT_ENABLED);
}
/**
@@ -171,28 +175,6 @@ public class LatencyTracker {
}
}
- private void registerSettingsObserver() {
- Uri settingsUri = Settings.Global.getUriFor(Settings.Global.LATENCY_TRACKER);
- mContext.getContentResolver().registerContentObserver(
- settingsUri, false, new SettingsObserver(this), UserHandle.myUserId());
- }
-
- private void readSettings() {
- KeyValueListParser parser = new KeyValueListParser(',');
- String settingsValue = Settings.Global.getString(mContext.getContentResolver(),
- Settings.Global.LATENCY_TRACKER);
-
- try {
- parser.setString(settingsValue);
- mSamplingInterval = parser.getInt(SETTINGS_SAMPLING_INTERVAL_KEY,
- DEFAULT_SAMPLING_INTERVAL);
- mEnabled = parser.getBoolean(SETTINGS_ENABLED_KEY, DEFAULT_ENABLED);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "Incorrect settings format", e);
- mEnabled = false;
- }
- }
-
public static boolean isEnabled(Context ctx) {
return getInstance(ctx).isEnabled();
}
@@ -236,8 +218,8 @@ public class LatencyTracker {
/**
* Logs an action that has started and ended. This needs to be called from the main thread.
*
- * @param action The action to end. One of the ACTION_* values.
- * @param duration The duration of the action in ms.
+ * @param action The action to end. One of the ACTION_* values.
+ * @param duration The duration of the action in ms.
*/
public void logAction(int action, int duration) {
boolean shouldSample = ThreadLocalRandom.current().nextInt() % mSamplingInterval == 0;
@@ -260,18 +242,4 @@ public class LatencyTracker {
FrameworkStatsLog.UI_ACTION_LATENCY_REPORTED, STATSD_ACTION[action], duration);
}
}
-
- private static class SettingsObserver extends ContentObserver {
- private final LatencyTracker mThisTracker;
-
- SettingsObserver(LatencyTracker thisTracker) {
- super(BackgroundThread.getHandler());
- mThisTracker = thisTracker;
- }
-
- @Override
- public void onChange(boolean selfChange, Uri uri, int userId) {
- mThisTracker.readSettings();
- }
- }
}
diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
index a0a5fcb8f47a..af12ddd8895b 100644
--- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
+++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java
@@ -315,7 +315,6 @@ public class SettingsBackupTest {
Settings.Global.KERNEL_CPU_THREAD_READER,
Settings.Global.LANG_ID_UPDATE_CONTENT_URL,
Settings.Global.LANG_ID_UPDATE_METADATA_URL,
- Settings.Global.LATENCY_TRACKER,
Settings.Global.LOCATION_BACKGROUND_THROTTLE_INTERVAL_MS,
Settings.Global.LOCATION_BACKGROUND_THROTTLE_PROXIMITY_ALERT_INTERVAL_MS,
Settings.Global.LOCATION_BACKGROUND_THROTTLE_PACKAGE_WHITELIST,