diff --git a/README.md b/README.md
index b159cc2ad4c532845715dc7fca8466efaf04d811..dbfe6976f282dfcc0b6f39c6ff5de3bc56ea84fd 100644
--- a/README.md
+++ b/README.md
@@ -38,13 +38,13 @@
2.在entry模块的build.gradle文件中,
```
dependencies {
- implementation 'com.gitee.chinasoft_ohos:router_api:0.0.1-SNAPSHOT'
- annotationProcessor 'com.gitee.chinasoft_ohos:router_compiler:0.0.1-SNAPSHOT'
+ implementation 'com.gitee.chinasoft_ohos:router_api:0.0.2-SNAPSHOT'
+ annotationProcessor 'com.gitee.chinasoft_ohos:router_compiler:0.0.2-SNAPSHOT'
......
}
```
-在sdk5,DevEco Studio2.1 Release下项目可直接运行
+在sdk6,DevEco Studio2.2 Beta1下项目可直接运行
如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件,
并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
diff --git a/entry/src/main/java/com/lzh/nonview/router/demo/MyApplication.java b/entry/src/main/java/com/lzh/nonview/router/demo/MyApplication.java
index f833e679e78c1662523ce06e45dc3597e2301219..8b812ed0375474fd2afc2231151ea93806c3d590 100644
--- a/entry/src/main/java/com/lzh/nonview/router/demo/MyApplication.java
+++ b/entry/src/main/java/com/lzh/nonview/router/demo/MyApplication.java
@@ -26,9 +26,8 @@ public class MyApplication extends AbilityPackage {
/**
* 设置默认路由拦截器:所有路由跳转均会被触发(除了需要直接打开浏览器的链接)
*/
- //
RouteInterceptor interceptor = new DefaultInterceptor();
RouterConfiguration.get().setInterceptor(interceptor);
- Router.DEBUG = true;
+ Router.setDebug(true);
}
}
diff --git a/router_anno/src/main/java/com/lzh/nonview/router/anno/ActionLauncher.java b/router_anno/src/main/java/com/lzh/nonview/router/anno/ActionLauncher.java
index 74a83a14236342a168598a063c9b9376174fc4a1..5dcdae3afafb1629fb8028a2042310882cbfb834 100644
--- a/router_anno/src/main/java/com/lzh/nonview/router/anno/ActionLauncher.java
+++ b/router_anno/src/main/java/com/lzh/nonview/router/anno/ActionLauncher.java
@@ -4,12 +4,19 @@ import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-
/**
- * @author wjt
+ * ActionLauncher
+ *
+ * @author:wjt
+ * @since 2021-04-06
*/
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.TYPE})
public @interface ActionLauncher {
+ /**
+ * value
+ *
+ * @return Class
+ */
Class value();
}
diff --git a/router_anno/src/main/java/com/lzh/nonview/router/anno/ActivityLauncher.java b/router_anno/src/main/java/com/lzh/nonview/router/anno/ActivityLauncher.java
index 5bb2ede3a4bf1eca293a6d567b214832d6de9d6f..0eff586f9977d482bd4afcf4770a806d378b858a 100644
--- a/router_anno/src/main/java/com/lzh/nonview/router/anno/ActivityLauncher.java
+++ b/router_anno/src/main/java/com/lzh/nonview/router/anno/ActivityLauncher.java
@@ -6,10 +6,17 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * @author wjt
+ * ActivityLauncher
+ *
+ * @since 2021-04-06
*/
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.TYPE})
public @interface ActivityLauncher {
+ /**
+ * value
+ *
+ * @return Class
+ */
Class value();
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/Router.java b/router_api/src/main/java/com/lzh/nonview/router/Router.java
index f6b9f03c5fb39630d697b7b36c1292bdae141783..29950203d501753310bfda01ee370fc25afe66b7 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/Router.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/Router.java
@@ -37,8 +37,6 @@ import com.lzh.nonview.router.tools.Constants;
import com.lzh.nonview.router.tools.Utils;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.IntentParams;
-import ohos.app.AbilityContext;
-import ohos.app.Context;
import ohos.utils.net.Uri;
import java.util.concurrent.Executor;
@@ -49,7 +47,7 @@ import java.util.concurrent.Executor;
*
* @author haoge
*/
-public final class Router{
+public final class Router {
/**
* 原始uri的关键。 您可以通过此键获取uri,例如:
@@ -58,15 +56,17 @@ public final class Router{
* haoge://page/intent/printer?title=动态登录检查&requestLogin=1
*/
public static final String RAW_URI = "_ROUTER_RAW_URI_KEY_";
- public static boolean DEBUG = false;
-
+ /**
+ * DEBUG
+ */
+ private static boolean debug = false;
private Uri uri;
private String url;
private InternalCallback internalCallback;
private Router(String url) {
- this.url= url;
- this.uri = Uri.parse(url == null?"":url);
+ this.url = url;
+ this.uri = Uri.parse(url == null ? "" : url);
internalCallback = new InternalCallback(uri);
}
@@ -81,17 +81,30 @@ public final class Router{
return new Router(url);
}
+ public static boolean isDebug() {
+ return debug;
+ }
+ public static void setDebug(boolean debug) {
+ Router.debug = debug;
+ }
+ /**
+ * createInstanceRouter
+ *
+ * @param url
+ * @return InstanceRouter
+ */
public static InstanceRouter createInstanceRouter(String url) {
return InstanceRouter.build(url);
}
/**
* Set a callback to notify the user when the routing were success or failure.
+ *
* @param callback The callback you set.
* @return Router itself
*/
- public Router setCallback (RouteCallback callback) {
+ public Router setCallback(RouteCallback callback) {
this.internalCallback.setCallback(callback);
return this;
}
@@ -139,7 +152,8 @@ public final class Router{
/**
* Restore a Routing event from last uri and extras.
- * @param uri last uri
+ *
+ * @param uri last uri
* @param extras last extras
* @return The restored routing find by {@link Router#getRoute()}
*/
@@ -153,6 +167,7 @@ public final class Router{
/**
* launch 路由任务.
+ *
* @param context context to launched
*/
public void open(Ability context) {
@@ -165,14 +180,14 @@ public final class Router{
*
* @return An IRoute object.it will be BrowserRoute, ActivityRoute or ActionRoute.
*/
- public IRoute getRoute () {
+ public IRoute getRoute() {
IRoute route = getLocalRoute();
if (!(route instanceof IRoute.EmptyRoute)) {
return route;
}
route = HostServiceWrapper.create(url, internalCallback);
if (route instanceof IRoute.EmptyRoute) {
- notifyNotFound(String.format("find Route by %s failed:",uri));
+ notifyNotFound(String.format("find Route by %s failed:", uri));
}
return route;
}
@@ -202,6 +217,7 @@ public final class Router{
* Get {@link IBaseRoute} by uri, it could be one of {@link IActivityRoute} or {@link IActionRoute}.
* and you can add some { } data and {@link RouteInterceptor} into it.
*
+ *
* @return returns an {@link IBaseRoute} finds by uri or {@link IBaseRoute.EmptyBaseRoute} for not found
*/
public IBaseRoute getBaseRoute() {
@@ -210,12 +226,13 @@ public final class Router{
return (IBaseRoute) route;
}
- notifyNotFound(String.format("find BaseRoute by %s failed, but is %s",uri, route.getClass().getSimpleName()));
+ notifyNotFound(String.format("find BaseRoute by %s failed, but is %s", uri, route.getClass().getSimpleName()));
return new IBaseRoute.EmptyBaseRoute(internalCallback);
}
/**
* Get {@link IActivityRoute} by uri,you should get a route by this way and set some extras data before open
+ *
* @return returns an {@link IActivityRoute} finds by uri or {@link IActivityRoute.EmptyActivityRoute} for not found.
*/
public IActivityRoute getActivityRoute() {
@@ -225,12 +242,13 @@ public final class Router{
}
// return an empty route to avoid NullPointException
- notifyNotFound(String.format("find ActivityRoute by %s failed, but is %s",uri, route.getClass().getSimpleName()));
+ notifyNotFound(String.format("find ActivityRoute by %s failed, but is %s", uri, route.getClass().getSimpleName()));
return new IActivityRoute.EmptyActivityRoute(internalCallback);
}
/**
* Get {@link IActionRoute} by uri,you should get a route by this way and set some extras data before open
+ *
* @return returns an {@link IActionRoute} finds by uri or {@link IActionRoute.EmptyActionRoute} for not found.
*/
public IActionRoute getActionRoute() {
@@ -239,7 +257,7 @@ public final class Router{
return (IActionRoute) route;
}
- notifyNotFound(String.format("find ActionRoute by %s failed, but is %s",uri, route.getClass().getSimpleName()));
+ notifyNotFound(String.format("find ActionRoute by %s failed, but is %s", uri, route.getClass().getSimpleName()));
// return a empty route to avoid NullPointException
return new IActionRoute.EmptyActionRoute(internalCallback);
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultCallback.java b/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultCallback.java
index 1c0142257fb2b420fe326b54af38a3a89ac65bf5..b19f49501ac28e1e85c77c48f5f60ab0ba728fc7 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultCallback.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultCallback.java
@@ -4,11 +4,14 @@ package com.lzh.nonview.router.activityresult;
import ohos.aafwk.content.Intent;
/**
- * @author wjt
+ * ActivityResultCallback
+ *
+ * @since 2021-04-06
*/
public interface ActivityResultCallback {
/**
* 回调结果
+ *
* @param resultCode 返回码
* @param data 数据
*/
diff --git a/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultDispatcher.java b/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultDispatcher.java
index a618ad217b8ce773ec4b524c022861715593d53e..ae65a791ce532c287ad2aa31613c759ca0925374 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultDispatcher.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/activityresult/ActivityResultDispatcher.java
@@ -10,21 +10,38 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Set;
/**
- * @author wjt
+ * ActivityResultDispatcher
+ *
+ * @since 2021-04-06
*/
public final class ActivityResultDispatcher {
-
+ private static ActivityResultDispatcher dispatcher = new ActivityResultDispatcher();
private Map> container = new HashMap<>();
- private static ActivityResultDispatcher dispatcher = new ActivityResultDispatcher();
- private ActivityResultDispatcher(){ }
+ /**
+ * 构造
+ */
+ private ActivityResultDispatcher() {
+ }
+
+ /**
+ * get
+ *
+ * @return ActivityResultDispatcher
+ */
public static ActivityResultDispatcher get() {
return dispatcher;
}
+ /**
+ * bindRequestArgs
+ *
+ * @param activity
+ * @param requestCode
+ * @param callback
+ */
public void bindRequestArgs(Ability activity, int requestCode, ActivityResultCallback callback) {
if (!Utils.isValid(activity)
|| callback == null
@@ -36,6 +53,15 @@ public final class ActivityResultDispatcher {
list.add(new RequestArgs(requestCode, callback));
}
+ /**
+ * dispatchActivityResult
+ *
+ * @param activity
+ * @param requestCode
+ * @param resultCode
+ * @param data
+ * @return boolean
+ */
public boolean dispatchActivityResult(Ability activity, int requestCode, int resultCode, Intent data) {
if (!container.containsKey(activity)) {
return false;
@@ -43,7 +69,7 @@ public final class ActivityResultDispatcher {
boolean handle = false;
List list = findListByKey(activity);
- for (RequestArgs args:list) {
+ for (RequestArgs args : list) {
if (args.requestCode == requestCode) {
args.callback.onResult(resultCode, data);
list.remove(args);
@@ -58,17 +84,22 @@ public final class ActivityResultDispatcher {
// 移除无效的条目:比如当前activity在后台时被回收了
private void releaseInvalidItems() {
- Set keys = container.keySet();
- Iterator iterator = keys.iterator();
- while (iterator.hasNext()) {
- Ability next = iterator.next();
- if (!Utils.isValid(next)
- || container.get(next).isEmpty()) {
- iterator.remove();
+ Iterator>> iterator1 = container.entrySet().iterator();
+ while (iterator1.hasNext()) {
+ Map.Entry> next = iterator1.next();
+ Ability nextAbility = next.getKey();
+ if (!Utils.isValid(nextAbility)) {
+ iterator1.remove();
}
}
}
+ /**
+ * findListByKey
+ *
+ * @param activity
+ * @return List
+ */
private List findListByKey(Ability activity) {
List list = container.get(activity);
if (list == null) {
@@ -78,10 +109,21 @@ public final class ActivityResultDispatcher {
return list;
}
+ /**
+ * 主页面
+ *
+ * @since 2021-04-06
+ */
private static class RequestArgs {
int requestCode;
ActivityResultCallback callback;
+ /**
+ * RequestArgs
+ *
+ * @param requestCode
+ * @param callback
+ */
public RequestArgs(int requestCode, ActivityResultCallback callback) {
this.requestCode = requestCode;
this.callback = callback;
diff --git a/router_api/src/main/java/com/lzh/nonview/router/launcher/ActivityLauncher.java b/router_api/src/main/java/com/lzh/nonview/router/launcher/ActivityLauncher.java
index 435290b34ab129b7680e556530bfc14a379284cc..528852d11c2c539c5b88271d7bad1bac5dd67f09 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/launcher/ActivityLauncher.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/launcher/ActivityLauncher.java
@@ -18,29 +18,28 @@ package com.lzh.nonview.router.launcher;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.ability.fraction.Fraction;
import ohos.aafwk.content.Intent;
-import ohos.app.Context;
/**
* The base class of Activity Launcher
+ * he default impl is {@link DefaultActivityLauncher}
*
- *
- * The default impl is {@link DefaultActivityLauncher}
- *
+ * @since 2021-04-06
*/
public abstract class ActivityLauncher extends Launcher{
/**
- *调用时将调用此方法 {@link com.lzh.nonview.router.route.ActivityRoute#}
+ * 调用时将调用此方法
*
- * @param context The context instance.
- * @return The new intent that created by the launcher
+ * @param context
+ * @return Intent
*/
public abstract Intent createIntent(Ability context);
/**
- * Fraction: todo 要想使用Fraction,必须让Ability继承FractionAbility
- * @param fragment The fragment instance
+ * Fraction
+ *
+ * @param fragment
* @throws Exception a error occurs
*/
public abstract void open(Fraction fragment) throws Exception;
diff --git a/router_api/src/main/java/com/lzh/nonview/router/module/ActionRouteRule.java b/router_api/src/main/java/com/lzh/nonview/router/module/ActionRouteRule.java
index 363f4b967eef36d199a4d83f7db4212b55400c34..9aa229926fb42ed6f52f2b96478ed85263067a06 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/module/ActionRouteRule.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/module/ActionRouteRule.java
@@ -22,20 +22,42 @@ import com.lzh.nonview.router.route.ActionSupport;
import java.util.concurrent.Executor;
/**
- * @author wjt
+ * ActionRouteRule
+ *
+ * @since 2021-04-06
*/
public class ActionRouteRule extends RouteRule {
+ /**
+ * executor
+ */
private Class extends Executor> executor = MainThreadExecutor.class;
+ /**
+ * ActionRouteRule
+ *
+ * @param clz
+ * @param
+ */
public ActionRouteRule(Class clz) {
super(clz.getCanonicalName());
}
+ /**
+ * ActionRouteRule
+ *
+ * @param clzName
+ */
public ActionRouteRule(String clzName) {
super(clzName);
}
+ /**
+ * setExecutorClass
+ *
+ * @param executor
+ * @return ActionRouteRule
+ */
public ActionRouteRule setExecutorClass(Class extends Executor> executor) {
if (executor != null) {
this.executor = executor;
diff --git a/router_api/src/main/java/com/lzh/nonview/router/module/ActivityRouteRule.java b/router_api/src/main/java/com/lzh/nonview/router/module/ActivityRouteRule.java
index 652b283e3f8459b68e385240fdaa19e111815b5b..c8ee9555e575f3f71eebe73d717f64d1104e3d62 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/module/ActivityRouteRule.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/module/ActivityRouteRule.java
@@ -21,14 +21,27 @@ import com.lzh.nonview.router.launcher.ActivityLauncher;
import ohos.aafwk.ability.Ability;
/**
- * @author wjt
+ * 主页面
+ *
+ * @since 2021-04-06
*/
public class ActivityRouteRule extends RouteRule {
+ /**
+ * ActivityRouteRule
+ *
+ * @param clz
+ * @param
+ */
public ActivityRouteRule(Class clz) {
super(clz.getCanonicalName());
}
+ /**
+ * ActivityRouteRule
+ *
+ * @param clzName
+ */
public ActivityRouteRule(String clzName) {
super(clzName);
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/module/RouteRule.java b/router_api/src/main/java/com/lzh/nonview/router/module/RouteRule.java
index 03906a2b542a12cd3d94324d0d0b418efa23aa22..d109316566fc9fc356f185413cbfc3572503ac22 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/module/RouteRule.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/module/RouteRule.java
@@ -68,7 +68,7 @@ public class RouteRule{
}
public Class extends RouteInterceptor>[] getInterceptors() {
- return interceptors;
+ return interceptors.clone();
}
public R setLauncher(Class extends L> launcher) {
diff --git a/router_api/src/main/java/com/lzh/nonview/router/protocol/HostServiceWrapper.java b/router_api/src/main/java/com/lzh/nonview/router/protocol/HostServiceWrapper.java
index 80da0b466dccccc3151d77109868ee2104291334..cb70539877e3bf3704e0f8479f3c38ec135b5c59 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/protocol/HostServiceWrapper.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/protocol/HostServiceWrapper.java
@@ -38,6 +38,7 @@ import ohos.rpc.IRemoteObject;
import ohos.utils.net.Uri;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
/**
@@ -138,11 +139,20 @@ public class HostServiceWrapper {
private static Map transform(Map source){
Map dest = new HashMap<>();
- for (String route : source.keySet()) {
- RouteRule rule = source.get(route);
- RemoteRule remote = RemoteRule.create(rule, getRemote(context, rule));
- dest.put(route, remote);
+ Iterator extends Map.Entry> ii= source.entrySet().iterator();
+ while(ii.hasNext()){
+ Map.Entry next = (Map.Entry) ii.next();
+ String key = next.getKey();
+ RouteRule value = next.getValue();
+ RemoteRule remote = RemoteRule.create(value, getRemote(context, value));
+ dest.put(key, remote);
}
+// Map dest = new HashMap<>();
+// for (String route : source.keySet()) {
+// RouteRule rule = source.get(route);
+// RemoteRule remote = RemoteRule.create(rule, getRemote(context, rule));
+// dest.put(route, remote);
+// }
return dest;
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/route/ActionRoute.java b/router_api/src/main/java/com/lzh/nonview/router/route/ActionRoute.java
index facdfb5981576350ecef87ba999da5baf9a85d51..8e5403fb07ee42dbf3b28b8ebf567b457abbe171 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/route/ActionRoute.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/route/ActionRoute.java
@@ -24,7 +24,9 @@ import com.lzh.nonview.router.tools.Constants;
import java.util.concurrent.Executor;
/**
- * @author wjt
+ * ActionRoute
+ *
+ * @since 2021-04-06
*/
public class ActionRoute extends BaseRoute implements IActionRoute {
diff --git a/router_api/src/main/java/com/lzh/nonview/router/route/ActionSupport.java b/router_api/src/main/java/com/lzh/nonview/router/route/ActionSupport.java
index 837bdbb67bffc280a333b13cbdb3126154b88b30..b85d438285e4366822d5c54fb56903438c046356 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/route/ActionSupport.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/route/ActionSupport.java
@@ -21,6 +21,8 @@ import ohos.app.Context;
/**
* 您可以从此类继承以创建动作路由事件
+ *
+ * @since 2021-04-06
*/
public abstract class ActionSupport {
diff --git a/router_api/src/main/java/com/lzh/nonview/router/route/ActivityRoute.java b/router_api/src/main/java/com/lzh/nonview/router/route/ActivityRoute.java
index cddeb1dbc7a51554120a37567210cd9490e2106a..ee2167f238864f44ce52f77c44a7859c33c022e8 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/route/ActivityRoute.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/route/ActivityRoute.java
@@ -32,8 +32,7 @@ import ohos.app.Context;
/**
* 用于通过uri检查路线规则和启动活动的路线工具
*
- * @author lzh
- * @date 16/9/5
+ * @since 2021-04-06
*/
public class ActivityRoute extends BaseRoute implements IActivityRoute {
@@ -92,7 +91,7 @@ public class ActivityRoute extends BaseRoute implements IActivit
}
@Override
- protected Launcher obtainLauncher() throws Exception{
+ protected Launcher obtainLauncher() throws Exception {
ActivityRouteRule rule = (ActivityRouteRule) routeRule;
Class extends ActivityLauncher> launcher = rule.getLauncher();
if (launcher == null) {
diff --git a/router_api/src/main/java/com/lzh/nonview/router/route/BaseRoute.java b/router_api/src/main/java/com/lzh/nonview/router/route/BaseRoute.java
index a19d8637e0ace3a2aa61dfeea0ed0873b2577644..45803dfb36bcf3aabd0999beacb43e02f5c18514 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/route/BaseRoute.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/route/BaseRoute.java
@@ -33,15 +33,30 @@ import ohos.utils.net.Uri;
import java.util.ArrayList;
import java.util.List;
+/**
+ * BaseRoute
+ *
+ * @since 2021-04-06
+ * @param
+ */
@SuppressWarnings("unchecked")
public abstract class BaseRoute implements IRoute, IBaseRoute, RouteInterceptorAction {
protected IntentParams bundle;
- InternalCallback callback;
protected Uri uri;
protected IntentParams remote;
protected RouteRule routeRule = null;
protected Launcher launcher;
+ InternalCallback callback;
+ /**
+ * create
+ *
+ * @param uri
+ * @param rule
+ * @param remote
+ * @param callback
+ * @return IRoute
+ */
public final IRoute create(Uri uri, RouteRule rule, IntentParams remote, InternalCallback callback) {
try {
this.uri = uri;
@@ -129,7 +144,6 @@ public abstract class BaseRoute implements IRoute, IBaseRo
}
}
}
-
return interceptors;
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/route/BrowserRoute.java b/router_api/src/main/java/com/lzh/nonview/router/route/BrowserRoute.java
index ba1771b4e1d82f3728f3fe1fe5b387fe58fb647e..8d4855a49798e17f35623697fdc04cc2e8e86b87 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/route/BrowserRoute.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/route/BrowserRoute.java
@@ -20,21 +20,18 @@ import com.lzh.nonview.router.tools.Utils;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.Operation;
-import ohos.app.Context;
import ohos.utils.net.Uri;
/**
* 通过浏览器打开uri的路由工具
- * Created by lzh on 16/9/5.
+ *
+ * @since 2021-04-06
*/
public class BrowserRoute implements IRoute {
-
+ private static final BrowserRoute ROUTE = new BrowserRoute();
Uri uri;
-
- private static final BrowserRoute route = new BrowserRoute();
-
- public static BrowserRoute getInstance () {
- return route;
+ public static BrowserRoute getInstance() {
+ return ROUTE;
}
@Override
@@ -47,10 +44,22 @@ public class BrowserRoute implements IRoute {
context.startAbility(intent2);
}
+ /**
+ * canOpenRouter
+ *
+ * @param uri
+ * @return boolean
+ */
public static boolean canOpenRouter(Uri uri) {
return Utils.isHttp(uri.getScheme());
}
+ /**
+ * setUri
+ *
+ * @param uri
+ * @return IRoute
+ */
public IRoute setUri(Uri uri) {
this.uri = uri;
return this;
diff --git a/router_api/src/main/java/com/lzh/nonview/router/route/IActivityRoute.java b/router_api/src/main/java/com/lzh/nonview/router/route/IActivityRoute.java
index 085b6cb55ba40167708e3be81716fded8a312a31..3db232beaf1382c658ee86632744d720adfe559c 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/route/IActivityRoute.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/route/IActivityRoute.java
@@ -17,13 +17,11 @@ package com.lzh.nonview.router.route;
import com.lzh.nonview.router.activityresult.ActivityResultCallback;
-import com.lzh.nonview.router.extras.RouteBundleExtras;
import com.lzh.nonview.router.tools.Constants;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.ability.fraction.Fraction;
import ohos.aafwk.content.Intent;
import ohos.aafwk.content.IntentParams;
-import ohos.app.Context;
/**
* Base on the IBaseRoute, This interface provided some methods
diff --git a/router_api/src/main/java/com/lzh/nonview/router/tools/Cache.java b/router_api/src/main/java/com/lzh/nonview/router/tools/Cache.java
index 2981ba25efbefb80b0ed72fe9ec382f81a22b7b2..96be734ecb184a51e89ac13ae897b901c2c04746 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/tools/Cache.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/tools/Cache.java
@@ -31,30 +31,33 @@ import java.util.concurrent.Executor;
/**
* The cache manager to holds all the cached instance.
+ *
* @author haoge
*/
public final class Cache {
private static boolean shouldReload;// if should be reload routeMap.
- /** A container to contains all of route rule creator,compat with some complex scene*/
+ /**
+ * A container to contains all of route rule creator,compat with some complex scene
+ */
private static List creatorList = new ArrayList<>();
- /** A map to contains all of route rule created by creatorList*/
- private static Map activityRouteMap = new HashMap<>();
- private static Map actionRouteMap = new HashMap<>();
- private static Map creatorRouteMap = new HashMap<>();
+ /**
+ * A map to contains all of route rule created by creatorList
+ */
+ private static Map activityRouteMap = new HashMap<>();
+ private static Map actionRouteMap = new HashMap<>();
+ private static Map creatorRouteMap = new HashMap<>();
public static final int TYPE_ACTIVITY_ROUTE = 0;
public static final int TYPE_ACTION_ROUTE = 1;
private final static Map, Executor> container = new HashMap<>();
/**
- *
- * Add a {@link RouteCreator} who contains some route rules to be used.
- * this method could be invoked multiple-times. so that you can put multiple route rules from difference modules
- *
- * @param creator {@link RouteCreator}
+ * who contains some route rules to be used.* this method could be invoked multiple-times. so that you can put multiple route rules from difference modules
+ *
+ * @param creator
*/
- public static void addCreator (RouteCreator creator) {
+ public static void addCreator(RouteCreator creator) {
if (creator == null) {
throw new IllegalArgumentException("Route creator should not be null");
}
@@ -62,21 +65,43 @@ public final class Cache {
shouldReload = true;
}
+ /**
+ * getCreatorRules
+ *
+ * @return Map
+ */
public static Map getCreatorRules() {
obtainRouteRulesIfNeed();
return creatorRouteMap;
}
+ /**
+ * getActionRules
+ *
+ * @return Map
+ */
public static Map getActionRules() {
obtainRouteRulesIfNeed();
return actionRouteMap;
}
- public static Map getActivityRules() {
+ /**
+ * getActivityRules
+ *
+ * @return Map
+ */
+ public static Map getActivityRules() {
obtainRouteRulesIfNeed();
return activityRouteMap;
}
+ /**
+ * getRouteMapByUri
+ *
+ * @param parser
+ * @param type
+ * @return RouteRule
+ */
public static RouteRule getRouteMapByUri(URIParser parser, int type) { //haoge://page/intent/printer
String route = parser.getRoute();
Map routes;
@@ -88,6 +113,9 @@ public final class Cache {
return (RouteRule) routes.get(route);
}
+ /**
+ * obtainRouteRulesIfNeed
+ */
private static void obtainRouteRulesIfNeed() {
if (shouldReload) {
activityRouteMap.clear();
@@ -107,6 +135,13 @@ public final class Cache {
}
}
+ /**
+ * addAll
+ *
+ * @param src
+ * @param target
+ * @param
+ */
private static void addAll(Map src, Map target) {
if (target == null || src == null) {
return;
@@ -116,6 +151,12 @@ public final class Cache {
}
}
+ /**
+ * findOrCreateExecutor
+ *
+ * @param key
+ * @return Executor
+ */
public static Executor findOrCreateExecutor(Class extends Executor> key) {
try {
Executor executor = container.get(key);
@@ -132,7 +173,8 @@ public final class Cache {
/**
* To register an Executor to be used.
- * @param key The class of Executor
+ *
+ * @param key The class of Executor
* @param value The Executor instance associate with the key.
*/
@SuppressWarnings("WeakerAccess")
diff --git a/router_api/src/main/java/com/lzh/nonview/router/tools/CacheBundle.java b/router_api/src/main/java/com/lzh/nonview/router/tools/CacheBundle.java
index 5c0040454ee660e3dc07a2e6845ab972db63c636..44f273081a783041f24153494d109bc6978bce1b 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/tools/CacheBundle.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/tools/CacheBundle.java
@@ -7,19 +7,33 @@ import java.util.ArrayList;
import java.util.HashMap;
/**
- * @author: wjt
- * @since 2021-03-26
+ * CacheBundle
+ *
+ * @since 2021-04-06
*/
public class CacheBundle {
+
+ private static CacheBundle INSTANCE = new CacheBundle();
+
private ArrayList interceptors = null;
private RouteCallback callback;
private HashMap additionalMap = null;
- private static CacheBundle INSTANCE = new CacheBundle();
- private CacheBundle(){}
+ /**
+ * 构造
+ */
+ private CacheBundle() {
+ }
+
+ /**
+ * get
+ *
+ * @return CacheBundle
+ */
public static CacheBundle get() {
return INSTANCE;
}
+
public ArrayList getInterceptors() {
return interceptors;
}
@@ -43,5 +57,4 @@ public class CacheBundle {
public void setAdditionalMap(HashMap additionalMap) {
this.additionalMap = additionalMap;
}
-
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/tools/CacheStore.java b/router_api/src/main/java/com/lzh/nonview/router/tools/CacheStore.java
index 17d634bcb5304eda17bebb5ff56a37abfd1c2c85..ab7ac20771eeafd8eadaabc52cd859881b526d65 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/tools/CacheStore.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/tools/CacheStore.java
@@ -24,15 +24,23 @@ import java.util.Arrays;
* Created by haoge on 2018/5/3.
*/
public class CacheStore {
-
- private Object[] stores = new Object[10];
+ private CacheStore() {
+ }
private static CacheStore INSTANCE = new CacheStore();
- private CacheStore(){}
+
+ /**
+ * get
+ *
+ * @return CacheStore
+ */
public static CacheStore get() {
return INSTANCE;
}
+ private Object[] stores = new Object[10];
+
+
public T get(int index) {
if (index < 0 || index >= stores.length) {
return null;
diff --git a/router_api/src/main/java/com/lzh/nonview/router/tools/RouterLog.java b/router_api/src/main/java/com/lzh/nonview/router/tools/RouterLog.java
index d926f0e85cf3ea677caf4b22d6ed752090e3ea1b..2e5e3b5493eb6f3ceaa6108f434590604d7296fb 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/tools/RouterLog.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/tools/RouterLog.java
@@ -9,13 +9,24 @@ public final class RouterLog {
private static final String TAG = "RouterLog";
// 定义日志标签
private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MyLog");
+
+ /**
+ * d
+ *
+ * @param message
+ */
public static void d(String message) {
- if (Router.DEBUG) {
+ if (Router.isDebug()) {
HiLog.debug(LABEL, message);
}
}
+ /**
+ * e
+ *
+ * @param message
+ */
public static void e(String message, Throwable t) {
- if (Router.DEBUG) {
+ if (Router.isDebug()) {
HiLog.error(LABEL, message);
}
}
diff --git a/router_api/src/main/java/com/lzh/nonview/router/tools/Utils.java b/router_api/src/main/java/com/lzh/nonview/router/tools/Utils.java
index b415c3e399c8490478daaf3e43eae8dc27ff3132..21afb276393ee1d1b19c2d92a8e28861ae0afa16 100644
--- a/router_api/src/main/java/com/lzh/nonview/router/tools/Utils.java
+++ b/router_api/src/main/java/com/lzh/nonview/router/tools/Utils.java
@@ -26,6 +26,7 @@ import ohos.agp.utils.TextTool;
import ohos.app.Context;
import ohos.utils.net.Uri;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -84,9 +85,10 @@ public class Utils {
public static IntentParams parseToBundle(URIParser parser) {
IntentParams bundle = new IntentParams();
Map params = parser.getParams();
- Set keySet = params.keySet();
- for (String key : keySet) {
- bundle.setParam(key, params.get(key));
+ Iterator> iterator = params.entrySet().iterator();
+ while (iterator.hasNext()){
+ Map.Entry entry = iterator.next();
+ bundle.setParam(entry.getKey(), entry.getValue());
}
return bundle;
}
diff --git a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Compiler.java b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Compiler.java
index 14dff5934d447489d6010d7795af96983622676e..1c09c5a005e45d219b4fba85be4fe028fe3bc8e8 100644
--- a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Compiler.java
+++ b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Compiler.java
@@ -13,11 +13,9 @@ import com.lzh.nonview.router.compiler.util.Utils;
import com.squareup.javapoet.ClassName;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
@@ -33,7 +31,7 @@ import javax.tools.Diagnostic;
* The entry class of annotation processor
*/
@AutoService(Processor.class)
-public class Compiler extends AbstractProcessor{
+public class Compiler extends AbstractProcessor {
@Override
public boolean process(Set extends TypeElement> annotations, RoundEnvironment roundEnv) {
try {
@@ -42,18 +40,19 @@ public class Compiler extends AbstractProcessor{
return false;
} catch (RouterException e) {
e.printStackTrace();
- error(e.getElement(),e.getMessage());
+ error(e.getElement(), e.getMessage());
return true;
}
}
/**
* Parse the {@link RouteConfig} and create a {@link BasicConfigurations} to be used.
+ *
* @param roundEnv data sources
* @return The instance of {@link BasicConfigurations}
* @throws RouterException pack all of the exception when a error occurs.
*/
- private BasicConfigurations processRouteConfig(RoundEnvironment roundEnv) throws RouterException{
+ private BasicConfigurations processRouteConfig(RoundEnvironment roundEnv) throws RouterException {
TypeElement type = null;
try {
Set extends Element> elements = roundEnv.getElementsAnnotatedWith(RouteConfig.class);
@@ -62,10 +61,10 @@ public class Compiler extends AbstractProcessor{
while (iterator.hasNext()) {
type = (TypeElement) iterator.next();
if (configurations != null) {
- throw new RouterException("The RouteConfig in this module was defined duplicated!",type);
+ throw new RouterException("The RouteConfig in this module was defined duplicated!", type);
}
- if (!Utils.isSuperClass(type,Constants.CLASSNAME_APPLICATION)) {
- throw new RouterException("The class you are annotated by RouteConfig must be a Application",type);
+ if (!Utils.isSuperClass(type, Constants.CLASSNAME_APPLICATION)) {
+ throw new RouterException("The class you are annotated by RouteConfig must be a Application", type);
}
RouteConfig config = type.getAnnotation(RouteConfig.class);
configurations = new BasicConfigurations(config);
@@ -74,16 +73,18 @@ public class Compiler extends AbstractProcessor{
} catch (RouterException e) {
throw e;
} catch (Throwable e) {
- throw new RouterException(e.getMessage(),e,type);
+ throw new RouterException(e.getMessage(), e, type);
}
}
+
/**
* 解析由{@link RouterRule}注释的所有元素。并结合{@link BasicConfigurations}来创建新的Java文件
+ *
* @param roundEnv The data sources
- * @param config The instance of {@link BasicConfigurations} that be parsed by {@link Compiler#processRouteConfig(RoundEnvironment)}
+ * @param config The instance of {@link BasicConfigurations} that be parsed by {@link Compiler#processRouteConfig(RoundEnvironment)}
* @throws RouterException pack all of the exception when a error occurs.
*/
- private void processRouteRules(RoundEnvironment roundEnv, BasicConfigurations config) throws RouterException{
+ private void processRouteRules(RoundEnvironment roundEnv, BasicConfigurations config) throws RouterException {
List parsers = new ArrayList<>();
Set extends Element> elements = roundEnv.getElementsAnnotatedWith(RouterRule.class);
if (elements.isEmpty()) {
@@ -93,7 +94,9 @@ public class Compiler extends AbstractProcessor{
try {
for (Element ele : elements) {
type = (TypeElement) ele;
- if (!Utils.checkTypeValid(type)) continue;
+ if (!Utils.checkTypeValid(type)) {
+ continue;
+ }
RouterRule rule = type.getAnnotation(RouterRule.class);
RouteRuleConfig ruleConfig = RouteRuleConfig.create(rule, config, type);
@@ -108,7 +111,7 @@ public class Compiler extends AbstractProcessor{
} catch (RouterException e) {
throw e;
} catch (Throwable e) {
- throw new RouterException(e.getMessage(),e,type);
+ throw new RouterException(e.getMessage(), e, type);
}
}
@@ -117,7 +120,7 @@ public class Compiler extends AbstractProcessor{
*
* @param element Element of class who has a exception when compiled
* @param message The message should be noticed to user
- * @param args args to inflate message
+ * @param args args to inflate message
*/
private void error(Element element, String message, Object... args) {
if (args.length > 0) {
diff --git a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Constants.java b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Constants.java
index 46e72231b3b47871f83327373f1a28c85d05d1d2..13788d8535f00f43601de27f134708364d0c0ba7 100644
--- a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Constants.java
+++ b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/Constants.java
@@ -1,6 +1,16 @@
package com.lzh.nonview.router.compiler;
+/**
+ * Constants
+ *
+ * @since 2021-04-06
+ */
public class Constants {
+ /**
+ * 构造
+ */
+ public Constants() {
+ }
// Application
public static final String CLASSNAME_APPLICATION = "ohos.aafwk.ability.AbilityPackage";
diff --git a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/factory/RuleFactory.java b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/factory/RuleFactory.java
index a20cb7ed8b0cbd45ae0b64a9599f7c1fbb0f8aed..4aba83b093030f772d96b0d117534a2dd628669e 100644
--- a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/factory/RuleFactory.java
+++ b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/factory/RuleFactory.java
@@ -30,7 +30,6 @@ public class RuleFactory {
private List activityParser = new ArrayList<>();
private List actionParser = new ArrayList<>();
private List creatorParser = new ArrayList<>();
- private ClassName routeMap = ClassName.bestGuess(Constants.CLASSNAME_ROUTE_MAP);
private ClassName activityRouteMap = ClassName.bestGuess(Constants.CLASSNAME_ACTIVITY_ROUTE_MAP);
private ClassName actionRouteMap = ClassName.bestGuess(Constants.CLASSNAME_ACTION_ROUTE_MAP);
private ClassName creatorRouteMap = ClassName.bestGuess(Constants.CLASSNAME_CREATOR_ROUTE_MAP);
diff --git a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/BasicConfigurations.java b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/BasicConfigurations.java
index 86e7c18dd4f0a6d27fba8e22700894543c96d8b1..98bc9fdae82830b7e9256281df5c0b26856044db 100644
--- a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/BasicConfigurations.java
+++ b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/BasicConfigurations.java
@@ -3,10 +3,20 @@ package com.lzh.nonview.router.compiler.model;
import com.lzh.nonview.router.anno.RouteConfig;
import com.lzh.nonview.router.compiler.util.Utils;
+/**
+ * 主页面
+ *
+ * @since 2021-04-06
+ */
public class BasicConfigurations {
public String baseUrl;
public String pack = "com.lzh.router";
+ /**
+ * 构造
+ *
+ * @param config
+ */
public BasicConfigurations(RouteConfig config) {
if (config == null) {
return;
diff --git a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/Parser.java b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/Parser.java
index 4213eef5cf5e2f51a86c7368d8ad0acb9a3dbd0a..f9f6dc4192e4a954e25d782fe51343f805a3ccf3 100644
--- a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/Parser.java
+++ b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/Parser.java
@@ -17,14 +17,18 @@ import javax.lang.model.type.TypeMirror;
* 解析器
*/
public class Parser {
- public final static String Slash="/";
- private static Map parsed = new HashMap<>();
+
+ private static Map parsed = new HashMap<>();
+
private String[] routers;
private TypeElement type;
private RouteRuleConfig configurations;
private ClassName executorClass;
-
- public static Parser create (TypeElement element, RouteRuleConfig configurations) {
+ /**
+ * "/"
+ */
+ public static final String Slash = "/";
+ public static Parser create(TypeElement element, RouteRuleConfig configurations) {
Parser parser = new Parser();
parser.type = element;
parser.configurations = configurations;
@@ -45,7 +49,7 @@ public class Parser {
}
}
- public void parse () {
+ public void parse() {
routers = configurations.getRoute();
for (int i = 0; i < routers.length; i++) {
String route = routers[i];
@@ -55,17 +59,17 @@ public class Parser {
private void checkIsDuplicate(String route) {
if (route.endsWith(Slash)) {
- route = route.substring(0,route.lastIndexOf(Slash));
+ route = route.substring(0, route.lastIndexOf(Slash));
}
if (parsed.containsKey(route)) {
- throw new RouterException(String.format("A same scheme was double defined on another class %s", parsed.get(route)),type);
+ throw new RouterException(String.format("A same scheme was double defined on another class %s", parsed.get(route)), type);
}
- parsed.put(route,type);
+ parsed.put(route, type);
}
public String[] getScheme() {
- return routers;
+ return routers.clone();
}
public TypeElement getType() {
diff --git a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/RouteRuleConfig.java b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/RouteRuleConfig.java
index c8dff36b2d098918bca43d15e1e91df13e549b16..082056b0c9eef9dbcd48b77f8e591bc5e4fe3790 100644
--- a/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/RouteRuleConfig.java
+++ b/router_compiler/src/main/java/com/lzh/nonview/router/compiler/model/RouteRuleConfig.java
@@ -13,6 +13,7 @@ import com.squareup.javapoet.TypeName;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.locks.AbstractOwnableSynchronizer;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.MirroredTypeException;
@@ -31,7 +32,6 @@ public class RouteRuleConfig {
private String[] routes;
private ClassName launcher;
private TypeName[] interceptors;
-
public static RouteRuleConfig create(RouterRule rule, BasicConfigurations basicConfigurations, TypeElement type) {
RouteRuleConfig config = new RouteRuleConfig();
config.routes = config.combineRoute(rule, basicConfigurations);
@@ -126,10 +126,8 @@ public class RouteRuleConfig {
return launcher;
}
-
-
public String[] getRoute() {
- return routes == null ? new String[0] : routes;
+ return routes.clone();
}
public ClassName getLauncher() {
@@ -137,6 +135,6 @@ public class RouteRuleConfig {
}
public TypeName[] getInterceptors () {
- return interceptors;
+ return this.interceptors.clone();
}
}