Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 175ae55c authored by Jim Miller's avatar Jim Miller Committed by Android (Google) Code Review
Browse files

Merge "Update DevicePolicyManager with ability to disable keyguard widgets" into jb-mr1-dev

parents 69042083 b8ec4706
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4179,6 +4179,7 @@ package android.app.admin {
    field public static final android.os.Parcelable.Creator CREATOR;
    field public static final int USES_ENCRYPTED_STORAGE = 7; // 0x7
    field public static final int USES_POLICY_DISABLE_CAMERA = 8; // 0x8
    field public static final int USES_POLICY_DISABLE_KEYGUARD_WIDGETS = 9; // 0x9
    field public static final int USES_POLICY_EXPIRE_PASSWORD = 6; // 0x6
    field public static final int USES_POLICY_FORCE_LOCK = 3; // 0x3
    field public static final int USES_POLICY_LIMIT_PASSWORD = 0; // 0x0
@@ -4214,6 +4215,7 @@ package android.app.admin {
    method public java.util.List<android.content.ComponentName> getActiveAdmins();
    method public boolean getCameraDisabled(android.content.ComponentName);
    method public int getCurrentFailedPasswordAttempts();
    method public int getKeyguardWidgetsDisabled(android.content.ComponentName);
    method public int getMaximumFailedPasswordsForWipe(android.content.ComponentName);
    method public long getMaximumTimeToLock(android.content.ComponentName);
    method public long getPasswordExpiration(android.content.ComponentName);
@@ -4237,6 +4239,7 @@ package android.app.admin {
    method public void removeActiveAdmin(android.content.ComponentName);
    method public boolean resetPassword(java.lang.String, int);
    method public void setCameraDisabled(android.content.ComponentName, boolean);
    method public void setKeyguardWidgetsDisabled(android.content.ComponentName, int);
    method public void setMaximumFailedPasswordsForWipe(android.content.ComponentName, int);
    method public void setMaximumTimeToLock(android.content.ComponentName, long);
    method public void setPasswordExpirationTimeout(android.content.ComponentName, long);
@@ -4260,6 +4263,8 @@ package android.app.admin {
    field public static final int ENCRYPTION_STATUS_UNSUPPORTED = 0; // 0x0
    field public static final java.lang.String EXTRA_ADD_EXPLANATION = "android.app.extra.ADD_EXPLANATION";
    field public static final java.lang.String EXTRA_DEVICE_ADMIN = "android.app.extra.DEVICE_ADMIN";
    field public static final int KEYGUARD_DISABLE_WIDGETS_ALL = 2147483647; // 0x7fffffff
    field public static final int KEYGUARD_DISABLE_WIDGETS_NONE = 0; // 0x0
    field public static final int PASSWORD_QUALITY_ALPHABETIC = 262144; // 0x40000
    field public static final int PASSWORD_QUALITY_ALPHANUMERIC = 327680; // 0x50000
    field public static final int PASSWORD_QUALITY_BIOMETRIC_WEAK = 32768; // 0x8000
+53 −41
Original line number Diff line number Diff line
@@ -138,6 +138,14 @@ public final class DeviceAdminInfo implements Parcelable {
     */
    public static final int USES_POLICY_DISABLE_CAMERA = 8;

    /**
     * A type of policy that this device admin can use: disables use of keyguard widgets.
     *
     * <p>To control this policy, the device admin must have a "disable-keyguard-widgets"
     * tag in the "uses-policies" section of its meta-data.
     */
    public static final int USES_POLICY_DISABLE_KEYGUARD_WIDGETS = 9;

    /** @hide */
    public static class PolicyInfo {
        public final int ident;
@@ -185,6 +193,10 @@ public final class DeviceAdminInfo implements Parcelable {
        sPoliciesDisplayOrder.add(new PolicyInfo(USES_POLICY_DISABLE_CAMERA, "disable-camera",
                com.android.internal.R.string.policylab_disableCamera,
                com.android.internal.R.string.policydesc_disableCamera));
        sPoliciesDisplayOrder.add(new PolicyInfo(
                USES_POLICY_DISABLE_KEYGUARD_WIDGETS, "disable-keyguard-widgets",
                com.android.internal.R.string.policylab_disableKeyguardWidgets,
                com.android.internal.R.string.policydesc_disableKeyguardWidgets));

        for (int i=0; i<sPoliciesDisplayOrder.size(); i++) {
            PolicyInfo pi = sPoliciesDisplayOrder.get(i);
+50 −0
Original line number Diff line number Diff line
@@ -1154,6 +1154,16 @@ public class DevicePolicyManager {
    public static final String ACTION_START_ENCRYPTION
            = "android.app.action.START_ENCRYPTION";

    /**
     * Widgets are enabled in keyguard
     */
    public static final int KEYGUARD_DISABLE_WIDGETS_NONE = 0;

    /**
     * Disable all keyguard widgets
     */
    public static final int KEYGUARD_DISABLE_WIDGETS_ALL = 0x7fffffff;

    /**
     * Called by an application that is administering the device to
     * request that the storage system be encrypted.
@@ -1283,6 +1293,46 @@ public class DevicePolicyManager {
        return false;
    }

    /**
     * Called by an application that is administering the device to disable adding widgets to
     * keyguard.  After setting this, keyguard widgets will be disabled according to the state
     * provided.
     *
     * <p>The calling device admin must have requested
     * {@link DeviceAdminInfo#USES_POLICY_DISABLE_KEYGUARD_WIDGETS} to be able to call
     * this method; if it has not, a security exception will be thrown.
     *
     * @param admin Which {@link DeviceAdminReceiver} this request is associated with.
     * @param which {@link DevicePolicyManager#KEYGUARD_DISABLE_WIDGETS_ALL} or
     * {@link DevicePolicyManager#KEYGUARD_DISABLE_WIDGETS_NONE} (the default).
     */
    public void setKeyguardWidgetsDisabled(ComponentName admin, int which) {
        if (mService != null) {
            try {
                mService.setKeyguardWidgetsDisabled(admin, which);
            } catch (RemoteException e) {
                Log.w(TAG, "Failed talking with device policy service", e);
            }
        }
    }

    /**
     * Determine whether or not widgets have been disabled in keyguard either by the current
     * admin, if specified, or all admins.
     * @param admin The name of the admin component to check, or null to check if any admins
     * have disabled widgets in keyguard.
     */
    public int getKeyguardWidgetsDisabled(ComponentName admin) {
        if (mService != null) {
            try {
                return mService.getKeyguardWidgetsDisabled(admin);
            } catch (RemoteException e) {
                Log.w(TAG, "Failed talking with device policy service", e);
            }
        }
        return KEYGUARD_DISABLE_WIDGETS_NONE;
    }

    /**
     * @hide
     */
+10 −7
Original line number Diff line number Diff line
@@ -82,6 +82,9 @@ interface IDevicePolicyManager {
    void setCameraDisabled(in ComponentName who, boolean disabled);
    boolean getCameraDisabled(in ComponentName who);

    void setKeyguardWidgetsDisabled(in ComponentName who, int which);
    int getKeyguardWidgetsDisabled(in ComponentName who);

    void setActiveAdmin(in ComponentName policyReceiver, boolean refreshing);
    boolean isAdminActive(in ComponentName policyReceiver);
    List<ComponentName> getActiveAdmins();
+2 −0
Original line number Diff line number Diff line
@@ -710,6 +710,7 @@
  <java-symbol type="string" name="policydesc_setGlobalProxy" />
  <java-symbol type="string" name="policydesc_watchLogin" />
  <java-symbol type="string" name="policydesc_wipeData" />
  <java-symbol type="string" name="policydesc_disableKeyguardWidgets" />
  <java-symbol type="string" name="policylab_disableCamera" />
  <java-symbol type="string" name="policylab_encryptedStorage" />
  <java-symbol type="string" name="policylab_expirePassword" />
@@ -719,6 +720,7 @@
  <java-symbol type="string" name="policylab_setGlobalProxy" />
  <java-symbol type="string" name="policylab_watchLogin" />
  <java-symbol type="string" name="policylab_wipeData" />
  <java-symbol type="string" name="policylab_disableKeyguardWidgets" />
  <java-symbol type="string" name="postalTypeCustom" />
  <java-symbol type="string" name="postalTypeHome" />
  <java-symbol type="string" name="postalTypeOther" />
Loading