Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34edc355 authored by Steve Elliott's avatar Steve Elliott
Browse files

Aconfig flag for notif icon container refactor

Bug: 290787599
Bug: 278765923
Test: make
Change-Id: If44810377604f48c1f2e6c4a41877cdfeb278701
parent 0b29df97
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -22,6 +22,14 @@ flag {
    bug: "293167744"
}

flag {
    name: "notifications_icon_container_refactor"
    namespace: "systemui"
    description: "Enables the refactored version of the notification icon container in StatusBar, "
        "AOD, and the notification shelf. Should not bring any behavioral changes."
    bug: "278765923"
}

flag {
    name: "notification_lifetime_extension_refactor"
    namespace: "systemui"
+46 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 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.shared

import com.android.systemui.Flags
import com.android.systemui.flags.RefactorFlagUtils

/** Helper for reading or using the NotificationIconContainer refactor flag state. */
@Suppress("NOTHING_TO_INLINE")
object NotificationIconContainerRefactor {
    const val FLAG_NAME = Flags.FLAG_NOTIFICATIONS_ICON_CONTAINER_REFACTOR

    /** Is the refactor enabled? */
    @JvmStatic
    inline val isEnabled
        get() = Flags.notificationsIconContainerRefactor()

    /**
     * Called to ensure code is only run when the flag is enabled. This protects users from the
     * unintended behaviors caused by accidentally running new logic, while also crashing on an eng
     * build to ensure that the refactor author catches issues in testing.
     */
    @JvmStatic
    inline fun isUnexpectedlyInLegacyMode() =
        RefactorFlagUtils.isUnexpectedlyInLegacyMode(isEnabled, FLAG_NAME)

    /**
     * Called to ensure code is only run when the flag is disabled. This will throw an exception if
     * the flag is enabled to ensure that the refactor author catches issues in testing.
     */
    @JvmStatic
    inline fun assertInLegacyMode() = RefactorFlagUtils.assertInLegacyMode(isEnabled, FLAG_NAME)
}