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

Commit ea4af478 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes I8e5fe162,Ic780f98a,I8973907c

* changes:
  Collapsed DecoratedCustomView notifications show app name instead of title.
  Fix snooze/bubble button padding
  Fix Gmail undo state.
parents 8a8105b4 fa5c76c2
Loading
Loading
Loading
Loading
+49 −24
Original line number Diff line number Diff line
@@ -4888,12 +4888,6 @@ public class Notification implements Parcelable
            mN.mUsesStandardHeader = false;
        }

        private RemoteViews applyStandardTemplate(int resId, int viewType,
                TemplateBindResult result) {
            return applyStandardTemplate(resId,
                    mParams.reset().viewType(viewType).fillTextsFrom(this), result);
        }

        private RemoteViews applyStandardTemplate(int resId, StandardTemplateParams p,
                TemplateBindResult result) {
            p.headerless(resId == getBaseLayoutResource()
@@ -4907,7 +4901,7 @@ public class Notification implements Parcelable
            bindNotificationHeader(contentView, p);
            bindLargeIconAndApplyMargin(contentView, p, result);
            boolean showProgress = handleProgressBar(contentView, ex, p);
            if (p.title != null && p.title.length() > 0) {
            if (p.title != null && p.title.length() > 0 && !p.mHasCustomContent) {
                contentView.setViewVisibility(R.id.title, View.VISIBLE);
                contentView.setTextViewText(R.id.title, processTextSpans(p.title));
                setTextViewColorPrimary(contentView, R.id.title, p);
@@ -5302,6 +5296,12 @@ public class Notification implements Parcelable
                contentView.setViewVisibility(R.id.app_name_text, View.GONE);
                return false;
            }
            if (p.mHeaderless && !p.mHasCustomContent) {
                contentView.setViewVisibility(R.id.app_name_text, View.GONE);
                // the headerless template will have the TITLE in this position; return true to
                // keep the divider visible between that title and the next text element.
                return true;
            }
            contentView.setViewVisibility(R.id.app_name_text, View.VISIBLE);
            contentView.setTextViewText(R.id.app_name_text, loadHeaderAppName());
            if (isColorized(p)) {
@@ -5356,12 +5356,6 @@ public class Notification implements Parcelable
                    snoozeEnabled ? 0 : R.dimen.notification_content_margin);
        }

        private RemoteViews applyStandardTemplateWithActions(int layoutId, int viewType,
                TemplateBindResult result) {
            return applyStandardTemplateWithActions(layoutId,
                    mParams.reset().viewType(viewType).fillTextsFrom(this), result);
        }

        private static List<Notification.Action> filterOutContextualActions(
                List<Notification.Action> actions) {
            List<Notification.Action> nonContextualActions = new ArrayList<>();
@@ -5499,8 +5493,10 @@ public class Notification implements Parcelable
                    return styleView;
                }
            }
            return applyStandardTemplate(getBaseLayoutResource(),
                    StandardTemplateParams.VIEW_TYPE_NORMAL, null /* result */);
            StandardTemplateParams p = mParams.reset()
                    .viewType(StandardTemplateParams.VIEW_TYPE_NORMAL)
                    .fillTextsFrom(this);
            return applyStandardTemplate(getBaseLayoutResource(), p, null /* result */);
        }

        private boolean useExistingRemoteView() {
@@ -5520,14 +5516,27 @@ public class Notification implements Parcelable
                result = mStyle.makeBigContentView();
                hideLine1Text(result);
            }
            if (result == null) {
                result = applyStandardTemplateWithActions(getBigBaseLayoutResource(),
                        StandardTemplateParams.VIEW_TYPE_BIG, null /* result */);
            if (result == null && bigContentViewRequired()) {
                StandardTemplateParams p = mParams.reset()
                        .viewType(StandardTemplateParams.VIEW_TYPE_BIG)
                        .fillTextsFrom(this);
                result = applyStandardTemplateWithActions(getBigBaseLayoutResource(), p,
                        null /* result */);
            }
            makeHeaderExpanded(result);
            return result;
        }

        private boolean bigContentViewRequired() {
            // If the big content view has no content, we can exempt the app from having to show it.
            // TODO(b/173550917): add an UNDO style then force this requirement on apps targeting S
            boolean exempt = mN.contentView != null && mN.bigContentView == null
                    && mStyle == null && mActions.size() == 0
                    && mN.extras.getCharSequence(EXTRA_TITLE) == null
                    && mN.extras.getCharSequence(EXTRA_TEXT) == null;
            return !exempt;
        }

        /**
         * Construct a RemoteViews for the final notification header only. This will not be
         * colorized.
@@ -8693,18 +8702,24 @@ public class Notification implements Parcelable
               return makeStandardTemplateWithCustomContent(headsUpContentView);
            }
            TemplateBindResult result = new TemplateBindResult();
            StandardTemplateParams p = mBuilder.mParams.reset()
                    .viewType(StandardTemplateParams.VIEW_TYPE_HEADS_UP)
                    .hasCustomContent(headsUpContentView != null)
                    .fillTextsFrom(mBuilder);
            RemoteViews remoteViews = mBuilder.applyStandardTemplateWithActions(
                    mBuilder.getHeadsUpBaseLayoutResource(),
                    StandardTemplateParams.VIEW_TYPE_HEADS_UP, result);
                    mBuilder.getHeadsUpBaseLayoutResource(), p, result);
            buildIntoRemoteViewContent(remoteViews, headsUpContentView, result, true);
            return remoteViews;
        }

        private RemoteViews makeStandardTemplateWithCustomContent(RemoteViews customContent) {
            TemplateBindResult result = new TemplateBindResult();
            StandardTemplateParams p = mBuilder.mParams.reset()
                    .viewType(StandardTemplateParams.VIEW_TYPE_NORMAL)
                    .hasCustomContent(customContent != null)
                    .fillTextsFrom(mBuilder);
            RemoteViews remoteViews = mBuilder.applyStandardTemplate(
                    mBuilder.getBaseLayoutResource(),
                    StandardTemplateParams.VIEW_TYPE_NORMAL, result);
                    mBuilder.getBaseLayoutResource(), p, result);
            buildIntoRemoteViewContent(remoteViews, customContent, result, true);
            return remoteViews;
        }
@@ -8714,9 +8729,12 @@ public class Notification implements Parcelable
                    ? mBuilder.mN.contentView
                    : mBuilder.mN.bigContentView;
            TemplateBindResult result = new TemplateBindResult();
            StandardTemplateParams p = mBuilder.mParams.reset()
                    .viewType(StandardTemplateParams.VIEW_TYPE_BIG)
                    .hasCustomContent(bigContentView != null)
                    .fillTextsFrom(mBuilder);
            RemoteViews remoteViews = mBuilder.applyStandardTemplateWithActions(
                    mBuilder.getBigBaseLayoutResource(),
                    StandardTemplateParams.VIEW_TYPE_BIG, result);
                    mBuilder.getBigBaseLayoutResource(), p, result);
            buildIntoRemoteViewContent(remoteViews, bigContentView, result, false);
            return remoteViews;
        }
@@ -11029,6 +11047,7 @@ public class Notification implements Parcelable

        int mViewType = VIEW_TYPE_UNSPECIFIED;
        boolean mHeaderless;
        boolean mHasCustomContent;
        boolean hasProgress = true;
        CharSequence title;
        CharSequence text;
@@ -11042,6 +11061,7 @@ public class Notification implements Parcelable
        final StandardTemplateParams reset() {
            mViewType = VIEW_TYPE_UNSPECIFIED;
            mHeaderless = false;
            mHasCustomContent = false;
            hasProgress = true;
            title = null;
            text = null;
@@ -11068,6 +11088,11 @@ public class Notification implements Parcelable
            return this;
        }

        final StandardTemplateParams hasCustomContent(boolean hasCustomContent) {
            this.mHasCustomContent = hasCustomContent;
            return this;
        }

        final StandardTemplateParams title(CharSequence title) {
            this.title = title;
            return this;
+28 −17
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@
        android:layout_height="wrap_content"
        android:gravity="end"
        android:orientation="horizontal"
        android:paddingEnd="@dimen/bubble_gone_padding_end"
        android:background="@color/notification_action_list_background_color"
        >

@@ -45,6 +44,17 @@
            <!-- actions will be added here -->
        </com.android.internal.widget.NotificationActionListLayout>

        <!--
        This nested linear layout exists to ensure that if the neither of the contained
        actions is visible we have some minimum padding at the end of the actions is present,
        then there will be 12dp of padding at the end of the actions list.
        -->
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:minWidth="@dimen/snooze_and_bubble_gone_padding_end"
            >
            <ImageView
                android:id="@+id/snooze_button"
                android:layout_width="@dimen/notification_actions_icon_size"
@@ -63,4 +73,5 @@
                android:scaleType="centerInside"
                />
        </LinearLayout>
    </LinearLayout>
</FrameLayout>
+0 −10
Original line number Diff line number Diff line
@@ -50,16 +50,6 @@
        android:theme="@style/Theme.DeviceDefault.Notification"
        >

        <TextView
            android:id="@+id/app_name_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="@dimen/notification_header_separating_margin"
            android:singleLine="true"
            android:textAppearance="?attr/notificationHeaderTextAppearance"
            android:visibility="?attr/notificationHeaderAppNameVisibility"
            />

        <include layout="@layout/notification_top_line_views" />

    </NotificationTopLineView>
+6 −0
Original line number Diff line number Diff line
@@ -68,6 +68,12 @@
            android:theme="@style/Theme.DeviceDefault.Notification"
            >

            <!--
            NOTE: The notification_top_line_views layout contains the app_name_text.
            In order to include the title view at the beginning, the Notification.Builder
            has logic to hide that view whenever this title view is to be visible.
            -->

            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
+2 −2
Original line number Diff line number Diff line
@@ -327,10 +327,10 @@
            android:id="@+id/expand_button_touch_container"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/conversation_expand_button_size"
            android:paddingStart="16dp"
            android:paddingStart="@dimen/conversation_expand_button_side_margin"
            android:orientation="horizontal"
            android:layout_gravity="end|top"
            android:paddingEnd="@dimen/notification_content_margin_end"
            android:paddingEnd="@dimen/conversation_expand_button_side_margin"
            android:clipToPadding="false"
            android:clipChildren="false"
            >
Loading