diff --git a/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt b/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt index 11dfa4aa447492ed97e757c6016801e69efd3bb7..c9fdec61ae826a730aa4819541dcfc20c100a5e1 100644 --- a/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt +++ b/app/src/main/java/com/duolebo/blyrobot/MainActivity.kt @@ -38,6 +38,8 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { private lateinit var appInfoAdapter: AppConfigAdapter private lateinit var refreshTimer: Timer private lateinit var appInfoData: AppInfoData + private var startSet = false + private var isStart = false private var apkPackageInfo: List? = null @@ -65,7 +67,14 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { startRobotService() startBtn.setOnClickListener{ - toggle() + if (isStart) { + stop() + } + else { + start() + } + + isStart = !isStart } startBtn.requestFocus() @@ -79,8 +88,24 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { } - private fun toggle() { - // 暂时测试用 + private fun start() { + startBtn.isEnabled = false + if (TaskManager.instance.tasks.size > 0) { + startRobot() + + startBtn.postDelayed({ + startBtn.isEnabled = true + startBtn.text = "停止" + refreshBtn.isEnabled = false + }, 2000) + } + else { + startSet = true + requestAppList() + } + } + + private fun stop() { if (TaskManager.instance.isRunning) { stopRobot() startBtn.isEnabled = false @@ -90,15 +115,12 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { refreshBtn.isEnabled = true }, 3000) } - else { - startRobot() - startBtn.isEnabled = false - startBtn.postDelayed({ - startBtn.isEnabled = true - startBtn.text = "停止" - refreshBtn.isEnabled = false - }, 2000) - } + } + + private fun resetStartBtn() { + startBtn.isEnabled = true + startBtn.text = "开始" + refreshBtn.isEnabled = true } private fun requestAppList() { @@ -151,10 +173,18 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { override fun onProtocolFailed(protocol: IProtocol?) { Toast.makeText(this, "获取应用列表信息出错", Toast.LENGTH_SHORT).show() + if (startSet) { + resetStartBtn() + startSet = false + } } override fun onHttpFailed(protocol: IProtocol?) { Toast.makeText(this, "网络错误", Toast.LENGTH_SHORT).show() + if (startSet) { + resetStartBtn() + startSet = false + } } override fun onProtocolSucceed(protocol: IProtocol?) { @@ -172,6 +202,19 @@ class MainActivity : AppCompatActivity(), IAppBaseCallback { } } } + + if (startSet) { + startBtn.isEnabled = true + if (TaskManager.instance.tasks.size > 0) { + startRobot() + startSet = false + startBtn.text = "停止" + refreshBtn.isEnabled = false + } + else { + Toast.makeText(this, "没有任务可以执行", Toast.LENGTH_SHORT).show() + } + } } } diff --git a/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt b/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt index 5ba5c826b5c950b8b4b9231fdaac6de1da56bbd4..6f599c9c749ca466ef29a1acaa706d34b0962743 100644 --- a/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt +++ b/app/src/main/java/com/duolebo/blyrobot/util/AdbUtil.kt @@ -19,9 +19,11 @@ object AdbUtil { // 通过id判断是否有root权限,部分盒子是没有su的 fun checkRootPermission(): Boolean { var proc = getShellProc(ROOT_SHELL) ?: return false - var commands = ArrayList() + Log.i(TAG, "get root proc success!") + val commands = ArrayList() commands.add("id -u") - var result = this.sendCommands(commands, proc) + val result = this.sendCommands(commands, proc) + Log.i(TAG, "check permission error ${result.errorLines} and message ${result.successLines}") if (isRoot(result)) { return true } @@ -58,6 +60,10 @@ object AdbUtil { e.printStackTrace() } + if (proc == null) { + Log.i(TAG, "get root proc failed") + } + return proc }