Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java +4 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.widget.SeekBar; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.recyclerview.widget.RecyclerView; import com.android.settingslib.Utils; Loading Loading @@ -142,11 +143,12 @@ public abstract class MediaOutputBaseAdapter extends final TextView mVolumeValueText; final ImageView mTitleIcon; final ProgressBar mProgressBar; final MediaOutputSeekbar mSeekBar; final LinearLayout mTwoLineLayout; final ImageView mStatusIcon; final CheckBox mCheckBox; final ViewGroup mEndTouchArea; @VisibleForTesting MediaOutputSeekbar mSeekBar; private String mDeviceId; private ValueAnimator mCornerAnimator; private ValueAnimator mVolumeAnimator; Loading Loading @@ -390,6 +392,7 @@ public abstract class MediaOutputBaseAdapter extends mTitleIcon.setVisibility(View.VISIBLE); mVolumeValueText.setVisibility(View.GONE); } mController.logInteractionAdjustVolume(device); mIsDragging = false; } }); Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +5 −2 Original line number Diff line number Diff line Loading @@ -141,7 +141,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, @VisibleForTesting LocalMediaManager mLocalMediaManager; @VisibleForTesting private MediaOutputMetricLogger mMetricLogger; MediaOutputMetricLogger mMetricLogger; private int mCurrentState; private int mColorItemContent; Loading Loading @@ -870,12 +870,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, } void adjustVolume(MediaDevice device, int volume) { mMetricLogger.logInteractionAdjustVolume(device); ThreadUtils.postOnBackgroundThread(() -> { device.requestSetVolume(volume); }); } void logInteractionAdjustVolume(MediaDevice device) { mMetricLogger.logInteractionAdjustVolume(device); } String getPackageName() { return mPackageName; } Loading packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.graphics.drawable.Icon; import android.testing.AndroidTestingRunner; import android.view.View; import android.widget.LinearLayout; import android.widget.SeekBar; import androidx.core.graphics.drawable.IconCompat; import androidx.test.filters.SmallTest; Loading @@ -43,6 +44,8 @@ import com.google.common.collect.ImmutableList; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import java.util.ArrayList; import java.util.List; Loading Loading @@ -70,6 +73,8 @@ public class MediaOutputAdapterTest extends SysuiTestCase { private IconCompat mIconCompat = mock(IconCompat.class); private View mDialogLaunchView = mock(View.class); @Captor private ArgumentCaptor<SeekBar.OnSeekBarChangeListener> mOnSeekBarChangeListenerCaptor; private MediaOutputAdapter mMediaOutputAdapter; private MediaOutputAdapter.MediaDeviceViewHolder mViewHolder; private List<MediaDevice> mMediaDevices = new ArrayList<>(); Loading Loading @@ -349,6 +354,24 @@ public class MediaOutputAdapterTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVolume()).isEqualTo(TEST_CURRENT_VOLUME); } @Test public void onBindViewHolder_dragSeekbar_setsVolume() { mOnSeekBarChangeListenerCaptor = ArgumentCaptor.forClass( SeekBar.OnSeekBarChangeListener.class); MediaOutputSeekbar mSpySeekbar = spy(mViewHolder.mSeekBar); mViewHolder.mSeekBar = mSpySeekbar; when(mMediaDevice1.getMaxVolume()).thenReturn(TEST_MAX_VOLUME); when(mMediaDevice1.getCurrentVolume()).thenReturn(TEST_MAX_VOLUME); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); verify(mViewHolder.mSeekBar).setOnSeekBarChangeListener( mOnSeekBarChangeListenerCaptor.capture()); mOnSeekBarChangeListenerCaptor.getValue().onStopTrackingTouch(mViewHolder.mSeekBar); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); verify(mMediaOutputController).logInteractionAdjustVolume(mMediaDevice1); } @Test public void onBindViewHolder_bindSelectableDevice_verifyView() { List<MediaDevice> selectableDevices = new ArrayList<>(); Loading packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputControllerTest.java +16 −5 Original line number Diff line number Diff line Loading @@ -93,6 +93,11 @@ public class MediaOutputControllerTest extends SysuiTestCase { private static final String TEST_SONG = "test_song"; private static final String TEST_SESSION_ID = "test_session_id"; private static final String TEST_SESSION_NAME = "test_session_name"; private final DialogLaunchAnimator mDialogLaunchAnimator = mock(DialogLaunchAnimator.class); private final ActivityLaunchAnimator.Controller mActivityLaunchAnimatorController = mock( ActivityLaunchAnimator.Controller.class); private final NearbyMediaDevicesManager mNearbyMediaDevicesManager = mock( NearbyMediaDevicesManager.class); // Mock private MediaController mMediaController = mock(MediaController.class); private MediaSessionManager mMediaSessionManager = mock(MediaSessionManager.class); Loading @@ -111,12 +116,7 @@ public class MediaOutputControllerTest extends SysuiTestCase { private KeyguardManager mKeyguardManager = mock(KeyguardManager.class); private PowerExemptionManager mPowerExemptionManager = mock(PowerExemptionManager.class); private CommonNotifCollection mNotifCollection = mock(CommonNotifCollection.class); private final DialogLaunchAnimator mDialogLaunchAnimator = mock(DialogLaunchAnimator.class); private FeatureFlags mFlags = mock(FeatureFlags.class); private final ActivityLaunchAnimator.Controller mActivityLaunchAnimatorController = mock( ActivityLaunchAnimator.Controller.class); private final NearbyMediaDevicesManager mNearbyMediaDevicesManager = mock( NearbyMediaDevicesManager.class); private View mDialogLaunchView = mock(View.class); private MediaOutputController.Callback mCallback = mock(MediaOutputController.Callback.class); Loading Loading @@ -521,6 +521,17 @@ public class MediaOutputControllerTest extends SysuiTestCase { verify(mLocalMediaManager).adjustSessionVolume(testVolume); } @Test public void logInteractionAdjustVolume_triggersFromMetricLogger() { MediaOutputMetricLogger spyMediaOutputMetricLogger = spy( mMediaOutputController.mMetricLogger); mMediaOutputController.mMetricLogger = spyMediaOutputMetricLogger; mMediaOutputController.logInteractionAdjustVolume(mMediaDevice1); verify(spyMediaOutputMetricLogger).logInteractionAdjustVolume(mMediaDevice1); } @Test public void getSessionVolumeMax_triggersFromLocalMediaManager() { mMediaOutputController.getSessionVolumeMax(); Loading Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java +4 −1 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import android.widget.SeekBar; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.recyclerview.widget.RecyclerView; import com.android.settingslib.Utils; Loading Loading @@ -142,11 +143,12 @@ public abstract class MediaOutputBaseAdapter extends final TextView mVolumeValueText; final ImageView mTitleIcon; final ProgressBar mProgressBar; final MediaOutputSeekbar mSeekBar; final LinearLayout mTwoLineLayout; final ImageView mStatusIcon; final CheckBox mCheckBox; final ViewGroup mEndTouchArea; @VisibleForTesting MediaOutputSeekbar mSeekBar; private String mDeviceId; private ValueAnimator mCornerAnimator; private ValueAnimator mVolumeAnimator; Loading Loading @@ -390,6 +392,7 @@ public abstract class MediaOutputBaseAdapter extends mTitleIcon.setVisibility(View.VISIBLE); mVolumeValueText.setVisibility(View.GONE); } mController.logInteractionAdjustVolume(device); mIsDragging = false; } }); Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +5 −2 Original line number Diff line number Diff line Loading @@ -141,7 +141,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, @VisibleForTesting LocalMediaManager mLocalMediaManager; @VisibleForTesting private MediaOutputMetricLogger mMetricLogger; MediaOutputMetricLogger mMetricLogger; private int mCurrentState; private int mColorItemContent; Loading Loading @@ -870,12 +870,15 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, } void adjustVolume(MediaDevice device, int volume) { mMetricLogger.logInteractionAdjustVolume(device); ThreadUtils.postOnBackgroundThread(() -> { device.requestSetVolume(volume); }); } void logInteractionAdjustVolume(MediaDevice device) { mMetricLogger.logInteractionAdjustVolume(device); } String getPackageName() { return mPackageName; } Loading
packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputAdapterTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import android.graphics.drawable.Icon; import android.testing.AndroidTestingRunner; import android.view.View; import android.widget.LinearLayout; import android.widget.SeekBar; import androidx.core.graphics.drawable.IconCompat; import androidx.test.filters.SmallTest; Loading @@ -43,6 +44,8 @@ import com.google.common.collect.ImmutableList; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import java.util.ArrayList; import java.util.List; Loading Loading @@ -70,6 +73,8 @@ public class MediaOutputAdapterTest extends SysuiTestCase { private IconCompat mIconCompat = mock(IconCompat.class); private View mDialogLaunchView = mock(View.class); @Captor private ArgumentCaptor<SeekBar.OnSeekBarChangeListener> mOnSeekBarChangeListenerCaptor; private MediaOutputAdapter mMediaOutputAdapter; private MediaOutputAdapter.MediaDeviceViewHolder mViewHolder; private List<MediaDevice> mMediaDevices = new ArrayList<>(); Loading Loading @@ -349,6 +354,24 @@ public class MediaOutputAdapterTest extends SysuiTestCase { assertThat(mViewHolder.mSeekBar.getVolume()).isEqualTo(TEST_CURRENT_VOLUME); } @Test public void onBindViewHolder_dragSeekbar_setsVolume() { mOnSeekBarChangeListenerCaptor = ArgumentCaptor.forClass( SeekBar.OnSeekBarChangeListener.class); MediaOutputSeekbar mSpySeekbar = spy(mViewHolder.mSeekBar); mViewHolder.mSeekBar = mSpySeekbar; when(mMediaDevice1.getMaxVolume()).thenReturn(TEST_MAX_VOLUME); when(mMediaDevice1.getCurrentVolume()).thenReturn(TEST_MAX_VOLUME); mMediaOutputAdapter.onBindViewHolder(mViewHolder, 0); verify(mViewHolder.mSeekBar).setOnSeekBarChangeListener( mOnSeekBarChangeListenerCaptor.capture()); mOnSeekBarChangeListenerCaptor.getValue().onStopTrackingTouch(mViewHolder.mSeekBar); assertThat(mViewHolder.mSeekBar.getVisibility()).isEqualTo(View.VISIBLE); verify(mMediaOutputController).logInteractionAdjustVolume(mMediaDevice1); } @Test public void onBindViewHolder_bindSelectableDevice_verifyView() { List<MediaDevice> selectableDevices = new ArrayList<>(); Loading
packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputControllerTest.java +16 −5 Original line number Diff line number Diff line Loading @@ -93,6 +93,11 @@ public class MediaOutputControllerTest extends SysuiTestCase { private static final String TEST_SONG = "test_song"; private static final String TEST_SESSION_ID = "test_session_id"; private static final String TEST_SESSION_NAME = "test_session_name"; private final DialogLaunchAnimator mDialogLaunchAnimator = mock(DialogLaunchAnimator.class); private final ActivityLaunchAnimator.Controller mActivityLaunchAnimatorController = mock( ActivityLaunchAnimator.Controller.class); private final NearbyMediaDevicesManager mNearbyMediaDevicesManager = mock( NearbyMediaDevicesManager.class); // Mock private MediaController mMediaController = mock(MediaController.class); private MediaSessionManager mMediaSessionManager = mock(MediaSessionManager.class); Loading @@ -111,12 +116,7 @@ public class MediaOutputControllerTest extends SysuiTestCase { private KeyguardManager mKeyguardManager = mock(KeyguardManager.class); private PowerExemptionManager mPowerExemptionManager = mock(PowerExemptionManager.class); private CommonNotifCollection mNotifCollection = mock(CommonNotifCollection.class); private final DialogLaunchAnimator mDialogLaunchAnimator = mock(DialogLaunchAnimator.class); private FeatureFlags mFlags = mock(FeatureFlags.class); private final ActivityLaunchAnimator.Controller mActivityLaunchAnimatorController = mock( ActivityLaunchAnimator.Controller.class); private final NearbyMediaDevicesManager mNearbyMediaDevicesManager = mock( NearbyMediaDevicesManager.class); private View mDialogLaunchView = mock(View.class); private MediaOutputController.Callback mCallback = mock(MediaOutputController.Callback.class); Loading Loading @@ -521,6 +521,17 @@ public class MediaOutputControllerTest extends SysuiTestCase { verify(mLocalMediaManager).adjustSessionVolume(testVolume); } @Test public void logInteractionAdjustVolume_triggersFromMetricLogger() { MediaOutputMetricLogger spyMediaOutputMetricLogger = spy( mMediaOutputController.mMetricLogger); mMediaOutputController.mMetricLogger = spyMediaOutputMetricLogger; mMediaOutputController.logInteractionAdjustVolume(mMediaDevice1); verify(spyMediaOutputMetricLogger).logInteractionAdjustVolume(mMediaDevice1); } @Test public void getSessionVolumeMax_triggersFromLocalMediaManager() { mMediaOutputController.getSessionVolumeMax(); Loading