diff --git a/.gitignore b/.gitignore index dab938d..5807c89 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ /app/debug /app/release /app/cszxy +/app/kz/ diff --git a/app/build.gradle b/app/build.gradle index 4dbca01..716f581 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { // minSdkVersion 26 minSdkVersion 21 targetSdkVersion 25 - versionCode 30100 - versionName "3.1.0" + versionCode 30102 + versionName "3.1.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" ndk { @@ -78,6 +78,7 @@ android { // buildConfigField "String", "APP_NAME", '"家校互通(测试)"' buildConfigField "String", "MP_ID",'"4"' buildConfigField "String", "ENV_NAME",'"qbj"' + buildConfigField "String", "APP_ID",'"602"' } cszxy { @@ -92,6 +93,22 @@ android { buildConfigField "String", "WS_URL", '"wss://oa.educlouddata.com/ws2api/"' buildConfigField "String", "MP_ID",'"2"' buildConfigField "String", "ENV_NAME",'"cszxy"' + buildConfigField "String", "APP_ID",'"602"' + } + + kz { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release + buildConfigField "String", "BASE_URL", '"https://oa.educlouddata.com/api"' + buildConfigField "String", "M_URL", '"https://m.educlouddata.com"' + buildConfigField "String", "OA_URL", '"https://oa.educlouddata.com"' + buildConfigField "String", "APP_NAME", '"一体化平台"' + buildConfigField "String", "MP_APPID", '"wx8f1f33673a8e9de4"' + buildConfigField "String", "WS_URL", '"wss://oa.educlouddata.com/ws2api/"' + buildConfigField "String", "MP_ID",'"101"' + buildConfigField "String", "ENV_NAME",'"kz"' + buildConfigField "String", "APP_ID",'"6021"' } debug { @@ -115,6 +132,7 @@ android { applicationIdSuffix ".live" buildConfigField "String", "MP_ID",'"2"' buildConfigField "String", "ENV_NAME",'"qbj"' + buildConfigField "String", "APP_ID",'"602"' } yzx_test { diff --git a/app/src/main/java/com/yzx/escreen/MainActivity.kt b/app/src/main/java/com/yzx/escreen/MainActivity.kt index df2e767..cc8780c 100644 --- a/app/src/main/java/com/yzx/escreen/MainActivity.kt +++ b/app/src/main/java/com/yzx/escreen/MainActivity.kt @@ -83,7 +83,7 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus val isAutoShowLeave = SPUtils.getInstance().getBoolean("auto_show_leave", true) val isAutoShowChange = SPUtils.getInstance().getBoolean("auto_show_change", true) if (isAutoShowLeave || isAutoShowChange) { - if (!idsLoading) { + if (!idsLoading && NetworkUtils.isConnected()) { idsLoading = true LogUtils.d("获取详情开始--ids", TimeUtils.getNowMills()) mPresenter?.getLeaveShowIds() @@ -108,6 +108,32 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus private var client: WebSocketClient? = null + private val mHeartHandler = Handler() + private val mHeartRunnable = object : Runnable { + override fun run() { + mHeartHandler.removeCallbacks(this) + // 在这里编写定时任务的逻辑 + Log.d("Timer", "定时任务执行") + if (NetworkUtils.isConnected()) { + wsHeart() + } + // 定时任务完成后,再次调度定时任务 + mHeartHandler.postDelayed(this, 10 * 1000) // 10000毫秒后再次执行 + } + } + + private val mWsHandler = Handler() + private val mWsRunnable = object : Runnable { + override fun run() { + mWsHandler.removeCallbacks(this) + // 在这里编写定时任务的逻辑 + Log.d("Timer", "定时任务执行") + if (NetworkUtils.isConnected()) { + initWs() + } + } + } + override fun initView() { if (NetworkUtils.isConnected()) { if (!User.isLogin() && User.getUser().token.isEmpty()) { @@ -201,6 +227,8 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus override fun onDestroy() { super.onDestroy() mTimeHandler.removeCallbacks(timeRunnable) + mHeartHandler.removeCallbacks(mHeartRunnable) + mWsHandler.removeCallbacks(mWsRunnable) if (client?.isOpen == true) { client?.close() } @@ -328,54 +356,52 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus } private fun initWs() { - Thread { - client = - object : WebSocketClient(URI.create(Config.WS_URL), Draft_6455(), null, 10 * 1000) { - override fun onOpen(handshakedata: ServerHandshake?) { - LogUtils.d("WebSocketClient-onOpen", handshakedata) - val user = User.getUser() - val clientInfo = YzxClientInfo() - clientInfo.type = 70 - clientInfo.user_id = user.user_id.toString() - clientInfo.unit_id = user.school_id.toString() - clientInfo.token = user.token - - client?.send(Gson().toJson(clientInfo)) - - } + if (!NetworkUtils.isConnected()) { + LogUtils.d("initWs-无网络") + return + } + LogUtils.d("initWs-有网络") + client = + object : WebSocketClient(URI.create(Config.WS_URL), Draft_6455(), null, 10 * 1000) { + override fun onOpen(handshakedata: ServerHandshake?) { + LogUtils.d("initWs-WebSocketClient-onOpen", handshakedata) + val user = User.getUser() + val clientInfo = YzxClientInfo() + clientInfo.type = 70 + clientInfo.user_id = user.user_id.toString() + clientInfo.unit_id = user.school_id.toString() + clientInfo.token = user.token + + client?.send(Gson().toJson(clientInfo)) - override fun onClose(code: Int, reason: String?, remote: Boolean) { - LogUtils.d("WebSocketClient-onClose", code, reason, remote) - Thread{ - Thread.sleep(60*1000) - initWs() - }.start() - } + } - override fun onMessage(message: String?) { - LogUtils.d("WebSocketClient-onMessage", message) - if (message?.startsWith("ECHO:", true) == false) { - wsMessage(message) - } - } + override fun onClose(code: Int, reason: String?, remote: Boolean) { + LogUtils.d("initWs-WebSocketClient-onClose", code, reason, remote) + mWsHandler.postDelayed(mWsRunnable,60*1000) + } - override fun onError(ex: Exception?) { - LogUtils.d("WebSocketClient-onError", ex) - Thread{ - Thread.sleep(60*1000) - initWs() - }.start() + override fun onMessage(message: String?) { + LogUtils.d("initWs-WebSocketClient-onMessage", message) + if (message?.startsWith("ECHO:", true) == false) { + wsMessage(message) } + } + override fun onError(ex: Exception?) { + LogUtils.d("initWs-WebSocketClient-onError", ex) + mWsHandler.postDelayed(mWsRunnable,60*1000) } - try { - client?.connectBlocking() - wsHeart() - } catch (e: InterruptedException) { - e.printStackTrace() - LogUtils.d("WebSocketClient-catch", e) + } - }.start() + try { + client?.connectBlocking() +// wsHeart() + mHeartHandler.postDelayed(mHeartRunnable, 10 * 1000) + } catch (e: InterruptedException) { + e.printStackTrace() + LogUtils.d("initWs-WebSocketClient-catch", e) + } } private fun wsMessage(msg: String) { @@ -384,7 +410,7 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus val res = gson.fromJson(msg, resultType) if (res.data.student_id > 0) { if (isAutoShowLeave || isAutoShowChange) { - LogUtils.d("WebSocketClient--wsMessage",res) + LogUtils.d("WebSocketClient--wsMessage", res) EventBus.getDefault().post(EventLeaveIds("${res.data.student_id}")) // mPresenter?.getLeaveShowIds("${res.data.student_id}") } @@ -394,35 +420,40 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus //请假消息 @Subscribe(threadMode = ThreadMode.MAIN) fun onMessageEvent(detail: EventLeaveIds) { - LogUtils.d("WebSocketClient--onMessageEvent",detail) + LogUtils.d("WebSocketClient--onMessageEvent", detail) mPresenter?.getLeaveShowIds("${detail.ids}") } //请假消息 @Subscribe(threadMode = ThreadMode.MAIN) fun onMessageEvent(detail: UserVersionCheck) { - LogUtils.d("WebSocketClient--onMessageEvent",detail) + LogUtils.d("WebSocketClient--onMessageEvent", detail) checkVersion(true) } - private fun wsHeart() { - Thread{ - Thread.sleep(10 * 1000) + if (NetworkUtils.isConnected()) { + LogUtils.d("initWs-wsHeart-有网络") if (client?.isOpen == true) { client?.apply { send(Gson().toJson(YzxHeart().getYzxHeader())) } } else { - if (client != null) { - client?.reconnectBlocking() - } else { - initWs() + try { + if (client != null) { + client?.reconnectBlocking() + } else { + initWs() + } + } catch (e: Exception) { + LogUtils.d("initWs-wsHeart-有网络,异常", e) } } - wsHeart() - }.start() +// wsHeart() + } else { + LogUtils.d("initWs-wsHeart-无网络") + } } private fun showNetworkError() { @@ -638,6 +669,8 @@ class MainActivity : BaseActivity(), NetworkUtils.OnNetworkStatus super.onStop() EventBus.getDefault().unregister(this) } + + } class HomePagerAdapter(act: AppCompatActivity) : FragmentStateAdapter(act) { diff --git a/app/src/main/java/com/yzx/escreen/config/Config.kt b/app/src/main/java/com/yzx/escreen/config/Config.kt index b38dda7..7b3cd35 100644 --- a/app/src/main/java/com/yzx/escreen/config/Config.kt +++ b/app/src/main/java/com/yzx/escreen/config/Config.kt @@ -12,7 +12,7 @@ object Config { var MP_APPID = BuildConfig.MP_APPID var MP_ID = BuildConfig.MP_ID var ENV_NAME = BuildConfig.ENV_NAME - val APP_ID = 602 + val APP_ID = BuildConfig.APP_ID fun getEvn(): YzxEnv { when (ENV_NAME) { diff --git a/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt b/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt index ad9b861..263c91f 100644 --- a/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt +++ b/app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt @@ -417,7 +417,9 @@ class HomeFragment : BaseFragment(), HomeView, return } isLoading = true - mPresenter?.getLeaveList(mPager.page_no, keyword, status, add_time) + if (NetworkUtils.isConnected()) { + mPresenter?.getLeaveList(mPager.page_no, keyword, status, add_time) + } } private fun pre() { diff --git a/app/src/main/java/com/yzx/escreen/fragment/VisitorFragment.kt b/app/src/main/java/com/yzx/escreen/fragment/VisitorFragment.kt index 193dc87..a77ee9a 100644 --- a/app/src/main/java/com/yzx/escreen/fragment/VisitorFragment.kt +++ b/app/src/main/java/com/yzx/escreen/fragment/VisitorFragment.kt @@ -269,7 +269,9 @@ class VisitorFragment : BaseFragment(), VisitorView, return } isLoading = true - mPresenter?.getList(mPager.page_no, keyword, status) + if (NetworkUtils.isConnected()) { + mPresenter?.getList(mPager.page_no, keyword, status) + } } private fun pre() {