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

Commit 8d6440db authored by Selim Cinek's avatar Selim Cinek
Browse files

Hiding subtext of children notifications now

If the parent header already displays the email
we don’t want to display it again in the child.

Bug: 24866646
Change-Id: I3aee62e895fef68b059a61a825eef37f0f8ad875
parent 34d93b09
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -33,9 +33,9 @@ import android.widget.ImageView;

import com.android.systemui.R;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.statusbar.notification.NotificationHeaderView;
import com.android.systemui.statusbar.phone.NotificationGroupManager;
import com.android.systemui.statusbar.stack.NotificationChildrenContainer;
import com.android.systemui.statusbar.notification.NotificationHeaderView;
import com.android.systemui.statusbar.stack.StackScrollState;
import com.android.systemui.statusbar.stack.StackStateAnimator;
import com.android.systemui.statusbar.stack.StackViewState;
@@ -378,6 +378,19 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
        setStatusBarNotification(entry.notification);
    }

    public CharSequence getSubText() {
        Notification notification = mStatusBarNotification.getNotification();
        CharSequence subText = notification.extras.getCharSequence(Notification.EXTRA_SUMMARY_TEXT);
        if (subText == null) {
            subText = notification.extras.getCharSequence(Notification.EXTRA_SUB_TEXT);
        }
        return subText;
    }

    public void setContentSubTextVisible(boolean visible) {
        mPrivateLayout.setSubTextVisible(visible);
    }

    public interface ExpansionLogger {
        public void logNotificationExpansion(String key, boolean userAction, boolean expanded);
    }
+12 −0
Original line number Diff line number Diff line
@@ -442,4 +442,16 @@ public class NotificationContentView extends FrameLayout {
    public void setShowingLegacyBackground(boolean showing) {
        mShowingLegacyBackground = showing;
    }

    public void setSubTextVisible(boolean visible) {
        if (mExpandedChild != null) {
            mExpandedWrapper.setSubTextVisible(visible);
        }
        if (mContractedChild != null) {
            mContractedWrapper.setSubTextVisible(visible);
        }
        if (mHeadsUpChild != null) {
            mHeadsUpWrapper.setSubTextVisible(visible);
        }
    }
}
+49 −0
Original line number Diff line number Diff line
@@ -27,10 +27,12 @@ import android.graphics.ColorMatrixColorFilter;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import android.widget.ImageView;
import android.widget.TextView;

import com.android.systemui.R;
import com.android.systemui.ViewInvertHelper;
@@ -55,6 +57,11 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper {

    /** Whether the icon needs to be forced grayscale when in dark mode. */
    private boolean mIconForceGraysaleWhenDark;
    private TextView mSubText;
    private TextView mInfoText;
    private View mProfileBadge;
    private View mThirdLineDivider;
    private View mThirdLine;

    protected NotificationTemplateViewWrapper(Context ctx, View view) {
        super(view);
@@ -76,6 +83,11 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper {
        mIcon = resolveIcon(largeIcon, rightIcon);
        mPicture = resolvePicture(largeIcon);
        mIconBackgroundColor = resolveBackgroundColor(mIcon);
        mSubText = (TextView) mView.findViewById(com.android.internal.R.id.text);
        mInfoText = (TextView) mView.findViewById(com.android.internal.R.id.info);
        mProfileBadge = mView.findViewById(com.android.internal.R.id.profile_badge_line3);
        mThirdLineDivider = mView.findViewById(com.android.internal.R.id.overflow_divider);
        mThirdLine = mView.findViewById(com.android.internal.R.id.line3);

        // If the icon already has a color filter, we assume that we already forced the icon to be
        // white when we created the notification.
@@ -230,6 +242,43 @@ public class NotificationTemplateViewWrapper extends NotificationViewWrapper {
        }
    }

    @Override
    public void setSubTextVisible(boolean visible) {
        if (mSubText == null) {
            return;
        }
        boolean subTextAvailable = !TextUtils.isEmpty(mSubText.getText());
        if (visible && subTextAvailable) {
            mSubText.setVisibility(View.VISIBLE);
        } else {
            mSubText.setVisibility(View.GONE);
        }
        // TODO: figure out what to do with the number (same place as contentInfo)
        // work profile badge. For now we hide it since it looks nicer.
        boolean infoAvailable = !TextUtils.isEmpty(mInfoText.getText());
        if (visible && infoAvailable) {
            mInfoText.setVisibility(View.VISIBLE);
        } else {
            mInfoText.setVisibility(View.GONE);
        }
        boolean showThirdLine = (visible && (infoAvailable || subTextAvailable))
                || mProfileBadge.getVisibility() == View.VISIBLE;
        if (mThirdLineDivider != null) {
            if (showThirdLine) {
                mThirdLineDivider.setVisibility(View.VISIBLE);
            } else {
                mThirdLineDivider.setVisibility(View.GONE);
            }
        }
        if (mThirdLine != null) {
            if (showThirdLine) {
                mThirdLine.setVisibility(View.VISIBLE);
            } else {
                mThirdLine.setVisibility(View.GONE);
            }
        }
    }

    private void updateGrayscaleMatrix(float intensity) {
        mGrayscaleColorMatrix.setSaturation(1 - intensity);
    }
+12 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ public abstract class NotificationViewWrapper {
    private static final String TAG_BIG_PICTURE = "bigPicture";

    protected final View mView;
    private boolean mSubTextVisible = true;

    public static NotificationViewWrapper wrap(Context ctx, View v) {
        if (v.getId() == com.android.internal.R.id.status_bar_latest_event_content) {
@@ -63,7 +64,9 @@ public abstract class NotificationViewWrapper {
    /**
     * Notifies this wrapper that the content of the view might have changed.
     */
    public void notifyContentUpdated() {}
    public void notifyContentUpdated() {
        setSubTextVisible(mSubTextVisible);
    }

    /**
     * @return true if this template might need to be clipped with a round rect to make it look
@@ -72,4 +75,12 @@ public abstract class NotificationViewWrapper {
    public boolean needsRoundRectClipping() {
        return false;
    }

    /**
     * Change the subTextVisibility
     * @param visible Should the subtext be visible
     */
    public void setSubTextVisible(boolean visible) {
        mSubTextVisible = visible;
    }
}