summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2013-09-24 14:51:06 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-09-24 14:51:06 -0700
commit23ff9f6128b5d28a99eca87bf03b221145951988 (patch)
tree833a4899b5d5c7c86d7c0fa3c9ceba3bb63e3088 /services
parente3b71bc910d47bec2d0c805c0bc09c089602e6c1 (diff)
parent9b7d148466b1aedb24187294e0c59718afb104a0 (diff)
downloadframeworks_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')
-rw-r--r--services/java/com/android/server/IntentResolver.java35
-rw-r--r--services/java/com/android/server/PreferredComponent.java9
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java3
-rwxr-xr-xservices/java/com/android/server/pm/PackageManagerService.java8
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;