diff options
| -rw-r--r-- | packages/SystemUI/aconfig/systemui.aconfig | 10 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt | 19 |
2 files changed, 28 insertions, 1 deletions
diff --git a/packages/SystemUI/aconfig/systemui.aconfig b/packages/SystemUI/aconfig/systemui.aconfig index 71f9ba2788a1..2dd3b09b9c7e 100644 --- a/packages/SystemUI/aconfig/systemui.aconfig +++ b/packages/SystemUI/aconfig/systemui.aconfig @@ -529,3 +529,13 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "bind_keyguard_media_visibility" + namespace: "systemui" + description: "Binds Keyguard Media Controller Visibility to MediaContainerView" + bug: "298213983" + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt index d0c6a4690372..5551ab46262c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/MediaContainerView.kt @@ -23,6 +23,7 @@ import android.graphics.Path import android.graphics.RectF import android.util.AttributeSet import android.util.Log +import com.android.systemui.Flags import com.android.systemui.res.R import com.android.systemui.statusbar.notification.row.ExpandableView @@ -90,11 +91,27 @@ class MediaContainerView(context: Context, attrs: AttributeSet?) : ExpandableVie } override fun setVisibility(visibility: Int) { - super.setVisibility(visibility) + if (Flags.bindKeyguardMediaVisibility()) { + if (isVisibilityValid(visibility)) { + super.setVisibility(visibility) + } + } else { + super.setVisibility(visibility) + } + assertMediaContainerVisibility(visibility) } /** + * visibility should be aligned with MediaContainerView visibility on the keyguard. + */ + private fun isVisibilityValid(visibility: Int): Boolean { + val currentViewState = viewState as? MediaContainerViewState ?: return true + val shouldBeGone = !currentViewState.shouldBeVisible + return if (shouldBeGone) visibility == GONE else visibility != GONE + } + + /** * b/298213983 * MediaContainerView's visibility is changed to VISIBLE when it should be GONE. * This method check this state and logs. |