Fix videoPreference is broken when switch to multiple window
Fixes: 117802997 Test: robolectric, switch between multiple window and single window. The video should keep displaying. Change-Id: I97b6a4516b2591b80d9a046809ce4090fb02c80f
This commit is contained in:
@@ -68,7 +68,7 @@ public class AssistGestureSettingsPreferenceController extends GesturePreference
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onStart() {
|
||||||
if (mWasAvailable != isAvailable()) {
|
if (mWasAvailable != isAvailable()) {
|
||||||
// Only update the preference visibility if the availability has changed -- otherwise
|
// Only update the preference visibility if the availability has changed -- otherwise
|
||||||
// the preference may be incorrectly added to screens with collapsed sections.
|
// the preference may be incorrectly added to screens with collapsed sections.
|
||||||
|
@@ -25,12 +25,12 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.core.TogglePreferenceController;
|
import com.android.settings.core.TogglePreferenceController;
|
||||||
import com.android.settings.widget.VideoPreference;
|
import com.android.settings.widget.VideoPreference;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
|
|
||||||
public abstract class GesturePreferenceController extends TogglePreferenceController
|
public abstract class GesturePreferenceController extends TogglePreferenceController
|
||||||
implements Preference.OnPreferenceChangeListener,
|
implements Preference.OnPreferenceChangeListener,
|
||||||
LifecycleObserver, OnResume, OnPause {
|
LifecycleObserver, OnStart, OnStop {
|
||||||
|
|
||||||
private VideoPreference mVideoPreference;
|
private VideoPreference mVideoPreference;
|
||||||
|
|
||||||
@@ -62,16 +62,16 @@ public abstract class GesturePreferenceController extends TogglePreferenceContro
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onStart() {
|
||||||
if (mVideoPreference != null) {
|
if (mVideoPreference != null) {
|
||||||
mVideoPreference.onViewInvisible();
|
mVideoPreference.onViewVisible();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onStop() {
|
||||||
if (mVideoPreference != null) {
|
if (mVideoPreference != null) {
|
||||||
mVideoPreference.onViewVisible();
|
mVideoPreference.onViewInvisible();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -22,11 +22,11 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
|
|
||||||
public class VideoPreferenceController extends BasePreferenceController implements
|
public class VideoPreferenceController extends BasePreferenceController implements
|
||||||
LifecycleObserver, OnResume, OnPause {
|
LifecycleObserver, OnStart, OnStop {
|
||||||
|
|
||||||
private VideoPreference mVideoPreference;
|
private VideoPreference mVideoPreference;
|
||||||
|
|
||||||
@@ -47,17 +47,16 @@ public class VideoPreferenceController extends BasePreferenceController implemen
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onStart() {
|
||||||
if (mVideoPreference != null) {
|
|
||||||
mVideoPreference.onViewInvisible();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResume() {
|
|
||||||
if (mVideoPreference != null) {
|
if (mVideoPreference != null) {
|
||||||
mVideoPreference.onViewVisible();
|
mVideoPreference.onViewVisible();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStop() {
|
||||||
|
if (mVideoPreference != null) {
|
||||||
|
mVideoPreference.onViewInvisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -81,25 +81,25 @@ public class GesturePreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onResume_shouldStartVideoPreference() {
|
public void onStart_shouldStartVideoPreference() {
|
||||||
final VideoPreference videoPreference = mock(VideoPreference.class);
|
final VideoPreference videoPreference = mock(VideoPreference.class);
|
||||||
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
|
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
|
||||||
mController.mIsPrefAvailable = true;
|
mController.mIsPrefAvailable = true;
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
mController.onResume();
|
mController.onStart();
|
||||||
|
|
||||||
verify(videoPreference).onViewVisible();
|
verify(videoPreference).onViewVisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onPause_shouldStopVideoPreference() {
|
public void onStop_shouldStopVideoPreference() {
|
||||||
final VideoPreference videoPreference = mock(VideoPreference.class);
|
final VideoPreference videoPreference = mock(VideoPreference.class);
|
||||||
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
|
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
|
||||||
mController.mIsPrefAvailable = true;
|
mController.mIsPrefAvailable = true;
|
||||||
|
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
mController.onPause();
|
mController.onStop();
|
||||||
|
|
||||||
verify(videoPreference).onViewInvisible();
|
verify(videoPreference).onViewInvisible();
|
||||||
}
|
}
|
||||||
|
@@ -77,19 +77,19 @@ public class VideoPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onPause_shouldCallOnViewInvisibleOnPrefernece() {
|
public void onStop_shouldCallOnViewInvisibleOnPrefernece() {
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
mController.onPause();
|
mController.onStop();
|
||||||
|
|
||||||
verify(mPreference).onViewInvisible();
|
verify(mPreference).onViewInvisible();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onResume_shouldCallOnViewVisibleOnPrefernece() {
|
public void onStart_shouldCallOnViewVisibleOnPrefernece() {
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
mController.onResume();
|
mController.onStart();
|
||||||
|
|
||||||
verify(mPreference).onViewVisible();
|
verify(mPreference).onViewVisible();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user