1
1
package com .github .mzule .activityrouter .router ;
2
2
3
- import java .util .ArrayList ;
4
- import java .util .Collections ;
5
- import java .util .Comparator ;
6
- import java .util .List ;
7
-
8
3
import android .app .Activity ;
9
4
import android .content .Context ;
10
5
import android .content .Intent ;
11
6
import android .net .Uri ;
7
+ import android .os .Bundle ;
8
+
9
+ import java .util .ArrayList ;
10
+ import java .util .Collections ;
11
+ import java .util .Comparator ;
12
+ import java .util .List ;
12
13
13
14
/**
14
15
* Created by CaoDongping on 4/6/16.
@@ -43,38 +44,70 @@ public int compare(Mapping lhs, Mapping rhs) {
43
44
}
44
45
45
46
public static boolean open (Context context , String url ) {
46
- return open (context , Uri .parse (url ));
47
+ return open (context , Uri .parse (url ), null , getGlobalCallback (context ));
48
+ }
49
+
50
+ public static boolean open (Context context , String url , Bundle bundle ) {
51
+ return open (context , Uri .parse (url ), bundle , getGlobalCallback (context ));
47
52
}
48
53
49
54
public static boolean open (Context context , String url , RouterCallback callback ) {
50
- return open (context , Uri .parse (url ), callback );
55
+ return open (context , Uri .parse (url ), null , callback );
56
+ }
57
+
58
+ public static boolean open (Context context , String url , Bundle bundle , RouterCallback callback ) {
59
+ return open (context , Uri .parse (url ), bundle , callback );
51
60
}
52
61
53
62
public static boolean open (Context context , Uri uri ) {
54
- return open (context , uri , getGlobalCallback (context ));
63
+ return open (context , uri , null , getGlobalCallback (context ));
64
+ }
65
+
66
+ public static boolean open (Context context , Uri uri , Bundle bundle ) {
67
+ return open (context , uri , bundle , getGlobalCallback (context ));
55
68
}
56
69
57
70
public static boolean open (Context context , Uri uri , RouterCallback callback ) {
58
- return open (context , uri , -1 , callback );
71
+ return open (context , uri , null , callback );
72
+ }
73
+
74
+ public static boolean open (Context context , Uri uri , Bundle bundle , RouterCallback callback ) {
75
+ return open (context , uri , bundle , -1 , callback );
59
76
}
60
77
61
- public static boolean openForResult (Activity activity , String url , int requestCode ) {
62
- return openForResult (activity , Uri .parse (url ), requestCode );
78
+ public static boolean openForResult (Context context , String url , int requestCode ) {
79
+ return openForResult (context , Uri .parse (url ), null , requestCode , getGlobalCallback ( context ) );
63
80
}
64
81
65
- public static boolean openForResult (Activity activity , String url , int requestCode , RouterCallback callback ) {
66
- return openForResult (activity , Uri .parse (url ), requestCode , callback );
82
+ public static boolean openForResult (Context context , String url , Bundle bundle , int requestCode ) {
83
+ return openForResult (context , Uri .parse (url ), bundle , requestCode , getGlobalCallback ( context ) );
67
84
}
68
85
69
- public static boolean openForResult (Activity activity , Uri uri , int requestCode ) {
70
- return openForResult (activity , uri , requestCode , getGlobalCallback ( activity ) );
86
+ public static boolean openForResult (Context context , String url , int requestCode , RouterCallback callback ) {
87
+ return openForResult (context , Uri . parse ( url ), null , requestCode , callback );
71
88
}
72
89
73
- public static boolean openForResult (Activity activity , Uri uri , int requestCode , RouterCallback callback ) {
74
- return open ( activity , uri , requestCode , callback );
90
+ public static boolean openForResult (Context context , String url , Bundle bundle , int requestCode , RouterCallback callback ) {
91
+ return openForResult ( context , Uri . parse ( url ), bundle , requestCode , callback );
75
92
}
76
93
77
- private static boolean open (Context context , Uri uri , int requestCode , RouterCallback callback ) {
94
+ public static boolean openForResult (Context context , Uri uri , int requestCode ) {
95
+ return openForResult (context , uri , null , requestCode , getGlobalCallback (context ));
96
+ }
97
+
98
+ public static boolean openForResult (Context context , Uri uri , Bundle bundle , int requestCode ) {
99
+ return openForResult (context , uri , bundle , requestCode , getGlobalCallback (context ));
100
+ }
101
+
102
+ public static boolean openForResult (Context context , Uri uri , int requestCode , RouterCallback callback ) {
103
+ return openForResult (context , uri , null , requestCode , callback );
104
+ }
105
+
106
+ public static boolean openForResult (Context context , Uri uri , Bundle bundle , int requestCode , RouterCallback callback ) {
107
+ return open (context , uri , bundle , requestCode , callback );
108
+ }
109
+
110
+ private static boolean open (Context context , Uri uri , Bundle bundle , int requestCode , RouterCallback callback ) {
78
111
boolean success = false ;
79
112
if (callback != null ) {
80
113
if (callback .beforeOpen (context , uri )) {
@@ -83,7 +116,7 @@ private static boolean open(Context context, Uri uri, int requestCode, RouterCal
83
116
}
84
117
85
118
try {
86
- success = doOpen (context , uri , requestCode );
119
+ success = doOpen (context , uri , bundle , requestCode );
87
120
} catch (Throwable e ) {
88
121
e .printStackTrace ();
89
122
if (callback != null ) {
@@ -119,7 +152,7 @@ public static Intent resolve(Context context, Uri uri) {
119
152
return null ;
120
153
}
121
154
122
- private static boolean doOpen (Context context , Uri uri , int requestCode ) {
155
+ private static boolean doOpen (Context context , Uri uri , Bundle bundle , int requestCode ) {
123
156
initIfNeed ();
124
157
Path path = Path .create (uri );
125
158
for (Mapping mapping : mappings ) {
@@ -131,6 +164,9 @@ private static boolean doOpen(Context context, Uri uri, int requestCode) {
131
164
Intent intent = new Intent (context , mapping .getActivity ());
132
165
intent .putExtras (mapping .parseExtras (uri ));
133
166
intent .putExtra (KEY_RAW_URL , uri .toString ());
167
+ if (bundle != null ) {
168
+ intent .putExtras (bundle );
169
+ }
134
170
if (!(context instanceof Activity )) {
135
171
intent .addFlags (Intent .FLAG_ACTIVITY_NEW_TASK );
136
172
}
0 commit comments