From 8b7991c1c6b8bd73d4bd77813dbfd746150b6a23 Mon Sep 17 00:00:00 2001 From: Nicolas Prevot Date: Thu, 12 Nov 2015 17:40:12 +0000 Subject: [PATCH] Add an extra for the logo uri to DevicePolicyManager. Define an extra apps can use to pass an image that will be shown during the provisioning. BUG:25660734 Change-Id: I63674d56c7135a6106c4b32f9d45fa9377368e30 --- api/current.txt | 1 + api/system-current.txt | 1 + .../app/admin/DevicePolicyManager.java | 25 +++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/api/current.txt b/api/current.txt index e17bf2865cb6a..846af9c848ece 100644 --- a/api/current.txt +++ b/api/current.txt @@ -5863,6 +5863,7 @@ package android.app.admin { field public static final java.lang.String EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED = "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED"; field public static final java.lang.String EXTRA_PROVISIONING_LOCALE = "android.app.extra.PROVISIONING_LOCALE"; field public static final java.lang.String EXTRA_PROVISIONING_LOCAL_TIME = "android.app.extra.PROVISIONING_LOCAL_TIME"; + field public static final java.lang.String EXTRA_PROVISIONING_LOGO_URI = "android.app.extra.PROVISIONING_LOGO_URI"; field public static final java.lang.String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION"; field public static final java.lang.String EXTRA_PROVISIONING_TIME_ZONE = "android.app.extra.PROVISIONING_TIME_ZONE"; field public static final java.lang.String EXTRA_PROVISIONING_WIFI_HIDDEN = "android.app.extra.PROVISIONING_WIFI_HIDDEN"; diff --git a/api/system-current.txt b/api/system-current.txt index d8b9b6f77313b..38845bb5f84f0 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5997,6 +5997,7 @@ package android.app.admin { field public static final java.lang.String EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED = "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED"; field public static final java.lang.String EXTRA_PROVISIONING_LOCALE = "android.app.extra.PROVISIONING_LOCALE"; field public static final java.lang.String EXTRA_PROVISIONING_LOCAL_TIME = "android.app.extra.PROVISIONING_LOCAL_TIME"; + field public static final java.lang.String EXTRA_PROVISIONING_LOGO_URI = "android.app.extra.PROVISIONING_LOGO_URI"; field public static final java.lang.String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION"; field public static final java.lang.String EXTRA_PROVISIONING_TIME_ZONE = "android.app.extra.PROVISIONING_TIME_ZONE"; field public static final java.lang.String EXTRA_PROVISIONING_WIFI_HIDDEN = "android.app.extra.PROVISIONING_WIFI_HIDDEN"; diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index faed7a01f6f54..7634d89c16cbb 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -31,6 +31,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.Bitmap; import android.net.ProxyInfo; +import android.net.Uri; import android.os.Bundle; import android.os.PersistableBundle; import android.os.Process; @@ -130,6 +131,7 @@ public class DevicePolicyManager { * As of {@link android.os.Build.VERSION_CODES#M}, it should contain the extra * {@link #EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME} instead, although specifying only * {@link #EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME} is still supported. + * This intent may also contain the extra {@link #EXTRA_PROVISIONING_LOGO_URI}. * *

When managed provisioning has completed, broadcasts are sent to the application specified * in the provisioning intent. The @@ -196,6 +198,7 @@ public class DevicePolicyManager { *

  • {@link #EXTRA_PROVISIONING_SKIP_ENCRYPTION}, optional
  • *
  • {@link #EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED}, optional
  • *
  • {@link #EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE}, optional
  • + *
  • {@link #EXTRA_PROVISIONING_LOGO_URI}, optional
  • * * *

    When device owner provisioning has completed, an intent of the type @@ -572,6 +575,28 @@ public class DevicePolicyManager { public static final String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION"; + /** + * A {@link Uri} extra pointing to a logo image. This image will be shown during the + * provisioning. If this extra is not passed, a default image will be shown. + *

    The following URI schemes are accepted:
    + * + * + *

    It is the responsability of the caller to provide an image with a reasonable + * pixed density for the device. + * + *

    If a content: URI is passed, the intent should have the flag + * {@link Intent#FLAG_GRANT_READ_URI_PERMISSION} and the uri should be added to the + * {@link android.content.ClipData} of the intent too. + * + *

    Use in an intent with action {@link #ACTION_PROVISION_MANAGED_PROFILE} or + * {@link #ACTION_PROVISION_MANAGED_DEVICE} + */ + public static final String EXTRA_PROVISIONING_LOGO_URI = + "android.app.extra.PROVISIONING_LOGO_URI"; + /** * This MIME type is used for starting the Device Owner provisioning. *