Loading src/com/android/settings/panel/MediaOutputPanel.java +10 −3 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.graphics.drawable.Drawable; import android.media.MediaMetadata; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.net.Uri; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -66,12 +67,11 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC private final Context mContext; private final String mPackageName; private PanelContentCallback mCallback; private boolean mIsCustomizedButtonUsed = true; @VisibleForTesting LocalMediaManager mLocalMediaManager; private PanelContentCallback mCallback; private boolean mIsCustomizedButtonUsed = true; private MediaSessionManager mMediaSessionManager; private MediaController mMediaController; Loading Loading @@ -255,5 +255,12 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC mCallback.onHeaderChanged(); } } @Override public void onPlaybackStateChanged(PlaybackState state) { if (mCallback != null && state.getState() != PlaybackState.STATE_PLAYING) { mCallback.forceClose(); } } }; } src/com/android/settings/panel/PanelContentCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -32,4 +32,9 @@ public interface PanelContentCallback { * a group */ void onHeaderChanged(); /** * It will be called when panel requests to close itself. */ void forceClose(); } src/com/android/settings/panel/PanelFragment.java +11 −0 Original line number Diff line number Diff line Loading @@ -433,5 +433,16 @@ public class PanelFragment extends Fragment { mHeaderSubtitle.setText(mPanel.getSubTitle()); }); } @Override public void forceClose() { mPanelClosedKey = PanelClosedKeys.KEY_OTHERS; getFragmentActivity().finish(); } @VisibleForTesting FragmentActivity getFragmentActivity() { return getActivity(); } } } tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -30,6 +31,7 @@ import android.content.Context; import android.media.MediaMetadata; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.net.Uri; import com.android.settings.R; Loading Loading @@ -67,6 +69,8 @@ public class MediaOutputPanelTest { private LocalMediaManager mLocalMediaManager; @Mock private PanelContentCallback mCallback; @Mock private PlaybackState mPlaybackState; private MediaOutputPanel mPanel; private Context mContext; Loading Loading @@ -259,4 +263,19 @@ public class MediaOutputPanelTest { verify(mCallback).onHeaderChanged(); } @Test public void onPlaybackStateChanged_stateFromPlayingToStopped_verifyCallForceClose() { mPanel.onStart(); verify(mMediaController).registerCallback(mControllerCbs.capture()); final MediaController.Callback controllerCallbacks = mControllerCbs.getValue(); when(mPlaybackState.getState()).thenReturn(PlaybackState.STATE_PLAYING); controllerCallbacks.onPlaybackStateChanged(mPlaybackState); verify(mCallback, never()).forceClose(); when(mPlaybackState.getState()).thenReturn(PlaybackState.STATE_STOPPED); controllerCallbacks.onPlaybackStateChanged(mPlaybackState); verify(mCallback).forceClose(); } } tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.settings.SettingsEnums; import android.content.Context; Loading Loading @@ -236,4 +237,17 @@ public class PanelFragmentTest { assertThat(headerTitle.getText()).isEqualTo(TITLE2); assertThat(headerSubtitle.getText()).isEqualTo(SUBTITLE2); } @Test public void forceClose_verifyFinish() { initFakeActivity(); verify(mFakePanelContent).registerCallback(mPanelContentCbs.capture()); final PanelContentCallback panelContentCallbacks = spy(mPanelContentCbs.getValue()); when(((PanelFragment.LocalPanelCallback) panelContentCallbacks).getFragmentActivity()) .thenReturn(mActivity); panelContentCallbacks.forceClose(); verify(mActivity).finish(); } } No newline at end of file Loading
src/com/android/settings/panel/MediaOutputPanel.java +10 −3 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.graphics.drawable.Drawable; import android.media.MediaMetadata; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.net.Uri; import android.text.TextUtils; import android.util.Log; Loading Loading @@ -66,12 +67,11 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC private final Context mContext; private final String mPackageName; private PanelContentCallback mCallback; private boolean mIsCustomizedButtonUsed = true; @VisibleForTesting LocalMediaManager mLocalMediaManager; private PanelContentCallback mCallback; private boolean mIsCustomizedButtonUsed = true; private MediaSessionManager mMediaSessionManager; private MediaController mMediaController; Loading Loading @@ -255,5 +255,12 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC mCallback.onHeaderChanged(); } } @Override public void onPlaybackStateChanged(PlaybackState state) { if (mCallback != null && state.getState() != PlaybackState.STATE_PLAYING) { mCallback.forceClose(); } } }; }
src/com/android/settings/panel/PanelContentCallback.java +5 −0 Original line number Diff line number Diff line Loading @@ -32,4 +32,9 @@ public interface PanelContentCallback { * a group */ void onHeaderChanged(); /** * It will be called when panel requests to close itself. */ void forceClose(); }
src/com/android/settings/panel/PanelFragment.java +11 −0 Original line number Diff line number Diff line Loading @@ -433,5 +433,16 @@ public class PanelFragment extends Fragment { mHeaderSubtitle.setText(mPanel.getSubTitle()); }); } @Override public void forceClose() { mPanelClosedKey = PanelClosedKeys.KEY_OTHERS; getFragmentActivity().finish(); } @VisibleForTesting FragmentActivity getFragmentActivity() { return getActivity(); } } }
tests/robotests/src/com/android/settings/panel/MediaOutputPanelTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -30,6 +31,7 @@ import android.content.Context; import android.media.MediaMetadata; import android.media.session.MediaController; import android.media.session.MediaSessionManager; import android.media.session.PlaybackState; import android.net.Uri; import com.android.settings.R; Loading Loading @@ -67,6 +69,8 @@ public class MediaOutputPanelTest { private LocalMediaManager mLocalMediaManager; @Mock private PanelContentCallback mCallback; @Mock private PlaybackState mPlaybackState; private MediaOutputPanel mPanel; private Context mContext; Loading Loading @@ -259,4 +263,19 @@ public class MediaOutputPanelTest { verify(mCallback).onHeaderChanged(); } @Test public void onPlaybackStateChanged_stateFromPlayingToStopped_verifyCallForceClose() { mPanel.onStart(); verify(mMediaController).registerCallback(mControllerCbs.capture()); final MediaController.Callback controllerCallbacks = mControllerCbs.getValue(); when(mPlaybackState.getState()).thenReturn(PlaybackState.STATE_PLAYING); controllerCallbacks.onPlaybackStateChanged(mPlaybackState); verify(mCallback, never()).forceClose(); when(mPlaybackState.getState()).thenReturn(PlaybackState.STATE_STOPPED); controllerCallbacks.onPlaybackStateChanged(mPlaybackState); verify(mCallback).forceClose(); } }
tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.settings.SettingsEnums; import android.content.Context; Loading Loading @@ -236,4 +237,17 @@ public class PanelFragmentTest { assertThat(headerTitle.getText()).isEqualTo(TITLE2); assertThat(headerSubtitle.getText()).isEqualTo(SUBTITLE2); } @Test public void forceClose_verifyFinish() { initFakeActivity(); verify(mFakePanelContent).registerCallback(mPanelContentCbs.capture()); final PanelContentCallback panelContentCallbacks = spy(mPanelContentCbs.getValue()); when(((PanelFragment.LocalPanelCallback) panelContentCallbacks).getFragmentActivity()) .thenReturn(mActivity); panelContentCallbacks.forceClose(); verify(mActivity).finish(); } } No newline at end of file