Fixed a bug in the notification touch selection.

This lead to the wrong notification being selected and
therefore the longpress listener would not be triggered.
Also added some logging for cases where the longpress
listener would not fire.

Bug: 17332879
Change-Id: I9a5cd9bfe3108ca3e366711d34d1e218f1d520cf
This commit is contained in:
Selim Cinek
2014-09-02 13:46:00 +02:00
parent edb893bae6
commit abdc5a0782
2 changed files with 10 additions and 5 deletions

View File

@@ -736,15 +736,20 @@ public abstract class BaseStatusBar extends SystemUI implements
public boolean onLongPress(View v, int x, int y) {
dismissPopups();
if (v.getWindowToken() == null) return false;
if (v.getWindowToken() == null) {
Log.e(TAG, "Trying to show notification guts, but not attached to window");
return false;
}
// Assume we are a status_bar_notification_row
final NotificationGuts guts = (NotificationGuts) v.findViewById(
R.id.notification_guts);
if (guts == null) return false;
// Already showing?
if (guts.getVisibility() == View.VISIBLE) return false;
if (guts.getVisibility() == View.VISIBLE) {
Log.e(TAG, "Trying to show notification guts, but already visible");
return false;
}
guts.setVisibility(View.VISIBLE);
final double horz = Math.max(guts.getWidth() - x, x);

View File

@@ -580,7 +580,7 @@ public class NotificationStackScrollLayout extends ViewGroup
}
float childTop = slidingChild.getTranslationY();
float top = childTop + slidingChild.getClipTopAmount();
float bottom = top + slidingChild.getActualHeight();
float bottom = childTop + slidingChild.getActualHeight();
// Allow the full width of this view to prevent gesture conflict on Keyguard (phone and
// camera affordance).
@@ -1530,7 +1530,7 @@ public class NotificationStackScrollLayout extends ViewGroup
return position;
}
if (child.getVisibility() != View.GONE) {
position += child.getHeight();
position += getIntrinsicHeight(child);
if (i < getChildCount()-1) {
position += mPaddingBetweenElements;
}