Merge "Fix videoPreference is broken when switch to multiple window"

This commit is contained in:
TreeHugger Robot
2019-12-04 09:37:25 +00:00
committed by Android (Google) Code Review
5 changed files with 26 additions and 27 deletions

View File

@@ -68,7 +68,7 @@ public class AssistGestureSettingsPreferenceController extends GesturePreference
}
@Override
public void onResume() {
public void onStart() {
if (mWasAvailable != isAvailable()) {
// Only update the preference visibility if the availability has changed -- otherwise
// the preference may be incorrectly added to screens with collapsed sections.

View File

@@ -25,12 +25,12 @@ import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.widget.VideoPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
public abstract class GesturePreferenceController extends TogglePreferenceController
implements Preference.OnPreferenceChangeListener,
LifecycleObserver, OnResume, OnPause {
LifecycleObserver, OnStart, OnStop {
private VideoPreference mVideoPreference;
@@ -62,16 +62,16 @@ public abstract class GesturePreferenceController extends TogglePreferenceContro
}
@Override
public void onPause() {
public void onStart() {
if (mVideoPreference != null) {
mVideoPreference.onViewInvisible();
mVideoPreference.onViewVisible();
}
}
@Override
public void onResume() {
public void onStop() {
if (mVideoPreference != null) {
mVideoPreference.onViewVisible();
mVideoPreference.onViewInvisible();
}
}

View File

@@ -22,11 +22,11 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
public class VideoPreferenceController extends BasePreferenceController implements
LifecycleObserver, OnResume, OnPause {
LifecycleObserver, OnStart, OnStop {
private VideoPreference mVideoPreference;
@@ -47,17 +47,16 @@ public class VideoPreferenceController extends BasePreferenceController implemen
}
@Override
public void onPause() {
if (mVideoPreference != null) {
mVideoPreference.onViewInvisible();
}
}
@Override
public void onResume() {
public void onStart() {
if (mVideoPreference != null) {
mVideoPreference.onViewVisible();
}
}
@Override
public void onStop() {
if (mVideoPreference != null) {
mVideoPreference.onViewInvisible();
}
}
}

View File

@@ -81,25 +81,25 @@ public class GesturePreferenceControllerTest {
}
@Test
public void onResume_shouldStartVideoPreference() {
public void onStart_shouldStartVideoPreference() {
final VideoPreference videoPreference = mock(VideoPreference.class);
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
mController.mIsPrefAvailable = true;
mController.displayPreference(mScreen);
mController.onResume();
mController.onStart();
verify(videoPreference).onViewVisible();
}
@Test
public void onPause_shouldStopVideoPreference() {
public void onStop_shouldStopVideoPreference() {
final VideoPreference videoPreference = mock(VideoPreference.class);
when(mScreen.findPreference(mController.getVideoPrefKey())).thenReturn(videoPreference);
mController.mIsPrefAvailable = true;
mController.displayPreference(mScreen);
mController.onPause();
mController.onStop();
verify(videoPreference).onViewInvisible();
}

View File

@@ -77,19 +77,19 @@ public class VideoPreferenceControllerTest {
}
@Test
public void onPause_shouldCallOnViewInvisibleOnPrefernece() {
public void onStop_shouldCallOnViewInvisibleOnPrefernece() {
mController.displayPreference(mScreen);
mController.onPause();
mController.onStop();
verify(mPreference).onViewInvisible();
}
@Test
public void onResume_shouldCallOnViewVisibleOnPrefernece() {
public void onStart_shouldCallOnViewVisibleOnPrefernece() {
mController.displayPreference(mScreen);
mController.onResume();
mController.onStart();
verify(mPreference).onViewVisible();
}