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

Commit ec1f1f4c authored by Daniel Sandler's avatar Daniel Sandler Committed by Android (Google) Code Review
Browse files

Merge changes I674abfcc,Ia40f4c53 into honeycomb-mr1

* changes:
  When the user touches a peeked notification, reset the fadeout timer.
  Fix touches on glowing region around panel.
parents d452dbc2 663f0f2d
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@
    android:layout_height="0dp"
    android:orientation="vertical"
    android:background="@drawable/notify_panel_clock_bg"
    android:clickable="true"
    >
    <LinearLayout
        android:id="@+id/icons"
+15 −0
Original line number Diff line number Diff line
@@ -18,11 +18,15 @@ package com.android.systemui.statusbar.tablet;

import android.content.Context;
import android.util.AttributeSet;
import android.util.Slog;
import android.view.MotionEvent;
import android.widget.RelativeLayout;

import com.android.systemui.R;

public class NotificationPeekPanel extends RelativeLayout implements StatusBarPanel {
    TabletStatusBar mBar;

    public NotificationPeekPanel(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }
@@ -39,5 +43,16 @@ public class NotificationPeekPanel extends RelativeLayout implements StatusBarPa
        return x >= l && x < r && y >= t && y < b;
    }

    public void setBar(TabletStatusBar bar) {
        mBar = bar;
    }

    // We don't really want to intercept the touch event, but we *do* want to reset the fade timer
    // in case the user is interacting with some custom controls or something.
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        mBar.resetNotificationPeekFadeTimer();
        return false;
    }
}
+16 −5
Original line number Diff line number Diff line
@@ -217,6 +217,8 @@ public class TabletStatusBar extends StatusBar implements
        // Notification preview window
        mNotificationPeekWindow = (NotificationPeekPanel) View.inflate(context,
                R.layout.status_bar_notification_peek, null);
        mNotificationPeekWindow.setBar(this);

        mNotificationPeekRow = (ViewGroup) mNotificationPeekWindow.findViewById(R.id.content);
        mNotificationPeekWindow.setVisibility(View.GONE);
        mNotificationPeekWindow.setOnTouchListener(
@@ -1211,10 +1213,20 @@ public class TabletStatusBar extends StatusBar implements
        }
    }

    private class NotificationIconTouchListener implements View.OnTouchListener {
    final static int NOTIFICATION_PEEK_HOLD_THRESH = 200; // ms
        final static int NOTIFICATION_PEEK_FADE_DELAY = 5000; // ms
    final static int NOTIFICATION_PEEK_FADE_DELAY = 3000; // ms

    public void resetNotificationPeekFadeTimer() {
        if (DEBUG) {
            Slog.d(TAG, "setting peek fade timer for " + NOTIFICATION_PEEK_FADE_DELAY
                + "ms from now");
        }
        mHandler.removeMessages(MSG_CLOSE_NOTIFICATION_PEEK);
        mHandler.sendEmptyMessageDelayed(MSG_CLOSE_NOTIFICATION_PEEK,
                NOTIFICATION_PEEK_FADE_DELAY);
    }

    private class NotificationIconTouchListener implements View.OnTouchListener {
        VelocityTracker mVT;
        int mPeekIndex;
        float mInitialTouchX, mInitialTouchY;
@@ -1303,8 +1315,7 @@ public class TabletStatusBar extends StatusBar implements
                    }

                    if (peeking) {
                        mHandler.sendEmptyMessageDelayed(MSG_CLOSE_NOTIFICATION_PEEK,
                                NOTIFICATION_PEEK_FADE_DELAY);
                        resetNotificationPeekFadeTimer();
                    }

                    mVT.recycle();