From b00082c73ab52ee7a3aa48a8d59a35d8e66870b8 Mon Sep 17 00:00:00 2001 From: Konstantin Lopyrev Date: Thu, 20 May 2010 16:12:19 -0700 Subject: [PATCH] Fix 2673731: Adding support for password history to the Device Admin Sample App. Change-Id: I1380ff9475c201d3c2ec2ec449b1103c3d55a3a7 --- .../res/layout/device_admin_sample.xml | 22 +++++++++++---- samples/ApiDemos/res/values/strings.xml | 1 + .../android/apis/app/DeviceAdminSample.java | 27 +++++++++++++++++++ 3 files changed, 45 insertions(+), 5 deletions(-) diff --git a/samples/ApiDemos/res/layout/device_admin_sample.xml b/samples/ApiDemos/res/layout/device_admin_sample.xml index 2827c010b..d4f3147a8 100644 --- a/samples/ApiDemos/res/layout/device_admin_sample.xml +++ b/samples/ApiDemos/res/layout/device_admin_sample.xml @@ -62,11 +62,23 @@ - + + + + + + + + diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml index 25f1bf926..67f187867 100644 --- a/samples/ApiDemos/res/values/strings.xml +++ b/samples/ApiDemos/res/values/strings.xml @@ -472,6 +472,7 @@ Disable Admin Password Quality Minimum Length + Password History Length Set Password Password Reset Password diff --git a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java index f7ee2d73c..b62706a63 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java @@ -54,6 +54,7 @@ public class DeviceAdminSample extends DeviceAdminReceiver { static String PREF_PASSWORD_QUALITY = "password_quality"; static String PREF_PASSWORD_LENGTH = "password_length"; + static String PREF_PASSWORD_HISTORY_LENGTH = "password_history_length"; static String PREF_MAX_FAILED_PW = "max_failed_pw"; void showToast(Context context, CharSequence msg) { @@ -119,6 +120,7 @@ public class DeviceAdminSample extends DeviceAdminReceiver { }; Spinner mPasswordQuality; EditText mPasswordLength; + EditText mPasswordHistoryLength; Button mSetPasswordButton; EditText mPassword; @@ -178,6 +180,19 @@ public class DeviceAdminSample extends DeviceAdminReceiver { } } }); + mPasswordHistoryLength = (EditText)findViewById(R.id.password_history_length); + mPasswordHistoryLength.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 { + setPasswordHistoryLength(Integer.parseInt(s.toString())); + } catch (NumberFormatException e) { + } + } + }); mSetPasswordButton = (Button)findViewById(R.id.set_password); mSetPasswordButton.setOnClickListener(mSetPasswordListener); @@ -221,6 +236,7 @@ public class DeviceAdminSample extends DeviceAdminReceiver { mDisableButton.setEnabled(true); mPasswordQuality.setEnabled(true); mPasswordLength.setEnabled(true); + mPasswordHistoryLength.setEnabled(true); mSetPasswordButton.setEnabled(true); mPassword.setEnabled(true); mResetPasswordButton.setEnabled(true); @@ -231,6 +247,7 @@ public class DeviceAdminSample extends DeviceAdminReceiver { mDisableButton.setEnabled(false); mPasswordQuality.setEnabled(false); mPasswordLength.setEnabled(false); + mPasswordHistoryLength.setEnabled(false); mSetPasswordButton.setEnabled(false); mPassword.setEnabled(false); mResetPasswordButton.setEnabled(false); @@ -244,6 +261,7 @@ public class DeviceAdminSample extends DeviceAdminReceiver { final int pwQuality = prefs.getInt(PREF_PASSWORD_QUALITY, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED); final int pwLength = prefs.getInt(PREF_PASSWORD_LENGTH, 0); + final int pwHistoryLength = prefs.getInt(PREF_PASSWORD_HISTORY_LENGTH, 0); final int maxFailedPw = prefs.getInt(PREF_MAX_FAILED_PW, 0); for (int i=0; i