| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package com.sduduzog.slimlauncher.utils
- import android.content.BroadcastReceiver
- import android.content.Context
- import android.content.Intent
- import android.content.IntentFilter
- class HomeWatcher(private val context: Context) {
- private var listener: OnHomePressedListener? = null
- private var receiver: InnerReceiver? = null
- private val filter = IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)
- fun setOnHomePressedListener(listener: OnHomePressedListener) {
- this.listener = listener
- receiver = InnerReceiver()
- }
- fun startWatch() {
- receiver?.let {
- context.registerReceiver(it, filter)
- }
- }
- fun stopWatch() {
- receiver?.let {
- context.unregisterReceiver(it)
- }
- }
- inner class InnerReceiver : BroadcastReceiver() {
- override fun onReceive(context: Context?, intent: Intent?) {
- if (intent == null) return
- if (intent.action != Intent.ACTION_CLOSE_SYSTEM_DIALOGS) return
- val reason = intent.getStringExtra("reason") ?: return
- if (reason != "homekey") return
- listener?.onHomePressed()
- }
- }
- interface OnHomePressedListener {
- fun onHomePressed()
- }
- }
|