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

Commit 8e7dd52d authored by Fabián Kozynski's avatar Fabián Kozynski
Browse files

Add logs to BrightnessSlider

Adds logs when user starts dragging brightness and when it finishes (and
is committed). We don't log in each temporary brightness because it
would be too verbose.

Bug: 364438924
Test: manual, dump BrightnessLog
Flag: EXEMPT adding logs
Change-Id: I30f513db72485702d634878eef2608b9bb1bab52
parent abc00b61
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -50,8 +50,12 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.systemui.Flags;
import com.android.systemui.brightness.shared.model.BrightnessLog;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.log.LogBuffer;
import com.android.systemui.log.core.LogLevel;
import com.android.systemui.log.core.LogMessage;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.util.settings.SecureSettings;
@@ -60,6 +64,8 @@ import dagger.assisted.Assisted;
import dagger.assisted.AssistedFactory;
import dagger.assisted.AssistedInject;

import kotlin.Unit;

import java.util.concurrent.Executor;

public class BrightnessController implements ToggleSlider.Listener, MirroredBrightnessController {
@@ -88,6 +94,7 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
    private final Executor mMainExecutor;
    private final Handler mBackgroundHandler;
    private final BrightnessObserver mBrightnessObserver;
    private final LogBuffer mLogBuffer;

    private final DisplayTracker.Callback mBrightnessListener = new DisplayTracker.Callback() {
        @Override
@@ -308,6 +315,7 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
            DisplayTracker displayTracker,
            DisplayManager displayManager,
            SecureSettings secureSettings,
            @BrightnessLog LogBuffer logBuffer,
            @Nullable IVrManager iVrManager,
            @Main Executor mainExecutor,
            @Main Looper mainLooper,
@@ -323,6 +331,7 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
        mDisplayId = mContext.getDisplayId();
        mDisplayManager = displayManager;
        mVrManager = iVrManager;
        mLogBuffer = logBuffer;

        mMainHandler = new Handler(mainLooper, mHandlerCallback);
        mBrightnessObserver = new BrightnessObserver(mMainHandler);
@@ -342,6 +351,7 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig

    @Override
    public void onChanged(boolean tracking, int value, boolean stopTracking) {
        boolean starting = !mTrackingTouch && tracking;
        mTrackingTouch = tracking;
        if (mExternalChange) return;

@@ -369,9 +379,13 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig

        }
        setBrightness(valFloat);
        if (starting) {
            logBrightnessChange(mDisplayId, valFloat, true);
        }
        if (!tracking) {
            AsyncTask.execute(new Runnable() {
                    public void run() {
                        logBrightnessChange(mDisplayId, valFloat, false);
                        mDisplayManager.setBrightness(mDisplayId, valFloat);
                    }
                });
@@ -474,4 +488,20 @@ public class BrightnessController implements ToggleSlider.Listener, MirroredBrig
        /** Create a {@link BrightnessController} */
        BrightnessController create(ToggleSlider toggleSlider);
    }

    private void logBrightnessChange(int display, float value, boolean starting) {
        mLogBuffer.log(
                TAG,
                LogLevel.DEBUG,
                (LogMessage message) -> {
                    message.setInt1(display);
                    message.setDouble1(value);
                    message.setBool1(starting);
                    return Unit.INSTANCE;
                },
                (LogMessage message) -> "%s brightness set in display %d to %.3f".formatted(
                        message.getBool1() ? "Starting" : "Finishing", message.getInt1(),
                        message.getDouble1())
        );
    }
}
+4 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.testing.TestableLooper.RunWithLooper
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.log.LogBuffer
import com.android.systemui.settings.DisplayTracker
import com.android.systemui.settings.UserTracker
import com.android.systemui.util.concurrency.FakeExecutor
@@ -51,6 +52,7 @@ class BrightnessControllerTest : SysuiTestCase() {
    @Mock private lateinit var displayTracker: DisplayTracker
    @Mock private lateinit var displayManager: DisplayManager
    @Mock private lateinit var iVrManager: IVrManager
    @Mock private lateinit var logger: LogBuffer

    private lateinit var testableLooper: TestableLooper

@@ -69,10 +71,11 @@ class BrightnessControllerTest : SysuiTestCase() {
                displayTracker,
                displayManager,
                secureSettings,
                logger,
                iVrManager,
                executor,
                mock(),
                Handler(testableLooper.looper)
                Handler(testableLooper.looper),
            )
    }