Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2db59986 authored by Marcin Oczeretko's avatar Marcin Oczeretko
Browse files

Switch LatencyTracker to the DeviceConfig API

Test: manual
Bug: 162927074

Change-Id: I4eaae9db74ac1b23bdd0e90a6981a852375f788b
parent f15a5fc2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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 =
+0 −13
Original line number Diff line number Diff line
@@ -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";
    }
    /**
+13 −45
Original line number Diff line number Diff line
@@ -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();
    }
@@ -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();
        }
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -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,