summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSujith Ramakrishnan <sujithrk@google.com>2017-06-08 18:18:12 -0700
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-06-30 04:06:41 +0000
commit406d916c591e469a106c87e81c0931e15e88885c (patch)
treeefd03c23d831f73f6d954e02a0df0bca01647119
parent9bfcbe30ca407fe47c04ae1e0d9e0be272756adf (diff)
downloadbase-406d916c591e469a106c87e81c0931e15e88885c.tar.gz
Prevent unwanted keypress actions during TV Setup.
- Prevent Search or long-press Home actions while TV setup is being completed based on flag TV_USER_SETUP_COMPLETE. Test: Manual - Reset device, ran Setup, tried keys. Test: Manual - Rebooted device after Setup, tried keys. Bug: 62419382 Change-Id: Ic8fb0f10943ab7c39a7d9857f62e6ab292231b40 (cherry picked from commit 0390fff82c37c705670a6c8937c11b52e2af4cb6)
-rw-r--r--core/java/com/android/internal/policy/PhoneWindow.java17
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java11
2 files changed, 27 insertions, 1 deletions
diff --git a/core/java/com/android/internal/policy/PhoneWindow.java b/core/java/com/android/internal/policy/PhoneWindow.java
index 8fe9100d2011..544afd993b37 100644
--- a/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/core/java/com/android/internal/policy/PhoneWindow.java
@@ -3103,12 +3103,29 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
}
/**
+ * Check if Setup or Post-Setup update is completed on TV
+ * @return true if completed
+ */
+ private boolean isTvUserSetupComplete() {
+ boolean isTvSetupComplete = Settings.Secure.getInt(getContext().getContentResolver(),
+ Settings.Secure.USER_SETUP_COMPLETE, 0) != 0;
+ isTvSetupComplete &= Settings.Secure.getInt(getContext().getContentResolver(),
+ Settings.Secure.TV_USER_SETUP_COMPLETE, 0) != 0;
+ return isTvSetupComplete;
+ }
+
+ /**
* Helper method for adding launch-search to most applications. Opens the
* search window using default settings.
*
* @return true if search window opened
*/
private boolean launchDefaultSearch(KeyEvent event) {
+ if (getContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)
+ && !isTvUserSetupComplete()) {
+ // If we are in Setup or Post-Setup update mode on TV, consume the search key
+ return false;
+ }
boolean result;
final Callback cb = getCallback();
if (cb == null || isDestroyed()) {
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 8112f9998c58..4477e5a0f173 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -1689,8 +1689,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
boolean isUserSetupComplete() {
- return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ boolean isSetupComplete = Settings.Secure.getIntForUser(mContext.getContentResolver(),
Settings.Secure.USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) != 0;
+ if (mHasFeatureLeanback) {
+ isSetupComplete &= isTvUserSetupComplete();
+ }
+ return isSetupComplete;
+ }
+
+ private boolean isTvUserSetupComplete() {
+ return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.TV_USER_SETUP_COMPLETE, 0, UserHandle.USER_CURRENT) != 0;
}
private void handleShortPressOnHome() {