android:adjust Doric.java and DoricKit.java,optimize api
This commit is contained in:
parent
239ce9b5b4
commit
7f1b1256ce
@ -1,8 +1,24 @@
|
||||
package pub.doric.devkit;
|
||||
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import pub.doric.Doric;
|
||||
import pub.doric.DoricContext;
|
||||
import pub.doric.DoricContextManager;
|
||||
import pub.doric.devkit.event.ConnectExceptionEvent;
|
||||
import pub.doric.devkit.event.EOFExceptionEvent;
|
||||
import pub.doric.devkit.event.EnterDebugEvent;
|
||||
import pub.doric.devkit.event.OpenEvent;
|
||||
import pub.doric.devkit.event.ReloadEvent;
|
||||
import pub.doric.devkit.event.StartDebugEvent;
|
||||
import pub.doric.devkit.event.StopDebugEvent;
|
||||
|
||||
public class DevKit implements IDevKit {
|
||||
|
||||
public static boolean isRunningInEmulator = false;
|
||||
@ -41,4 +57,56 @@ public class DevKit implements IDevKit {
|
||||
wsClient.close();
|
||||
wsClient = null;
|
||||
}
|
||||
|
||||
boolean devKitConnected = false;
|
||||
|
||||
private DoricContextDebuggable doricContextDebuggable;
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onOpenEvent(OpenEvent openEvent) {
|
||||
devKitConnected = true;
|
||||
Toast.makeText(Doric.application(), "dev kit connected", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onEOFEvent(EOFExceptionEvent eofExceptionEvent) {
|
||||
devKitConnected = false;
|
||||
Toast.makeText(Doric.application(), "dev kit eof exception", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onConnectExceptionEvent(ConnectExceptionEvent connectExceptionEvent) {
|
||||
devKitConnected = false;
|
||||
Toast.makeText(Doric.application(), "dev kit connection exception", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onStartDebugEvent(StartDebugEvent startDebugEvent) {
|
||||
doricContextDebuggable = new DoricContextDebuggable(startDebugEvent.getContextId());
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onEnterDebugEvent(EnterDebugEvent enterDebugEvent) {
|
||||
doricContextDebuggable.startDebug();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onQuitDebugEvent(StopDebugEvent quitDebugEvent) {
|
||||
doricContextDebuggable.stopDebug();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onReloadEvent(ReloadEvent reloadEvent) {
|
||||
for (DoricContext context : DoricContextManager.aliveContexts()) {
|
||||
if (reloadEvent.source.contains(context.getSource())) {
|
||||
if (doricContextDebuggable != null &&
|
||||
doricContextDebuggable.isDebugging &&
|
||||
doricContextDebuggable.getContext().getContextId().equals(context.getContextId())) {
|
||||
System.out.println("is debugging context id: " + context.getContextId());
|
||||
} else {
|
||||
context.reload(reloadEvent.script);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,24 +1,15 @@
|
||||
package pub.doric.devkit;
|
||||
|
||||
import android.widget.Toast;
|
||||
import android.content.Intent;
|
||||
|
||||
import com.lahm.library.EasyProtectorLib;
|
||||
import com.lahm.library.EmulatorCheckCallback;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import pub.doric.Doric;
|
||||
import pub.doric.DoricContext;
|
||||
import pub.doric.DoricContextManager;
|
||||
import pub.doric.devkit.event.ConnectExceptionEvent;
|
||||
import pub.doric.devkit.event.EOFExceptionEvent;
|
||||
import pub.doric.devkit.event.EnterDebugEvent;
|
||||
import pub.doric.devkit.event.OpenEvent;
|
||||
import pub.doric.devkit.event.ReloadEvent;
|
||||
import pub.doric.devkit.event.StartDebugEvent;
|
||||
import pub.doric.devkit.event.StopDebugEvent;
|
||||
import pub.doric.devkit.ui.DoricDevActivity;
|
||||
|
||||
public class DoricDev {
|
||||
private static class Inner {
|
||||
@ -39,54 +30,17 @@ public class DoricDev {
|
||||
return Inner.sInstance;
|
||||
}
|
||||
|
||||
public boolean devKitConnected = false;
|
||||
private DoricContextDebuggable doricContextDebuggable;
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onOpenEvent(OpenEvent openEvent) {
|
||||
devKitConnected = true;
|
||||
Toast.makeText(Doric.application(), "dev kit connected", Toast.LENGTH_LONG).show();
|
||||
public void openDevMode() {
|
||||
Intent intent = new Intent(Doric.application(), DoricDevActivity.class);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
Doric.application().startActivity(intent);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onEOFEvent(EOFExceptionEvent eofExceptionEvent) {
|
||||
devKitConnected = false;
|
||||
Toast.makeText(Doric.application(), "dev kit eof exception", Toast.LENGTH_LONG).show();
|
||||
public void closeDevMode() {
|
||||
EventBus.getDefault().post(new EOFExceptionEvent());
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onConnectExceptionEvent(ConnectExceptionEvent connectExceptionEvent) {
|
||||
devKitConnected = false;
|
||||
Toast.makeText(Doric.application(), "dev kit connection exception", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onStartDebugEvent(StartDebugEvent startDebugEvent) {
|
||||
doricContextDebuggable = new DoricContextDebuggable(startDebugEvent.getContextId());
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onEnterDebugEvent(EnterDebugEvent enterDebugEvent) {
|
||||
doricContextDebuggable.startDebug();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onQuitDebugEvent(StopDebugEvent quitDebugEvent) {
|
||||
doricContextDebuggable.stopDebug();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onReloadEvent(ReloadEvent reloadEvent) {
|
||||
for (DoricContext context : DoricContextManager.aliveContexts()) {
|
||||
if (reloadEvent.source.contains(context.getSource())) {
|
||||
if (doricContextDebuggable != null &&
|
||||
doricContextDebuggable.isDebugging &&
|
||||
doricContextDebuggable.getContext().getContextId().equals(context.getContextId())) {
|
||||
System.out.println("is debugging context id: " + context.getContextId());
|
||||
} else {
|
||||
context.reload(reloadEvent.script);
|
||||
}
|
||||
}
|
||||
}
|
||||
public boolean isInDevMode() {
|
||||
return DevKit.getInstance().devKitConnected;
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public class DoricDevActivity extends AppCompatActivity {
|
||||
super.onCreate(savedInstanceState);
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
if (DoricDev.getInstance().devKitConnected) {
|
||||
if (DoricDev.getInstance().isInDevMode()) {
|
||||
setContentView(R.layout.layout_debug_context);
|
||||
initViews();
|
||||
} else {
|
||||
|
@ -17,6 +17,9 @@ package pub.doric;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import pub.doric.loader.DoricJSLoaderManager;
|
||||
import pub.doric.loader.IDoricJSLoader;
|
||||
|
||||
/**
|
||||
* @Description: Doric
|
||||
* @Author: pengfei.zhou
|
||||
@ -25,6 +28,11 @@ import android.app.Application;
|
||||
public class Doric {
|
||||
private static Application sApplication;
|
||||
|
||||
/**
|
||||
* Init Function,must be called before doric run
|
||||
*
|
||||
* @param application Application instance
|
||||
*/
|
||||
public static void init(Application application) {
|
||||
sApplication = application;
|
||||
}
|
||||
@ -32,4 +40,22 @@ public class Doric {
|
||||
public static Application application() {
|
||||
return sApplication;
|
||||
}
|
||||
|
||||
/**
|
||||
* Register DoricLibrary For Extended ViewNode and Native Plugins
|
||||
*
|
||||
* @param doricLibrary Which registered in global
|
||||
*/
|
||||
public static void registerLibrary(DoricLibrary doricLibrary) {
|
||||
DoricRegistry.register(doricLibrary);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add DoricJSLoader For Loading JS bundles
|
||||
*
|
||||
* @param jsLoader Which added in global
|
||||
*/
|
||||
public static void addJSLoader(IDoricJSLoader jsLoader) {
|
||||
DoricJSLoaderManager.getInstance().addJSLoader(jsLoader);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user