summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Josep del Río <joseprio@google.com> 2024-03-15 17:25:43 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-03-15 17:25:43 +0000
commitda3a32841cf9708cb91ef0754dec9805798be3d0 (patch)
tree01ad6b2799298420801ed6107cc6da0929eca6ad
parent7b9df00f54dcac6d9963d7565a6c3da037ea9b5b (diff)
parent9368ac271bad5e81ca55ef480f5dfe9f5fadce3d (diff)
Merge "Keep device awake when using keyboard" into main
-rw-r--r--packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java24
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