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

Commit d09c47c1 authored by Todd Frederick's avatar Todd Frederick
Browse files

Revert "Basic setup of BundleHeaderView (Compose) in NCC"

This reverts commit f7eff2a3.

Reason for revert: Breaks build due to ag/32025718 that landed first

Change-Id: I9d2a6b7447dad03eed6ed621715249e5d0a62fa8
parent f7eff2a3
Loading
Loading
Loading
Loading
+0 −19
Original line number Original line Diff line number Diff line
@@ -27,7 +27,6 @@ import android.view.NotificationHeaderView;
import android.view.View;
import android.view.View;
import android.widget.RemoteViews;
import android.widget.RemoteViews;


import androidx.compose.ui.platform.ComposeView;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;


@@ -36,9 +35,7 @@ import com.android.systemui.statusbar.notification.SourceType;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.NotificationTestHelper;
import com.android.systemui.statusbar.notification.row.shared.AsyncGroupHeaderViewInflation;
import com.android.systemui.statusbar.notification.row.shared.AsyncGroupHeaderViewInflation;
import com.android.systemui.statusbar.notification.row.ui.viewmodel.BundleHeaderViewModelImpl;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationHeaderViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationHeaderViewWrapper;
import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;


import org.junit.Assert;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Before;
@@ -276,22 +273,6 @@ public class NotificationChildrenContainerTest extends SysuiTestCase {
        Assert.assertEquals(1f, header.getTopRoundness(), 0.001f);
        Assert.assertEquals(1f, header.getTopRoundness(), 0.001f);
    }
    }


    @Test
    @EnableFlags(NotificationBundleUi.FLAG_NAME)
    public void initBundleHeader_composeview_is_initialized_once() {
        View currentView = mChildrenContainer.getChildAt(mChildrenContainer.getChildCount() - 1);
        Assert.assertFalse(currentView instanceof ComposeView);

        BundleHeaderViewModelImpl viewModel = new BundleHeaderViewModelImpl();
        mChildrenContainer.initBundleHeader(viewModel);
        currentView = mChildrenContainer.getChildAt(mChildrenContainer.getChildCount() - 1);
        Assert.assertTrue(currentView instanceof ComposeView);

        mChildrenContainer.initBundleHeader(viewModel);
        View finalView = mChildrenContainer.getChildAt(mChildrenContainer.getChildCount() - 1);
        Assert.assertEquals(currentView, finalView);
    }

    private NotificationHeaderView createHeaderView(boolean lowPriority) {
    private NotificationHeaderView createHeaderView(boolean lowPriority) {
        Notification notification = mNotificationTestHelper.createNotification();
        Notification notification = mNotificationTestHelper.createNotification();
        final Notification.Builder builder = Notification.Builder.recoverBuilder(getContext(),
        final Notification.Builder builder = Notification.Builder.recoverBuilder(getContext(),
+1 −18
Original line number Original line Diff line number Diff line
@@ -120,7 +120,6 @@ import com.android.systemui.statusbar.notification.people.PeopleNotificationIden
import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUiForceExpanded;
import com.android.systemui.statusbar.notification.promoted.PromotedNotificationUiForceExpanded;
import com.android.systemui.statusbar.notification.row.shared.AsyncGroupHeaderViewInflation;
import com.android.systemui.statusbar.notification.row.shared.AsyncGroupHeaderViewInflation;
import com.android.systemui.statusbar.notification.row.shared.LockscreenOtpRedaction;
import com.android.systemui.statusbar.notification.row.shared.LockscreenOtpRedaction;
import com.android.systemui.statusbar.notification.row.ui.viewmodel.BundleHeaderViewModelImpl;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationCompactMessagingTemplateViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationCompactMessagingTemplateViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
import com.android.systemui.statusbar.notification.shared.NotificationAddXOnHoverToDismiss;
import com.android.systemui.statusbar.notification.shared.NotificationAddXOnHoverToDismiss;
@@ -426,7 +425,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
                onExpansionChanged(true /* userAction */, wasExpanded);
                onExpansionChanged(true /* userAction */, wasExpanded);
            }
            }
        } else if (mEnableNonGroupedNotificationExpand) {
        } else if (mEnableNonGroupedNotificationExpand) {
            if (v != null && v.isAccessibilityFocused()) {
            if (v.isAccessibilityFocused()) {
                mPrivateLayout.setFocusOnVisibilityChange();
                mPrivateLayout.setFocusOnVisibilityChange();
            }
            }
            boolean nowExpanded;
            boolean nowExpanded;
@@ -1809,22 +1808,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
        );
        );
    }
    }


    /**
     * Init the bundle header view. The ComposeView is initialized within with the passed viewModel.
     * This can only be init once and not in conjunction with any other header view.
     */
    public void initBundleHeader(@NonNull BundleHeaderViewModelImpl bundleHeaderViewModel) {
        if (NotificationBundleUi.isUnexpectedlyInLegacyMode()) return;
        NotificationChildrenContainer childrenContainer = getChildrenContainerNonNull();
        bundleHeaderViewModel.setOnExpandClickListener(mExpandClickListener);

        childrenContainer.initBundleHeader(bundleHeaderViewModel);

        if (TransparentHeaderFix.isEnabled()) {
            updateBackgroundForGroupState();
        }
    }

    public void setHeadsUpAnimatingAway(boolean headsUpAnimatingAway) {
    public void setHeadsUpAnimatingAway(boolean headsUpAnimatingAway) {
        boolean wasAboveShelf = isAboveShelf();
        boolean wasAboveShelf = isAboveShelf();
        boolean changed = headsUpAnimatingAway != mHeadsupDisappearRunning;
        boolean changed = headsUpAnimatingAway != mHeadsupDisappearRunning;
+0 −53
Original line number Original line Diff line number Diff line
@@ -39,11 +39,9 @@ import android.widget.TextView;


import androidx.annotation.NonNull;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Nullable;
import androidx.compose.ui.platform.ComposeView;


import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.widget.NotificationExpandButton;
import com.android.internal.widget.NotificationExpandButton;
import com.android.systemui.notifications.ui.composable.row.BundleHeaderKt;
import com.android.systemui.res.R;
import com.android.systemui.res.R;
import com.android.systemui.scene.shared.flag.SceneContainerFlag;
import com.android.systemui.scene.shared.flag.SceneContainerFlag;
import com.android.systemui.statusbar.CrossFadeHelper;
import com.android.systemui.statusbar.CrossFadeHelper;
@@ -60,7 +58,6 @@ import com.android.systemui.statusbar.notification.row.HybridGroupManager;
import com.android.systemui.statusbar.notification.row.HybridNotificationView;
import com.android.systemui.statusbar.notification.row.HybridNotificationView;
import com.android.systemui.statusbar.notification.row.shared.AsyncGroupHeaderViewInflation;
import com.android.systemui.statusbar.notification.row.shared.AsyncGroupHeaderViewInflation;
import com.android.systemui.statusbar.notification.row.shared.AsyncHybridViewInflation;
import com.android.systemui.statusbar.notification.row.shared.AsyncHybridViewInflation;
import com.android.systemui.statusbar.notification.row.ui.viewmodel.BundleHeaderViewModelImpl;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationHeaderViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationHeaderViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
import com.android.systemui.statusbar.notification.row.wrapper.NotificationViewWrapper;
import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;
import com.android.systemui.statusbar.notification.shared.NotificationBundleUi;
@@ -122,13 +119,6 @@ public class NotificationChildrenContainer extends ViewGroup
     */
     */
    private boolean mEnableShadowOnChildNotifications;
    private boolean mEnableShadowOnChildNotifications;


    /**
     * This view is only set when this NCC is a bundle. If this view is set, all other header
     * view variants have to be null.
     */
    private ComposeView mBundleHeaderView;
    private BundleHeaderViewModelImpl mBundleHeaderViewModel;

    private NotificationHeaderView mGroupHeader;
    private NotificationHeaderView mGroupHeader;
    private NotificationHeaderViewWrapper mGroupHeaderWrapper;
    private NotificationHeaderViewWrapper mGroupHeaderWrapper;
    private NotificationHeaderView mMinimizedGroupHeader;
    private NotificationHeaderView mMinimizedGroupHeader;
@@ -199,9 +189,6 @@ public class NotificationChildrenContainer extends ViewGroup
                    R.dimen.notification_children_container_top_padding);
                    R.dimen.notification_children_container_top_padding);
            mHeaderHeight = mCollapsedHeaderMargin + mAdditionalExpandedHeaderMargin;
            mHeaderHeight = mCollapsedHeaderMargin + mAdditionalExpandedHeaderMargin;
        }
        }
        if (mBundleHeaderView != null) {
            initBundleDimens();
        }
        mCollapsedBottomPadding = res.getDimensionPixelOffset(
        mCollapsedBottomPadding = res.getDimensionPixelOffset(
                R.dimen.notification_children_collapsed_bottom_padding);
                R.dimen.notification_children_collapsed_bottom_padding);
        mEnableShadowOnChildNotifications =
        mEnableShadowOnChildNotifications =
