From f311566b85481a9be781dd2123793630f3093e8d Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Tue, 26 Apr 2022 20:04:39 +0800 Subject: [PATCH] Add the jank detection to Settings sliders - Currently most the sliders are implemented by com.android.settings.widget.SeekBarPreference. - Volume ones are implemented by VolumeSeekBarPreference, which resets the OnSeekBarChangeListener, so need special handling. - PointerSpeedPreference is standalone, added separately. Bug: 230285829 Test: Verify trace via jank developer guideline. Change-Id: Ia2978df196676ad6675d2834f6af6cb2aa9094cf --- src/com/android/settings/PointerSpeedPreference.java | 9 +++++++++ .../notification/VolumeSeekBarPreference.java | 12 ++++++++++++ .../android/settings/widget/SeekBarPreference.java | 8 ++++++++ .../android/settings/PointerSpeedPreferenceTest.java | 4 ++++ ...rmVibrationIntensityPreferenceControllerTest.java | 3 +++ .../accessibility/BalanceSeekBarPreferenceTest.java | 4 ++++ ...tingMenuTransparencyPreferenceControllerTest.java | 3 +++ ...ticFeedbackIntensityPreferenceControllerTest.java | 3 +++ ...iaVibrationIntensityPreferenceControllerTest.java | 3 +++ ...onVibrationIntensityPreferenceControllerTest.java | 3 +++ .../PreviewSizeSeekBarControllerTest.java | 3 +++ ...ngVibrationIntensityPreferenceControllerTest.java | 3 +++ .../TextReadingPreviewControllerTest.java | 3 ++- .../VibrationIntensityPreferenceControllerTest.java | 3 +++ .../BatterySaverScheduleSeekBarControllerTest.java | 4 ++++ .../BatterySaverScheduleSettingsTest.java | 3 +++ .../gestures/LabeledSeekBarPreferenceTest.java | 4 +++- .../RemoteVolumeGroupControllerTest.java | 3 ++- .../settings/widget/SeekBarPreferenceTest.java | 3 ++- 19 files changed, 77 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/PointerSpeedPreference.java b/src/com/android/settings/PointerSpeedPreference.java index 6a934777242..fa56635696b 100644 --- a/src/com/android/settings/PointerSpeedPreference.java +++ b/src/com/android/settings/PointerSpeedPreference.java @@ -18,6 +18,8 @@ package com.android.settings; import static android.view.HapticFeedbackConstants.CLOCK_TICK; +import static com.android.internal.jank.InteractionJankMonitor.CUJ_SETTINGS_SLIDER; + import android.content.ContentResolver; import android.content.Context; import android.database.ContentObserver; @@ -30,9 +32,12 @@ import android.util.AttributeSet; import android.view.View; import android.widget.SeekBar; +import com.android.internal.jank.InteractionJankMonitor; + public class PointerSpeedPreference extends SeekBarDialogPreference implements SeekBar.OnSeekBarChangeListener { private final InputManager mIm; + private final InteractionJankMonitor mJankMonitor = InteractionJankMonitor.getInstance(); private SeekBar mSeekBar; private int mOldSpeed; @@ -88,11 +93,15 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements public void onStartTrackingTouch(SeekBar seekBar) { mTouchInProgress = true; + mJankMonitor.begin(InteractionJankMonitor.Configuration.Builder + .withView(CUJ_SETTINGS_SLIDER, seekBar) + .setTag(getKey())); } public void onStopTrackingTouch(SeekBar seekBar) { mTouchInProgress = false; mIm.tryPointerSpeed(seekBar.getProgress() + InputManager.MIN_POINTER_SPEED); + mJankMonitor.end(CUJ_SETTINGS_SLIDER); } private void onSpeedChanged() { diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java index 36a4d8aed06..14955c426e1 100644 --- a/src/com/android/settings/notification/VolumeSeekBarPreference.java +++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java @@ -16,6 +16,8 @@ package com.android.settings.notification; +import static com.android.internal.jank.InteractionJankMonitor.CUJ_SETTINGS_SLIDER; + import android.content.ContentResolver; import android.content.Context; import android.media.AudioManager; @@ -31,6 +33,7 @@ import android.widget.TextView; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceViewHolder; +import com.android.internal.jank.InteractionJankMonitor; import com.android.settings.R; import com.android.settings.widget.SeekBarPreference; @@ -40,6 +43,8 @@ import java.util.Objects; public class VolumeSeekBarPreference extends SeekBarPreference { private static final String TAG = "VolumeSeekBarPreference"; + private final InteractionJankMonitor mJankMonitor = InteractionJankMonitor.getInstance(); + protected SeekBar mSeekBar; private int mStream; private SeekBarVolumizer mVolumizer; @@ -143,6 +148,13 @@ public class VolumeSeekBarPreference extends SeekBarPreference { if (mCallback != null) { mCallback.onStartTrackingTouch(sbv); } + mJankMonitor.begin(InteractionJankMonitor.Configuration.Builder + .withView(CUJ_SETTINGS_SLIDER, mSeekBar) + .setTag(getKey())); + } + @Override + public void onStopTrackingTouch(SeekBarVolumizer sbv) { + mJankMonitor.end(CUJ_SETTINGS_SLIDER); } }; final Uri sampleUri = mStream == AudioManager.STREAM_MUSIC ? getMediaVolumeUri() : null; diff --git a/src/com/android/settings/widget/SeekBarPreference.java b/src/com/android/settings/widget/SeekBarPreference.java index 62a19b945e9..9f9bc9f65c8 100644 --- a/src/com/android/settings/widget/SeekBarPreference.java +++ b/src/com/android/settings/widget/SeekBarPreference.java @@ -18,6 +18,8 @@ package com.android.settings.widget; import static android.view.HapticFeedbackConstants.CLOCK_TICK; +import static com.android.internal.jank.InteractionJankMonitor.CUJ_SETTINGS_SLIDER; + import android.content.Context; import android.content.res.TypedArray; import android.os.Parcel; @@ -33,6 +35,7 @@ import android.widget.SeekBar.OnSeekBarChangeListener; import androidx.core.content.res.TypedArrayUtils; import androidx.preference.PreferenceViewHolder; +import com.android.internal.jank.InteractionJankMonitor; import com.android.settingslib.RestrictedPreference; /** @@ -45,6 +48,7 @@ public class SeekBarPreference extends RestrictedPreference public static final int HAPTIC_FEEDBACK_MODE_ON_TICKS = 1; public static final int HAPTIC_FEEDBACK_MODE_ON_ENDS = 2; + private final InteractionJankMonitor mJankMonitor = InteractionJankMonitor.getInstance(); private int mProgress; private int mMax; private int mMin; @@ -312,6 +316,9 @@ public class SeekBarPreference extends RestrictedPreference @Override public void onStartTrackingTouch(SeekBar seekBar) { mTrackingTouch = true; + mJankMonitor.begin(InteractionJankMonitor.Configuration.Builder + .withView(CUJ_SETTINGS_SLIDER, seekBar) + .setTag(getKey())); } @Override @@ -320,6 +327,7 @@ public class SeekBarPreference extends RestrictedPreference if (seekBar.getProgress() != mProgress) { syncProgress(seekBar); } + mJankMonitor.end(CUJ_SETTINGS_SLIDER); } /** diff --git a/tests/robotests/src/com/android/settings/PointerSpeedPreferenceTest.java b/tests/robotests/src/com/android/settings/PointerSpeedPreferenceTest.java index 09253445dac..ea05f4ae2f5 100644 --- a/tests/robotests/src/com/android/settings/PointerSpeedPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/PointerSpeedPreferenceTest.java @@ -27,13 +27,17 @@ import android.content.Context; import android.util.AttributeSet; import android.widget.SeekBar; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class PointerSpeedPreferenceTest { private Context mContext; diff --git a/tests/robotests/src/com/android/settings/accessibility/AlarmVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AlarmVibrationIntensityPreferenceControllerTest.java index 44d2e867556..4a791e3fd9e 100644 --- a/tests/robotests/src/com/android/settings/accessibility/AlarmVibrationIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/AlarmVibrationIntensityPreferenceControllerTest.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -40,8 +41,10 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class AlarmVibrationIntensityPreferenceControllerTest { private static final String PREFERENCE_KEY = "preference_key"; diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java index ba7bd2cec8c..251698c9d3c 100644 --- a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarPreferenceTest.java @@ -26,13 +26,17 @@ import android.widget.LinearLayout; import androidx.preference.PreferenceViewHolder; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class BalanceSeekBarPreferenceTest { private static final int BALANCE_CENTER_VALUE = 100; private static final int BALANCE_MAX_VALUE = 200; diff --git a/tests/robotests/src/com/android/settings/accessibility/FloatingMenuTransparencyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/FloatingMenuTransparencyPreferenceControllerTest.java index eceb185151c..343d56a4b6d 100644 --- a/tests/robotests/src/com/android/settings/accessibility/FloatingMenuTransparencyPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/FloatingMenuTransparencyPreferenceControllerTest.java @@ -38,6 +38,7 @@ import android.provider.Settings; import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import org.junit.Before; @@ -49,9 +50,11 @@ import org.mockito.Spy; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; /** Tests for {@link FloatingMenuTransparencyPreferenceController}. */ @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class FloatingMenuTransparencyPreferenceControllerTest { @Rule diff --git a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java index 344a25f50e5..8c2be5299e3 100644 --- a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -41,8 +42,10 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class HapticFeedbackIntensityPreferenceControllerTest { private static final String PREFERENCE_KEY = "preference_key"; diff --git a/tests/robotests/src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceControllerTest.java index 3a4b43a8914..e0eff0e71de 100644 --- a/tests/robotests/src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/MediaVibrationIntensityPreferenceControllerTest.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -40,9 +41,11 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; /** Test for {@link MediaVibrationIntensityPreferenceController}. */ @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class MediaVibrationIntensityPreferenceControllerTest { private static final String PREFERENCE_KEY = "preference_key"; diff --git a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java index 9533c5389de..0638af98b5d 100644 --- a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -41,8 +42,10 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class NotificationVibrationIntensityPreferenceControllerTest { private static final String PREFERENCE_KEY = "preference_key"; diff --git a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java index d33d80e51ad..fae61d67e6f 100644 --- a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java @@ -28,6 +28,7 @@ import android.content.Context; import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.LabeledSeekBarPreference; import org.junit.Before; @@ -36,11 +37,13 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; /** * Tests for {@link PreviewSizeSeekBarController}. */ @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class PreviewSizeSeekBarControllerTest { private static final String FONT_SIZE_KEY = "font_size"; private final Context mContext = ApplicationProvider.getApplicationContext(); diff --git a/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java index fa3f3bf05df..2ff5d71a4f3 100644 --- a/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.core.BasePreferenceController; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -41,9 +42,11 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; /** Tests for {@link RingVibrationIntensityPreferenceController}. */ @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class RingVibrationIntensityPreferenceControllerTest { private static final String PREFERENCE_KEY = "preference_key"; diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewControllerTest.java index b6305099c68..f768e42f2e6 100644 --- a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewControllerTest.java @@ -27,6 +27,7 @@ import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; import com.android.settings.display.PreviewPagerAdapter; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.LabeledSeekBarPreference; import org.junit.Before; @@ -45,7 +46,7 @@ import java.util.List; * Tests for {@link TextReadingPreviewController}. */ @RunWith(RobolectricTestRunner.class) -@Config(shadows = ShadowChoreographer.class) +@Config(shadows = {ShadowChoreographer.class, ShadowInteractionJankMonitor.class}) public class TextReadingPreviewControllerTest { private static final String PREVIEW_KEY = "preview"; private static final String FONT_SIZE_KEY = "font_size"; diff --git a/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityPreferenceControllerTest.java index 048bce4c37a..2508345b552 100644 --- a/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityPreferenceControllerTest.java @@ -28,6 +28,7 @@ import android.provider.Settings; import androidx.preference.PreferenceScreen; import androidx.test.core.app.ApplicationProvider; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -37,9 +38,11 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; /** Tests for {@link VibrationIntensityPreferenceController}. */ @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class VibrationIntensityPreferenceControllerTest { private static final String SETTING_KEY = Settings.System.NOTIFICATION_VIBRATION_INTENSITY; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java index 9b575934676..b05d06d9d8e 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSeekBarControllerTest.java @@ -15,6 +15,8 @@ import android.provider.Settings.Global; import androidx.preference.PreferenceScreen; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -22,8 +24,10 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public class BatterySaverScheduleSeekBarControllerTest { private Context mContext; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java index bb36c8a4620..78e19c37476 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleSettingsTest.java @@ -10,6 +10,7 @@ import android.os.PowerManager; import android.provider.Settings; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import org.junit.Before; @@ -17,8 +18,10 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) +@Config(shadows = {ShadowInteractionJankMonitor.class}) public final class BatterySaverScheduleSettingsTest { private Context mContext; diff --git a/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java index d00e905e816..6302f80f286 100644 --- a/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java @@ -37,6 +37,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settings.widget.LabeledSeekBarPreference; @@ -56,7 +57,8 @@ import org.robolectric.annotation.Config; */ @RunWith(RobolectricTestRunner.class) @Config(shadows = { - ShadowUserManager.class + ShadowUserManager.class, + ShadowInteractionJankMonitor.class, }) public class LabeledSeekBarPreferenceTest { diff --git a/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java b/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java index 8b46374b684..e71396308ce 100644 --- a/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java +++ b/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java @@ -43,6 +43,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.media.LocalMediaManager; @@ -61,7 +62,7 @@ import java.util.ArrayList; import java.util.List; @RunWith(RobolectricTestRunner.class) -@Config(shadows = {ShadowBluetoothAdapter.class}) +@Config(shadows = {ShadowBluetoothAdapter.class, ShadowInteractionJankMonitor.class}) public class RemoteVolumeGroupControllerTest { private static final String KEY_REMOTE_VOLUME_GROUP = "remote_media_group"; diff --git a/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java index 451b84bd882..770559d90c8 100644 --- a/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java @@ -34,6 +34,7 @@ import android.widget.SeekBar; import androidx.preference.PreferenceFragmentCompat; +import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor; import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal; import org.junit.Before; @@ -46,7 +47,7 @@ import org.robolectric.annotation.Config; import org.robolectric.shadows.androidx.fragment.FragmentController; @RunWith(RobolectricTestRunner.class) -@Config(shadows = ShadowRestrictedLockUtilsInternal.class) +@Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowInteractionJankMonitor.class}) public class SeekBarPreferenceTest { private static final int MAX = 75;