diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml index 8db2c966f..46ef1a255 100644 --- a/samples/ApiDemos/res/values/strings.xml +++ b/samples/ApiDemos/res/values/strings.xml @@ -743,10 +743,19 @@ Disable all device cameras Disable keyguard widgets Disable keyguard secure camera + Disable keyguard notifications + Disable keyguard unredacted notifications + Disable keyguard Trust Agents Keyguard widgets disabled Keyguard widgets enabled Keyguard secure camera disabled Keyguard secure camera enabled + Keyguard notifications disabled + Keyguard notifications enabled + Keyguard unredacted notifications disabled + Keyguard unredacted notifications enabled + Keyguard Trust Agents disabled + Keyguard Trust Agents enabled Device cameras disabled Device cameras enabled Password controls diff --git a/samples/ApiDemos/res/xml/device_admin_general.xml b/samples/ApiDemos/res/xml/device_admin_general.xml index 3a1dd452d..cfd0048be 100644 --- a/samples/ApiDemos/res/xml/device_admin_general.xml +++ b/samples/ApiDemos/res/xml/device_admin_general.xml @@ -43,6 +43,18 @@ android:key="key_disable_keyguard_secure_camera" android:title="@string/disable_keyguard_secure_camera" /> + + + + + + 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 db501859e..a27dcdf90 100644 --- a/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java +++ b/samples/ApiDemos/src/com/example/android/apis/app/DeviceAdminSample.java @@ -68,6 +68,9 @@ public class DeviceAdminSample extends PreferenceActivity { // The following keys are used to find each preference item private static final String KEY_ENABLE_ADMIN = "key_enable_admin"; private static final String KEY_DISABLE_CAMERA = "key_disable_camera"; + private static final String KEY_DISABLE_NOTIFICATIONS = "key_disable_notifications"; + private static final String KEY_DISABLE_UNREDACTED = "key_disable_unredacted"; + private static final String KEY_DISABLE_TRUST_AGENTS = "key_disable_trust_agents"; private static final String KEY_DISABLE_KEYGUARD_WIDGETS = "key_disable_keyguard_widgets"; private static final String KEY_DISABLE_KEYGUARD_SECURE_CAMERA = "key_disable_keyguard_secure_camera"; @@ -128,6 +131,11 @@ public class DeviceAdminSample extends PreferenceActivity { return mDPM.isAdminActive(mDeviceAdminSample); } + @Override + protected boolean isValidFragment(String fragmentName) { + return GeneralFragment.class.getName().equals(fragmentName); + } + /** * Common fragment code for DevicePolicyManager access. Provides two shared elements: * @@ -250,6 +258,9 @@ public class DeviceAdminSample extends PreferenceActivity { private CheckBoxPreference mDisableCameraCheckbox; private CheckBoxPreference mDisableKeyguardWidgetsCheckbox; private CheckBoxPreference mDisableKeyguardSecureCameraCheckbox; + private CheckBoxPreference mDisableKeyguardNotificationCheckbox; + private CheckBoxPreference mDisableKeyguardTrustAgentCheckbox; + private CheckBoxPreference mDisableKeyguardUnredactedCheckbox; @Override public void onCreate(Bundle savedInstanceState) { @@ -257,14 +268,29 @@ public class DeviceAdminSample extends PreferenceActivity { addPreferencesFromResource(R.xml.device_admin_general); mEnableCheckbox = (CheckBoxPreference) findPreference(KEY_ENABLE_ADMIN); mEnableCheckbox.setOnPreferenceChangeListener(this); + mDisableCameraCheckbox = (CheckBoxPreference) findPreference(KEY_DISABLE_CAMERA); mDisableCameraCheckbox.setOnPreferenceChangeListener(this); + mDisableKeyguardWidgetsCheckbox = (CheckBoxPreference) findPreference(KEY_DISABLE_KEYGUARD_WIDGETS); mDisableKeyguardWidgetsCheckbox.setOnPreferenceChangeListener(this); + mDisableKeyguardSecureCameraCheckbox = (CheckBoxPreference) findPreference(KEY_DISABLE_KEYGUARD_SECURE_CAMERA); mDisableKeyguardSecureCameraCheckbox.setOnPreferenceChangeListener(this); + + mDisableKeyguardNotificationCheckbox = + (CheckBoxPreference) findPreference(KEY_DISABLE_NOTIFICATIONS); + mDisableKeyguardNotificationCheckbox.setOnPreferenceChangeListener(this); + + mDisableKeyguardUnredactedCheckbox = + (CheckBoxPreference) findPreference(KEY_DISABLE_UNREDACTED); + mDisableKeyguardUnredactedCheckbox.setOnPreferenceChangeListener(this); + + mDisableKeyguardTrustAgentCheckbox = + (CheckBoxPreference) findPreference(KEY_DISABLE_TRUST_AGENTS); + mDisableKeyguardTrustAgentCheckbox.setOnPreferenceChangeListener(this); } // At onResume time, reload UI with current values as required @@ -287,6 +313,12 @@ public class DeviceAdminSample extends PreferenceActivity { DevicePolicyManager.KEYGUARD_DISABLE_WIDGETS_ALL : 0; flags |= mDisableKeyguardSecureCameraCheckbox.isChecked() ? DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA : 0; + flags |= mDisableKeyguardNotificationCheckbox.isChecked() ? + DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS : 0; + flags |= mDisableKeyguardUnredactedCheckbox.isChecked() ? + DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS : 0; + flags |= mDisableKeyguardTrustAgentCheckbox.isChecked() ? + DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS : 0; return flags; } @@ -317,7 +349,10 @@ public class DeviceAdminSample extends PreferenceActivity { mDPM.setCameraDisabled(mDeviceAdminSample, value); reloadSummaries(); } else if (preference == mDisableKeyguardWidgetsCheckbox - || preference == mDisableKeyguardSecureCameraCheckbox) { + || preference == mDisableKeyguardSecureCameraCheckbox + || preference == mDisableKeyguardNotificationCheckbox + || preference == mDisableKeyguardUnredactedCheckbox + || preference == mDisableKeyguardTrustAgentCheckbox) { mDPM.setKeyguardDisabledFeatures(mDeviceAdminSample, createKeyguardDisabledFlag()); reloadSummaries(); } @@ -342,6 +377,24 @@ public class DeviceAdminSample extends PreferenceActivity { (disabled & DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA) != 0 ? R.string.keyguard_secure_camera_disabled : R.string.keyguard_secure_camera_enabled); mDisableKeyguardSecureCameraCheckbox.setSummary(keyguardSecureCameraSummary); + + String keyguardSecureNotificationsSummary = getString( + (disabled & DevicePolicyManager.KEYGUARD_DISABLE_SECURE_NOTIFICATIONS) != 0 ? + R.string.keyguard_secure_notifications_disabled + : R.string.keyguard_secure_notifications_enabled); + mDisableKeyguardNotificationCheckbox.setSummary(keyguardSecureNotificationsSummary); + + String keyguardUnredactedSummary = getString( + (disabled & DevicePolicyManager.KEYGUARD_DISABLE_UNREDACTED_NOTIFICATIONS) != 0 + ? R.string.keyguard_unredacted_notifications_disabled + : R.string.keyguard_unredacted_notifications_enabled); + mDisableKeyguardUnredactedCheckbox.setSummary(keyguardUnredactedSummary); + + String keyguardEnableTrustAgentSummary = getString( + (disabled & DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS) != 0 ? + R.string.keyguard_trust_agents_disabled + : R.string.keyguard_trust_agents_enabled); + mDisableKeyguardTrustAgentCheckbox.setSummary(keyguardEnableTrustAgentSummary); } /** Updates the device capabilities area (dis/enabling) as the admin is (de)activated */ @@ -349,6 +402,9 @@ public class DeviceAdminSample extends PreferenceActivity { mDisableCameraCheckbox.setEnabled(enabled); mDisableKeyguardWidgetsCheckbox.setEnabled(enabled); mDisableKeyguardSecureCameraCheckbox.setEnabled(enabled); + mDisableKeyguardNotificationCheckbox.setEnabled(enabled); + mDisableKeyguardUnredactedCheckbox.setEnabled(enabled); + mDisableKeyguardTrustAgentCheckbox.setEnabled(enabled); } }