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
|
2022-01-06 21:33:13 -07:00
|
|
|
import android.widget.Toast
|
2022-01-02 16:33:01 -07:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
2022-01-06 21:33:13 -07:00
|
|
|
override fun onDisabled(context: Context, intent: Intent) {
|
|
|
|
super.onDisabled(context, intent)
|
|
|
|
if (Preferences(context).isServiceEnabled) {
|
|
|
|
Toast.makeText(
|
|
|
|
context,
|
|
|
|
context.getString(R.string.service_unavailable_popup),
|
|
|
|
Toast.LENGTH_SHORT,
|
|
|
|
).show()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-02 16:33:01 -07:00
|
|
|
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()
|
|
|
|
}
|
|
|
|
}
|