Merge "Rename DropPermissions to DragAndDropPermissions" into nyc-dev

am: 729c640cc8

* commit '729c640cc887da9fe7a1b57121167a7bf83fee97':
  Rename DropPermissions to DragAndDropPermissions

Change-Id: I8b9481bd7167484bc98ddd12f5069edf88f2c0b1
This commit is contained in:
Vladislav Kaznacheev
2016-04-21 21:43:05 +00:00
committed by android-build-merger
11 changed files with 79 additions and 75 deletions

View File

@@ -331,7 +331,7 @@ LOCAL_SRC_FILES += \
core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl \ core/java/com/android/internal/textservice/ISpellCheckerSessionListener.aidl \
core/java/com/android/internal/textservice/ITextServicesManager.aidl \ core/java/com/android/internal/textservice/ITextServicesManager.aidl \
core/java/com/android/internal/textservice/ITextServicesSessionListener.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/IInputContext.aidl \
core/java/com/android/internal/view/IInputContextCallback.aidl \ core/java/com/android/internal/view/IInputContextCallback.aidl \
core/java/com/android/internal/view/IInputMethod.aidl \ core/java/com/android/internal/view/IInputMethod.aidl \

View File

@@ -3580,7 +3580,7 @@ package android.app {
method public boolean releaseInstance(); method public boolean releaseInstance();
method public final deprecated void removeDialog(int); method public final deprecated void removeDialog(int);
method public void reportFullyDrawn(); 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 requestKeyboardShortcutsHelper();
method public final void requestPermissions(java.lang.String[], int); method public final void requestPermissions(java.lang.String[], int);
method public boolean requestVisibleBehind(boolean); 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; 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 { public class DragEvent implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public int getAction(); method public int getAction();
@@ -40992,10 +40996,6 @@ package android.view {
field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR; field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
} }
public final class DropPermissions {
method public void release();
}
public class FocusFinder { public class FocusFinder {
method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]); 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); method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);

View File

@@ -3699,7 +3699,7 @@ package android.app {
method public boolean releaseInstance(); method public boolean releaseInstance();
method public final deprecated void removeDialog(int); method public final deprecated void removeDialog(int);
method public void reportFullyDrawn(); 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 requestKeyboardShortcutsHelper();
method public final void requestPermissions(java.lang.String[], int); method public final void requestPermissions(java.lang.String[], int);
method public boolean requestVisibleBehind(boolean); 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; 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 { public class DragEvent implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public int getAction(); method public int getAction();
@@ -43943,10 +43947,6 @@ package android.view {
field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR; field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
} }
public final class DropPermissions {
method public void release();
}
public class FocusFinder { public class FocusFinder {
method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]); 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); method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);

View File

