diff options
author | Dianne Hackborn <hackbod@google.com> | 2014-10-14 19:16:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-10-14 19:16:22 +0000 |
commit | 35de0e2872b64f78b596a850d6da2c483ba65bb5 (patch) | |
tree | f5a818affc82e0de6c0a683a0e4763c9840eb4cf | |
parent | a89ac60e25eb77b4c605fc1a40c96416b199bea5 (diff) | |
parent | f85e7af4d009862fc799c7232ec5cf9e2dc9fa34 (diff) | |
download | frameworks_base-35de0e2872b64f78b596a850d6da2c483ba65bb5.zip frameworks_base-35de0e2872b64f78b596a850d6da2c483ba65bb5.tar.gz frameworks_base-35de0e2872b64f78b596a850d6da2c483ba65bb5.tar.bz2 |
Merge "Fix issue #10034864: Define YouTube application as the preferred..." into lmp-dev
3 files changed, 25 insertions, 15 deletions
diff --git a/core/java/android/app/ApplicationErrorReport.java b/core/java/android/app/ApplicationErrorReport.java index 841bd16..49ab7c1 100644 --- a/core/java/android/app/ApplicationErrorReport.java +++ b/core/java/android/app/ApplicationErrorReport.java @@ -388,7 +388,7 @@ public class ApplicationErrorReport implements Parcelable { dest.writeInt(throwLineNumber); dest.writeString(stackTrace); int total = dest.dataPosition()-start; - if (total > 10*1024) { + if (total > 20*1024) { Slog.d("Error", "ERR: exClass=" + exceptionClassName); Slog.d("Error", "ERR: exMsg=" + exceptionMessage); Slog.d("Error", "ERR: file=" + throwFileName); diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 0b253f5..f02a815 100755 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -69,6 +69,7 @@ public final class ActiveServices { static final boolean DEBUG_DELAYED_SERVICE = ActivityManagerService.DEBUG_SERVICE; static final boolean DEBUG_DELAYED_STARTS = DEBUG_DELAYED_SERVICE; static final boolean DEBUG_MU = ActivityManagerService.DEBUG_MU; + static final boolean LOG_SERVICE_START_STOP = false; static final String TAG = ActivityManagerService.TAG; static final String TAG_MU = ActivityManagerService.TAG_MU; @@ -1447,8 +1448,10 @@ public final class ActiveServices { String nameTerm; int lastPeriod = r.shortName.lastIndexOf('.'); nameTerm = lastPeriod >= 0 ? r.shortName.substring(lastPeriod) : r.shortName; - EventLogTags.writeAmCreateService( - r.userId, System.identityHashCode(r), nameTerm, r.app.uid, r.app.pid); + if (LOG_SERVICE_START_STOP) { + EventLogTags.writeAmCreateService( + r.userId, System.identityHashCode(r), nameTerm, r.app.uid, r.app.pid); + } synchronized (r.stats.getBatteryStats()) { r.stats.startLaunchedLocked(); } @@ -1632,8 +1635,10 @@ public final class ActiveServices { } if (DEBUG_SERVICE) Slog.v(TAG, "Bringing down " + r + " " + r.intent); - EventLogTags.writeAmDestroyService( - r.userId, System.identityHashCode(r), (r.app != null) ? r.app.pid : -1); + if (LOG_SERVICE_START_STOP) { + EventLogTags.writeAmDestroyService( + r.userId, System.identityHashCode(r), (r.app != null) ? r.app.pid : -1); + } final ServiceMap smap = getServiceMap(r.userId); smap.mServicesByName.remove(r.name); diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 9473495..7de56c8 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -2371,7 +2371,8 @@ final class Settings { intent.getType(), flags, 0); if (PackageManagerService.DEBUG_PREFERRED) Log.d(TAG, "Queried " + intent + " results: " + ri); - int match = 0; + int systemMatch = 0; + int thirdPartyMatch = 0; if (ri != null && ri.size() > 1) { boolean haveAct = false; ComponentName haveNonSys = null; @@ -2380,13 +2381,10 @@ final class Settings { ActivityInfo ai = ri.get(i).activityInfo; set[i] = new ComponentName(ai.packageName, ai.name); if ((ai.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) == 0) { - if (ri.get(i).match >= match) { - // If any of the matches are not system apps, then - // there is a third party app that is now an option... - // so don't set a default since we don't want to hide it. - // Only do this if the match of this one is at least as good - // as what we have found as the built-in app; if it isn't - // as good, the user won't want it anyway, right? + if (ri.get(i).match >= thirdPartyMatch) { + // Keep track of the best match we find of all third + // party apps, for use later to determine if we actually + // want to set a preferred app for this intent. if (PackageManagerService.DEBUG_PREFERRED) Log.d(TAG, "Result " + ai.packageName + "/" + ai.name + ": non-system!"); haveNonSys = set[i]; @@ -2397,12 +2395,19 @@ final class Settings { if (PackageManagerService.DEBUG_PREFERRED) Log.d(TAG, "Result " + ai.packageName + "/" + ai.name + ": default!"); haveAct = true; - match = ri.get(i).match; + systemMatch = ri.get(i).match; } else { if (PackageManagerService.DEBUG_PREFERRED) Log.d(TAG, "Result " + ai.packageName + "/" + ai.name + ": skipped"); } } + if (haveNonSys != null && thirdPartyMatch < systemMatch) { + // If we have a matching third party app, but its match is not as + // good as the built-in system app, then we don't want to actually + // consider it a match because presumably the built-in app is still + // the thing we want users to see by default. + haveNonSys = null; + } if (haveAct && haveNonSys == null) { IntentFilter filter = new IntentFilter(); if (intent.getAction() != null) { @@ -2435,7 +2440,7 @@ final class Settings { Slog.w(TAG, "Malformed mimetype " + intent.getType() + " for " + cn); } } - PreferredActivity pa = new PreferredActivity(filter, match, set, cn, true); + PreferredActivity pa = new PreferredActivity(filter, systemMatch, set, cn, true); editPreferredActivitiesLPw(userId).addFilter(pa); } else if (haveNonSys == null) { StringBuilder sb = new StringBuilder(); |