-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
BootCompleteReceiver.kt
45 lines (38 loc) · 1.57 KB
/
BootCompleteReceiver.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.fsck.k9.controller.push
import android.content.BroadcastReceiver
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED
import android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED
import android.content.pm.PackageManager.DONT_KILL_APP
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import timber.log.Timber
class BootCompleteReceiver : BroadcastReceiver(), KoinComponent {
private val pushController: PushController by inject()
override fun onReceive(context: Context, intent: Intent?) {
Timber.v("BootCompleteReceiver.onReceive()")
pushController.init()
}
}
class BootCompleteManager(context: Context) {
private val packageManager = context.packageManager
private val componentName = ComponentName(context, BootCompleteReceiver::class.java)
fun enableReceiver() {
Timber.v("Enable BootCompleteReceiver")
try {
packageManager.setComponentEnabledSetting(componentName, COMPONENT_ENABLED_STATE_ENABLED, DONT_KILL_APP)
} catch (e: Exception) {
Timber.e(e, "Error enabling BootCompleteReceiver")
}
}
fun disableReceiver() {
Timber.v("Disable BootCompleteReceiver")
try {
packageManager.setComponentEnabledSetting(componentName, COMPONENT_ENABLED_STATE_DISABLED, DONT_KILL_APP)
} catch (e: Exception) {
Timber.e(e, "Error disabling BootCompleteReceiver")
}
}
}