summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohui Chen <xiaohuic@google.com>2017-02-14 14:55:07 -0800
committergitbuildkicker <android-build@google.com>2017-02-16 14:42:26 -0800
commitc10c3de4dfc50bb1c3397abb0dc2d94bba8d3c00 (patch)
treee7eefdd3de1a0d755e23403d15dffb6e7ffdbf92
parent52d14277d9903760f9a5f55351b61868df857859 (diff)
downloadbase-c10c3de4dfc50bb1c3397abb0dc2d94bba8d3c00.tar.gz
ReolverActivity: try auto launching single choice
We already does this on start. Now we also do the same when the list of options changes. Test: locally on device Bug: 34470067 Change-Id: Ib184d67b532c5afd584fb9cd52daac69a7c50d0a (cherry picked from commit 393c8018a1123f869698269e678876e03a5160ba)
-rw-r--r--core/java/com/android/internal/app/ResolverActivity.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
index b746acb7cf09..0010073a2e91 100644
--- a/core/java/com/android/internal/app/ResolverActivity.java
+++ b/core/java/com/android/internal/app/ResolverActivity.java
@@ -124,6 +124,13 @@ public class ResolverActivity extends Activity {
bindProfileView();
}
}
+
+ @Override
+ public boolean onPackageChanged(String packageName, int uid, String[] components) {
+ // We care about all package changes, not just the whole package itself which is
+ // default behavior.
+ return true;
+ }
};
/**
@@ -1502,7 +1509,15 @@ public class ResolverActivity extends Activity {
}
public void onListRebuilt() {
- // This space for rent
+ int count = getUnfilteredCount();
+ if (count == 1 && getOtherProfile() == null) {
+ // Only one target, so we're a candidate to auto-launch!
+ final TargetInfo target = targetInfoForPosition(0, false);
+ if (shouldAutoLaunchSingleChoice(target)) {
+ safelyStartActivity(target);
+ finish();
+ }
+ }
}
public boolean shouldGetResolvedFilter() {