Adding two UiEvent IDs to log when slider tracks and stops tracking
touch.
The events are part of a new enumerable class BrightnessSliderEvent.
They are: SLIDER_STARTED_TRACKING_TOUCH and SLIDER_STOPPED_TRACKING_TOUCH
Test: atest BrightnessSliderControllerTest
Test: manual, make statsd_testdrive && statsd_testdrive 90
Bug: 295932558
Change-Id: I8062a3950b67d218aba224b08cf12ced864db33e
diff --git a/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderController.java b/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderController.java
index 6c8190a..d0d37c4 100644
--- a/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderController.java
+++ b/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderController.java
@@ -25,6 +25,7 @@
import androidx.annotation.Nullable;
+import com.android.internal.logging.UiEventLogger;
import com.android.settingslib.RestrictedLockUtils;
import com.android.systemui.Gefingerpoken;
import com.android.systemui.R;
@@ -52,6 +53,7 @@
private BrightnessMirrorController mMirrorController;
private boolean mTracking;
private final FalsingManager mFalsingManager;
+ private final UiEventLogger mUiEventLogger;
private final Gefingerpoken mOnInterceptListener = new Gefingerpoken() {
@Override
@@ -72,9 +74,11 @@
BrightnessSliderController(
BrightnessSliderView brightnessSliderView,
- FalsingManager falsingManager) {
+ FalsingManager falsingManager,
+ UiEventLogger uiEventLogger) {
super(brightnessSliderView);
mFalsingManager = falsingManager;
+ mUiEventLogger = uiEventLogger;
}
/**
@@ -206,7 +210,7 @@
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mTracking = true;
-
+ mUiEventLogger.log(BrightnessSliderEvent.SLIDER_STARTED_TRACKING_TOUCH);
if (mListener != null) {
mListener.onChanged(mTracking, getValue(), false);
}
@@ -220,7 +224,7 @@
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mTracking = false;
-
+ mUiEventLogger.log(BrightnessSliderEvent.SLIDER_STOPPED_TRACKING_TOUCH);
if (mListener != null) {
mListener.onChanged(mTracking, getValue(), true);
}
@@ -237,10 +241,12 @@
public static class Factory {
private final FalsingManager mFalsingManager;
+ private final UiEventLogger mUiEventLogger;
@Inject
- public Factory(FalsingManager falsingManager) {
+ public Factory(FalsingManager falsingManager, UiEventLogger uiEventLogger) {
mFalsingManager = falsingManager;
+ mUiEventLogger = uiEventLogger;
}
/**
@@ -250,11 +256,13 @@
* @param viewRoot the {@link ViewGroup} that will contain the hierarchy. The inflated
* hierarchy will not be attached
*/
- public BrightnessSliderController create(Context context, @Nullable ViewGroup viewRoot) {
+ public BrightnessSliderController create(
+ Context context,
+ @Nullable ViewGroup viewRoot) {
int layout = getLayout();
BrightnessSliderView root = (BrightnessSliderView) LayoutInflater.from(context)
.inflate(layout, viewRoot, false);
- return new BrightnessSliderController(root, mFalsingManager);
+ return new BrightnessSliderController(root, mFalsingManager, mUiEventLogger);
}
/** Get the layout to inflate based on what slider to use */
diff --git a/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderEvent.java b/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderEvent.java
new file mode 100644
index 0000000..3a30880
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/settings/brightness/BrightnessSliderEvent.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.settings.brightness;
+
+import com.android.internal.logging.UiEvent;
+import com.android.internal.logging.UiEventLogger;
+
+public enum BrightnessSliderEvent implements UiEventLogger.UiEventEnum {
+
+ @UiEvent(doc = "slider started to track touch")
+ SLIDER_STARTED_TRACKING_TOUCH(1472),
+ @UiEvent(doc = "slider stopped tracking touch")
+ SLIDER_STOPPED_TRACKING_TOUCH(1473);
+
+ private final int mId;
+
+ BrightnessSliderEvent(int id) {
+ mId = id;
+ }
+
+ @Override
+ public int getId() {
+ return mId;
+ }
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/settings/brightness/BrightnessSliderControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/settings/brightness/BrightnessSliderControllerTest.kt
index 2b39354..d75405f 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/settings/brightness/BrightnessSliderControllerTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/settings/brightness/BrightnessSliderControllerTest.kt
@@ -20,6 +20,7 @@
import android.view.MotionEvent
import android.widget.SeekBar
import androidx.test.filters.SmallTest
+import com.android.internal.logging.testing.UiEventLoggerFake
import com.android.settingslib.RestrictedLockUtils
import com.android.systemui.SysuiTestCase
import com.android.systemui.classifier.FalsingManagerFake
@@ -39,6 +40,7 @@
import org.mockito.Mockito.isNull
import org.mockito.Mockito.never
import org.mockito.Mockito.notNull
+import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.MockitoAnnotations
import org.mockito.Mockito.`when` as whenever
@@ -64,6 +66,7 @@
private lateinit var seekBarChangeCaptor: ArgumentCaptor<SeekBar.OnSeekBarChangeListener>
@Mock
private lateinit var seekBar: SeekBar
+ private val uiEventLogger = UiEventLoggerFake()
private var mFalsingManager: FalsingManagerFake = FalsingManagerFake()
private lateinit var mController: BrightnessSliderController
@@ -75,7 +78,8 @@
whenever(mirrorController.toggleSlider).thenReturn(mirror)
whenever(motionEvent.copy()).thenReturn(motionEvent)
- mController = BrightnessSliderController(brightnessSliderView, mFalsingManager)
+ mController =
+ BrightnessSliderController(brightnessSliderView, mFalsingManager, uiEventLogger)
mController.init()
mController.setOnChangedListener(listener)
}
@@ -190,6 +194,7 @@
@Test
fun testSeekBarTrackingStarted() {
whenever(brightnessSliderView.value).thenReturn(42)
+ val event = BrightnessSliderEvent.SLIDER_STARTED_TRACKING_TOUCH
mController.onViewAttached()
mController.setMirrorControllerAndMirror(mirrorController)
@@ -200,11 +205,14 @@
verify(listener).onChanged(eq(true), eq(42), eq(false))
verify(mirrorController).showMirror()
verify(mirrorController).setLocationAndSize(brightnessSliderView)
+ assertThat(uiEventLogger.numLogs()).isEqualTo(1)
+ assertThat(uiEventLogger.eventId(0)).isEqualTo(event.id)
}
@Test
fun testSeekBarTrackingStopped() {
whenever(brightnessSliderView.value).thenReturn(23)
+ val event = BrightnessSliderEvent.SLIDER_STOPPED_TRACKING_TOUCH
mController.onViewAttached()
mController.setMirrorControllerAndMirror(mirrorController)
@@ -214,5 +222,7 @@
verify(listener).onChanged(eq(false), eq(23), eq(true))
verify(mirrorController).hideMirror()
+ assertThat(uiEventLogger.numLogs()).isEqualTo(1)
+ assertThat(uiEventLogger.eventId(0)).isEqualTo(event.id)
}
}
\ No newline at end of file