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
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user