package com.jttools.datacontrol.admin import android.app.admin.DevicePolicyManager import android.content.ComponentName import android.content.Context import android.content.Intent /** Protection anti-désinstallation : tant que DataControl est administrateur de l'appareil, Android refuse de le désinstaller. */ object AdminController { fun component(context: Context) = ComponentName(context, AppDeviceAdminReceiver::class.java) fun isActive(context: Context): Boolean = context.getSystemService(DevicePolicyManager::class.java).isAdminActive(component(context)) fun requestIntent(context: Context): Intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN) .putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, component(context)) .putExtra( DevicePolicyManager.EXTRA_ADD_EXPLANATION, "Empêche la désinstallation de DataControl sans mot de passe." ) /** À n'appeler qu'après vérification du mot de passe. */ fun deactivate(context: Context) { context.getSystemService(DevicePolicyManager::class.java).removeActiveAdmin(component(context)) } }