diff options
| author | Marcin Oczeretko <marcinoc@google.com> | 2020-10-19 16:07:02 +0100 |
|---|---|---|
| committer | Marcin Oczeretko <marcinoc@google.com> | 2020-11-17 18:37:51 +0000 |
| commit | 2db59986ebbe2f78854cdba84af6f3579ff15e5d (patch) | |
| tree | b9a78feaa1ef2e8c7cc05b196a2863339839e757 /core/java | |
| parent | f15a5fc2bf30ffabe691b432fa1a00693975ee64 (diff) | |
Switch LatencyTracker to the DeviceConfig API
Test: manual
Bug: 162927074
Change-Id: I4eaae9db74ac1b23bdd0e90a6981a852375f788b
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/provider/DeviceConfig.java | 7 | ||||
| -rw-r--r-- | core/java/android/provider/Settings.java | 13 | ||||
| -rw-r--r-- | core/java/com/android/internal/util/LatencyTracker.java | 58 |
3 files changed, 20 insertions, 58 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 3e48168eabe0..fcc0222015c0 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -14576,19 +14576,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(); - } - } } |