@@ -257,10 +244,6 @@ public class NotificationChildrenContainer extends ViewGroup
                    mMinimizedGroupHeader.getMeasuredWidth(),
                    mMinimizedGroupHeader.getMeasuredWidth(),
                    mMinimizedGroupHeader.getMeasuredHeight());
                    mMinimizedGroupHeader.getMeasuredHeight());
        }
        }
        if (mBundleHeaderView != null) {
            mBundleHeaderView.layout(0, 0, mBundleHeaderView.getMeasuredWidth(),
                    mBundleHeaderView.getMeasuredHeight());
        }
    }
    }


    @Override
    @Override
@@ -312,9 +295,6 @@ public class NotificationChildrenContainer extends ViewGroup
        if (mMinimizedGroupHeader != null) {
        if (mMinimizedGroupHeader != null) {
            mMinimizedGroupHeader.measure(widthMeasureSpec, headerHeightSpec);
            mMinimizedGroupHeader.measure(widthMeasureSpec, headerHeightSpec);
        }
        }
        if (mBundleHeaderView != null) {
            mBundleHeaderView.measure(widthMeasureSpec, headerHeightSpec);
        }


        setMeasuredDimension(width, height);
        setMeasuredDimension(width, height);
        Trace.endSection();
        Trace.endSection();
