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

Commit 757d8799 authored by Selim Cinek's avatar Selim Cinek
Browse files

Fixed a bug where the notification became clearable

A notification could become clearable on the lockscreen
when the content was sensitive even though that shouldn't
have happend.
This is now fixed.

Change-Id: I50f31c95dd399bfebfa9e5c46eb99820f31e37ff
parent fdc738f9
Loading
Loading
Loading
Loading
+19 −27
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.systemui.statusbar;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.TimeInterpolator;
import android.app.ActivityManager;
import android.app.ActivityManagerNative;
import android.app.Notification;
@@ -76,7 +75,6 @@ import android.view.ViewParent;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
import android.view.accessibility.AccessibilityManager;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.RemoteViews;
import android.widget.TextView;
@@ -86,7 +84,6 @@ import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.StatusBarIcon;
import com.android.internal.util.NotificationColorUtil;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.DejankUtils;
@@ -828,9 +825,8 @@ public abstract class BaseStatusBar extends SystemUI implements
        }
    }

    protected View updateNotificationVetoButton(View row, StatusBarNotification n) {
    protected View bindVetoButtonClickListener(View row, StatusBarNotification n) {
        View vetoButton = row.findViewById(R.id.veto);
        if (n.isClearable()) {
        final String _pkg = n.getPackageName();
        final String _tag = n.getTag();
        final int _id = n.getId();
@@ -848,10 +844,6 @@ public abstract class BaseStatusBar extends SystemUI implements
                }
            }
        });
            vetoButton.setVisibility(View.VISIBLE);
        } else {
            vetoButton.setVisibility(View.GONE);
        }
        vetoButton.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
        return vetoButton;
    }
@@ -1370,7 +1362,7 @@ public abstract class BaseStatusBar extends SystemUI implements
        }

        workAroundBadLayerDrawableOpacity(row);
        View vetoButton = updateNotificationVetoButton(row, sbn);
        View vetoButton = bindVetoButtonClickListener(row, sbn);
        vetoButton.setContentDescription(mContext.getString(
                R.string.accessibility_remove_notification));

@@ -2010,7 +2002,7 @@ public abstract class BaseStatusBar extends SystemUI implements

        // Update the veto button accordingly (and as a result, whether this row is
        // swipe-dismissable)
        updateNotificationVetoButton(entry.row, notification);
        bindVetoButtonClickListener(entry.row, notification);

        if (DEBUG) {
            // Is this for you?
+4 −4
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.NotificationHeaderView;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Chronometer;
@@ -212,7 +211,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
        mStatusBarNotification = entry.notification;
        mPrivateLayout.onNotificationUpdated(entry);
        mPublicLayout.onNotificationUpdated(entry);
        updateVetoButton();
        mShowingPublicInitialized = false;
        updateClearability();
        if (mIsSummaryWithChildren) {
            recreateNotificationHeader();
        }
@@ -911,7 +911,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
        }

        mPrivateLayout.updateExpandButtons(isExpandable());
        updateVetoButton();
        updateClearability();
        mShowingPublicInitialized = true;
    }

@@ -947,7 +947,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
        }
    }

    private void updateVetoButton() {
    private void updateClearability() {
        // public versions cannot be dismissed
        mVetoButton.setVisibility(isClearable() && !mShowingPublic ? View.VISIBLE : View.GONE);
    }