update 优化关闭服务;优化悬浮窗位置

This commit is contained in:
gallonyin
2023-05-29 23:31:39 +08:00
parent e7813b21ba
commit 5f8bc3415b
5 changed files with 41 additions and 7 deletions

View File

@@ -16,6 +16,7 @@ import com.blankj.utilcode.constant.PermissionConstants
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.qmuiteam.qmui.widget.dialog.QMUIDialog import com.qmuiteam.qmui.widget.dialog.QMUIDialog
import org.yameida.worktool.service.PlayNotifyService import org.yameida.worktool.service.PlayNotifyService
import org.yameida.worktool.service.WeworkController
import org.yameida.worktool.service.fastStartActivity import org.yameida.worktool.service.fastStartActivity
import org.yameida.worktool.utils.* import org.yameida.worktool.utils.*
import org.yameida.worktool.utils.capture.MediaProjectionHolder import org.yameida.worktool.utils.capture.MediaProjectionHolder
@@ -152,9 +153,7 @@ class ListenActivity : AppCompatActivity() {
} }
} else { } else {
if (PermissionHelper.isAccessibilitySettingOn()) { if (PermissionHelper.isAccessibilitySettingOn()) {
sw_accessibility.isChecked = true WeworkController.weworkService.disableSelf()
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)
startActivity(intent)
} }
} }
}) })

View File

@@ -18,6 +18,7 @@ import okhttp3.RequestBody
import org.json.JSONObject import org.json.JSONObject
import org.yameida.worktool.Constant import org.yameida.worktool.Constant
import org.yameida.worktool.R import org.yameida.worktool.R
import org.yameida.worktool.service.WeworkController
import org.yameida.worktool.utils.* import org.yameida.worktool.utils.*
@@ -87,8 +88,7 @@ class SettingsActivity : AppCompatActivity() {
bt_open_main.setOnClickListener { bt_open_main.setOnClickListener {
freshOpenMain() freshOpenMain()
if (PermissionHelper.isAccessibilitySettingOn()) { if (PermissionHelper.isAccessibilitySettingOn()) {
val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) WeworkController.weworkService.disableSelf()
startActivity(intent)
} else { } else {
if (Constant.robotId.isBlank()) { if (Constant.robotId.isBlank()) {
ToastUtils.showLong("请先填写并保存链接号~") ToastUtils.showLong("请先填写并保存链接号~")

View File

@@ -29,6 +29,7 @@ class WeworkService : AccessibilityService() {
lateinit var webSocketManager: WebSocketManager lateinit var webSocketManager: WebSocketManager
var currentPackage = "" var currentPackage = ""
var currentClass = "" var currentClass = ""
var currentClassPackage = ""
companion object { companion object {
private var mFileObserver: FileObserver? = null private var mFileObserver: FileObserver? = null
@@ -98,6 +99,7 @@ class WeworkService : AccessibilityService() {
if (className.contains(currentPackage)) { if (className.contains(currentPackage)) {
LogUtils.d("更新当前页面: currentPackage: ${event.packageName} className: ${event.className}") LogUtils.d("更新当前页面: currentPackage: ${event.packageName} className: ${event.className}")
currentClass = className currentClass = className
currentClassPackage = currentPackage
} }
} }

View File

@@ -1323,4 +1323,29 @@ object AccessibilityUtil {
return false return false
} }
/**
* 等待页面消失
* @param clazz 页面Class
* @param timeout 检查超时时间
*/
fun waitForPageMissing(
clazz: String,
timeout: Long = 5000
): Boolean {
val service = WeworkController.weworkService
val startTime = System.currentTimeMillis()
var currentTime = startTime
while (currentTime - startTime <= timeout) {
if (service.currentClass == clazz || service.currentClass.split(".").last() == clazz) {
} else {
Log.v(tag, "pageMissing: $clazz")
return true
}
sleep(SHORT_INTERVAL)
currentTime = System.currentTimeMillis()
}
Log.e(tag, "pageMissing: not found: $clazz current: ${service.currentClass}")
return false
}
} }

View File

@@ -170,7 +170,11 @@ class DefaultFloatService : BaseFloatWindow(), View.OnClickListener {
public override fun leftViewOpened(leftView: View) { public override fun leftViewOpened(leftView: View) {
val layoutParams = leftView.fl_window_measure_left.layoutParams as FrameLayout.LayoutParams val layoutParams = leftView.fl_window_measure_left.layoutParams as FrameLayout.LayoutParams
leftView.fl_window_measure_left.measure(0, 0) leftView.fl_window_measure_left.measure(0, 0)
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
layoutParams.topMargin = params.y - (leftView.fl_window_measure_left.measuredHeight / 2 - leftView.iv_logo_left.measuredHeight / 2)
} else {
layoutParams.topMargin = params.y - BarUtils.getStatusBarHeight() - (leftView.fl_window_measure_left.measuredHeight / 2 - leftView.iv_logo_left.measuredHeight / 2) layoutParams.topMargin = params.y - BarUtils.getStatusBarHeight() - (leftView.fl_window_measure_left.measuredHeight / 2 - leftView.iv_logo_left.measuredHeight / 2)
}
leftView.fl_window_measure_left.layoutParams = layoutParams leftView.fl_window_measure_left.layoutParams = layoutParams
// ToastUtils.showShort("左边的菜单被打开了") // ToastUtils.showShort("左边的菜单被打开了")
} }
@@ -178,7 +182,11 @@ class DefaultFloatService : BaseFloatWindow(), View.OnClickListener {
public override fun rightViewOpened(rightView: View) { public override fun rightViewOpened(rightView: View) {
val layoutParams = rightView.fl_window_measure_right.layoutParams as FrameLayout.LayoutParams val layoutParams = rightView.fl_window_measure_right.layoutParams as FrameLayout.LayoutParams
rightView.fl_window_measure_right.measure(0, 0) rightView.fl_window_measure_right.measure(0, 0)
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
layoutParams.topMargin = params.y - (rightView.fl_window_measure_right.measuredHeight / 2 - rightView.iv_logo_right.measuredHeight / 2)
} else {
layoutParams.topMargin = params.y - BarUtils.getStatusBarHeight() - (rightView.fl_window_measure_right.measuredHeight / 2 - rightView.iv_logo_right.measuredHeight / 2) layoutParams.topMargin = params.y - BarUtils.getStatusBarHeight() - (rightView.fl_window_measure_right.measuredHeight / 2 - rightView.iv_logo_right.measuredHeight / 2)
}
layoutParams.leftMargin = ScreenUtils.getScreenWidth() - rightView.fl_window_measure_right.measuredWidth layoutParams.leftMargin = ScreenUtils.getScreenWidth() - rightView.fl_window_measure_right.measuredWidth
rightView.fl_window_measure_right.layoutParams = layoutParams rightView.fl_window_measure_right.layoutParams = layoutParams
// ToastUtils.showShort("右边的菜单被打开了") // ToastUtils.showShort("右边的菜单被打开了")