@@ -503,28 +483,6 @@ public class NotificationChildrenContainer extends ViewGroup
        mMinimizedGroupHeaderWrapper = null;
        mMinimizedGroupHeaderWrapper = null;
    }
    }


    /**
     * Init the bundle header view. The ComposeView is initialized within with the passed viewModel.
     * This can only be init once and not in conjunction with any other header view.
     */
    public void initBundleHeader(@NonNull BundleHeaderViewModelImpl viewModel) {
        if (NotificationBundleUi.isUnexpectedlyInLegacyMode()) return;
        if (mBundleHeaderView != null) return;
        initBundleDimens();

        mBundleHeaderViewModel = viewModel;
        mBundleHeaderView = BundleHeaderKt.createComposeView(mBundleHeaderViewModel, getContext());
        addView(mBundleHeaderView);
        invalidate();
    }

    private void initBundleDimens() {
        NotificationBundleUi.assertInNewMode();
        mCollapsedHeaderMargin = mHeaderHeight;
        mAdditionalExpandedHeaderMargin = 0;
        mCollapsedBottomPadding = 0;
    }

    /**
    /**
     * Set the group header view
     * Set the group header view
     * @param headerView view to set
     * @param headerView view to set
@@ -1343,17 +1301,6 @@ public class NotificationChildrenContainer extends ViewGroup
                mGroupHeader.setHeaderBackgroundDrawable(null);
                mGroupHeader.setHeaderBackgroundDrawable(null);
            }
            }
        }
        }
        if (mBundleHeaderView != null) {
            if (expanded) {
                ColorDrawable cd = new ColorDrawable();
                cd.setColor(mContainingNotification.calculateBgColor());
                // TODO(b/389839492): The backgroundDrawable needs an outline like in the original:
                //  setOutlineProvider(mProvider);
                mBundleHeaderViewModel.setBackgroundDrawable(cd);
            } else {
                mBundleHeaderViewModel.setBackgroundDrawable(null);
            }
        }
    }
    }


    public int getMaxContentHeight() {
    public int getMaxContentHeight() {