Merge "Close notification blame popups when the panel disappears." into jb-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
20cfb6066a
@@ -74,6 +74,7 @@ public class SwipeHelper implements Gefingerpoken {
|
||||
private boolean mLongPressSent;
|
||||
private View.OnLongClickListener mLongPressListener;
|
||||
private Runnable mWatchLongPress;
|
||||
private long mLongPressTimeout;
|
||||
|
||||
public SwipeHelper(int swipeDirection, Callback callback, float densityScale,
|
||||
float pagingTouchSlop) {
|
||||
@@ -83,6 +84,8 @@ public class SwipeHelper implements Gefingerpoken {
|
||||
mVelocityTracker = VelocityTracker.obtain();
|
||||
mDensityScale = densityScale;
|
||||
mPagingTouchSlop = pagingTouchSlop;
|
||||
|
||||
mLongPressTimeout = (long) (ViewConfiguration.getLongPressTimeout() * 1.5f); // extra long-press!
|
||||
}
|
||||
|
||||
public void setLongPressListener(View.OnLongClickListener listener) {
|
||||
@@ -180,7 +183,7 @@ public class SwipeHelper implements Gefingerpoken {
|
||||
}
|
||||
}
|
||||
|
||||
private void removeLongPressCallback() {
|
||||
public void removeLongPressCallback() {
|
||||
if (mWatchLongPress != null) {
|
||||
mHandler.removeCallbacks(mWatchLongPress);
|
||||
}
|
||||
@@ -214,7 +217,7 @@ public class SwipeHelper implements Gefingerpoken {
|
||||
}
|
||||
};
|
||||
}
|
||||
mHandler.postDelayed(mWatchLongPress, ViewConfiguration.getLongPressTimeout());
|
||||
mHandler.postDelayed(mWatchLongPress, mLongPressTimeout);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -91,6 +91,8 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
protected RecentsPanelView mRecentsPanel;
|
||||
protected RecentTasksLoader mRecentTasksLoader;
|
||||
|
||||
protected PopupMenu mNotificationBlamePopup;
|
||||
|
||||
// UI-specific methods
|
||||
|
||||
/**
|
||||
@@ -238,9 +240,11 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
final String packageNameF = (String) v.getTag();
|
||||
if (packageNameF == null) return false;
|
||||
if (v.getWindowToken() == null) return false;
|
||||
PopupMenu popup = new PopupMenu(mContext, v);
|
||||
popup.getMenuInflater().inflate(R.menu.notification_popup_menu, popup.getMenu());
|
||||
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
mNotificationBlamePopup = new PopupMenu(mContext, v);
|
||||
mNotificationBlamePopup.getMenuInflater().inflate(
|
||||
R.menu.notification_popup_menu,
|
||||
mNotificationBlamePopup.getMenu());
|
||||
mNotificationBlamePopup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
if (item.getItemId() == R.id.notification_inspect_item) {
|
||||
startApplicationDetailsActivity(packageNameF);
|
||||
@@ -251,13 +255,20 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
return true;
|
||||
}
|
||||
});
|
||||
popup.show();
|
||||
mNotificationBlamePopup.show();
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void dismissPopups() {
|
||||
if (mNotificationBlamePopup != null) {
|
||||
mNotificationBlamePopup.dismiss();
|
||||
mNotificationBlamePopup = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void dismissIntruder() {
|
||||
// pass
|
||||
}
|
||||
|
||||
@@ -1247,6 +1247,10 @@ public class PhoneStatusBar extends BaseStatusBar {
|
||||
return;
|
||||
}
|
||||
mExpanded = false;
|
||||
|
||||
// Close any "App info" popups that might have snuck on-screen
|
||||
dismissPopups();
|
||||
|
||||
if (mPostCollapseCleanup != null) {
|
||||
mPostCollapseCleanup.run();
|
||||
mPostCollapseCleanup = null;
|
||||
|
||||
@@ -32,6 +32,7 @@ import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.android.systemui.ExpandHelper;
|
||||
@@ -108,6 +109,14 @@ public class NotificationRowLayout
|
||||
mSwipeHelper.setLongPressListener(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindowFocusChanged(boolean hasWindowFocus) {
|
||||
super.onWindowFocusChanged(hasWindowFocus);
|
||||
if (!hasWindowFocus) {
|
||||
mSwipeHelper.removeLongPressCallback();
|
||||
}
|
||||
}
|
||||
|
||||
public void setAnimateBounds(boolean anim) {
|
||||
mAnimateBounds = anim;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user