Loading packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt +0 −4 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.statusbar.chips.casttootherdevice.ui.viewmodel import android.content.Context import androidx.annotation.DrawableRes import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -58,7 +57,6 @@ constructor( private val mediaProjectionChipInteractor: MediaProjectionChipInteractor, private val mediaRouterChipInteractor: MediaRouterChipInteractor, private val systemClock: SystemClock, private val dialogTransitionAnimator: DialogTransitionAnimator, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, ) : OngoingActivityChipViewModel { /** Loading Loading @@ -175,7 +173,6 @@ constructor( startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createCastScreenToOtherDeviceDialogDelegate(state), dialogTransitionAnimator, ), ) } Loading @@ -191,7 +188,6 @@ constructor( colors = ColorsModel.Red, createDialogLaunchOnClickListener( createGenericCastToOtherDeviceDialogDelegate(deviceName), dialogTransitionAnimator, ), ) } Loading packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt +0 −3 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.chips.screenrecord.ui.viewmodel import android.app.ActivityManager import android.content.Context import androidx.annotation.DrawableRes import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -52,7 +51,6 @@ constructor( private val interactor: ScreenRecordChipInteractor, private val systemClock: SystemClock, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, private val dialogTransitionAnimator: DialogTransitionAnimator, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = interactor.screenRecordState Loading @@ -78,7 +76,6 @@ constructor( startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createDelegate(state.recordedTask), dialogTransitionAnimator, ), ) } Loading packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt +1 −6 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.statusbar.chips.sharetoapp.ui.viewmodel import android.content.Context import androidx.annotation.DrawableRes import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -52,7 +51,6 @@ constructor( private val context: Context, private val mediaProjectionChipInteractor: MediaProjectionChipInteractor, private val systemClock: SystemClock, private val dialogTransitionAnimator: DialogTransitionAnimator, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = Loading Loading @@ -89,10 +87,7 @@ constructor( colors = ColorsModel.Red, // TODO(b/332662551): Maybe use a MediaProjection API to fetch this time. startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createShareToAppDialogDelegate(state), dialogTransitionAnimator ), createDialogLaunchOnClickListener(createShareToAppDialogDelegate(state)), ) } Loading packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModel.kt +1 −13 Original line number Diff line number Diff line Loading @@ -17,10 +17,7 @@ package com.android.systemui.statusbar.chips.ui.viewmodel import android.view.View import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.res.R import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer import com.android.systemui.statusbar.phone.SystemUIDialog import kotlinx.coroutines.flow.StateFlow Loading @@ -36,19 +33,10 @@ interface OngoingActivityChipViewModel { /** Creates a chip click listener that launches a dialog created by [dialogDelegate]. */ fun createDialogLaunchOnClickListener( dialogDelegate: SystemUIDialog.Delegate, dialogTransitionAnimator: DialogTransitionAnimator, ): View.OnClickListener { return View.OnClickListener { view -> val dialog = dialogDelegate.createDialog() val launchableView = view.requireViewById<ChipBackgroundContainer>( R.id.ongoing_activity_chip_background ) // TODO(b/343699052): This makes a beautiful animate-in, but the // animate-out looks odd because the dialog animates back into the chip // but then the chip disappears. If we aren't able to address // b/343699052 in time for launch, we should just use `dialog.show`. dialogTransitionAnimator.showFromView(dialog, launchableView) dialog.show() } } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelTest.kt +6 −39 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.chips.casttootherdevice.ui.viewmodel import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.animation.mockDialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.coroutines.collectLastValue Loading @@ -38,7 +37,6 @@ import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.Me import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.MediaProjectionChipInteractorTest.Companion.setUpPackageManagerForMediaProjection import com.android.systemui.statusbar.chips.ui.model.ColorsModel import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.phone.mockSystemUIDialogFactory import com.android.systemui.statusbar.policy.CastDevice Loading @@ -47,9 +45,7 @@ import com.google.common.truth.Truth.assertThat import kotlin.test.Test import kotlinx.coroutines.test.runTest import org.junit.Before import org.mockito.ArgumentMatchers import org.mockito.kotlin.any import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.verify import org.mockito.kotlin.whenever Loading @@ -65,17 +61,6 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { private val mockScreenCastDialog = mock<SystemUIDialog>() private val mockGenericCastDialog = mock<SystemUIDialog>() private val chipBackgroundView = mock<ChipBackgroundContainer>() private val chipView = mock<View>().apply { whenever( this.requireViewById<ChipBackgroundContainer>( R.id.ongoing_activity_chip_background ) ) .thenReturn(chipBackgroundView) } private val underTest = kosmos.castToOtherDeviceChipViewModel @Before Loading Loading @@ -306,14 +291,8 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListener) assertThat(clickListener).isNotNull() clickListener!!.onClick(chipView) verify(kosmos.mockDialogTransitionAnimator) .showFromView( eq(mockScreenCastDialog), eq(chipBackgroundView), eq(null), ArgumentMatchers.anyBoolean(), ) clickListener!!.onClick(mock<View>()) verify(mockScreenCastDialog).show() } @Test Loading @@ -330,14 +309,8 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListener) assertThat(clickListener).isNotNull() clickListener!!.onClick(chipView) verify(kosmos.mockDialogTransitionAnimator) .showFromView( eq(mockScreenCastDialog), eq(chipBackgroundView), eq(null), ArgumentMatchers.anyBoolean(), ) clickListener!!.onClick(mock<View>()) verify(mockScreenCastDialog).show() } @Test Loading @@ -359,13 +332,7 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListener) assertThat(clickListener).isNotNull() clickListener!!.onClick(chipView) verify(kosmos.mockDialogTransitionAnimator) .showFromView( eq(mockGenericCastDialog), eq(chipBackgroundView), eq(null), ArgumentMatchers.anyBoolean(), ) clickListener!!.onClick(mock<View>()) verify(mockGenericCastDialog).show() } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModel.kt +0 −4 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.statusbar.chips.casttootherdevice.ui.viewmodel import android.content.Context import androidx.annotation.DrawableRes import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -58,7 +57,6 @@ constructor( private val mediaProjectionChipInteractor: MediaProjectionChipInteractor, private val mediaRouterChipInteractor: MediaRouterChipInteractor, private val systemClock: SystemClock, private val dialogTransitionAnimator: DialogTransitionAnimator, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, ) : OngoingActivityChipViewModel { /** Loading Loading @@ -175,7 +173,6 @@ constructor( startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createCastScreenToOtherDeviceDialogDelegate(state), dialogTransitionAnimator, ), ) } Loading @@ -191,7 +188,6 @@ constructor( colors = ColorsModel.Red, createDialogLaunchOnClickListener( createGenericCastToOtherDeviceDialogDelegate(deviceName), dialogTransitionAnimator, ), ) } Loading
packages/SystemUI/src/com/android/systemui/statusbar/chips/screenrecord/ui/viewmodel/ScreenRecordChipViewModel.kt +0 −3 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.chips.screenrecord.ui.viewmodel import android.app.ActivityManager import android.content.Context import androidx.annotation.DrawableRes import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -52,7 +51,6 @@ constructor( private val interactor: ScreenRecordChipInteractor, private val systemClock: SystemClock, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, private val dialogTransitionAnimator: DialogTransitionAnimator, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = interactor.screenRecordState Loading @@ -78,7 +76,6 @@ constructor( startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createDelegate(state.recordedTask), dialogTransitionAnimator, ), ) } Loading
packages/SystemUI/src/com/android/systemui/statusbar/chips/sharetoapp/ui/viewmodel/ShareToAppChipViewModel.kt +1 −6 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.systemui.statusbar.chips.sharetoapp.ui.viewmodel import android.content.Context import androidx.annotation.DrawableRes import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.dagger.SysUISingleton Loading Loading @@ -52,7 +51,6 @@ constructor( private val context: Context, private val mediaProjectionChipInteractor: MediaProjectionChipInteractor, private val systemClock: SystemClock, private val dialogTransitionAnimator: DialogTransitionAnimator, private val endMediaProjectionDialogHelper: EndMediaProjectionDialogHelper, ) : OngoingActivityChipViewModel { override val chip: StateFlow<OngoingActivityChipModel> = Loading Loading @@ -89,10 +87,7 @@ constructor( colors = ColorsModel.Red, // TODO(b/332662551): Maybe use a MediaProjection API to fetch this time. startTimeMs = systemClock.elapsedRealtime(), createDialogLaunchOnClickListener( createShareToAppDialogDelegate(state), dialogTransitionAnimator ), createDialogLaunchOnClickListener(createShareToAppDialogDelegate(state)), ) } Loading
packages/SystemUI/src/com/android/systemui/statusbar/chips/ui/viewmodel/OngoingActivityChipViewModel.kt +1 −13 Original line number Diff line number Diff line Loading @@ -17,10 +17,7 @@ package com.android.systemui.statusbar.chips.ui.viewmodel import android.view.View import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.res.R import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer import com.android.systemui.statusbar.phone.SystemUIDialog import kotlinx.coroutines.flow.StateFlow Loading @@ -36,19 +33,10 @@ interface OngoingActivityChipViewModel { /** Creates a chip click listener that launches a dialog created by [dialogDelegate]. */ fun createDialogLaunchOnClickListener( dialogDelegate: SystemUIDialog.Delegate, dialogTransitionAnimator: DialogTransitionAnimator, ): View.OnClickListener { return View.OnClickListener { view -> val dialog = dialogDelegate.createDialog() val launchableView = view.requireViewById<ChipBackgroundContainer>( R.id.ongoing_activity_chip_background ) // TODO(b/343699052): This makes a beautiful animate-in, but the // animate-out looks odd because the dialog animates back into the chip // but then the chip disappears. If we aren't able to address // b/343699052 in time for launch, we should just use `dialog.show`. dialogTransitionAnimator.showFromView(dialog, launchableView) dialog.show() } } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/chips/casttootherdevice/ui/viewmodel/CastToOtherDeviceChipViewModelTest.kt +6 −39 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.chips.casttootherdevice.ui.viewmodel import android.view.View import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.animation.mockDialogTransitionAnimator import com.android.systemui.common.shared.model.ContentDescription import com.android.systemui.common.shared.model.Icon import com.android.systemui.coroutines.collectLastValue Loading @@ -38,7 +37,6 @@ import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.Me import com.android.systemui.statusbar.chips.mediaprojection.domain.interactor.MediaProjectionChipInteractorTest.Companion.setUpPackageManagerForMediaProjection import com.android.systemui.statusbar.chips.ui.model.ColorsModel import com.android.systemui.statusbar.chips.ui.model.OngoingActivityChipModel import com.android.systemui.statusbar.chips.ui.view.ChipBackgroundContainer import com.android.systemui.statusbar.phone.SystemUIDialog import com.android.systemui.statusbar.phone.mockSystemUIDialogFactory import com.android.systemui.statusbar.policy.CastDevice Loading @@ -47,9 +45,7 @@ import com.google.common.truth.Truth.assertThat import kotlin.test.Test import kotlinx.coroutines.test.runTest import org.junit.Before import org.mockito.ArgumentMatchers import org.mockito.kotlin.any import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.verify import org.mockito.kotlin.whenever Loading @@ -65,17 +61,6 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { private val mockScreenCastDialog = mock<SystemUIDialog>() private val mockGenericCastDialog = mock<SystemUIDialog>() private val chipBackgroundView = mock<ChipBackgroundContainer>() private val chipView = mock<View>().apply { whenever( this.requireViewById<ChipBackgroundContainer>( R.id.ongoing_activity_chip_background ) ) .thenReturn(chipBackgroundView) } private val underTest = kosmos.castToOtherDeviceChipViewModel @Before Loading Loading @@ -306,14 +291,8 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListener) assertThat(clickListener).isNotNull() clickListener!!.onClick(chipView) verify(kosmos.mockDialogTransitionAnimator) .showFromView( eq(mockScreenCastDialog), eq(chipBackgroundView), eq(null), ArgumentMatchers.anyBoolean(), ) clickListener!!.onClick(mock<View>()) verify(mockScreenCastDialog).show() } @Test Loading @@ -330,14 +309,8 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListener) assertThat(clickListener).isNotNull() clickListener!!.onClick(chipView) verify(kosmos.mockDialogTransitionAnimator) .showFromView( eq(mockScreenCastDialog), eq(chipBackgroundView), eq(null), ArgumentMatchers.anyBoolean(), ) clickListener!!.onClick(mock<View>()) verify(mockScreenCastDialog).show() } @Test Loading @@ -359,13 +332,7 @@ class CastToOtherDeviceChipViewModelTest : SysuiTestCase() { val clickListener = ((latest as OngoingActivityChipModel.Shown).onClickListener) assertThat(clickListener).isNotNull() clickListener!!.onClick(chipView) verify(kosmos.mockDialogTransitionAnimator) .showFromView( eq(mockGenericCastDialog), eq(chipBackgroundView), eq(null), ArgumentMatchers.anyBoolean(), ) clickListener!!.onClick(mock<View>()) verify(mockGenericCastDialog).show() } }