From d51a50c7662c43e86224f71b7f02d6ecc9d5fbf1 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 26 Jan 2010 18:04:54 -0800 Subject: [PATCH] More device admin work: - Example warning message when disabling. - UI to set maximum failed password attempts. --- .../res/layout/sample_device_admin.xml | 12 +++++++ samples/ApiDemos/res/values/strings.xml | 1 + .../android/apis/app/SampleDeviceAdmin.java | 35 +++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/samples/ApiDemos/res/layout/sample_device_admin.xml b/samples/ApiDemos/res/layout/sample_device_admin.xml index f357eaf89..9e1d1774f 100644 --- a/samples/ApiDemos/res/layout/sample_device_admin.xml +++ b/samples/ApiDemos/res/layout/sample_device_admin.xml @@ -87,6 +87,18 @@ + + + + + + + diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml index 0ccf46638..a70b56046 100644 --- a/samples/ApiDemos/res/values/strings.xml +++ b/samples/ApiDemos/res/values/strings.xml @@ -453,6 +453,7 @@ Set Password Password Reset Password + Password Attempts Wipe Data Force Lock Wipe Data diff --git a/samples/ApiDemos/src/com/example/android/apis/app/SampleDeviceAdmin.java b/samples/ApiDemos/src/com/example/android/apis/app/SampleDeviceAdmin.java index 819d85bf0..62ceb43c8 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/SampleDeviceAdmin.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/SampleDeviceAdmin.java @@ -53,6 +53,7 @@ public class SampleDeviceAdmin extends DeviceAdmin { static String PREF_PASSWORD_MODE = "password_mode"; static String PREF_PASSWORD_LENGTH = "password_length"; + static String PREF_MAX_FAILED_PW = "max_failed_pw"; void showToast(Context context, CharSequence msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); @@ -63,6 +64,11 @@ public class SampleDeviceAdmin extends DeviceAdmin { showToast(context, "Sample Device Admin: enabled"); } + @Override + public CharSequence onDisableRequested(Context context, Intent intent) { + return "This is an optional message to warn the user about disabling."; + } + @Override public void onDisabled(Context context, Intent intent) { showToast(context, "Sample Device Admin: disabled"); @@ -115,6 +121,8 @@ public class SampleDeviceAdmin extends DeviceAdmin { EditText mPassword; Button mResetPasswordButton; + EditText mMaxFailedPw; + Button mForceLockButton; Button mWipeDataButton; @@ -169,6 +177,20 @@ public class SampleDeviceAdmin extends DeviceAdmin { mResetPasswordButton = (Button)findViewById(R.id.reset_password); mResetPasswordButton.setOnClickListener(mResetPasswordListener); + mMaxFailedPw = (EditText)findViewById(R.id.max_failed_pw); + mMaxFailedPw.addTextChangedListener(new TextWatcher() { + public void afterTextChanged(Editable s) { + } + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + public void onTextChanged(CharSequence s, int start, int before, int count) { + try { + setMaxFailedPw(Integer.parseInt(s.toString())); + } catch (NumberFormatException e) { + } + } + }); + mForceLockButton = (Button)findViewById(R.id.force_lock); mForceLockButton.setOnClickListener(mForceLockListener); mWipeDataButton = (Button)findViewById(R.id.wipe_data); @@ -205,12 +227,15 @@ public class SampleDeviceAdmin extends DeviceAdmin { final int pwMode = prefs.getInt(PREF_PASSWORD_MODE, DevicePolicyManager.PASSWORD_MODE_UNSPECIFIED); final int pwLength = prefs.getInt(PREF_PASSWORD_LENGTH, 0); + final int maxFailedPw = prefs.getInt(PREF_MAX_FAILED_PW, 0); + for (int i=0; i