diff options
author | Dianne Hackborn <hackbod@google.com> | 2013-09-24 14:51:06 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-09-24 14:51:06 -0700 |
commit | 23ff9f6128b5d28a99eca87bf03b221145951988 (patch) | |
tree | 833a4899b5d5c7c86d7c0fa3c9ceba3bb63e3088 /services | |
parent | e3b71bc910d47bec2d0c805c0bc09c089602e6c1 (diff) | |
parent | 9b7d148466b1aedb24187294e0c59718afb104a0 (diff) | |
download | frameworks_base-23ff9f6128b5d28a99eca87bf03b221145951988.zip frameworks_base-23ff9f6128b5d28a99eca87bf03b221145951988.tar.gz frameworks_base-23ff9f6128b5d28a99eca87bf03b221145951988.tar.bz2 |
am 9b7d1484: am 5f86b90b: Merge "Fix issue #10848916: "Always" button is not working." into klp-dev
* commit '9b7d148466b1aedb24187294e0c59718afb104a0':
Fix issue #10848916: "Always" button is not working.
Diffstat (limited to 'services')
4 files changed, 39 insertions, 16 deletions
diff --git a/services/java/com/android/server/IntentResolver.java b/services/java/com/android/server/IntentResolver.java index 54aa50c..64b0487 100644 --- a/services/java/com/android/server/IntentResolver.java +++ b/services/java/com/android/server/IntentResolver.java @@ -38,6 +38,7 @@ import android.util.Printer; import android.content.Intent; import android.content.IntentFilter; +import com.android.internal.util.FastPrintWriter; /** * {@hide} @@ -229,8 +230,8 @@ public abstract class IntentResolver<F extends IntentFilter, R extends Object> { ((intent.getFlags() & Intent.FLAG_DEBUG_LOG_RESOLUTION) != 0); if (debug) Slog.v( - TAG, "Resolving type " + resolvedType + " scheme " + scheme - + " of intent " + intent); + TAG, "Resolving type=" + resolvedType + " scheme=" + scheme + + " defaultOnly=" + defaultOnly + " userId=" + userId + " of " + intent); F[] firstTypeCut = null; F[] secondTypeCut = null; @@ -312,8 +313,8 @@ public abstract class IntentResolver<F extends IntentFilter, R extends Object> { if (debug) { Slog.v(TAG, "Final result list:"); - for (R r : finalList) { - Slog.v(TAG, " " + r); + for (int i=0; i<finalList.size(); i++) { + Slog.v(TAG, " " + finalList.get(i)); } } return finalList; @@ -521,6 +522,16 @@ public abstract class IntentResolver<F extends IntentFilter, R extends Object> { final boolean excludingStopped = intent.isExcludingStopped(); + final Printer logPrinter; + final PrintWriter logPrintWriter; + if (debug) { + logPrinter = new LogPrinter(Log.VERBOSE, TAG, Log.LOG_ID_SYSTEM); + logPrintWriter = new FastPrintWriter(logPrinter); + } else { + logPrinter = null; + logPrintWriter = null; + } + final int N = src != null ? src.length : 0; boolean hasNonDefaults = false; int i; @@ -555,11 +566,17 @@ public abstract class IntentResolver<F extends IntentFilter, R extends Object> { match = filter.match(action, resolvedType, scheme, data, categories, TAG); if (match >= 0) { if (debug) Slog.v(TAG, " Filter matched! match=0x" + - Integer.toHexString(match)); + Integer.toHexString(match) + " hasDefault=" + + filter.hasCategory(Intent.CATEGORY_DEFAULT)); if (!defaultOnly || filter.hasCategory(Intent.CATEGORY_DEFAULT)) { final R oneResult = newResult(filter, match, userId); if (oneResult != null) { dest.add(oneResult); + if (debug) { + dumpFilter(logPrintWriter, " ", filter); + logPrintWriter.flush(); + filter.dump(logPrinter, " "); + } } } else { hasNonDefaults = true; @@ -579,8 +596,12 @@ public abstract class IntentResolver<F extends IntentFilter, R extends Object> { } } - if (dest.size() == 0 && hasNonDefaults) { - Slog.w(TAG, "resolveIntent failed: found match, but none with Intent.CATEGORY_DEFAULT"); + if (hasNonDefaults) { + if (dest.size() == 0) { + Slog.w(TAG, "resolveIntent failed: found match, but none with CATEGORY_DEFAULT"); + } else if (dest.size() > 1) { + Slog.w(TAG, "resolveIntent: multiple matches, only some with CATEGORY_DEFAULT"); + } } } diff --git a/services/java/com/android/server/PreferredComponent.java b/services/java/com/android/server/PreferredComponent.java index 134b198..a7af252 100644 --- a/services/java/com/android/server/PreferredComponent.java +++ b/services/java/com/android/server/PreferredComponent.java @@ -80,7 +80,7 @@ public class PreferredComponent { } myPackages[i] = cn.getPackageName().intern(); myClasses[i] = cn.getClassName().intern(); - myComponents[i] = cn.flattenToShortString().intern(); + myComponents[i] = cn.flattenToShortString(); } mSetPackages = myPackages; mSetClasses = myClasses; @@ -219,9 +219,10 @@ public class PreferredComponent { out.print(prefix); out.print( Integer.toHexString(System.identityHashCode(ident))); out.print(' '); - out.print(mComponent.flattenToShortString()); - out.print(" match=0x"); - out.println( Integer.toHexString(mMatch)); + out.println(mShortComponent); + out.print(prefix); out.print(" mMatch=0x"); + out.print(Integer.toHexString(mMatch)); + out.print(" mAlways="); out.println(mAlways); if (mSetComponents != null) { out.print(prefix); out.println(" Selected from:"); for (int i=0; i<mSetComponents.length; i++) { diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index 26d67d7..5b2c602 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -2355,7 +2355,8 @@ public final class ActivityManagerService extends ActivityManagerNative } killUnneededProcessLocked(proc, Long.toString(proc.lastCachedPss) + "k from cached"); - } else if (proc != null && !keepIfLarge && mLastMemoryLevel > ProcessStats.ADJ_MEM_FACTOR_NORMAL + } else if (proc != null && !keepIfLarge + && mLastMemoryLevel > ProcessStats.ADJ_MEM_FACTOR_NORMAL && proc.setProcState >= ActivityManager.PROCESS_STATE_CACHED_EMPTY) { if (DEBUG_PSS) Slog.d(TAG, "May not keep " + proc + ": pss=" + proc.lastCachedPss); if (proc.lastCachedPss >= mProcessList.getCachedRestoreThreshold()) { diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index d154ab6..8becbd5 100755 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -5713,7 +5713,7 @@ public class PackageManagerService extends IPackageManager.Stub { out.print(prefix); out.print( Integer.toHexString(System.identityHashCode(filter.activity))); out.print(' '); - out.print(filter.activity.getComponentShortName()); + filter.activity.printComponentShortName(out); out.print(" filter "); out.println(Integer.toHexString(System.identityHashCode(filter))); } @@ -5912,7 +5912,7 @@ public class PackageManagerService extends IPackageManager.Stub { out.print(prefix); out.print( Integer.toHexString(System.identityHashCode(filter.service))); out.print(' '); - out.print(filter.service.getComponentShortName()); + filter.service.printComponentShortName(out); out.print(" filter "); out.println(Integer.toHexString(System.identityHashCode(filter))); } @@ -10423,7 +10423,7 @@ public class PackageManagerService extends IPackageManager.Stub { dumpState.getTitlePrinted() ? "\nPreferred Activities User " + user + ":" : "Preferred Activities User " + user + ":", " ", - packageName, dumpState.isOptionEnabled(DumpState.OPTION_SHOW_FILTERS))) { + packageName, true)) { dumpState.setTitlePrinted(true); } } @@ -10467,7 +10467,7 @@ public class PackageManagerService extends IPackageManager.Stub { pw.println("Registered ContentProviders:"); printedSomething = true; } - pw.print(" "); pw.print(p.getComponentShortName()); pw.println(":"); + pw.print(" "); p.printComponentShortName(pw); pw.println(":"); pw.print(" "); pw.println(p.toString()); } printedSomething = false; |