leiyun 2 anos atrás
pai
commit
3046c3a998
6 arquivos alterados com 115 adições e 59 exclusões
  1. +1
    -0
      .gitignore
  2. +20
    -2
      app/build.gradle
  3. +87
    -54
      app/src/main/java/com/yzx/escreen/MainActivity.kt
  4. +1
    -1
      app/src/main/java/com/yzx/escreen/config/Config.kt
  5. +3
    -1
      app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt
  6. +3
    -1
      app/src/main/java/com/yzx/escreen/fragment/VisitorFragment.kt

+ 1
- 0
.gitignore Ver arquivo

@@ -15,3 +15,4 @@
/app/debug
/app/release
/app/cszxy
/app/kz/

+ 20
- 2
app/build.gradle Ver arquivo

@@ -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 {


+ 87
- 54
app/src/main/java/com/yzx/escreen/MainActivity.kt Ver arquivo

@@ -83,7 +83,7 @@ class MainActivity : BaseActivity<MainPresenter>(), 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<MainPresenter>(), 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<MainPresenter>(), 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<MainPresenter>(), 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<MainPresenter>(), NetworkUtils.OnNetworkStatus
val res = gson.fromJson<YzxClientInfo>(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<MainPresenter>(), 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<MainPresenter>(), NetworkUtils.OnNetworkStatus
super.onStop()
EventBus.getDefault().unregister(this)
}


}

class HomePagerAdapter(act: AppCompatActivity) : FragmentStateAdapter(act) {


+ 1
- 1
app/src/main/java/com/yzx/escreen/config/Config.kt Ver arquivo

@@ -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) {


+ 3
- 1
app/src/main/java/com/yzx/escreen/fragment/HomeFragment.kt Ver arquivo

@@ -417,7 +417,9 @@ class HomeFragment : BaseFragment<HomePresenter>(), 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() {


+ 3
- 1
app/src/main/java/com/yzx/escreen/fragment/VisitorFragment.kt Ver arquivo

@@ -269,7 +269,9 @@ class VisitorFragment : BaseFragment<VisitorPresenter>(), VisitorView,
return
}
isLoading = true
mPresenter?.getList(mPager.page_no, keyword, status)
if (NetworkUtils.isConnected()) {
mPresenter?.getList(mPager.page_no, keyword, status)
}
}

private fun pre() {


Carregando…
Cancelar
Salvar