Skip to content

Commit 87c1129

Browse files
committed
完善router功能
1 parent 2de31f8 commit 87c1129

File tree

4 files changed

+37
-30
lines changed

4 files changed

+37
-30
lines changed

app/src/main/java/com/flyjingfish/modulecommunication/SchemeFilterActivity.kt

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,24 @@ import java.util.Arrays
1717
class SchemeFilterActivity : ComponentActivity() {
1818
override fun onCreate(savedInstanceState: Bundle?) {
1919
super.onCreate(savedInstanceState)
20-
val uri = intent.data
21-
// val userHelper = ImplementClassUtils.getSingleInstance<UserHelper>(UserHelper::class)
22-
// val user = userHelper?.getUser()
23-
// val gson = Gson()
24-
// val intArray = intArrayOf(1,2,3)
25-
// val testArray = arrayOf(TestBean(1),TestBean(2))
26-
// val idArray = ArrayList<String>(listOf("3","3"))
27-
// val userTestBean2List = ArrayList<TestBean2>(listOf(TestBean2(11), TestBean2(22)))
28-
//// Log.e("SchemeFilterActivity",gson.toJson(intArray))
29-
// val uriTest = "lightrouter://test.flyjingfish.com/user/DetailActivity?age=10&name=" +
30-
// "hahahaha&aChar=a&user=${gson.toJson(user)}&userIds=${gson.toJson(intArray)}" +
31-
// "&userList=${gson.toJson(testArray)}&userIdList=${gson.toJson(idArray)}&userTestBean2List=${gson.toJson(userTestBean2List)}"
32-
// Log.e("SchemeFilterActivity",uriTest)
33-
//
34-
// val uri = uriTest.toUri()
20+
// val uri = intent.data
21+
val userHelper = ImplementClassUtils.getSingleInstance<UserHelper>(UserHelper::class)
22+
val user = userHelper?.getUser()
23+
val gson = Gson()
24+
val intArray = intArrayOf(1,2,3)
25+
val stringArray = arrayOf("4","5")
26+
val testArray = arrayOf(TestBean(1),TestBean(2))
27+
val idArray = ArrayList<String>(listOf("3","3"))
28+
val userTestBean2List = ArrayList<TestBean2>(listOf(TestBean2(11), TestBean2(22)))
29+
val testBean2Array = arrayOf(TestBean2(33),TestBean2(44))
30+
// Log.e("SchemeFilterActivity",gson.toJson(intArray))
31+
val uriTest = "lightrouter://test.flyjingfish.com/user/DetailActivity?age=10&name=" +
32+
"hahahaha&aChar=a&user=${gson.toJson(user)}&userIds=${gson.toJson(intArray)}&stringArray=${gson.toJson(stringArray)}" +
33+
"&userList=${gson.toJson(testArray)}&userIdList=${gson.toJson(idArray)}&userTestBean2List=${gson.toJson(userTestBean2List)}" +
34+
"&testBean2Array=${gson.toJson(testBean2Array)}"
35+
Log.e("SchemeFilterActivity",uriTest)
36+
37+
val uri = uriTest.toUri()
3538
uri?.let {
3639
ModuleRoute.builder(it)?.go()
3740
finish()

lib-user/src/main/java/com/flyjingfish/user/DetailActivity.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ public class DetailActivity extends AppCompatActivity {
3434
private ArrayList<String> userIdList;
3535
@RouteParams(name = "userTestBean2List")
3636
private ArrayList<TestBean2> userTestBean2List;
37+
@RouteParams(name = "testBean2Array")
38+
private TestBean2[] testBean2Array;
39+
@RouteParams(name = "stringArray")
40+
private String[] stringArray;
3741

3842
@Override
3943
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -48,12 +52,23 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4852
userList = (TestBean[]) getIntent().getSerializableExtra("userList");
4953
userIdList = getIntent().getStringArrayListExtra("userIdList");
5054
userTestBean2List = getIntent().getParcelableArrayListExtra("userTestBean2List");
55+
Parcelable[] bean2Array = getIntent().getParcelableArrayExtra("testBean2Array");
56+
if (bean2Array != null){
57+
testBean2Array = new TestBean2[bean2Array.length];
58+
for (int i = 0; i < bean2Array.length; i++) {
59+
testBean2Array[i] = (TestBean2) bean2Array[i];
60+
}
61+
}
62+
63+
stringArray = getIntent().getStringArrayExtra("stringArray");
5164

5265
Gson gson = new Gson();
5366

67+
5468
String logText = "age="+age+",name="+name+",aChar="+aChar+",user="+user
5569
+",userIds="+ gson.toJson(userIds)+",userList="+gson.toJson(userList)+",userIdList="
56-
+userIdList+",userTestBean2List="+userTestBean2List;
70+
+userIdList+",userTestBean2List="+userTestBean2List+",testBean2Array="+gson.toJson(testBean2Array)
71+
+",stringArray="+gson.toJson(stringArray);
5772
binding.tvText.setText(logText);
5873
Log.e("DetailActivity",logText);
5974

module-communication-route/src/main/java/com/flyjingfish/module_communication_route/ModuleRoute.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,9 +249,6 @@ object ModuleRoute {
249249
fun putValue(paramName: String, paramsValue: Array<String>?): RouteBuilder {
250250
return autoPutValue(paramName, paramsValue)
251251
}
252-
fun putValue(paramName: String, paramsValue: Array<out Serializable>?): RouteBuilder {
253-
return autoPutValue(paramName, paramsValue)
254-
}
255252
fun putValue(paramName: String, paramsValue: Bundle?): RouteBuilder {
256253
return autoPutValue(paramName, paramsValue)
257254
}

module-communication-route/src/main/java/com/flyjingfish/module_communication_route/utils/Utils.kt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,6 @@ internal object Utils {
146146
val data = gson.fromJson<BooleanArray>(strValue, paramsInfo.clazz.java)
147147
builder.putValue(paramsInfo.name, data)
148148
}
149-
Array<Parcelable>::class -> {
150-
val gson = Gson()
151-
val data = gson.fromJson<Array<Parcelable>>(strValue, paramsInfo.clazz.java)
152-
builder.putValue(paramsInfo.name, data)
153-
}
154149
Array<CharSequence>::class -> {
155150
val gson = Gson()
156151
val data = gson.fromJson<Array<CharSequence>>(strValue, paramsInfo.clazz.java)
@@ -161,11 +156,6 @@ internal object Utils {
161156
val data = gson.fromJson<Array<String>>(strValue, paramsInfo.clazz.java)
162157
builder.putValue(paramsInfo.name, data)
163158
}
164-
Array<out Serializable>::class -> {
165-
val gson = Gson()
166-
val data = gson.fromJson<Array<Serializable>>(strValue, paramsInfo.clazz.java)
167-
builder.putValue(paramsInfo.name, data)
168-
}
169159
ArrayList::class -> {
170160
val gson = Gson()
171161
val listType: Type = object : TypeToken<ArrayList<*>>() {}.type
@@ -194,7 +184,9 @@ internal object Utils {
194184
else -> {
195185
val gson = Gson()
196186
val data = gson.fromJson<Any>(strValue, paramsInfo.clazz.java)
197-
if (data is Serializable){
187+
if (data is Array<*> && data.isArrayOf<Parcelable>()){
188+
builder.putValue(paramsInfo.name, data as Array<out Parcelable>)
189+
}else if (data is Serializable){
198190
builder.putValue(paramsInfo.name, data)
199191
}
200192
}

0 commit comments

Comments
 (0)