From ec3d9ca9f64a01d0b38ef6b06fe65700689934f0 Mon Sep 17 00:00:00 2001 From: phweiss Date: Thu, 9 Feb 2017 16:57:39 +0100 Subject: [PATCH] Show policy transparency dialog after failed screenshot If an admin disables screen capture, and a screenshot is attempted, a notification is displayed. Now, tapping it brings you to the policy transparency dialog. Bug: 27365337 Test: manual Change-Id: I93db6e7f508a3d9bbd4483bbf5a7b84eb8beb0af --- .../systemui/screenshot/GlobalScreenshot.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java index 9a4b45a7b0aba..2d47c7bcaa2f1 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/GlobalScreenshot.java @@ -21,6 +21,7 @@ import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; +import android.app.admin.DevicePolicyManager; import android.app.Notification; import android.app.Notification.BigPictureStyle; import android.app.NotificationManager; @@ -46,6 +47,7 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.os.Process; +import android.os.UserHandle; import android.provider.MediaStore; import android.util.DisplayMetrics; import android.view.Display; @@ -866,6 +868,16 @@ class GlobalScreenshot { .setAutoCancel(true) .setColor(context.getColor( com.android.internal.R.color.system_notification_accent_color)); + final DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService( + Context.DEVICE_POLICY_SERVICE); + final Intent intent = dpm.createAdminSupportIntent( + DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE); + if (intent != null) { + final PendingIntent pendingIntent = PendingIntent.getActivityAsUser( + context, 0, intent, 0, null, UserHandle.CURRENT); + b.setContentIntent(pendingIntent); + } + SystemUI.overrideNotificationAppName(context, b); Notification n = new Notification.BigTextStyle(b)