Commit 0036f78bee30db4cbdd6be7f375a6ac00e6cc5ab

Authored by 简柏林
1 parent 38b89cc0

代码提交

@@ -18,7 +18,11 @@ import java.util.logging.LogRecord; @@ -18,7 +18,11 @@ import java.util.logging.LogRecord;
18 public class ModeHandler extends Handler { 18 public class ModeHandler extends Handler {
19 19
20 private AppPresentation presentation; 20 private AppPresentation presentation;
21 - private int mode; 21 + private long modeTime = 0;
  22 +
  23 + public long getModeTime() {
  24 + return modeTime;
  25 + }
22 26
23 public ModeHandler(AppPresentation presentation) { 27 public ModeHandler(AppPresentation presentation) {
24 this.presentation = presentation; 28 this.presentation = presentation;
@@ -26,6 +30,7 @@ public class ModeHandler extends Handler { @@ -26,6 +30,7 @@ public class ModeHandler extends Handler {
26 30
27 @Override 31 @Override
28 public void handleMessage(@NonNull Message msg) { 32 public void handleMessage(@NonNull Message msg) {
  33 + modeTime = System.currentTimeMillis();
29 presentation.setMode(msg.what); 34 presentation.setMode(msg.what);
30 super.handleMessage(msg); 35 super.handleMessage(msg);
31 } 36 }
@@ -57,16 +57,18 @@ public class MainJavaScriptInterface { @@ -57,16 +57,18 @@ public class MainJavaScriptInterface {
57 private String time; 57 private String time;
58 private boolean isSwfPlay = false; 58 private boolean isSwfPlay = false;
59 private int mode; 59 private int mode;
  60 + private AppPresentation presentation;
60 61
61 public MainJavaScriptInterface(Activity context, X5WebView x5WebView) { 62 public MainJavaScriptInterface(Activity context, X5WebView x5WebView) {
62 mContext = context; 63 mContext = context;
63 mX5WebView = x5WebView; 64 mX5WebView = x5WebView;
64 } 65 }
65 66
66 - public MainJavaScriptInterface(Activity context, X5WebView x5WebView, ModeHandler handler) { 67 + public MainJavaScriptInterface(Activity context, X5WebView x5WebView, ModeHandler handler, AppPresentation presentation) {
67 mContext = context; 68 mContext = context;
68 mX5WebView = x5WebView; 69 mX5WebView = x5WebView;
69 this.handler = handler; 70 this.handler = handler;
  71 + this.presentation = presentation;
70 } 72 }
71 73
72 /** 74 /**
@@ -244,6 +246,9 @@ public class MainJavaScriptInterface { @@ -244,6 +246,9 @@ public class MainJavaScriptInterface {
244 } 246 }
245 247
246 Tool.startOtherApp(mContext, packageName); 248 Tool.startOtherApp(mContext, packageName);
  249 + if (presentation != null) {
  250 + presentation.dismiss();
  251 + }
247 } 252 }
248 253
249 254
@@ -111,7 +111,7 @@ public final class AiDetailActivity extends AppActivity @@ -111,7 +111,7 @@ public final class AiDetailActivity extends AppActivity
111 mControlMode = findViewById(R.id.control_mode); 111 mControlMode = findViewById(R.id.control_mode);
112 mControlBack.setVisibility(View.VISIBLE); 112 mControlBack.setVisibility(View.VISIBLE);
113 mControlChange.setVisibility(View.GONE); 113 mControlChange.setVisibility(View.GONE);
114 - mControlMode.setVisibility(View.VISIBLE); 114 + mControlMode.setVisibility(View.GONE);
115 mControlLine = findViewById(R.id.control_line); 115 mControlLine = findViewById(R.id.control_line);
116 mControlBack.setOnClickListener(new View.OnClickListener() { 116 mControlBack.setOnClickListener(new View.OnClickListener() {
117 @Override 117 @Override
@@ -115,7 +115,7 @@ public final class BrowserActivity extends AppActivity @@ -115,7 +115,7 @@ public final class BrowserActivity extends AppActivity
115 mControlMode = findViewById(R.id.control_mode); 115 mControlMode = findViewById(R.id.control_mode);
116 mControlBack.setVisibility(View.VISIBLE); 116 mControlBack.setVisibility(View.VISIBLE);
117 mControlChange.setVisibility(View.VISIBLE); 117 mControlChange.setVisibility(View.VISIBLE);
118 - mControlMode.setVisibility(View.VISIBLE); 118 + mControlMode.setVisibility(View.GONE);
119 mControlLine = findViewById(R.id.control_line); 119 mControlLine = findViewById(R.id.control_line);
120 mControlBack.setOnClickListener(new View.OnClickListener() { 120 mControlBack.setOnClickListener(new View.OnClickListener() {
121 @Override 121 @Override
@@ -190,7 +190,7 @@ public final class BrowserActivity extends AppActivity @@ -190,7 +190,7 @@ public final class BrowserActivity extends AppActivity
190 @Override 190 @Override
191 public boolean dispatchTouchEvent(MotionEvent ev) { 191 public boolean dispatchTouchEvent(MotionEvent ev) {
192 float y = mControlLine.getY(); 192 float y = mControlLine.getY();
193 - if (ev.getY() < y){ 193 + if (ev.getY() < y) {
194 return super.dispatchTouchEvent(ev); 194 return super.dispatchTouchEvent(ev);
195 } 195 }
196 if (presentation != null) { 196 if (presentation != null) {
@@ -230,7 +230,9 @@ public final class BrowserActivity extends AppActivity @@ -230,7 +230,9 @@ public final class BrowserActivity extends AppActivity
230 @Override 230 @Override
231 protected void onDestroy() { 231 protected void onDestroy() {
232 super.onDestroy(); 232 super.onDestroy();
233 - presentation.dismiss(); 233 + if (presentation != null) {
  234 + presentation.dismiss();
  235 + }
234 } 236 }
235 237
236 private class AppBrowserViewClient extends WebViewClient { 238 private class AppBrowserViewClient extends WebViewClient {
@@ -62,7 +62,7 @@ public class BrowserPresentation extends AppPresentation implements StatusAction @@ -62,7 +62,7 @@ public class BrowserPresentation extends AppPresentation implements StatusAction
62 mProgressBar = findViewById(R.id.pb_browser_progress); 62 mProgressBar = findViewById(R.id.pb_browser_progress);
63 mX5WebView = findViewById(R.id.wv_browser_view); 63 mX5WebView = findViewById(R.id.wv_browser_view);
64 mImgView = findViewById(R.id.loadview); 64 mImgView = findViewById(R.id.loadview);
65 - mX5WebView.addJavascriptInterface(new MainJavaScriptInterface(getOwnerActivity(), mX5WebView, handler), "studyMachine"); 65 + mX5WebView.addJavascriptInterface(new MainJavaScriptInterface(getOwnerActivity(), mX5WebView, handler,this), "studyMachine");
66 66
67 GlideApp.with(getOwnerActivity()) 67 GlideApp.with(getOwnerActivity())
68 .asGif() 68 .asGif()
@@ -71,28 +71,19 @@ public class BrowserPresentation extends AppPresentation implements StatusAction @@ -71,28 +71,19 @@ public class BrowserPresentation extends AppPresentation implements StatusAction
71 mX5WebView.setWebViewClient(new AppBrowserViewClient()); 71 mX5WebView.setWebViewClient(new AppBrowserViewClient());
72 mX5WebView.setWebChromeClient(new AppBrowserChromeClient()); 72 mX5WebView.setWebChromeClient(new AppBrowserChromeClient());
73 mX5WebView.loadUrl(url); 73 mX5WebView.loadUrl(url);
74 -// handler.sendEmptyMessage(0);  
75 -// Runnable task = new Runnable() {  
76 -// public void run() {  
77 -// mX5WebView.evaluateJavascript("javascript:answerExist()", new ValueCallback<String>() {  
78 -// @Override  
79 -// public void onReceiveValue(String s) {  
80 -// try {  
81 -// mode = Integer.valueOf(s);  
82 -// } catch (Exception e) {  
83 -// mode = 0;  
84 -// }  
85 -//  
86 -// }  
87 -// });  
88 -//  
89 -// handler.sendEmptyMessage(0);//设置循环时间,此处是5秒  
90 -// handler.postDelayed(this, 100);  
91 -// //需要执行的代码  
92 -// }  
93 -// };  
94 -//  
95 -// handler.post(task); 74 + handler.sendEmptyMessage(0);
  75 + Runnable task = new Runnable() {
  76 + public void run() {
  77 + if ((System.currentTimeMillis() - handler.getModeTime()) > 2000) {
  78 + handler.sendEmptyMessage(0);//设置循环时间,此处是5秒
  79 + }
  80 +
  81 + handler.postDelayed(this, 1000);
  82 + //需要执行的代码
  83 + }
  84 + };
  85 +
  86 + handler.post(task);
96 } 87 }
97 88
98 89
@@ -112,7 +112,7 @@ public class WebPresentation extends AppPresentation implements StatusAction { @@ -112,7 +112,7 @@ public class WebPresentation extends AppPresentation implements StatusAction {
112 mStatusLayout = findViewById(R.id.hl_browser_hint); 112 mStatusLayout = findViewById(R.id.hl_browser_hint);
113 mIvBack = findViewById(R.id.iv_back); 113 mIvBack = findViewById(R.id.iv_back);
114 mX5WebView = findViewById(R.id.wv_browser_view); 114 mX5WebView = findViewById(R.id.wv_browser_view);
115 - MainJavaScriptInterface mainJavaScriptInterface = new MainJavaScriptInterface(getOwnerActivity(), mX5WebView,handler); 115 + MainJavaScriptInterface mainJavaScriptInterface = new MainJavaScriptInterface(getOwnerActivity(), mX5WebView,handler,this);
116 mX5WebView.addJavascriptInterface(mainJavaScriptInterface, "studyMachine"); 116 mX5WebView.addJavascriptInterface(mainJavaScriptInterface, "studyMachine");
117 String currentDateTimeString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US).format(new Date()); 117 String currentDateTimeString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US).format(new Date());
118 mainJavaScriptInterface.setTime(currentDateTimeString); 118 mainJavaScriptInterface.setTime(currentDateTimeString);
@@ -132,27 +132,18 @@ public class WebPresentation extends AppPresentation implements StatusAction { @@ -132,27 +132,18 @@ public class WebPresentation extends AppPresentation implements StatusAction {
132 } 132 }
133 }); 133 });
134 handler.sendEmptyMessage(0); 134 handler.sendEmptyMessage(0);
135 -// Runnable task = new Runnable() {  
136 -// public void run() {  
137 -// mX5WebView.evaluateJavascript("javascript:answerExist()", new ValueCallback<String>() {  
138 -// @Override  
139 -// public void onReceiveValue(String s) {  
140 -// try {  
141 -// mode = Integer.valueOf(s);  
142 -// } catch (Exception e) {  
143 -// mode = 1;  
144 -// }  
145 -//  
146 -// }  
147 -// });  
148 -//  
149 -// handler.sendEmptyMessage(mode);//设置循环时间,此处是5秒  
150 -// handler.postDelayed(this, 1000);  
151 -// //需要执行的代码  
152 -// }  
153 -// };  
154 -//  
155 -// handler.post(task); 135 + Runnable task = new Runnable() {
  136 + public void run() {
  137 + if ((System.currentTimeMillis() - handler.getModeTime()) > 2000) {
  138 + handler.sendEmptyMessage(0);//设置循环时间,此处是5秒
  139 + }
  140 +
  141 + handler.postDelayed(this, 1000);
  142 + //需要执行的代码
  143 + }
  144 + };
  145 +
  146 + handler.post(task);
156 } 147 }
157 148
158 @Subscribe(threadMode = ThreadMode.MAIN) 149 @Subscribe(threadMode = ThreadMode.MAIN)