Automatically play the gesture video when the setting is launched.

- and save the video pause state on config change so that the paused
video will not auto start again on screen rotation.

Change-Id: I3f41849ee3063942fb4141e4556e494bc8439226
Fix: 63145847
Test: make RunSettingsRoboTests
This commit is contained in:
Doris Ling
2017-07-11 10:38:24 -07:00
parent 70a48e66eb
commit a689787b71
3 changed files with 76 additions and 6 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.gestures;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.TwoStatePreference;
@@ -38,6 +39,7 @@ import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -84,15 +86,29 @@ public class GesturePreferenceControllerTest {
}
@Test
public void onStart_shouldStartVideoPreference() {
public void onStart_shouldStartVideoPreferenceWithVideoPauseState() {
final VideoPreference videoPreference = mock(VideoPreference.class);
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
mController.mIsPrefAvailable = true;
mController.displayPreference(mScreen);
mController.onStart();
final Bundle savedState = new Bundle();
verify(videoPreference).onViewVisible();
mController.onCreate(null);
mController.onStart();
verify(videoPreference).onViewVisible(false);
reset(videoPreference);
savedState.putBoolean(mController.KEY_VIDEO_PAUSED, true);
mController.onCreate(savedState);
mController.onStart();
verify(videoPreference).onViewVisible(true);
reset(videoPreference);
savedState.putBoolean(mController.KEY_VIDEO_PAUSED, false);
mController.onCreate(savedState);
mController.onStart();
verify(videoPreference).onViewVisible(false);
}
@Test
@@ -107,6 +123,24 @@ public class GesturePreferenceControllerTest {
verify(videoPreference).onViewInvisible();
}
@Test
public void onSaveInstanceState_shouldSaveVideoPauseState() {
final VideoPreference videoPreference = mock(VideoPreference.class);
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
mController.mIsPrefAvailable = true;
mController.displayPreference(mScreen);
final Bundle outState = mock(Bundle.class);
when(videoPreference.isVideoPaused()).thenReturn(true);
mController.onSaveInstanceState(outState);
verify(outState).putBoolean(mController.KEY_VIDEO_PAUSED, true);
reset(outState);
when(videoPreference.isVideoPaused()).thenReturn(false);
mController.onSaveInstanceState(outState);
verify(outState).putBoolean(mController.KEY_VIDEO_PAUSED, false);
}
@Test
public void updateState_preferenceSetCheckedWhenSettingIsOn() {
// Mock a TwoStatePreference