Export callback to receive seekbar change event from SeekBarPrefernce

- Export onSeekBarChangeListener callback to receive change event from parent
  - Update battery saver schedule trigger threshold after seekbar tounch
    ending instead of update it every time during dragging or touching

Bug: 236356020
Test: make RunSettingsRoboTests
Change-Id: Ifee7cd9e7cabfbec0817a4c28254228f885d6a8d
This commit is contained in:
Wesley Wang
2022-06-27 11:53:20 +08:00
parent 315c78b8e2
commit d3bead822c
4 changed files with 142 additions and 14 deletions

View File

@@ -24,6 +24,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;
@@ -40,6 +41,7 @@ import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -59,6 +61,9 @@ public class SeekBarPreferenceTest {
private SeekBarPreference mSeekBarPreference;
private SeekBar mSeekBar;
@Mock
SeekBar.OnSeekBarChangeListener mMockOnSeekBarChangeListener;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
@@ -179,6 +184,54 @@ public class SeekBarPreferenceTest {
assertThat(shadowOf(mSeekBar).lastHapticFeedbackPerformed()).isEqualTo(CLOCK_TICK);
}
@Test
public void onProgressChanged_hasSeekBarChangeListener_receiveCallBack() {
mSeekBarPreference.setOnSeekBarChangeListener(mMockOnSeekBarChangeListener);
mSeekBarPreference.onProgressChanged(mSeekBar, PROGRESS, true);
verify(mMockOnSeekBarChangeListener).onProgressChanged(mSeekBar, PROGRESS, true);
}
@Test
public void onProgressChanged_noSeekBarChangeListener_noAction() {
mSeekBarPreference.onProgressChanged(mSeekBar, PROGRESS, true);
verifyZeroInteractions(mMockOnSeekBarChangeListener);
}
@Test
public void onStartTrackingTouch_hasSeekBarChangeListener_receiveCallBack() {
mSeekBarPreference.setOnSeekBarChangeListener(mMockOnSeekBarChangeListener);
mSeekBarPreference.onStartTrackingTouch(mSeekBar);
verify(mMockOnSeekBarChangeListener).onStartTrackingTouch(mSeekBar);
}
@Test
public void onStartTrackingTouch_noSeekBarChangeListener_noAction() {
mSeekBarPreference.onStartTrackingTouch(mSeekBar);
verifyZeroInteractions(mMockOnSeekBarChangeListener);
}
@Test
public void onStopTrackingTouch_hasSeekBarChangeListener_receiveCallBack() {
mSeekBarPreference.setOnSeekBarChangeListener(mMockOnSeekBarChangeListener);
mSeekBarPreference.onStopTrackingTouch(mSeekBar);
verify(mMockOnSeekBarChangeListener).onStopTrackingTouch(mSeekBar);
}
@Test
public void onStopTrackingTouch_noSeekBarChangeListener_noAction() {
mSeekBarPreference.onStopTrackingTouch(mSeekBar);
verifyZeroInteractions(mMockOnSeekBarChangeListener);
}
public static class TestFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {