package com.jttools.datacontrol.admin import android.app.admin.DeviceAdminReceiver import android.content.Context import android.content.Intent import com.jttools.datacontrol.remote.RemoteSync import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import javax.inject.Inject @AndroidEntryPoint class AppDeviceAdminReceiver : DeviceAdminReceiver() { @Inject lateinit var remoteSync: RemoteSync override fun onDisableRequested(context: Context, intent: Intent): CharSequence = "Désactiver la protection permet de désinstaller DataControl. Cette action est signalée à FamilyControl." override fun onDisabled(context: Context, intent: Intent) { // Prévient le parent : la protection anti-désinstallation vient d'être retirée. // goAsync : sans lui, le processus peut être arrêté avant que l'alerte soit partie. val pending = goAsync() CoroutineScope(Dispatchers.IO).launch { try { remoteSync.pushEvent("admin_disabled", "Protection anti-désinstallation désactivée") } finally { pending.finish() } } } }