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

Commit 80e5b7ca authored by Jernej Virag's avatar Jernej Virag
Browse files

Don't emit Log.wtf for missing custom view decorator

There are cases where custom view decorator isn't applied - especially
in tests and severely legacy code. Log.wtf in that case will cause jank
and possible issues.

Reduce it to Log.e so we can still track it, but don't do the reporting.

Bug: 430559148
Flag: com.android.server.notification.notification_custom_view_uri_restriction
Test: atest NotificationRowContentBinderImplTest on cf trunk_staging
Change-Id: I0d84649cc83bd82111df3bff4219bf0aab1ebda9
parent d37a9688
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.os.Build
import android.os.CancellationSignal
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.platform.test.flag.junit.FlagsParameterization
import android.testing.TestableLooper.RunWithLooper
import android.util.TypedValue
import android.util.TypedValue.COMPLEX_UNIT_SP
@@ -33,8 +34,8 @@ import android.view.View
import android.view.ViewGroup
import android.widget.RemoteViews
import android.widget.TextView
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.server.notification.Flags
import com.android.systemui.SysuiTestCase
import com.android.systemui.res.R
import com.android.systemui.statusbar.NotificationLockscreenUserManager.REDACTION_TYPE_NONE
@@ -80,12 +81,19 @@ import org.mockito.kotlin.spy
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
import org.mockito.kotlin.whenever
import platform.test.runner.parameterized.ParameterizedAndroidJunit4
import platform.test.runner.parameterized.Parameters

@SmallTest
@RunWith(AndroidJUnit4::class)
@RunWith(ParameterizedAndroidJunit4::class)
@RunWithLooper
@EnableFlags(NotificationRowContentBinderRefactor.FLAG_NAME, LockscreenOtpRedaction.FLAG_NAME)
class NotificationRowContentBinderImplTest : SysuiTestCase() {
class NotificationRowContentBinderImplTest(flags: FlagsParameterization) : SysuiTestCase() {

    init {
        mSetFlagsRule.setFlagsParameterization(flags)
    }

    private lateinit var notificationInflater: NotificationRowContentBinderImpl
    private lateinit var builder: Notification.Builder
    private lateinit var row: ExpandableNotificationRow
@@ -657,6 +665,15 @@ class NotificationRowContentBinderImplTest : SysuiTestCase() {
    }

    companion object {

        @JvmStatic
        @Parameters(name = "{0}")
        fun getParams(): List<FlagsParameterization> {
            return FlagsParameterization.allCombinationsOf(
                Flags.FLAG_NOTIFICATION_CUSTOM_VIEW_URI_RESTRICTION
            )
        }

        private fun inflateAndWait(
            inflater: NotificationRowContentBinderImpl,
            @InflationFlag contentToInflate: Int,
+1 −1
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ object NotificationCustomContentMemoryVerifier {
        val mainColumnView =
            view.findViewById<View>(com.android.internal.R.id.notification_main_column)
        if (mainColumnView == null) {
            Log.wtf(
            Log.e(
                NOTIFICATION_SERVICE_TAG,
                "R.id.notification_main_column view should not be null!",
            )
+2 −5
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import androidx.test.filters.SmallTest;

import com.android.server.notification.Flags;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.log.LogAssertKt;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;

@@ -174,10 +173,8 @@ public class NotificationCustomContentMemoryVerifierTest extends SysuiTestCase {
    public void satisfiesMemoryLimits_viewWithoutCustomNotificationRoot_returnsTrue() {
        NotificationEntry entry = new NotificationEntryBuilder().build();
        View view = new FrameLayout(mContext);
        LogAssertKt.assertRunnableLogsWtf(() -> {
        assertThat(NotificationCustomContentMemoryVerifier.satisfiesMemoryLimits(view, entry))
                .isTrue();
        });
    }

    @Test