diff --git a/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt b/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt index a9402ef..c7f32bc 100755 --- a/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt +++ b/app/src/main/java/io/sixminutes/ridicule/MainActivity.kt @@ -120,7 +120,7 @@ class MainActivity : AppCompatActivity() { configureWindowParams() windowBinding.root.setOnClickListener { if (isActive()) { - viewModel.hideFloatingWindow() + hideFloatingWindow() } } } @@ -133,7 +133,7 @@ class MainActivity : AppCompatActivity() { } /** - * 隐藏悬浮窗 + * 隐藏悬浮窗并回到主窗口 */ private fun hideFloatingWindow() { try { @@ -161,13 +161,19 @@ class MainActivity : AppCompatActivity() { private fun bringMainActivityToFront() { val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager val tasks = activityManager.getRunningTasks(10) // 获取最近的任务列表 + var found = false for (task in tasks) { if (task.topActivity?.packageName == packageName) { // 找到 MainActivity 的任务栈,将其带到前台 activityManager.moveTaskToFront(task.id, ActivityManager.MOVE_TASK_WITH_HOME) + found = true break } } + if (found) + Log.e("MainActivity", "MainActivity found") + else + Log.e("MainActivity", "MainActivity not found") } /** @@ -196,7 +202,9 @@ class MainActivity : AppCompatActivity() { flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS format = android.graphics.PixelFormat.TRANSLUCENT - gravity = android.view.Gravity.TOP or android.view.Gravity.START + gravity = android.view.Gravity.BOTTOM or android.view.Gravity.END // 修改为右下角 + x = 0 // 初始 x 坐标 + y = 0 // 初始 y 坐标 } /** diff --git a/app/src/main/java/io/sixminutes/ridicule/MainViewModel.kt b/app/src/main/java/io/sixminutes/ridicule/MainViewModel.kt index ed7063d..33c34a2 100644 --- a/app/src/main/java/io/sixminutes/ridicule/MainViewModel.kt +++ b/app/src/main/java/io/sixminutes/ridicule/MainViewModel.kt @@ -90,11 +90,6 @@ class MainViewModel(application: Application) : AndroidViewModel(application) { updateState { it.copy(floatingWindowVisible = hasPermission) } } - fun hideFloatingWindow() { - updateState { it.copy(floatingWindowVisible = false) } - removeFloatingView() - } - fun cleanUpResources() { removeFloatingView() } diff --git a/app/src/main/res/layout/floating_window.xml b/app/src/main/res/layout/floating_window.xml index ca067cc..9814a6f 100644 --- a/app/src/main/res/layout/floating_window.xml +++ b/app/src/main/res/layout/floating_window.xml @@ -2,13 +2,14 @@ + android:background="#22000000" + android:layout_gravity="bottom|end"> + android:text="悬浮窗" + android:textSize="18sp" /> \ No newline at end of file