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

Commit 334fa277 authored by Jeff DeCew's avatar Jeff DeCew Committed by Automerger Merge Worker
Browse files

Merge "Reset notification shade background tints when theme changes." into...

Merge "Reset notification shade background tints when theme changes." into tm-d1-dev am: abf75512 am: d5c81a8d am: aa989079

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18868865



Change-Id: I36a038a5c559fecf8bea15e1783e034a3883c49c
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 70e699c4 aa989079
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -151,6 +151,10 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
                R.color.notification_ripple_tinted_color);
                R.color.notification_ripple_tinted_color);
        mNormalRippleColor = mContext.getColor(
        mNormalRippleColor = mContext.getColor(
                R.color.notification_ripple_untinted_color);
                R.color.notification_ripple_untinted_color);
        // Reset background color tint and override tint, as they are from an old theme
        mBgTint = NO_COLOR;
        mOverrideTint = NO_COLOR;
        mOverrideAmount = 0.0f;
    }
    }


    /**
    /**
+86 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2022 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.row

import android.annotation.ColorInt
import android.graphics.Color
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper.RunWithLooper
import android.view.View
import androidx.test.filters.SmallTest
import com.android.settingslib.Utils
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.notification.FakeShadowView
import com.android.systemui.statusbar.notification.NotificationUtils
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

@SmallTest
@RunWith(AndroidTestingRunner::class)
@RunWithLooper
class ActivatableNotificationViewTest : SysuiTestCase() {
    private val mContentView: View = mock()
    private lateinit var mView: ActivatableNotificationView

    @ColorInt
    private var mNormalColor = 0

    @Before
    fun setUp() {
        mView = object : ActivatableNotificationView(mContext, null) {

            init {
                onFinishInflate()
            }

            override fun getContentView(): View {
                return mContentView
            }

            override fun <T : View> findViewTraversal(id: Int): T? = when (id) {
                R.id.backgroundNormal -> mock<NotificationBackgroundView>()
                R.id.fake_shadow -> mock<FakeShadowView>()
                else -> null
            } as T?
        }
        mNormalColor =
            Utils.getColorAttrDefaultColor(mContext, com.android.internal.R.attr.colorSurface)
    }

    @Test
    fun testBackgroundBehaviors() {
        // Color starts with the normal color
        mView.updateBackgroundColors()
        assertThat(mView.currentBackgroundTint).isEqualTo(mNormalColor)

        // Setting a tint changes the background to that color specifically
        mView.setTintColor(Color.BLUE)
        assertThat(mView.currentBackgroundTint).isEqualTo(Color.BLUE)

        // Setting an override tint blends with the previous tint
        mView.setOverrideTintColor(Color.RED, 0.5f)
        assertThat(mView.currentBackgroundTint)
            .isEqualTo(NotificationUtils.interpolateColors(Color.BLUE, Color.RED, 0.5f))

        // Updating the background colors resets tints, as those won't match the latest theme
        mView.updateBackgroundColors()
        assertThat(mView.currentBackgroundTint).isEqualTo(mNormalColor)
    }
}
 No newline at end of file