summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2014-12-09 20:22:08 -0800
committerDianne Hackborn <hackbod@google.com>2014-12-09 20:22:08 -0800
commit80b1c5608ec9cbb43c696d772eb69a2e220ef819 (patch)
tree571a80942418e49d832b000644c6d43ea2909683 /core/java/android
parent8b33cf4d34a9ea75e1121ee2f1d829b21f3cb5d6 (diff)
downloadframeworks_base-80b1c5608ec9cbb43c696d772eb69a2e220ef819.zip
frameworks_base-80b1c5608ec9cbb43c696d772eb69a2e220ef819.tar.gz
frameworks_base-80b1c5608ec9cbb43c696d772eb69a2e220ef819.tar.bz2
Fix issue #18665625 CTS:android.app.cts.InstrumentationTest#...
...testCallActivityOnNewIntent test fails with LMP-MR1 Release. Check for null. Also fix some small issues with converting intents to/from intents. Change-Id: Ic391cc57552635935af9a271b2d09353257f6d14
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/Instrumentation.java6
-rw-r--r--core/java/android/content/Intent.java23
2 files changed, 18 insertions, 11 deletions
diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java
index 3c30404..ad2b61f 100644
--- a/core/java/android/app/Instrumentation.java
+++ b/core/java/android/app/Instrumentation.java
@@ -1217,8 +1217,10 @@ public class Instrumentation {
public void callActivityOnNewIntent(Activity activity, ReferrerIntent intent) {
final String oldReferrer = activity.mReferrer;
try {
- activity.mReferrer = intent.mReferrer;
- callActivityOnNewIntent(activity, new Intent(intent));
+ if (intent != null) {
+ activity.mReferrer = intent.mReferrer;
+ }
+ callActivityOnNewIntent(activity, intent != null ? new Intent(intent) : null);
} finally {
activity.mReferrer = oldReferrer;
}
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index de7fbab..5ebbf16 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -4391,7 +4391,7 @@ public class Intent implements Parcelable, Cloneable {
// scheme
else if (uri.startsWith("scheme=", i)) {
if (inSelector) {
- intent.mData = Uri.parse(value);
+ intent.mData = Uri.parse(value + ":");
} else {
scheme = value;
}
@@ -4461,14 +4461,19 @@ public class Intent implements Parcelable, Cloneable {
String authority = null;
intent.mPackage = data.substring(14, end);
int newEnd;
- if (end < data.length() && (newEnd=data.indexOf('/', end+1)) >= 0) {
- // Found a scheme, remember it.
- scheme = data.substring(end+1, newEnd);
- end = newEnd;
- if (end < data.length() && (newEnd=data.indexOf('/', end+1)) >= 0) {
- // Found a authority, remember it.
- authority = data.substring(end+1, newEnd);
+ if ((end+1) < data.length()) {
+ if ((newEnd=data.indexOf('/', end+1)) >= 0) {
+ // Found a scheme, remember it.
+ scheme = data.substring(end+1, newEnd);
end = newEnd;
+ if (end < data.length() && (newEnd=data.indexOf('/', end+1)) >= 0) {
+ // Found a authority, remember it.
+ authority = data.substring(end+1, newEnd);
+ end = newEnd;
+ }
+ } else {
+ // All we have is a scheme.
+ scheme = data.substring(end+1);
}
}
if (scheme == null) {
@@ -7355,7 +7360,7 @@ public class Intent implements Parcelable, Cloneable {
toUriInner(frag, scheme, defAction, defPackage, flags);
if (mSelector != null) {
- uri.append("SEL;");
+ frag.append("SEL;");
// Note that for now we are not going to try to handle the
// data part; not clear how to represent this as a URI, and
// not much utility in it.