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

Commit 580ab7f5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Switch LatencyTracker to the DeviceConfig API"

parents 992b1937 2db59986
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
@@ -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";
    }
    /**
+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,