summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/content/ClipboardManager.java19
-rw-r--r--services/core/java/com/android/server/clipboard/ClipboardService.java18
2 files changed, 28 insertions, 9 deletions
diff --git a/core/java/android/content/ClipboardManager.java b/core/java/android/content/ClipboardManager.java
index cadbd609ff0b..11adfa3cecc0 100644
--- a/core/java/android/content/ClipboardManager.java
+++ b/core/java/android/content/ClipboardManager.java
@@ -51,6 +51,25 @@ import java.util.Objects;
*/
@SystemService(Context.CLIPBOARD_SERVICE)
public class ClipboardManager extends android.text.ClipboardManager {
+
+ /**
+ * DeviceConfig property, within the clipboard namespace, that determines whether notifications
+ * are shown when an app accesses clipboard. This may be overridden by a user-controlled
+ * setting.
+ *
+ * @hide
+ */
+ public static final String DEVICE_CONFIG_SHOW_ACCESS_NOTIFICATIONS =
+ "show_access_notifications";
+
+ /**
+ * Default value for the DeviceConfig property that determines whether notifications are shown
+ * when an app accesses clipboard.
+ *
+ * @hide
+ */
+ public static final boolean DEVICE_CONFIG_DEFAULT_SHOW_ACCESS_NOTIFICATIONS = true;
+
private final Context mContext;
private final Handler mHandler;
private final IClipboard mService;
diff --git a/services/core/java/com/android/server/clipboard/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java
index 2bc81cb56996..d25896c6ce84 100644
--- a/services/core/java/com/android/server/clipboard/ClipboardService.java
+++ b/services/core/java/com/android/server/clipboard/ClipboardService.java
@@ -31,6 +31,7 @@ import android.app.KeyguardManager;
import android.app.UriGrantsManager;
import android.content.ClipData;
import android.content.ClipDescription;
+import android.content.ClipboardManager;
import android.content.ComponentName;
import android.content.ContentProvider;
import android.content.ContentResolver;
@@ -220,8 +221,6 @@ public class ClipboardService extends SystemService {
SystemProperties.getBoolean("ro.boot.qemu", false);
// DeviceConfig properties
- private static final String PROPERTY_SHOW_ACCESS_NOTIFICATIONS = "show_access_notifications";
- private static final boolean DEFAULT_SHOW_ACCESS_NOTIFICATIONS = true;
private static final String PROPERTY_MAX_CLASSIFICATION_LENGTH = "max_classification_length";
private static final int DEFAULT_MAX_CLASSIFICATION_LENGTH = 400;
@@ -242,7 +241,8 @@ public class ClipboardService extends SystemService {
private final SparseArray<PerUserClipboard> mClipboards = new SparseArray<>();
@GuardedBy("mLock")
- private boolean mShowAccessNotifications = DEFAULT_SHOW_ACCESS_NOTIFICATIONS;
+ private boolean mShowAccessNotifications =
+ ClipboardManager.DEVICE_CONFIG_DEFAULT_SHOW_ACCESS_NOTIFICATIONS;
@GuardedBy("mLock")
private int mMaxClassificationLength = DEFAULT_MAX_CLASSIFICATION_LENGTH;
@@ -310,8 +310,10 @@ public class ClipboardService extends SystemService {
private void updateConfig() {
synchronized (mLock) {
- mShowAccessNotifications = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_CLIPBOARD,
- PROPERTY_SHOW_ACCESS_NOTIFICATIONS, DEFAULT_SHOW_ACCESS_NOTIFICATIONS);
+ mShowAccessNotifications = DeviceConfig.getBoolean(
+ DeviceConfig.NAMESPACE_CLIPBOARD,
+ ClipboardManager.DEVICE_CONFIG_SHOW_ACCESS_NOTIFICATIONS,
+ ClipboardManager.DEVICE_CONFIG_DEFAULT_SHOW_ACCESS_NOTIFICATIONS);
mMaxClassificationLength = DeviceConfig.getInt(DeviceConfig.NAMESPACE_CLIPBOARD,
PROPERTY_MAX_CLASSIFICATION_LENGTH, DEFAULT_MAX_CLASSIFICATION_LENGTH);
}
@@ -1056,11 +1058,9 @@ public class ClipboardService extends SystemService {
if (clipboard.primaryClip == null) {
return;
}
- if (!mShowAccessNotifications) {
- return;
- }
if (Settings.Secure.getInt(getContext().getContentResolver(),
- Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS, 1) == 0) {
+ Settings.Secure.CLIPBOARD_SHOW_ACCESS_NOTIFICATIONS,
+ (mShowAccessNotifications ? 1 : 0)) == 0) {
return;
}
// Don't notify if the app accessing the clipboard is the same as the current owner.