Loading core/java/android/provider/DeviceConfig.java +7 −0 Original line number Diff line number Diff line Loading @@ -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 = Loading core/java/android/provider/Settings.java +0 −13 Original line number Diff line number Diff line Loading @@ -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"; } /** core/java/com/android/internal/util/LatencyTracker.java +13 −45 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } /** Loading Loading @@ -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(); } Loading Loading @@ -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(); } } } packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -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, Loading Loading
core/java/android/provider/DeviceConfig.java +7 −0 Original line number Diff line number Diff line Loading @@ -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 = Loading
core/java/android/provider/Settings.java +0 −13 Original line number Diff line number Diff line Loading @@ -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"; } /**
core/java/com/android/internal/util/LatencyTracker.java +13 −45 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } /** Loading Loading @@ -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(); } Loading Loading @@ -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(); } } }
packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -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, Loading