diff --git a/Android.mk b/Android.mk index bb7d1effdc685..1d246e4b72309 100644 --- a/Android.mk +++ b/Android.mk @@ -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 \ diff --git a/api/current.txt b/api/current.txt index 00a2b7a9a1d16..91340a912428b 100644 --- a/api/current.txt +++ b/api/current.txt @@ -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 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 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); diff --git a/api/system-current.txt b/api/system-current.txt index f017bb0228795..39f87ada11310 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -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 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 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); diff --git a/api/test-current.txt b/api/test-current.txt index d5ecfd11fda2b..84ce5a5c06405 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -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 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 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); diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 9bd648fd2d218..5ea39030926f8 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -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; } diff --git a/core/java/android/view/DropPermissions.java b/core/java/android/view/DragAndDropPermissions.java similarity index 68% rename from core/java/android/view/DropPermissions.java rename to core/java/android/view/DragAndDropPermissions.java index 5411dad3284a6..a3dbdb16197d0 100644 --- a/core/java/android/view/DropPermissions.java +++ b/core/java/android/view/DragAndDropPermissions.java @@ -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}. *

* 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. *

* 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) { } diff --git a/core/java/android/view/DragEvent.java b/core/java/android/view/DragEvent.java index 71db0b51b0bff..0dfbe70600396 100644 --- a/core/java/android/view/DragEvent.java +++ b/core/java/android/view/DragEvent.java @@ -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; } diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index 440ef2162fc5e..5d2683f98d00a 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -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(); } } diff --git a/core/java/com/android/internal/view/IDropPermissions.aidl b/core/java/com/android/internal/view/IDragAndDropPermissions.aidl similarity index 96% rename from core/java/com/android/internal/view/IDropPermissions.aidl rename to core/java/com/android/internal/view/IDragAndDropPermissions.aidl index 74ff4b42d97f6..64c2d04409837 100644 --- a/core/java/com/android/internal/view/IDropPermissions.aidl +++ b/core/java/com/android/internal/view/IDragAndDropPermissions.aidl @@ -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(); diff --git a/services/core/java/com/android/server/wm/DropPermissionsHandler.java b/services/core/java/com/android/server/wm/DragAndDropPermissionsHandler.java similarity index 91% rename from services/core/java/com/android/server/wm/DropPermissionsHandler.java rename to services/core/java/com/android/server/wm/DragAndDropPermissionsHandler.java index 5889fb8eb53e8..1831ff963f749 100644 --- a/services/core/java/com/android/server/wm/DropPermissionsHandler.java +++ b/services/core/java/com/android/server/wm/DragAndDropPermissionsHandler.java @@ -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; diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java index ffe03361b37fa..0539b05fa8466 100644 --- a/services/core/java/com/android/server/wm/DragState.java +++ b/services/core/java/com/android/server/wm/DragState.java @@ -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) {