Loading packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +30 −14 Original line number Original line Diff line number Diff line Loading @@ -2897,15 +2897,7 @@ public final class NotificationPanelViewController implements Dumpable { mHeadsUpManager.addListener(mOnHeadsUpChangedListener); mHeadsUpManager.addListener(mOnHeadsUpChangedListener); mHeadsUpTouchHelper = new HeadsUpTouchHelper(headsUpManager, mHeadsUpTouchHelper = new HeadsUpTouchHelper(headsUpManager, mNotificationStackScrollLayoutController.getHeadsUpCallback(), mNotificationStackScrollLayoutController.getHeadsUpCallback(), NotificationPanelViewController.this); new HeadsUpNotificationViewControllerImpl()); } public void setTrackedHeadsUp(ExpandableNotificationRow pickedChild) { if (pickedChild != null) { updateTrackingHeadsUp(pickedChild); mExpandingFromHeadsUp = true; } // otherwise we update the state when the expansion is finished } } private void onClosingFinished() { private void onClosingFinished() { Loading Loading @@ -2953,7 +2945,8 @@ public final class NotificationPanelViewController implements Dumpable { } } /** Called when a HUN is dragged up or down to indicate the starting height for shade motion. */ /** Called when a HUN is dragged up or down to indicate the starting height for shade motion. */ public void setHeadsUpDraggingStartingHeight(int startHeight) { @VisibleForTesting void setHeadsUpDraggingStartingHeight(int startHeight) { mHeadsUpStartHeight = startHeight; mHeadsUpStartHeight = startHeight; float scrimMinFraction; float scrimMinFraction; if (mSplitShadeEnabled) { if (mSplitShadeEnabled) { Loading Loading @@ -2987,10 +2980,6 @@ public final class NotificationPanelViewController implements Dumpable { mScrimController.setPanelScrimMinFraction(mMinFraction); mScrimController.setPanelScrimMinFraction(mMinFraction); } } public void clearNotificationEffects() { mCentralSurfaces.clearNotificationEffects(); } private boolean isPanelVisibleBecauseOfHeadsUp() { private boolean isPanelVisibleBecauseOfHeadsUp() { return (mHeadsUpManager.hasPinnedHeadsUp() || mHeadsUpAnimatingAway) return (mHeadsUpManager.hasPinnedHeadsUp() || mHeadsUpAnimatingAway) && mBarState == StatusBarState.SHADE; && mBarState == StatusBarState.SHADE; Loading Loading @@ -5143,6 +5132,33 @@ public final class NotificationPanelViewController implements Dumpable { } } } } private final class HeadsUpNotificationViewControllerImpl implements HeadsUpTouchHelper.HeadsUpNotificationViewController { @Override public void setHeadsUpDraggingStartingHeight(int startHeight) { NotificationPanelViewController.this.setHeadsUpDraggingStartingHeight(startHeight); } @Override public void setTrackedHeadsUp(ExpandableNotificationRow pickedChild) { if (pickedChild != null) { updateTrackingHeadsUp(pickedChild); mExpandingFromHeadsUp = true; } // otherwise we update the state when the expansion is finished } @Override public void startExpand(float x, float y, boolean startTracking, float expandedHeight) { startExpandMotion(x, y, startTracking, expandedHeight); } @Override public void clearNotificationEffects() { mCentralSurfaces.clearNotificationEffects(); } } private final class ShadeAccessibilityDelegate extends AccessibilityDelegate { private final class ShadeAccessibilityDelegate extends AccessibilityDelegate { @Override @Override public void onInitializeAccessibilityNodeInfo(View host, public void onInitializeAccessibilityNodeInfo(View host, Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java +21 −7 Original line number Original line Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.view.MotionEvent; import android.view.ViewConfiguration; import android.view.ViewConfiguration; import com.android.systemui.Gefingerpoken; import com.android.systemui.Gefingerpoken; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.ExpandableView; import com.android.systemui.statusbar.notification.row.ExpandableView; Loading @@ -31,21 +30,21 @@ import com.android.systemui.statusbar.notification.row.ExpandableView; */ */ public class HeadsUpTouchHelper implements Gefingerpoken { public class HeadsUpTouchHelper implements Gefingerpoken { private HeadsUpManagerPhone mHeadsUpManager; private final HeadsUpManagerPhone mHeadsUpManager; private Callback mCallback; private final Callback mCallback; private int mTrackingPointer; private int mTrackingPointer; private float mTouchSlop; private final float mTouchSlop; private float mInitialTouchX; private float mInitialTouchX; private float mInitialTouchY; private float mInitialTouchY; private boolean mTouchingHeadsUpView; private boolean mTouchingHeadsUpView; private boolean mTrackingHeadsUp; private boolean mTrackingHeadsUp; private boolean mCollapseSnoozes; private boolean mCollapseSnoozes; private NotificationPanelViewController mPanel; private final HeadsUpNotificationViewController mPanel; private ExpandableNotificationRow mPickedChild; private ExpandableNotificationRow mPickedChild; public HeadsUpTouchHelper(HeadsUpManagerPhone headsUpManager, public HeadsUpTouchHelper(HeadsUpManagerPhone headsUpManager, Callback callback, Callback callback, NotificationPanelViewController notificationPanelView) { HeadsUpNotificationViewController notificationPanelView) { mHeadsUpManager = headsUpManager; mHeadsUpManager = headsUpManager; mCallback = callback; mCallback = callback; mPanel = notificationPanelView; mPanel = notificationPanelView; Loading Loading @@ -116,7 +115,7 @@ public class HeadsUpTouchHelper implements Gefingerpoken { int startHeight = (int) (mPickedChild.getActualHeight() int startHeight = (int) (mPickedChild.getActualHeight() + mPickedChild.getTranslationY()); + mPickedChild.getTranslationY()); mPanel.setHeadsUpDraggingStartingHeight(startHeight); mPanel.setHeadsUpDraggingStartingHeight(startHeight); mPanel.startExpandMotion(x, y, true /* startTracking */, startHeight); mPanel.startExpand(x, y, true /* startTracking */, startHeight); // This call needs to be after the expansion start otherwise we will get a // This call needs to be after the expansion start otherwise we will get a // flicker of one frame as it's not expanded yet. // flicker of one frame as it's not expanded yet. mHeadsUpManager.unpinAll(true); mHeadsUpManager.unpinAll(true); Loading Loading @@ -181,4 +180,19 @@ public class HeadsUpTouchHelper implements Gefingerpoken { boolean isExpanded(); boolean isExpanded(); Context getContext(); Context getContext(); } } /** The controller for a view that houses heads up notifications. */ public interface HeadsUpNotificationViewController { /** Called when a HUN is dragged to indicate the starting height for shade motion. */ void setHeadsUpDraggingStartingHeight(int startHeight); /** Sets notification that is being expanded. */ void setTrackedHeadsUp(ExpandableNotificationRow expandableNotificationRow); /** Called when a MotionEvent is about to trigger expansion. */ void startExpand(float newX, float newY, boolean startTracking, float expandedHeight); /** Clear any effects that were added for the expansion. */ void clearNotificationEffects(); } } } Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +30 −14 Original line number Original line Diff line number Diff line Loading @@ -2897,15 +2897,7 @@ public final class NotificationPanelViewController implements Dumpable { mHeadsUpManager.addListener(mOnHeadsUpChangedListener); mHeadsUpManager.addListener(mOnHeadsUpChangedListener); mHeadsUpTouchHelper = new HeadsUpTouchHelper(headsUpManager, mHeadsUpTouchHelper = new HeadsUpTouchHelper(headsUpManager, mNotificationStackScrollLayoutController.getHeadsUpCallback(), mNotificationStackScrollLayoutController.getHeadsUpCallback(), NotificationPanelViewController.this); new HeadsUpNotificationViewControllerImpl()); } public void setTrackedHeadsUp(ExpandableNotificationRow pickedChild) { if (pickedChild != null) { updateTrackingHeadsUp(pickedChild); mExpandingFromHeadsUp = true; } // otherwise we update the state when the expansion is finished } } private void onClosingFinished() { private void onClosingFinished() { Loading Loading @@ -2953,7 +2945,8 @@ public final class NotificationPanelViewController implements Dumpable { } } /** Called when a HUN is dragged up or down to indicate the starting height for shade motion. */ /** Called when a HUN is dragged up or down to indicate the starting height for shade motion. */ public void setHeadsUpDraggingStartingHeight(int startHeight) { @VisibleForTesting void setHeadsUpDraggingStartingHeight(int startHeight) { mHeadsUpStartHeight = startHeight; mHeadsUpStartHeight = startHeight; float scrimMinFraction; float scrimMinFraction; if (mSplitShadeEnabled) { if (mSplitShadeEnabled) { Loading Loading @@ -2987,10 +2980,6 @@ public final class NotificationPanelViewController implements Dumpable { mScrimController.setPanelScrimMinFraction(mMinFraction); mScrimController.setPanelScrimMinFraction(mMinFraction); } } public void clearNotificationEffects() { mCentralSurfaces.clearNotificationEffects(); } private boolean isPanelVisibleBecauseOfHeadsUp() { private boolean isPanelVisibleBecauseOfHeadsUp() { return (mHeadsUpManager.hasPinnedHeadsUp() || mHeadsUpAnimatingAway) return (mHeadsUpManager.hasPinnedHeadsUp() || mHeadsUpAnimatingAway) && mBarState == StatusBarState.SHADE; && mBarState == StatusBarState.SHADE; Loading Loading @@ -5143,6 +5132,33 @@ public final class NotificationPanelViewController implements Dumpable { } } } } private final class HeadsUpNotificationViewControllerImpl implements HeadsUpTouchHelper.HeadsUpNotificationViewController { @Override public void setHeadsUpDraggingStartingHeight(int startHeight) { NotificationPanelViewController.this.setHeadsUpDraggingStartingHeight(startHeight); } @Override public void setTrackedHeadsUp(ExpandableNotificationRow pickedChild) { if (pickedChild != null) { updateTrackingHeadsUp(pickedChild); mExpandingFromHeadsUp = true; } // otherwise we update the state when the expansion is finished } @Override public void startExpand(float x, float y, boolean startTracking, float expandedHeight) { startExpandMotion(x, y, startTracking, expandedHeight); } @Override public void clearNotificationEffects() { mCentralSurfaces.clearNotificationEffects(); } } private final class ShadeAccessibilityDelegate extends AccessibilityDelegate { private final class ShadeAccessibilityDelegate extends AccessibilityDelegate { @Override @Override public void onInitializeAccessibilityNodeInfo(View host, public void onInitializeAccessibilityNodeInfo(View host, Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java +21 −7 Original line number Original line Diff line number Diff line Loading @@ -21,7 +21,6 @@ import android.view.MotionEvent; import android.view.ViewConfiguration; import android.view.ViewConfiguration; import com.android.systemui.Gefingerpoken; import com.android.systemui.Gefingerpoken; import com.android.systemui.shade.NotificationPanelViewController; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.ExpandableView; import com.android.systemui.statusbar.notification.row.ExpandableView; Loading @@ -31,21 +30,21 @@ import com.android.systemui.statusbar.notification.row.ExpandableView; */ */ public class HeadsUpTouchHelper implements Gefingerpoken { public class HeadsUpTouchHelper implements Gefingerpoken { private HeadsUpManagerPhone mHeadsUpManager; private final HeadsUpManagerPhone mHeadsUpManager; private Callback mCallback; private final Callback mCallback; private int mTrackingPointer; private int mTrackingPointer; private float mTouchSlop; private final float mTouchSlop; private float mInitialTouchX; private float mInitialTouchX; private float mInitialTouchY; private float mInitialTouchY; private boolean mTouchingHeadsUpView; private boolean mTouchingHeadsUpView; private boolean mTrackingHeadsUp; private boolean mTrackingHeadsUp; private boolean mCollapseSnoozes; private boolean mCollapseSnoozes; private NotificationPanelViewController mPanel; private final HeadsUpNotificationViewController mPanel; private ExpandableNotificationRow mPickedChild; private ExpandableNotificationRow mPickedChild; public HeadsUpTouchHelper(HeadsUpManagerPhone headsUpManager, public HeadsUpTouchHelper(HeadsUpManagerPhone headsUpManager, Callback callback, Callback callback, NotificationPanelViewController notificationPanelView) { HeadsUpNotificationViewController notificationPanelView) { mHeadsUpManager = headsUpManager; mHeadsUpManager = headsUpManager; mCallback = callback; mCallback = callback; mPanel = notificationPanelView; mPanel = notificationPanelView; Loading Loading @@ -116,7 +115,7 @@ public class HeadsUpTouchHelper implements Gefingerpoken { int startHeight = (int) (mPickedChild.getActualHeight() int startHeight = (int) (mPickedChild.getActualHeight() + mPickedChild.getTranslationY()); + mPickedChild.getTranslationY()); mPanel.setHeadsUpDraggingStartingHeight(startHeight); mPanel.setHeadsUpDraggingStartingHeight(startHeight); mPanel.startExpandMotion(x, y, true /* startTracking */, startHeight); mPanel.startExpand(x, y, true /* startTracking */, startHeight); // This call needs to be after the expansion start otherwise we will get a // This call needs to be after the expansion start otherwise we will get a // flicker of one frame as it's not expanded yet. // flicker of one frame as it's not expanded yet. mHeadsUpManager.unpinAll(true); mHeadsUpManager.unpinAll(true); Loading Loading @@ -181,4 +180,19 @@ public class HeadsUpTouchHelper implements Gefingerpoken { boolean isExpanded(); boolean isExpanded(); Context getContext(); Context getContext(); } } /** The controller for a view that houses heads up notifications. */ public interface HeadsUpNotificationViewController { /** Called when a HUN is dragged to indicate the starting height for shade motion. */ void setHeadsUpDraggingStartingHeight(int startHeight); /** Sets notification that is being expanded. */ void setTrackedHeadsUp(ExpandableNotificationRow expandableNotificationRow); /** Called when a MotionEvent is about to trigger expansion. */ void startExpand(float newX, float newY, boolean startTracking, float expandedHeight); /** Clear any effects that were added for the expansion. */ void clearNotificationEffects(); } } }