From a4b5e9688622bcaa18e12cc43e3acf59577bbdab Mon Sep 17 00:00:00 2001 From: Robert Horvath Date: Fri, 20 Mar 2020 17:19:06 +0100 Subject: [PATCH] PackageInstaller: Initial focus in non-touch mode on Cancel The initial focus for AlertDialogs in non-touch mode is the positive button. However, in the PackageInstaller confirmation dialog, the positive button is initially disabled to prevent tap jacking. To provide users in non-touch mode with a sensible default focus, put initial focus in non-touch mode on the cancel button. Bug: 152026824 Test: On Android TV, with a remote: 1. Install file explorer app 2. Push another apk to device 3. Use file explorer to start apk installation 4. Verify "Cancel" button is focused Test: Doing the above with touch does not lead to any visible focus Change-Id: Iafec25df23c45171c450f5f42cc5da9bf0087ae4 --- .../android/packageinstaller/PackageInstallerActivity.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java index a2fa461300767..a95677d0202f3 100644 --- a/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/packages/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -406,6 +406,10 @@ public class PackageInstallerActivity extends AlertActivity { mOk = mAlert.getButton(DialogInterface.BUTTON_POSITIVE); mOk.setEnabled(false); + + if (!mOk.isInTouchMode()) { + mAlert.getButton(DialogInterface.BUTTON_NEGATIVE).requestFocus(); + } } /**