OSDN Git Service

Don't query ChooserTargetService apps that haven't been used recently
authorAdam Powell <adamp@google.com>
Wed, 21 Oct 2015 20:21:28 +0000 (13:21 -0700)
committerAdam Powell <adamp@google.com>
Wed, 21 Oct 2015 20:21:28 +0000 (13:21 -0700)
Resolver/ChooserActivity sort apps based on usage factors for the last
two weeks. A score of zero means no usage data within that timeframe.
For system health and UI relevance, don't bother even waking up apps
that have zero scores.

Bug 25126166

Change-Id: Iae34a9667eb1985d6fe986670f3fb3f1177576da

core/java/com/android/internal/app/ChooserActivity.java

index c6b340b..7699673 100644 (file)
@@ -373,6 +373,11 @@ public class ChooserActivity extends ResolverActivity {
         int targetsToQuery = 0;
         for (int i = 0, N = adapter.getDisplayResolveInfoCount(); i < N; i++) {
             final DisplayResolveInfo dri = adapter.getDisplayResolveInfo(i);
+            if (adapter.getScore(dri) == 0) {
+                // A score of 0 means the app hasn't been used in some time;
+                // don't query it as it's not likely to be relevant.
+                continue;
+            }
             final ActivityInfo ai = dri.getResolveInfo().activityInfo;
             final Bundle md = ai.metaData;
             final String serviceName = md != null ? convertServiceName(ai.packageName,