2021-11-19 17:37:36 -07:00
|
|
|
package me.lucky.wasted
|
|
|
|
|
|
|
|
import android.app.admin.DeviceAdminReceiver
|
2022-01-02 16:33:01 -07:00
|
|
|
import android.content.Context
|
|
|
|
import android.content.Intent
|
|
|
|
import android.os.Build
|
|
|
|
import android.os.UserHandle
|
|
|
|
import androidx.annotation.RequiresApi
|
2021-11-19 17:37:36 -07:00
|
|
|
|
2022-01-02 16:33:01 -07:00
|
|
|
class DeviceAdminReceiver : DeviceAdminReceiver() {
|
|
|
|
|
|
|
|
@RequiresApi(Build.VERSION_CODES.O)
|
|
|
|
override fun onPasswordFailed(context: Context, intent: Intent, user: UserHandle) {
|
|
|
|
super.onPasswordFailed(context, intent, user)
|
|
|
|
onPasswordFailedInternal(context)
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onPasswordFailed(context: Context, intent: Intent) {
|
|
|
|
super.onPasswordFailed(context, intent)
|
|
|
|
onPasswordFailedInternal(context)
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun onPasswordFailedInternal(ctx: Context) {
|
|
|
|
val prefs = Preferences(ctx)
|
|
|
|
if (!prefs.isServiceEnabled || prefs.maxFailedPasswordAttempts == 0) return
|
|
|
|
val admin = DeviceAdminManager(ctx)
|
|
|
|
if (admin.getCurrentFailedPasswordAttempts() >= prefs.maxFailedPasswordAttempts)
|
|
|
|
admin.wipeData()
|
|
|
|
}
|
|
|
|
}
|