@@ -3580,7 +3580,7 @@ package android.app {
method public boolean releaseInstance(); method public boolean releaseInstance();
method public final deprecated void removeDialog(int); method public final deprecated void removeDialog(int);
method public void reportFullyDrawn(); 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 requestKeyboardShortcutsHelper();
method public final void requestPermissions(java.lang.String[], int); method public final void requestPermissions(java.lang.String[], int);
method public boolean requestVisibleBehind(boolean); 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; 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 { public class DragEvent implements android.os.Parcelable {
method public int describeContents(); method public int describeContents();
method public int getAction(); method public int getAction();
@@ -41069,10 +41073,6 @@ package android.view {
field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR; field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
} }
public final class DropPermissions {
method public void release();
}
public class FocusFinder { public class FocusFinder {
method public android.view.View findNearestTouchable(android.view.ViewGroup, int, int, int, int[]); 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); method public final android.view.View findNextFocus(android.view.ViewGroup, android.view.View, int);

View File

@@ -85,8 +85,8 @@ import android.view.ActionMode;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo; import android.view.ContextMenu.ContextMenuInfo;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.view.DragAndDropPermissions;
import android.view.DragEvent; import android.view.DragEvent;
import android.view.DropPermissions;
import android.view.InputDevice; import android.view.InputDevice;
import android.view.KeyCharacterMap; import android.view.KeyCharacterMap;
import android.view.KeyEvent; 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 * Create {@link DragAndDropPermissions} object bound to this activity and controlling the
* permissions for content URIs associated with the {@link DragEvent}. * access permissions for content URIs associated with the {@link DragEvent}.
* @param event Drag event * @param event Drag event
* @return The DropPermissions object used to control access to the content URIs. Null if * @return The {@link DragAndDropPermissions} object used to control access to the content URIs.
* no content URIs are associated with the event or if permissions could not be granted. * Null if no content URIs are associated with the event or if permissions could not be granted.
*/ */
public DropPermissions requestDropPermissions(DragEvent event) { public DragAndDropPermissions requestDragAndDropPermissions(DragEvent event) {
DropPermissions dropPermissions = DropPermissions.obtain(event); DragAndDropPermissions dragAndDropPermissions = DragAndDropPermissions.obtain(event);
if (dropPermissions != null && dropPermissions.take(getActivityToken())) { if (dragAndDropPermissions != null && dragAndDropPermissions.take(getActivityToken())) {
return dropPermissions; return dragAndDropPermissions;
} }
return null; return null;
} }

View File

@@ -19,51 +19,52 @@ package android.view;
import android.app.ActivityManagerNative; import android.app.ActivityManagerNative;
import android.os.IBinder; import android.os.IBinder;
import android.os.RemoteException; import android.os.RemoteException;
import com.android.internal.view.IDropPermissions; import com.android.internal.view.IDragAndDropPermissions;
import dalvik.system.CloseGuard; import dalvik.system.CloseGuard;
/** /**
* {@link DropPermissions} controls the access permissions for the content URIs associated with a * {@link DragAndDropPermissions} controls the access permissions for the content URIs associated
* {@link DragEvent}. * with a {@link DragEvent}.
* <p> * <p>
* Permission are granted when this object is created by {@link * 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 * 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(android.content.ClipData, View.DragShadowBuilder, Object, int)
* View.startDragAndDrop} by the app that started the drag operation. * View.startDragAndDrop} by the app that started the drag operation.
* <p> * <p>
* The life cycle of the permissions is bound to the activity used to call {@link * 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, * permissions are revoked when this activity is destroyed, or when {@link #release()} is called,
* whichever occurs first. * whichever occurs first.
*/ */
public final class DropPermissions { public final class DragAndDropPermissions {
private final IDropPermissions mDropPermissions; private final IDragAndDropPermissions mDragAndDropPermissions;
private IBinder mPermissionOwnerToken; private IBinder mPermissionOwnerToken;
private final CloseGuard mCloseGuard = CloseGuard.get(); private final CloseGuard mCloseGuard = CloseGuard.get();
/** /**
* Create a new {@link DropPermissions} object to control the access permissions for content * Create a new {@link DragAndDropPermissions} object to control the access permissions for
* URIs associated with {@link DragEvent}. * content URIs associated with {@link DragEvent}.
* @param dragEvent Drag event * @param dragEvent Drag event
* @return {@link DropPermissions} object or null if there are no content URIs associated with * @return {@link DragAndDropPermissions} object or null if there are no content URIs associated
* the {@link DragEvent}. * with the {@link DragEvent}.
* @hide * @hide
*/ */
public static DropPermissions obtain(DragEvent dragEvent) { public static DragAndDropPermissions obtain(DragEvent dragEvent) {
if (dragEvent.getDropPermissions() == null) { if (dragEvent.getDragAndDropPermissions() == null) {
return null; return null;
} }
return new DropPermissions(dragEvent.getDropPermissions()); return new DragAndDropPermissions(dragEvent.getDragAndDropPermissions());
} }
/** @hide */ /** @hide */
private DropPermissions(IDropPermissions dropPermissions) { private DragAndDropPermissions(IDragAndDropPermissions dragAndDropPermissions) {
mDropPermissions = dropPermissions; mDragAndDropPermissions = dragAndDropPermissions;
} }
/** /**
@@ -74,7 +75,7 @@ public final class DropPermissions {
*/ */
public boolean take(IBinder activityToken) { public boolean take(IBinder activityToken) {
try { try {
mDropPermissions.take(activityToken); mDragAndDropPermissions.take(activityToken);
} catch (RemoteException e) { } catch (RemoteException e) {
return false; return false;
} }
@@ -91,7 +92,7 @@ public final class DropPermissions {
try { try {
mPermissionOwnerToken = ActivityManagerNative.getDefault(). mPermissionOwnerToken = ActivityManagerNative.getDefault().
newUriPermissionOwner("drop"); newUriPermissionOwner("drop");
mDropPermissions.takeTransient(mPermissionOwnerToken); mDragAndDropPermissions.takeTransient(mPermissionOwnerToken);
} catch (RemoteException e) { } catch (RemoteException e) {
return false; return false;
} }
@@ -104,7 +105,7 @@ public final class DropPermissions {
*/ */
public void release() { public void release() {
try { try {
mDropPermissions.release(); mDragAndDropPermissions.release();
mPermissionOwnerToken = null; mPermissionOwnerToken = null;
} catch (RemoteException e) { } catch (RemoteException e) {
} }

View File

@@ -21,7 +21,7 @@ import android.content.ClipDescription;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import com.android.internal.view.IDropPermissions; import com.android.internal.view.IDragAndDropPermissions;
//TODO: Improve Javadoc //TODO: Improve Javadoc
/** /**
@@ -130,7 +130,7 @@ public class DragEvent implements Parcelable {
float mX, mY; float mX, mY;
ClipDescription mClipDescription; ClipDescription mClipDescription;
ClipData mClipData; ClipData mClipData;
IDropPermissions mDropPermissions; IDragAndDropPermissions mDragAndDropPermissions;
Object mLocalState; Object mLocalState;
boolean mDragResult; boolean mDragResult;
@@ -257,13 +257,13 @@ public class DragEvent implements Parcelable {
} }
private void init(int action, float x, float y, ClipDescription description, ClipData data, 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; mAction = action;
mX = x; mX = x;
mY = y; mY = y;
mClipDescription = description; mClipDescription = description;
mClipData = data; mClipData = data;
mDropPermissions = dropPermissions; this.mDragAndDropPermissions = dragAndDropPermissions;
mLocalState = localState; mLocalState = localState;
mDragResult = result; mDragResult = result;
} }
@@ -274,13 +274,14 @@ public class DragEvent implements Parcelable {
/** @hide */ /** @hide */
public static DragEvent obtain(int action, float x, float y, Object localState, public static DragEvent obtain(int action, float x, float y, Object localState,
ClipDescription description, ClipData data, IDropPermissions dropPermissions, ClipDescription description, ClipData data,
boolean result) { IDragAndDropPermissions dragAndDropPermissions, boolean result) {
final DragEvent ev; final DragEvent ev;
synchronized (gRecyclerLock) { synchronized (gRecyclerLock) {
if (gRecyclerTop == null) { if (gRecyclerTop == null) {
ev = new DragEvent(); 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; return ev;
} }
ev = gRecyclerTop; ev = gRecyclerTop;
@@ -291,7 +292,7 @@ public class DragEvent implements Parcelable {
ev.mRecycled = false; ev.mRecycled = false;
ev.mNext = null; 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; return ev;
} }
@@ -299,7 +300,7 @@ public class DragEvent implements Parcelable {
/** @hide */ /** @hide */
public static DragEvent obtain(DragEvent source) { public static DragEvent obtain(DragEvent source) {
return obtain(source.mAction, source.mX, source.mY, source.mLocalState, return obtain(source.mAction, source.mX, source.mY, source.mLocalState,
source.mClipDescription, source.mClipData, source.mDropPermissions, source.mClipDescription, source.mClipData, source.mDragAndDropPermissions,
source.mDragResult); source.mDragResult);
} }
@@ -365,8 +366,8 @@ public class DragEvent implements Parcelable {
} }
/** @hide */ /** @hide */
public IDropPermissions getDropPermissions() { public IDragAndDropPermissions getDragAndDropPermissions() {
return mDropPermissions; return mDragAndDropPermissions;
} }
/** /**
@@ -489,11 +490,11 @@ public class DragEvent implements Parcelable {
dest.writeInt(1); dest.writeInt(1);
mClipDescription.writeToParcel(dest, flags); mClipDescription.writeToParcel(dest, flags);
} }
if (mDropPermissions == null) { if (mDragAndDropPermissions == null) {
dest.writeInt(0); dest.writeInt(0);
} else { } else {
dest.writeInt(1); 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); event.mClipDescription = ClipDescription.CREATOR.createFromParcel(in);
} }
if (in.readInt() != 0) { if (in.readInt() != 0) {
event.mDropPermissions = IDropPermissions.Stub.asInterface(in.readStrongBinder());; event.mDragAndDropPermissions =
IDragAndDropPermissions.Stub.asInterface(in.readStrongBinder());;
} }
return event; return event;
} }

View File

@@ -77,8 +77,8 @@ import android.view.ActionMode;
import android.view.ActionMode.Callback; import android.view.ActionMode.Callback;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.DisplayListCanvas; import android.view.DisplayListCanvas;
import android.view.DragAndDropPermissions;
import android.view.DragEvent; import android.view.DragEvent;
import android.view.DropPermissions;
import android.view.Gravity; import android.view.Gravity;
import android.view.InputDevice; import android.view.InputDevice;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -2379,9 +2379,9 @@ public class Editor {
void onDrop(DragEvent event) { void onDrop(DragEvent event) {
StringBuilder content = new StringBuilder(""); StringBuilder content = new StringBuilder("");
final DropPermissions dropPermissions = DropPermissions.obtain(event); final DragAndDropPermissions permissions = DragAndDropPermissions.obtain(event);
if (dropPermissions != null) { if (permissions != null) {
dropPermissions.takeTransient(); permissions.takeTransient();
} }
try { try {
@@ -2393,8 +2393,8 @@ public class Editor {
} }
} }
finally { finally {
if (dropPermissions != null) { if (permissions != null) {
dropPermissions.release(); permissions.release();
} }
} }

View File

@@ -22,7 +22,7 @@ import android.os.IBinder;
* Interface to allow a drop receiver to request permissions for URIs passed along with ClipData * Interface to allow a drop receiver to request permissions for URIs passed along with ClipData
* contained in DragEvent. * contained in DragEvent.
*/ */
interface IDropPermissions { interface IDragAndDropPermissions {
void take(IBinder activityToken); void take(IBinder activityToken);
void takeTransient(IBinder permissionOwnerToken); void takeTransient(IBinder permissionOwnerToken);
void release(); void release();

View File

@@ -23,11 +23,12 @@ import android.os.Binder;
import android.os.IBinder; import android.os.IBinder;
import android.os.RemoteException; import android.os.RemoteException;
import com.android.internal.view.IDropPermissions; import com.android.internal.view.IDragAndDropPermissions;
import java.util.ArrayList; 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 int mSourceUid;
private final String mTargetPackage; private final String mTargetPackage;
@@ -40,8 +41,8 @@ class DropPermissionsHandler extends IDropPermissions.Stub implements IBinder.De
private IBinder mActivityToken = null; private IBinder mActivityToken = null;
private IBinder mPermissionOwnerToken = null; private IBinder mPermissionOwnerToken = null;
DropPermissionsHandler(ClipData clipData, int sourceUid, String targetPackage, int mode, DragAndDropPermissionsHandler(ClipData clipData, int sourceUid, String targetPackage, int mode,
int sourceUserId, int targetUserId) { int sourceUserId, int targetUserId) {
mSourceUid = sourceUid; mSourceUid = sourceUid;
mTargetPackage = targetPackage; mTargetPackage = targetPackage;
mMode = mode; mMode = mode;

View File

@@ -59,7 +59,7 @@ import com.android.server.input.InputWindowHandle;
import com.android.server.wm.WindowManagerService.DragInputEventReceiver; import com.android.server.wm.WindowManagerService.DragInputEventReceiver;
import com.android.server.wm.WindowManagerService.H; import com.android.server.wm.WindowManagerService.H;
import com.android.internal.view.IDropPermissions; import com.android.internal.view.IDragAndDropPermissions;
import java.util.ArrayList; import java.util.ArrayList;
@@ -484,10 +484,10 @@ class DragState {
final int targetUserId = UserHandle.getUserId(touchedWin.getOwningUid()); final int targetUserId = UserHandle.getUserId(touchedWin.getOwningUid());
DropPermissionsHandler dropPermissions = null; DragAndDropPermissionsHandler dragAndDropPermissions = null;
if ((mFlags & View.DRAG_FLAG_GLOBAL) != 0 && if ((mFlags & View.DRAG_FLAG_GLOBAL) != 0 &&
(mFlags & DRAG_FLAGS_URI_ACCESS) != 0) { (mFlags & DRAG_FLAGS_URI_ACCESS) != 0) {
dropPermissions = new DropPermissionsHandler( dragAndDropPermissions = new DragAndDropPermissionsHandler(
mData, mData,
mUid, mUid,
touchedWin.getOwningPackage(), touchedWin.getOwningPackage(),
@@ -501,7 +501,7 @@ class DragState {
final int myPid = Process.myPid(); final int myPid = Process.myPid();
final IBinder token = touchedWin.mClient.asBinder(); final IBinder token = touchedWin.mClient.asBinder();
DragEvent evt = obtainDragEvent(touchedWin, DragEvent.ACTION_DROP, x, y, DragEvent evt = obtainDragEvent(touchedWin, DragEvent.ACTION_DROP, x, y,
null, null, mData, dropPermissions, false); null, null, mData, dragAndDropPermissions, false);
try { try {
touchedWin.mClient.dispatchDragEvent(evt); touchedWin.mClient.dispatchDragEvent(evt);
@@ -524,12 +524,12 @@ class DragState {
private static DragEvent obtainDragEvent(WindowState win, int action, private static DragEvent obtainDragEvent(WindowState win, int action,
float x, float y, Object localState, float x, float y, Object localState,
ClipDescription description, ClipData data, ClipDescription description, ClipData data,
IDropPermissions dropPermissions, IDragAndDropPermissions dragAndDropPermissions,
boolean result) { boolean result) {
final float winX = win.translateToWindowX(x); final float winX = win.translateToWindowX(x);
final float winY = win.translateToWindowY(y); final float winY = win.translateToWindowY(y);
return DragEvent.obtain(action, winX, winY, localState, description, data, return DragEvent.obtain(action, winX, winY, localState, description, data,
dropPermissions, result); dragAndDropPermissions, result);
} }
boolean stepAnimationLocked(long currentTimeMs) { boolean stepAnimationLocked(long currentTimeMs) {