diff --git a/app/src/main/java/org/yameida/worktool/Constant.kt b/app/src/main/java/org/yameida/worktool/Constant.kt index 37caee4..d958ece 100644 --- a/app/src/main/java/org/yameida/worktool/Constant.kt +++ b/app/src/main/java/org/yameida/worktool/Constant.kt @@ -7,9 +7,12 @@ object Constant { val AVAILABLE_VERSION = arrayListOf("4.0.2", "4.0.6", "4.0.8", "4.0.10", "4.0.12", "4.0.16", "4.0.18", "4.0.19", "4.0.20", "4.1.0", "4.1.2", "4.1.3", "4.1.6") const val PACKAGE_NAMES = "com.tencent.wework" const val WEWORK_NOTIFY = "wework_notify" - const val LONG_INTERVAL = 5000L - const val CHANGE_PAGE_INTERVAL = 1000L - const val POP_WINDOW_INTERVAL = 500L + const val BASE_LONG_INTERVAL = 5000L + const val BASE_CHANGE_PAGE_INTERVAL = 1000L + const val BASE_POP_WINDOW_INTERVAL = 500L + var LONG_INTERVAL = BASE_LONG_INTERVAL + var CHANGE_PAGE_INTERVAL = BASE_CHANGE_PAGE_INTERVAL + var POP_WINDOW_INTERVAL = BASE_POP_WINDOW_INTERVAL private const val DEFAULT_HOST = "wss://worktool.asrtts.cn" var myName = "" @@ -91,6 +94,9 @@ object Constant { set(value) { SPUtils.getInstance().put("host", value) } + var oldDevice: Boolean + get() = SPUtils.getInstance().getBoolean("oldDevice", false) + set(value) = SPUtils.getInstance().put("oldDevice", value) fun getWsUrl() = "$host/webserver/wework/$robotId" diff --git a/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt b/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt index a960be5..e863f34 100644 --- a/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/SettingsAdvanceActivity.kt @@ -64,6 +64,12 @@ class SettingsAdvanceActivity : AppCompatActivity() { LogUtils.i("sw_auto_publish onCheckedChanged: $isChecked") Constant.autoPublishComment = isChecked }) + sw_old_device.isChecked = Constant.oldDevice + sw_old_device.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView, isChecked -> + LogUtils.i("sw_old_device onCheckedChanged: $isChecked") + Constant.oldDevice = isChecked + updateOldDeviceConfig() + }) ll_corp_param.visibility = if (Constant.customLink) View.VISIBLE else View.GONE rl_username.visibility = if (Constant.customMP) View.VISIBLE else View.GONE rl_qa_url.setOnClickListener { showQaUrlDialog() } @@ -226,4 +232,18 @@ class SettingsAdvanceActivity : AppCompatActivity() { .create(R.style.QMUI_Dialog).show() } + private fun updateOldDeviceConfig() { + if (Constant.oldDevice) { + Constant.LONG_INTERVAL = (Constant.BASE_LONG_INTERVAL * 1.5).toLong() + Constant.CHANGE_PAGE_INTERVAL = (Constant.BASE_CHANGE_PAGE_INTERVAL * 1.5).toLong() + Constant.POP_WINDOW_INTERVAL = (Constant.BASE_POP_WINDOW_INTERVAL * 1.5).toLong() + ToastUtils.showLong("防卡顿模式开启") + } else { + Constant.LONG_INTERVAL = Constant.BASE_LONG_INTERVAL + Constant.CHANGE_PAGE_INTERVAL = Constant.BASE_CHANGE_PAGE_INTERVAL + Constant.POP_WINDOW_INTERVAL = Constant.BASE_POP_WINDOW_INTERVAL + ToastUtils.showLong("防卡顿模式关闭") + } + } + } diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt index d325f77..6edf293 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkLoopImpl.kt @@ -552,7 +552,7 @@ object WeworkLoopImpl { if (tvList.size == 3) { //只查看最近一周内的消息 if (tvList[1].isBlank() || tvList[1].contains("(刚刚)|(分钟前)|(上午)|(下午)|(昨天)|(星期)|(日程)|(会议)|(:)".toRegex())) { - if (tvList[2].contains("(移出了群聊)|(邀请你加入了)|(修改群名为)|(此群为外部群)|(加入了外部群)".toRegex())) { + if (tvList[2].contains("(退出了外部群)|(移出了群聊)|(邀请你加入了)|(修改群名为)|(此群为外部群)|(加入了外部群)".toRegex())) { val interval = System.currentTimeMillis() / 1000 - SPUtils.getInstance("noTipMessage").getLong(tvList[0], 0) if (interval > 3600) { LogUtils.i("发现无提示消息: $tvList") diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt index 4901f8d..2640e6e 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -44,19 +44,32 @@ object WeworkOperationImpl { val successList = arrayListOf() val failList = arrayListOf() for (title in titleList) { + var successFlag = true if (WeworkRoomUtil.intoRoom(title)) { if (sendChatMessage(receivedContent, at = at, atList = atList)) { successList.add(title) LogUtils.d("$title: 发送成功") } else { - LogUtils.d("$title: 发送失败") - failList.add(title) - error("$title: 发送失败 $receivedContent") + successFlag = false } } else { - failList.add(title) - LogUtils.d("$title: 发送失败 进入房间失败") - error("$title: 发送失败 进入房间失败 $receivedContent") + successFlag = false + } + if (!successFlag) { + if (WeworkRoomUtil.intoRoom(title)) { + if (sendChatMessage(receivedContent, at = at, atList = atList)) { + successList.add(title) + LogUtils.d("$title: 发送成功") + } else { + LogUtils.d("$title: 发送失败") + failList.add(title) + error("$title: 发送失败 $receivedContent") + } + } else { + LogUtils.d("$title: 发送失败 进入房间失败") + failList.add(title) + error("$title: 发送失败 进入房间失败 $receivedContent") + } } } if (failList.isNotEmpty()) { diff --git a/app/src/main/res/layout/activity_settings_advance.xml b/app/src/main/res/layout/activity_settings_advance.xml index 373d0ed..6af3e82 100644 --- a/app/src/main/res/layout/activity_settings_advance.xml +++ b/app/src/main/res/layout/activity_settings_advance.xml @@ -188,6 +188,48 @@ + + + + + + + + + + + + +