Loading quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewData.kt +3 −0 Original line number Diff line number Diff line Loading @@ -31,4 +31,7 @@ class RecentsViewData { // The settled set of visible taskIds that is updated after RecentsView scroll settles. val settledFullyVisibleTaskIds = MutableStateFlow(emptySet<Int>()) // Color tint on foreground scrim val tintAmount = MutableStateFlow(0f) } quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -45,4 +45,8 @@ class RecentsViewModel( fun setOverlayEnabled(isOverlayEnabled: Boolean) { recentsViewData.overlayEnabled.value = isOverlayEnabled } fun setTintAmount(tintAmount: Float) { recentsViewData.tintAmount.value = tintAmount } } quickstep/src/com/android/quickstep/task/thumbnail/TaskThumbnailView.kt +1 −8 Original line number Diff line number Diff line Loading @@ -98,10 +98,7 @@ class TaskThumbnailView : FrameLayout, ViewPool.Reusable { } .launchIn(viewAttachedScope) viewModel.dimProgress .onEach { dimProgress -> // TODO(b/348195366) Add fade in/out for scrim scrimView.alpha = dimProgress * MAX_SCRIM_ALPHA } .onEach { dimProgress -> scrimView.alpha = dimProgress } .launchIn(viewAttachedScope) viewModel.cornerRadiusProgress.onEach { invalidateOutline() }.launchIn(viewAttachedScope) viewModel.inheritedScale Loading Loading @@ -176,8 +173,4 @@ class TaskThumbnailView : FrameLayout, ViewPool.Reusable { overviewCornerRadius, fullscreenCornerRadius ) / inheritedScale private companion object { const val MAX_SCRIM_ALPHA = 0.4f } } quickstep/src/com/android/quickstep/task/viewmodel/TaskThumbnailViewModel.kt +11 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.LiveTile import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.Snapshot import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.Uninitialized import com.android.systemui.shared.recents.model.Task import kotlin.math.max import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow Loading Loading @@ -63,7 +64,12 @@ class TaskThumbnailViewModel( combine(recentsViewData.scale, taskViewData.scale) { recentsScale, taskScale -> recentsScale * taskScale } val dimProgress: Flow<Float> = taskContainerData.taskMenuOpenProgress val dimProgress: Flow<Float> = combine(taskContainerData.taskMenuOpenProgress, recentsViewData.tintAmount) { taskMenuOpenProgress, tintAmount -> max(taskMenuOpenProgress * MAX_SCRIM_ALPHA, tintAmount) } val uiState: Flow<TaskThumbnailUiState> = task .flatMapLatest { taskFlow -> Loading Loading @@ -110,4 +116,8 @@ class TaskThumbnailViewModel( } @ColorInt private fun Int.removeAlpha(): Int = ColorUtils.setAlphaComponent(this, 0xff) private companion object { const val MAX_SCRIM_ALPHA = 0.4f } } quickstep/src/com/android/quickstep/views/RecentsView.java +4 −1 Original line number Diff line number Diff line Loading @@ -6116,7 +6116,6 @@ public abstract class RecentsView<CONTAINER_TYPE extends Context & RecentsViewCo * tasks to be dimmed while other elements in the recents view are left alone. */ public void showForegroundScrim(boolean show) { // TODO(b/349601769) Add scrim response into new TTV - this is called from overlay if (!show && mColorTint == 0) { if (mTintingAnimator != null) { mTintingAnimator.cancel(); Loading @@ -6135,6 +6134,10 @@ public abstract class RecentsView<CONTAINER_TYPE extends Context & RecentsViewCo private void setColorTint(float tintAmount) { mColorTint = tintAmount; if (enableRefactorTaskThumbnail()) { mRecentsViewModel.setTintAmount(tintAmount); } for (int i = 0; i < getTaskViewCount(); i++) { requireTaskViewAt(i).setColorTint(mColorTint, mTintingColor); } Loading Loading
quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewData.kt +3 −0 Original line number Diff line number Diff line Loading @@ -31,4 +31,7 @@ class RecentsViewData { // The settled set of visible taskIds that is updated after RecentsView scroll settles. val settledFullyVisibleTaskIds = MutableStateFlow(emptySet<Int>()) // Color tint on foreground scrim val tintAmount = MutableStateFlow(0f) }
quickstep/src/com/android/quickstep/recents/viewmodel/RecentsViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -45,4 +45,8 @@ class RecentsViewModel( fun setOverlayEnabled(isOverlayEnabled: Boolean) { recentsViewData.overlayEnabled.value = isOverlayEnabled } fun setTintAmount(tintAmount: Float) { recentsViewData.tintAmount.value = tintAmount } }
quickstep/src/com/android/quickstep/task/thumbnail/TaskThumbnailView.kt +1 −8 Original line number Diff line number Diff line Loading @@ -98,10 +98,7 @@ class TaskThumbnailView : FrameLayout, ViewPool.Reusable { } .launchIn(viewAttachedScope) viewModel.dimProgress .onEach { dimProgress -> // TODO(b/348195366) Add fade in/out for scrim scrimView.alpha = dimProgress * MAX_SCRIM_ALPHA } .onEach { dimProgress -> scrimView.alpha = dimProgress } .launchIn(viewAttachedScope) viewModel.cornerRadiusProgress.onEach { invalidateOutline() }.launchIn(viewAttachedScope) viewModel.inheritedScale Loading Loading @@ -176,8 +173,4 @@ class TaskThumbnailView : FrameLayout, ViewPool.Reusable { overviewCornerRadius, fullscreenCornerRadius ) / inheritedScale private companion object { const val MAX_SCRIM_ALPHA = 0.4f } }
quickstep/src/com/android/quickstep/task/viewmodel/TaskThumbnailViewModel.kt +11 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.LiveTile import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.Snapshot import com.android.quickstep.task.thumbnail.TaskThumbnailUiState.Uninitialized import com.android.systemui.shared.recents.model.Task import kotlin.math.max import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow Loading Loading @@ -63,7 +64,12 @@ class TaskThumbnailViewModel( combine(recentsViewData.scale, taskViewData.scale) { recentsScale, taskScale -> recentsScale * taskScale } val dimProgress: Flow<Float> = taskContainerData.taskMenuOpenProgress val dimProgress: Flow<Float> = combine(taskContainerData.taskMenuOpenProgress, recentsViewData.tintAmount) { taskMenuOpenProgress, tintAmount -> max(taskMenuOpenProgress * MAX_SCRIM_ALPHA, tintAmount) } val uiState: Flow<TaskThumbnailUiState> = task .flatMapLatest { taskFlow -> Loading Loading @@ -110,4 +116,8 @@ class TaskThumbnailViewModel( } @ColorInt private fun Int.removeAlpha(): Int = ColorUtils.setAlphaComponent(this, 0xff) private companion object { const val MAX_SCRIM_ALPHA = 0.4f } }
quickstep/src/com/android/quickstep/views/RecentsView.java +4 −1 Original line number Diff line number Diff line Loading @@ -6116,7 +6116,6 @@ public abstract class RecentsView<CONTAINER_TYPE extends Context & RecentsViewCo * tasks to be dimmed while other elements in the recents view are left alone. */ public void showForegroundScrim(boolean show) { // TODO(b/349601769) Add scrim response into new TTV - this is called from overlay if (!show && mColorTint == 0) { if (mTintingAnimator != null) { mTintingAnimator.cancel(); Loading @@ -6135,6 +6134,10 @@ public abstract class RecentsView<CONTAINER_TYPE extends Context & RecentsViewCo private void setColorTint(float tintAmount) { mColorTint = tintAmount; if (enableRefactorTaskThumbnail()) { mRecentsViewModel.setTintAmount(tintAmount); } for (int i = 0; i < getTaskViewCount(); i++) { requireTaskViewAt(i).setColorTint(mColorTint, mTintingColor); } Loading