Skip to content

Commit 7fc75ae

Browse files
committed
update readme
1 parent 9ff8062 commit 7fc75ae

6 files changed

Lines changed: 64 additions & 50 deletions

File tree

README.md

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ English | [中文](https://github.com/TangXiaoLv/Android-Router/blob/master/READ
55

66
|lib|androidrouter|androidrouter-compiler|androidrouter-annotations|
77
|---|---|---|---|
8-
|version|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter/images/download.svg?version=2.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter/2.0.0/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-compiler/images/download.svg?version=1.0.1) ](https://bintray.com/tangxiaolv/maven/androidrouter-compiler/1.0.1/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-annotations/images/download.svg?version=1.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter-annotations/1.0.0/link)|
8+
|version|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter/images/download.svg?version=2.0.1) ](https://bintray.com/tangxiaolv/maven/androidrouter/2.0.1/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-compiler/images/download.svg?version=1.0.1) ](https://bintray.com/tangxiaolv/maven/androidrouter-compiler/1.0.1/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-annotations/images/download.svg?version=1.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter-annotations/1.0.0/link)|
99

1010
High-performance, flexible, easy-to-use lightweight Android component-based framework, Used to solve the interdependence of complex projects, A single module is conducive to independent development and maintenance.
1111

1212
Update Log
1313
---
1414
```
15+
2.0.1: Support auto cast on return value, fix array cast exception.
1516
2.0.0: Resolve callback support generic, Support reactive programming, Remove resolve.call 'type' param.
1617
-----2.0+ new feature dont support 1.0+
1718
1.0.7: Fix system params passed exception.
@@ -84,29 +85,11 @@ Note:Android-Router Protocol Format: scheme://host/path?params=json
8485

8586
**Step 1:Setup router module**
8687
```java
87-
/**
88-
* Supported parameter types
89-
*
90-
* float
91-
* int
92-
* long
93-
* double
94-
* boolean
95-
* String
96-
*
97-
* Array
98-
* Varargs
99-
* List<?>
100-
* Map<String,Object>
101-
* custom object
102-
*
103-
* default parameter: Application context, String scheme, VPromise promise
104-
*/
10588
@RouterModule(scheme = "android", host = "main")
10689
public class MainModule implements IRouter {
10790

108-
10991
//Route => android://main
92+
//default parameter: Application context, String scheme, VPromise promise
11093
@RouterPath
11194
public void def(Application context, String scheme, VPromise promise) {
11295
promise.resolve("","from scheme: [" + scheme + "] " + "path: []");
@@ -191,6 +174,30 @@ public class RemoteModule implements IRouter {
191174
}
192175
```
193176

177+
**Supported parameter**
178+
179+
|from|-|to|desc|
180+
|:---|:---:|:---|:---|
181+
|context||context|`version 1.0.0+` Type: Application [default]|
182+
|scheme||scheme|`version 1.0.0+` Type: String(Router scheme) [default]|
183+
|promise||promise|`version 1.0.0+` Type: VPromise (Used return) [default]|
184+
|float||float|`version 1.0.0+`|
185+
|int||int|`version 1.0.0+`|
186+
|long||long|`version 1.0.0+`|
187+
|double||double|`version 1.0.0+`|
188+
|boolean||boolean|`version 1.0.0+`|
189+
|String||String|`version 1.0.0+`|
190+
|Object A||Object A|`version 1.0.0+` From and To must implement IRouter and keep empty constructor|
191+
|Object A||Object B|`version 1.0.0+` From and To must implement IRouter and keep empty constructor|
192+
|A[]||A[]|`version 2.0.1+`|
193+
|A[]||B[]|`version 2.0.1+`|
194+
|A[]||Varargs A|`version 2.0.1+` [1,2,3] → add(int... i)|
195+
|List< A>||List< A>|`version 1.0.0+` Receiver must be defined as List<?> interface|
196+
|List< A>||List< B>|`version 1.0.0+`|
197+
|Json Object||Object|`version 1.0.0+`|
198+
|Json Object||Map< String,String>|Coming Soon|
199+
|Json Array||List< ?>|`version 1.0.0+`|
200+
194201
**Step 2:Invoke**
195202
```
196203
AndroidRouter

README_CN.md

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55

66
|lib|androidrouter|androidrouter-compiler|androidrouter-annotations|
77
|---|---|---|---|
8-
|version|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter/images/download.svg?version=2.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter/2.0.0/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-compiler/images/download.svg?version=1.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter-compiler/1.0.0/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-annotations/images/download.svg?version=1.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter-annotations/1.0.0/link)|
8+
|version|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter/images/download.svg?version=2.0.1) ](https://bintray.com/tangxiaolv/maven/androidrouter/2.0.1/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-compiler/images/download.svg?version=1.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter-compiler/1.0.0/link)|[ ![Download](https://api.bintray.com/packages/tangxiaolv/maven/androidrouter-annotations/images/download.svg?version=1.0.0) ](https://bintray.com/tangxiaolv/maven/androidrouter-annotations/1.0.0/link)|
99

1010
高性能,灵活,简单易用的轻量级Android组件化协议框架,用来解决复杂工程的互相依赖,解耦出的单个模块有利于独立开发和维护。
1111

1212
Update Log
1313
---
1414
```
15-
2.0.0: 支持泛型返回值,支持响应式处理回调函数。
15+
2.0.1: 支持返回值对象不一致时自动转换,修复数组类型解析异常。
16+
2.0.0: 支持泛型返回值,支持响应式处理回调函数。
1617
-----2.0+新特性不支持1.0+
1718
1.0.7: 修复系统类参数传递异常。
1819
1.0.6: 修复一些已知问题。
@@ -84,28 +85,11 @@ dependencies {
8485

8586
**第一步:给自定义Module配置注解协议**
8687
```java
87-
/**
88-
* 支持的参数类型
89-
*
90-
* float
91-
* int
92-
* long
93-
* double
94-
* boolean
95-
* String
96-
*
97-
* Array
98-
* Varargs
99-
* List<?>
100-
* Map<String,Object>
101-
* custom object
102-
*
103-
* 默认传递Application context, String scheme, VPromise promise
104-
*/
10588
@RouterModule(scheme = "android", host = "main")
10689
public class MainModule implements IRouter {
10790

10891
//Route => android://main
92+
//默认传递Application context, String scheme, VPromise promise
10993
@RouterPath
11094
public void def(Application context, String scheme, VPromise promise) {
11195
promise.resolve("","from scheme: [" + scheme + "] " + "path: []");
@@ -190,6 +174,30 @@ public class RemoteModule implements IRouter {
190174
}
191175
```
192176

177+
**Supported parameter**
178+
179+
|from|-|to|desc|
180+
|:---|:---:|:---|:---|
181+
|context||context|`version 1.0.0+` 类型: Application [default]|
182+
|scheme||scheme|`version 1.0.0+` 类型: String(Router scheme) [default]|
183+
|promise||promise|`version 1.0.0+` 类型: VPromise (Used return) [default]|
184+
|float||float|`version 1.0.0+`|
185+
|int||int|`version 1.0.0+`|
186+
|long||long|`version 1.0.0+`|
187+
|double||double|`version 1.0.0+`|
188+
|boolean||boolean|`version 1.0.0+`|
189+
|String||String|`version 1.0.0+`|
190+
|Object A||Object A|`version 1.0.0+` From和To必须实现IRouter并且需要有空参数constructor|
191+
|Object A||Object B|`version 1.0.0+` From和To必须实现IRouter并且需要有空参数constructor|
192+
|A[]||A[]|`version 2.0.1+`|
193+
|A[]||B[]|`version 2.0.1+`|
194+
|A[]||Varargs A|`version 2.0.1+` [1,2,3] → add(int... i)|
195+
|List< A>||List< A>|`version 1.0.0+` 接收者定义必须是List<?>接口类型 eg:List< A>|
196+
|List< A>||List< B>|`version 1.0.0+`|
197+
|Json Object||Object|`version 1.0.0+`|
198+
|Json Object||Map< String,String>|即将支持|
199+
|Json Array||List< ?>|`version 1.0.0+`|
200+
193201
**第二步:调用协议**
194202
```
195203
//任意地方调用

androidrouter/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ GROUP_ID=com.library.tangxiaolv
44
#must be the same as MODULE name
55
ARTIFACT_ID=androidrouter
66
#publicVersion
7-
PUBLIC_VERSION=2.0.0
7+
PUBLIC_VERSION=2.0.1
88
#jcenter repo library Name
99
LIBRARY_NAME=androidrouter
1010
#library description

androidrouter/src/main/java/com/tangxiaolv/router/Promise.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public void run() {
8989
}
9090

9191
@SuppressWarnings("unchecked")
92-
void resolve(final Object result) {
92+
void resolve(Object result) {
9393
showToast();
9494
if (resolve == null)
9595
return;

androidrouter/src/main/java/com/tangxiaolv/router/operators/CPromise.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public <W, R> CPromise<R> call(Func<W, R> func) {
7474
* @return result
7575
* @see CPromise#getValue(Reject reject)
7676
*/
77-
public <R> R getValue() {
77+
public Object getValue() {
7878
return getValue(null);
7979
}
8080

@@ -85,12 +85,13 @@ public <R> R getValue() {
8585
* @return result
8686
*/
8787
@SuppressWarnings("unchecked")
88-
public <R> R getValue(final Reject reject) {
88+
//TODO no idea to find out actual type.
89+
public Object getValue(final Reject reject) {
8990
final Object[] arr = new Object[1];
9091
final CountDownLatch latch = new CountDownLatch(1);
91-
target.call(new Resolve<R>() {
92+
target.call(new Resolve<Object>() {
9293
@Override
93-
public void call(R result) {
94+
public void call(Object result) {
9495
arr[0] = result;
9596
latch.countDown();
9697
}
@@ -104,18 +105,15 @@ public void call(Exception e) {
104105
}
105106
});
106107

107-
R result = null;
108-
109108
try {
110109
latch.await();
111-
result = (R) arr[0];
112110
} catch (Exception e) {
113111
if (reject != null) {
114112
reject.call(new RouterRemoteException("getValue fail.", e));
115113
}
116114
}
117115

118-
return result;
116+
return arr[0];
119117
}
120118

121119
/**

androidrouter/src/main/java/com/tangxiaolv/router/utils/ReflectTool.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public static <T> String getFirstGeneric(T t) {
7474
@SuppressWarnings("all")
7575
public static String getFieldTypeWithGeneric(Field f) {
7676
Class fieldType = f.getType();
77+
//TODO Anonymous Inner Class Cant be find By Class.fromName,but getName could.
7778
String type = fieldType.getCanonicalName();
7879
if (fieldType.isAssignableFrom(List.class)) {
7980
try {

0 commit comments

Comments
 (0)