summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2013-02-25 18:02:35 -0800
committerDianne Hackborn <hackbod@google.com>2013-02-25 18:02:35 -0800
commitefcc1a23a1f731390ef8506b3536b9562d18ed78 (patch)
tree3bf75913746cac59177a3d1c7ff2d82034e03cc2 /core
parentf4b36ad1617920691def64c00179666e2e42d5fa (diff)
downloadframeworks_base-efcc1a23a1f731390ef8506b3536b9562d18ed78.zip
frameworks_base-efcc1a23a1f731390ef8506b3536b9562d18ed78.tar.gz
frameworks_base-efcc1a23a1f731390ef8506b3536b9562d18ed78.tar.bz2
App ops: adding operations for reading/writing clipboard.
Change-Id: Ic4cade153618fe86954754a3b3edde64a52a0a9c
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/AppOpsManager.java10
-rw-r--r--core/java/android/content/ClipboardManager.java12
-rw-r--r--core/java/android/content/IClipboard.aidl11
3 files changed, 21 insertions, 12 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index de69867..c9776f1 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -93,8 +93,10 @@ public class AppOpsManager {
public static final int OP_CAMERA = 26;
public static final int OP_RECORD_AUDIO = 27;
public static final int OP_PLAY_AUDIO = 28;
+ public static final int OP_READ_CLIPBOARD = 29;
+ public static final int OP_WRITE_CLIPBOARD = 30;
/** @hide */
- public static final int _NUM_OP = 29;
+ public static final int _NUM_OP = 31;
/**
* This maps each operation to the operation that serves as the
@@ -134,6 +136,8 @@ public class AppOpsManager {
OP_CAMERA,
OP_RECORD_AUDIO,
OP_PLAY_AUDIO,
+ OP_READ_CLIPBOARD,
+ OP_WRITE_CLIPBOARD,
};
/**
@@ -170,6 +174,8 @@ public class AppOpsManager {
"CAMERA",
"RECORD_AUDIO",
"PLAY_AUDIO",
+ "READ_CLIPBOARD",
+ "WRITE_CLIPBOARD",
};
/**
@@ -206,6 +212,8 @@ public class AppOpsManager {
android.Manifest.permission.CAMERA,
android.Manifest.permission.RECORD_AUDIO,
null, // no permission for playing audio
+ null, // no permission for reading clipboard
+ null, // no permission for writing clipboard
};
/**
diff --git a/core/java/android/content/ClipboardManager.java b/core/java/android/content/ClipboardManager.java
index dfd1820..88a4229 100644
--- a/core/java/android/content/ClipboardManager.java
+++ b/core/java/android/content/ClipboardManager.java
@@ -118,7 +118,7 @@ public class ClipboardManager extends android.text.ClipboardManager {
*/
public void setPrimaryClip(ClipData clip) {
try {
- getService().setPrimaryClip(clip);
+ getService().setPrimaryClip(clip, mContext.getBasePackageName());
} catch (RemoteException e) {
}
}
@@ -128,7 +128,7 @@ public class ClipboardManager extends android.text.ClipboardManager {
*/
public ClipData getPrimaryClip() {
try {
- return getService().getPrimaryClip(mContext.getPackageName());
+ return getService().getPrimaryClip(mContext.getBasePackageName());
} catch (RemoteException e) {
return null;
}
@@ -140,7 +140,7 @@ public class ClipboardManager extends android.text.ClipboardManager {
*/
public ClipDescription getPrimaryClipDescription() {
try {
- return getService().getPrimaryClipDescription();
+ return getService().getPrimaryClipDescription(mContext.getBasePackageName());
} catch (RemoteException e) {
return null;
}
@@ -151,7 +151,7 @@ public class ClipboardManager extends android.text.ClipboardManager {
*/
public boolean hasPrimaryClip() {
try {
- return getService().hasPrimaryClip();
+ return getService().hasPrimaryClip(mContext.getBasePackageName());
} catch (RemoteException e) {
return false;
}
@@ -162,7 +162,7 @@ public class ClipboardManager extends android.text.ClipboardManager {
if (mPrimaryClipChangedListeners.size() == 0) {
try {
getService().addPrimaryClipChangedListener(
- mPrimaryClipChangedServiceListener);
+ mPrimaryClipChangedServiceListener, mContext.getBasePackageName());
} catch (RemoteException e) {
}
}
@@ -209,7 +209,7 @@ public class ClipboardManager extends android.text.ClipboardManager {
*/
public boolean hasText() {
try {
- return getService().hasClipboardText();
+ return getService().hasClipboardText(mContext.getBasePackageName());
} catch (RemoteException e) {
return false;
}
diff --git a/core/java/android/content/IClipboard.aidl b/core/java/android/content/IClipboard.aidl
index 254901b..af0b8f0 100644
--- a/core/java/android/content/IClipboard.aidl
+++ b/core/java/android/content/IClipboard.aidl
@@ -26,15 +26,16 @@ import android.content.IOnPrimaryClipChangedListener;
* {@hide}
*/
interface IClipboard {
- void setPrimaryClip(in ClipData clip);
+ void setPrimaryClip(in ClipData clip, String callingPackage);
ClipData getPrimaryClip(String pkg);
- ClipDescription getPrimaryClipDescription();
- boolean hasPrimaryClip();
- void addPrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener);
+ ClipDescription getPrimaryClipDescription(String callingPackage);
+ boolean hasPrimaryClip(String callingPackage);
+ void addPrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener,
+ String callingPackage);
void removePrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener);
/**
* Returns true if the clipboard contains text; false otherwise.
*/
- boolean hasClipboardText();
+ boolean hasClipboardText(String callingPackage);
}