Merge "Rename DropPermissions to DragAndDropPermissions" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
729c640cc8
@@ -331,7 +331,7 @@ LOCAL_SRC_FILES += \
|
||||
core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl \
|
||||
core/java/com/android/internal/textservice/ITextServicesManager.aidl \
|
||||
core/java/com/android/internal/textservice/ITextServicesSessionListener.aidl \
|
||||
core/java/com/android/internal/view/IDropPermissions.aidl \
|
||||
core/java/com/android/internal/view/IDragAndDropPermissions.aidl \
|
||||
core/java/com/android/internal/view/IInputContext.aidl \
|
||||
core/java/com/android/internal/view/IInputContextCallback.aidl \
|
||||
core/java/com/android/internal/view/IInputMethod.aidl \
|
||||
|
||||
@@ -3580,7 +3580,7 @@ package android.app {
|
||||
method public boolean releaseInstance();
|
||||
method public final deprecated void removeDialog(int);
|
||||
method public void reportFullyDrawn();
|
||||
method public android.view.DropPermissions requestDropPermissions(android.view.DragEvent);
|
||||
method public android.view.DragAndDropPermissions requestDragAndDropPermissions(android.view.DragEvent);
|
||||
method public final void requestKeyboardShortcutsHelper();
|
||||
method public final void requestPermissions(java.lang.String[], int);
|
||||
method public boolean requestVisibleBehind(boolean);
|
||||
@@ -40973,6 +40973,10 @@ package android.view {
|
||||
field public static final android.os.Parcelable.Creator<android.view.Display.Mode> CREATOR;
|
||||
}
|
||||
|
||||
public final class DragAndDropPermissions {
|
||||
method public void release();
|
||||
}
|
||||
|
||||
public class DragEvent implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getAction();
|
||||
@@ -40992,10 +40996,6 @@ package android.view {
|
||||
field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
|
||||
}
|
||||
|
||||
public final class DropPermissions {
|
||||
method public void release();
|
||||
}
|
||||
|
||||
public class FocusFinder {
|
||||
method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]);
|
||||
method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);
|
||||
|
||||
@@ -3699,7 +3699,7 @@ package android.app {
|
||||
method public boolean releaseInstance();
|
||||
method public final deprecated void removeDialog(int);
|
||||
method public void reportFullyDrawn();
|
||||
method public android.view.DropPermissions requestDropPermissions(android.view.DragEvent);
|
||||
method public android.view.DragAndDropPermissions requestDragAndDropPermissions(android.view.DragEvent);
|
||||
method public final void requestKeyboardShortcutsHelper();
|
||||
method public final void requestPermissions(java.lang.String[], int);
|
||||
method public boolean requestVisibleBehind(boolean);
|
||||
@@ -43924,6 +43924,10 @@ package android.view {
|
||||
field public static final android.os.Parcelable.Creator<android.view.Display.Mode> CREATOR;
|
||||
}
|
||||
|
||||
public final class DragAndDropPermissions {
|
||||
method public void release();
|
||||
}
|
||||
|
||||
public class DragEvent implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getAction();
|
||||
@@ -43943,10 +43947,6 @@ package android.view {
|
||||
field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
|
||||
}
|
||||
|
||||
public final class DropPermissions {
|
||||
method public void release();
|
||||
}
|
||||
|
||||
public class FocusFinder {
|
||||
method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]);
|
||||
method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);
|
||||
|
||||
@@ -3580,7 +3580,7 @@ package android.app {
|
||||
method public boolean releaseInstance();
|
||||
method public final deprecated void removeDialog(int);
|
||||
method public void reportFullyDrawn();
|
||||
method public android.view.DropPermissions requestDropPermissions(android.view.DragEvent);
|
||||
method public android.view.DragAndDropPermissions requestDragAndDropPermissions(android.view.DragEvent);
|
||||
method public final void requestKeyboardShortcutsHelper();
|
||||
method public final void requestPermissions(java.lang.String[], int);
|
||||
method public boolean requestVisibleBehind(boolean);
|
||||
@@ -41050,6 +41050,10 @@ package android.view {
|
||||
field public static final android.os.Parcelable.Creator<android.view.Display.Mode> CREATOR;
|
||||
}
|
||||
|
||||
public final class DragAndDropPermissions {
|
||||
method public void release();
|
||||
}
|
||||
|
||||
public class DragEvent implements android.os.Parcelable {
|
||||
method public int describeContents();
|
||||
method public int getAction();
|
||||
@@ -41069,10 +41073,6 @@ package android.view {
|
||||
field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
|
||||
}
|
||||
|
||||
public final class DropPermissions {
|
||||
method public void release();
|
||||
}
|
||||
|
||||
public class FocusFinder {
|
||||
method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]);
|
||||
method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);
|
||||
|
||||
@@ -85,8 +85,8 @@ import android.view.ActionMode;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.ContextMenu.ContextMenuInfo;
|
||||
import android.view.ContextThemeWrapper;
|
||||
import android.view.DragAndDropPermissions;
|
||||
import android.view.DragEvent;
|
||||
import android.view.DropPermissions;
|
||||
import android.view.InputDevice;
|
||||
import android.view.KeyCharacterMap;
|
||||
import android.view.KeyEvent;
|
||||
@@ -6505,16 +6505,16 @@ public class Activity extends ContextThemeWrapper
|
||||
}
|
||||
|
||||
/**
|
||||
* Create {@link DropPermissions} object bound to this activity and controlling the access
|
||||
* permissions for content URIs associated with the {@link DragEvent}.
|
||||
* Create {@link DragAndDropPermissions} object bound to this activity and controlling the
|
||||
* access permissions for content URIs associated with the {@link DragEvent}.
|
||||
* @param event Drag event
|
||||
* @return The DropPermissions object used to control access to the content URIs. Null if
|
||||
* no content URIs are associated with the event or if permissions could not be granted.
|
||||
* @return The {@link DragAndDropPermissions} object used to control access to the content URIs.
|
||||
* Null if no content URIs are associated with the event or if permissions could not be granted.
|
||||
*/
|
||||
public DropPermissions requestDropPermissions(DragEvent event) {
|
||||
DropPermissions dropPermissions = DropPermissions.obtain(event);
|
||||
if (dropPermissions != null && dropPermissions.take(getActivityToken())) {
|
||||
return dropPermissions;
|
||||
public DragAndDropPermissions requestDragAndDropPermissions(DragEvent event) {
|
||||
DragAndDropPermissions dragAndDropPermissions = DragAndDropPermissions.obtain(event);
|
||||
if (dragAndDropPermissions != null && dragAndDropPermissions.take(getActivityToken())) {
|
||||
return dragAndDropPermissions;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -19,51 +19,52 @@ package android.view;
|
||||
import android.app.ActivityManagerNative;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
import com.android.internal.view.IDropPermissions;
|
||||
import com.android.internal.view.IDragAndDropPermissions;
|
||||
import dalvik.system.CloseGuard;
|
||||
|
||||
|
||||
/**
|
||||
* {@link DropPermissions} controls the access permissions for the content URIs associated with a
|
||||
* {@link DragEvent}.
|
||||
* {@link DragAndDropPermissions} controls the access permissions for the content URIs associated
|
||||
* with a {@link DragEvent}.
|
||||
* <p>
|
||||
* Permission are granted when this object is created by {@link
|
||||
* android.app.Activity#requestDropPermissions(DragEvent) Activity.requestDropPermissions}.
|
||||
* android.app.Activity#requestDragAndDropPermissions(DragEvent)
|
||||
* Activity.requestDragAndDropPermissions}.
|
||||
* Which permissions are granted is defined by the set of flags passed to {@link
|
||||
* View#startDragAndDrop(android.content.ClipData, View.DragShadowBuilder, Object, int)
|
||||
* View.startDragAndDrop} by the app that started the drag operation.
|
||||
* <p>
|
||||
* The life cycle of the permissions is bound to the activity used to call {@link
|
||||
* android.app.Activity#requestDropPermissions(DragEvent) requestDropPermissions}. The
|
||||
* android.app.Activity#requestDragAndDropPermissions(DragEvent) requestDragAndDropPermissions}. The
|
||||
* permissions are revoked when this activity is destroyed, or when {@link #release()} is called,
|
||||
* whichever occurs first.
|
||||
*/
|
||||
public final class DropPermissions {
|
||||
public final class DragAndDropPermissions {
|
||||
|
||||
private final IDropPermissions mDropPermissions;
|
||||
private final IDragAndDropPermissions mDragAndDropPermissions;
|
||||
|
||||
private IBinder mPermissionOwnerToken;
|
||||
|
||||
private final CloseGuard mCloseGuard = CloseGuard.get();
|
||||
|
||||
/**
|
||||
* Create a new {@link DropPermissions} object to control the access permissions for content
|
||||
* URIs associated with {@link DragEvent}.
|
||||
* Create a new {@link DragAndDropPermissions} object to control the access permissions for
|
||||
* content URIs associated with {@link DragEvent}.
|
||||
* @param dragEvent Drag event
|
||||
* @return {@link DropPermissions} object or null if there are no content URIs associated with
|
||||
* the {@link DragEvent}.
|
||||
* @return {@link DragAndDropPermissions} object or null if there are no content URIs associated
|
||||
* with the {@link DragEvent}.
|
||||
* @hide
|
||||
*/
|
||||
public static DropPermissions obtain(DragEvent dragEvent) {
|
||||
if (dragEvent.getDropPermissions() == null) {
|
||||
public static DragAndDropPermissions obtain(DragEvent dragEvent) {
|
||||
if (dragEvent.getDragAndDropPermissions() == null) {
|
||||
return null;
|
||||
}
|
||||
return new DropPermissions(dragEvent.getDropPermissions());
|
||||
return new DragAndDropPermissions(dragEvent.getDragAndDropPermissions());
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
private DropPermissions(IDropPermissions dropPermissions) {
|
||||
mDropPermissions = dropPermissions;
|
||||
private DragAndDropPermissions(IDragAndDropPermissions dragAndDropPermissions) {
|
||||
mDragAndDropPermissions = dragAndDropPermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,7 +75,7 @@ public final class DropPermissions {
|
||||
*/
|
||||
public boolean take(IBinder activityToken) {
|
||||
try {
|
||||
mDropPermissions.take(activityToken);
|
||||
mDragAndDropPermissions.take(activityToken);
|
||||
} catch (RemoteException e) {
|
||||
return false;
|
||||
}
|
||||
@@ -91,7 +92,7 @@ public final class DropPermissions {
|
||||
try {
|
||||
mPermissionOwnerToken = ActivityManagerNative.getDefault().
|
||||
newUriPermissionOwner("drop");
|
||||
mDropPermissions.takeTransient(mPermissionOwnerToken);
|
||||
mDragAndDropPermissions.takeTransient(mPermissionOwnerToken);
|
||||
} catch (RemoteException e) {
|
||||
return false;
|
||||
}
|
||||
@@ -104,7 +105,7 @@ public final class DropPermissions {
|
||||
*/
|
||||
public void release() {
|
||||
try {
|
||||
mDropPermissions.release();
|
||||
mDragAndDropPermissions.release();
|
||||
mPermissionOwnerToken = null;
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
@@ -21,7 +21,7 @@ import android.content.ClipDescription;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import com.android.internal.view.IDropPermissions;
|
||||
import com.android.internal.view.IDragAndDropPermissions;
|
||||
|
||||
//TODO: Improve Javadoc
|
||||
/**
|
||||
@@ -130,7 +130,7 @@ public class DragEvent implements Parcelable {
|
||||
float mX, mY;
|
||||
ClipDescription mClipDescription;
|
||||
ClipData mClipData;
|
||||
IDropPermissions mDropPermissions;
|
||||
IDragAndDropPermissions mDragAndDropPermissions;
|
||||
|
||||
Object mLocalState;
|
||||
boolean mDragResult;
|
||||
@@ -257,13 +257,13 @@ public class DragEvent implements Parcelable {
|
||||
}
|
||||
|
||||
private void init(int action, float x, float y, ClipDescription description, ClipData data,
|
||||
IDropPermissions dropPermissions, Object localState, boolean result) {
|
||||
IDragAndDropPermissions dragAndDropPermissions, Object localState, boolean result) {
|
||||
mAction = action;
|
||||
mX = x;
|
||||
mY = y;
|
||||
mClipDescription = description;
|
||||
mClipData = data;
|
||||
mDropPermissions = dropPermissions;
|
||||
this.mDragAndDropPermissions = dragAndDropPermissions;
|
||||
mLocalState = localState;
|
||||
mDragResult = result;
|
||||
}
|
||||
@@ -274,13 +274,14 @@ public class DragEvent implements Parcelable {
|
||||
|
||||
/** @hide */
|
||||
public static DragEvent obtain(int action, float x, float y, Object localState,
|
||||
ClipDescription description, ClipData data, IDropPermissions dropPermissions,
|
||||
boolean result) {
|
||||
ClipDescription description, ClipData data,
|
||||
IDragAndDropPermissions dragAndDropPermissions, boolean result) {
|
||||
final DragEvent ev;
|
||||
synchronized (gRecyclerLock) {
|
||||
if (gRecyclerTop == null) {
|
||||
ev = new DragEvent();
|
||||
ev.init(action, x, y, description, data, dropPermissions, localState, result);
|
||||
ev.init(action, x, y, description, data, dragAndDropPermissions, localState,
|
||||
result);
|
||||
return ev;
|
||||
}
|
||||
ev = gRecyclerTop;
|
||||
@@ -291,7 +292,7 @@ public class DragEvent implements Parcelable {
|
||||
ev.mRecycled = false;
|
||||
ev.mNext = null;
|
||||
|
||||
ev.init(action, x, y, description, data, dropPermissions, localState, result);
|
||||
ev.init(action, x, y, description, data, dragAndDropPermissions, localState, result);
|
||||
|
||||
return ev;
|
||||
}
|
||||
@@ -299,7 +300,7 @@ public class DragEvent implements Parcelable {
|
||||
/** @hide */
|
||||
public static DragEvent obtain(DragEvent source) {
|
||||
return obtain(source.mAction, source.mX, source.mY, source.mLocalState,
|
||||
source.mClipDescription, source.mClipData, source.mDropPermissions,
|
||||
source.mClipDescription, source.mClipData, source.mDragAndDropPermissions,
|
||||
source.mDragResult);
|
||||
}
|
||||
|
||||
@@ -365,8 +366,8 @@ public class DragEvent implements Parcelable {
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public IDropPermissions getDropPermissions() {
|
||||
return mDropPermissions;
|
||||
public IDragAndDropPermissions getDragAndDropPermissions() {
|
||||
return mDragAndDropPermissions;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -489,11 +490,11 @@ public class DragEvent implements Parcelable {
|
||||
dest.writeInt(1);
|
||||
mClipDescription.writeToParcel(dest, flags);
|
||||
}
|
||||
if (mDropPermissions == null) {
|
||||
if (mDragAndDropPermissions == null) {
|
||||
dest.writeInt(0);
|
||||
} else {
|
||||
dest.writeInt(1);
|
||||
dest.writeStrongBinder(mDropPermissions.asBinder());
|
||||
dest.writeStrongBinder(mDragAndDropPermissions.asBinder());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -515,7 +516,8 @@ public class DragEvent implements Parcelable {
|
||||
event.mClipDescription = ClipDescription.CREATOR.createFromParcel(in);
|
||||
}
|
||||
if (in.readInt() != 0) {
|
||||
event.mDropPermissions = IDropPermissions.Stub.asInterface(in.readStrongBinder());;
|
||||
event.mDragAndDropPermissions =
|
||||
IDragAndDropPermissions.Stub.asInterface(in.readStrongBinder());;
|
||||
}
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -77,8 +77,8 @@ import android.view.ActionMode;
|
||||
import android.view.ActionMode.Callback;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.DisplayListCanvas;
|
||||
import android.view.DragAndDropPermissions;
|
||||
import android.view.DragEvent;
|
||||
import android.view.DropPermissions;
|
||||
import android.view.Gravity;
|
||||
import android.view.InputDevice;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -2379,9 +2379,9 @@ public class Editor {
|
||||
void onDrop(DragEvent event) {
|
||||
StringBuilder content = new StringBuilder("");
|
||||
|
||||
final DropPermissions dropPermissions = DropPermissions.obtain(event);
|
||||
if (dropPermissions != null) {
|
||||
dropPermissions.takeTransient();
|
||||
final DragAndDropPermissions permissions = DragAndDropPermissions.obtain(event);
|
||||
if (permissions != null) {
|
||||
permissions.takeTransient();
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -2393,8 +2393,8 @@ public class Editor {
|
||||
}
|
||||
}
|
||||
finally {
|
||||
if (dropPermissions != null) {
|
||||
dropPermissions.release();
|
||||
if (permissions != null) {
|
||||
permissions.release();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import android.os.IBinder;
|
||||
* Interface to allow a drop receiver to request permissions for URIs passed along with ClipData
|
||||
* contained in DragEvent.
|
||||
*/
|
||||
interface IDropPermissions {
|
||||
interface IDragAndDropPermissions {
|
||||
void take(IBinder activityToken);
|
||||
void takeTransient(IBinder permissionOwnerToken);
|
||||
void release();
|
||||
@@ -23,11 +23,12 @@ import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.os.RemoteException;
|
||||
|
||||
import com.android.internal.view.IDropPermissions;
|
||||
import com.android.internal.view.IDragAndDropPermissions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
class DropPermissionsHandler extends IDropPermissions.Stub implements IBinder.DeathRecipient {
|
||||
class DragAndDropPermissionsHandler extends IDragAndDropPermissions.Stub
|
||||
implements IBinder.DeathRecipient {
|
||||
|
||||
private final int mSourceUid;
|
||||
private final String mTargetPackage;
|
||||
@@ -40,8 +41,8 @@ class DropPermissionsHandler extends IDropPermissions.Stub implements IBinder.De
|
||||
private IBinder mActivityToken = null;
|
||||
private IBinder mPermissionOwnerToken = null;
|
||||
|
||||
DropPermissionsHandler(ClipData clipData, int sourceUid, String targetPackage, int mode,
|
||||
int sourceUserId, int targetUserId) {
|
||||
DragAndDropPermissionsHandler(ClipData clipData, int sourceUid, String targetPackage, int mode,
|
||||
int sourceUserId, int targetUserId) {
|
||||
mSourceUid = sourceUid;
|
||||
mTargetPackage = targetPackage;
|
||||
mMode = mode;
|
||||
@@ -59,7 +59,7 @@ import com.android.server.input.InputWindowHandle;
|
||||
import com.android.server.wm.WindowManagerService.DragInputEventReceiver;
|
||||
import com.android.server.wm.WindowManagerService.H;
|
||||
|
||||
import com.android.internal.view.IDropPermissions;
|
||||
import com.android.internal.view.IDragAndDropPermissions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -484,10 +484,10 @@ class DragState {
|
||||
|
||||
final int targetUserId = UserHandle.getUserId(touchedWin.getOwningUid());
|
||||
|
||||
DropPermissionsHandler dropPermissions = null;
|
||||
DragAndDropPermissionsHandler dragAndDropPermissions = null;
|
||||
if ((mFlags & View.DRAG_FLAG_GLOBAL) != 0 &&
|
||||
(mFlags & DRAG_FLAGS_URI_ACCESS) != 0) {
|
||||
dropPermissions = new DropPermissionsHandler(
|
||||
dragAndDropPermissions = new DragAndDropPermissionsHandler(
|
||||
mData,
|
||||
mUid,
|
||||
touchedWin.getOwningPackage(),
|
||||
@@ -501,7 +501,7 @@ class DragState {
|
||||
final int myPid = Process.myPid();
|
||||
final IBinder token = touchedWin.mClient.asBinder();
|
||||
DragEvent evt = obtainDragEvent(touchedWin, DragEvent.ACTION_DROP, x, y,
|
||||
null, null, mData, dropPermissions, false);
|
||||
null, null, mData, dragAndDropPermissions, false);
|
||||
try {
|
||||
touchedWin.mClient.dispatchDragEvent(evt);
|
||||
|
||||
@@ -524,12 +524,12 @@ class DragState {
|
||||
private static DragEvent obtainDragEvent(WindowState win, int action,
|
||||
float x, float y, Object localState,
|
||||
ClipDescription description, ClipData data,
|
||||
IDropPermissions dropPermissions,
|
||||
IDragAndDropPermissions dragAndDropPermissions,
|
||||
boolean result) {
|
||||
final float winX = win.translateToWindowX(x);
|
||||
final float winY = win.translateToWindowY(y);
|
||||
return DragEvent.obtain(action, winX, winY, localState, description, data,
|
||||
dropPermissions, result);
|
||||
dragAndDropPermissions, result);
|
||||
}
|
||||
|
||||
boolean stepAnimationLocked(long currentTimeMs) {
|
||||
|
||||
Reference in New Issue
Block a user