/* * Copyright (C) 2025 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.statusbar.notification.stack import com.android.systemui.dagger.SysUISingleton import dagger.Lazy import javax.inject.Inject /** * Allows to hide the content of the notification stack during notification rebinding. * * Note that this is mainly created to allow SystemUI variants without NSSL to provide their own * implementations. */ interface NotificationStackRebindingHider { /** Sets the Notification stack visibility. */ fun setVisible(visible: Boolean, animated: Boolean) } @SysUISingleton class NotificationStackRebindingHiderImpl @Inject constructor( // Lazy to avoid a Dagger dependency cycle crash. private val nsslController: Lazy ) : NotificationStackRebindingHider { override fun setVisible(visible: Boolean, animated: Boolean) { nsslController.get().updateContainerVisibilityForRebind(visible, animated) } }