summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/Intent.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/content/Intent.java')
-rw-r--r--core/java/android/content/Intent.java23
1 files changed, 14 insertions, 9 deletions
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.