diff options
author | 2024-03-15 17:25:43 +0000 | |
---|---|---|
committer | 2024-03-15 17:25:43 +0000 | |
commit | da3a32841cf9708cb91ef0754dec9805798be3d0 (patch) | |
tree | 01ad6b2799298420801ed6107cc6da0929eca6ad | |
parent | 7b9df00f54dcac6d9963d7565a6c3da037ea9b5b (diff) | |
parent | 9368ac271bad5e81ca55ef480f5dfe9f5fadce3d (diff) |
Merge "Keep device awake when using keyboard" into main
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java index 8b791de429ed..975e146f3940 100644 --- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java @@ -71,6 +71,8 @@ import android.util.IndentingPrintWriter; import android.util.Log; import android.util.MathUtils; import android.view.HapticFeedbackConstants; +import android.view.InputDevice; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.VelocityTracker; @@ -355,6 +357,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump private final QuickSettingsControllerImpl mQsController; private final NaturalScrollingSettingObserver mNaturalScrollingSettingObserver; private final TouchHandler mTouchHandler = new TouchHandler(); + private final KeyHandler mKeyHandler = new KeyHandler(); private long mDownTime; private boolean mTouchSlopExceededBeforeDown; @@ -816,6 +819,7 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump mView.addOnLayoutChangeListener(new ShadeLayoutChangeListener()); mView.setOnTouchListener(getTouchHandler()); + mView.setOnKeyListener(getKeyHandler()); mView.setOnConfigurationChangedListener(config -> loadDimens()); mResources = mView.getResources(); @@ -3590,6 +3594,11 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump return mTouchHandler; } + @VisibleForTesting + KeyHandler getKeyHandler() { + return mKeyHandler; + } + @Override public void disableHeader(int state1, int state2, boolean animated) { mShadeHeaderController.disable(state1, state2, animated); @@ -5242,6 +5251,21 @@ public final class NotificationPanelViewController implements ShadeSurface, Dump } } + /** Handles KeyEvents for the Shade. */ + public final class KeyHandler implements View.OnKeyListener { + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + if (event.getAction() == KeyEvent.ACTION_DOWN) { + final InputDevice d = event.getDevice(); + // Trigger user activity if the event comes from a full external keyboard + if (d != null && d.isFullKeyboard() && d.isExternal()) { + mCentralSurfaces.userActivity(); + } + } + return false; + } + } + private final class HeadsUpNotificationViewControllerImpl implements HeadsUpTouchHelper.HeadsUpNotificationViewController { @Override |