|  | 
 | Android DragAndDropAcrossApps-new Sample | 
 | =================================== | 
 |  | 
 | This sample contains two separate Android applications: DragSource and | 
 | DropTarget. DragSource contains images and text that can be dropped into the DropTarget | 
 | app. Images are shared between the two apps through a URI for which the receiving app | 
 | must request permission first, before it can be used. | 
 |  | 
 | It also demonstrates the use of the DragStartHelper from the v13 support library to easily | 
 | handle drag and drop events. | 
 |  | 
 | Introduction | 
 | ------------ | 
 |  | 
 | Android N introduces support for drag and drop between applications, | 
 | augmenting the existing APIs that have enabled this within a single | 
 | window before. | 
 |  | 
 | To start a drag operation you need to call `View.startDragAndDrop`. | 
 | Which gesture or action triggers this is up to you as an app developer. | 
 | The API guide recommends doing this from | 
 | `View.OnLongClickListener.onLongClick` and this seems to be the de-facto | 
 | standard, but you are free to use other gestures (single tap, tap and drag | 
 | etc). | 
 | However, if you go for a unconventional drag start gesture, note that | 
 | the framework implementation assumes that the pointer (touch or mouse) | 
 | is down while the drag is starting, and the most recent touch/click | 
 | position is used as the original position of the drag shadow. | 
 |  | 
 | See also `android.support.v13.view.DragStartHelper` which uses different | 
 | gestures for touch and mouse (click and drag works better for mouse | 
 | than a long click). | 
 |  | 
 | By default a drag and drop operation is constrained by the window | 
 | containing the view that started the drag. | 
 | To enable cross-window and cross-app drag and drop add | 
 | `View.DRAG_FLAG_GLOBAL` to the flags passed to the `View.startDragAndDrop` | 
 | call. | 
 |  | 
 | If a Uri requiring permission grants is being sent, then the | 
 | `android.view.View.DRAG_FLAG_GLOBAL_URI_READ` and/or the | 
 | `android.view.View.DRAG_FLAG_GLOBAL_URI_WRITE` flags must be used also. | 
 | To access content URIs requiring permissions on the receiving side, the target | 
 | app needs to request the `android.view.DropPermissions` from the activity via | 
 | `android.app.Activity.requestDropPermissions`. This permission will stay either | 
 | until the activity is alive, or until the `release()` method is called on the | 
 | `android.view.DropPermissions` object. | 
 |  | 
 | Pre-requisites | 
 | -------------- | 
 |  | 
 | - Android SDK 28 | 
 | - Android Build Tools v28.0.3 | 
 | - Android Support Repository | 
 |  | 
 | Screenshots | 
 | ------------- | 
 |  | 
 | <img src="screenshots/phone.png" height="400" alt="Screenshot"/> <img src="screenshots/tablet.png" height="400" alt="Screenshot"/>  | 
 |  | 
 | Getting Started | 
 | --------------- | 
 |  | 
 | This sample uses the Gradle build system. To build this project, use the | 
 | "gradlew build" command or use "Import Project" in Android Studio. | 
 |  | 
 | Support | 
 | ------- | 
 |  | 
 | - Google+ Community: https://plus.google.com/communities/105153134372062985968 | 
 | - Stack Overflow: http://stackoverflow.com/questions/tagged/android | 
 |  | 
 | If you've found an error in this sample, please file an issue: | 
 | https://github.com/googlesamples/android-DragAndDropAcrossApps-new | 
 |  | 
 | Patches are encouraged, and may be submitted by forking this project and | 
 | submitting a pull request through GitHub. Please see CONTRIBUTING.md for more details. | 
 |  | 
 | License | 
 | ------- | 
 |  | 
 | Copyright 2019 The Android Open Source Project, Inc. | 
 |  | 
 | Licensed to the Apache Software Foundation (ASF) under one or more contributor | 
 | license agreements.  See the NOTICE file distributed with this work for | 
 | additional information regarding copyright ownership.  The ASF licenses this | 
 | file to you under the Apache License, Version 2.0 (the "License"); you may not | 
 | use this file except in compliance with the License.  You may obtain a copy of | 
 | the License at | 
 |  | 
 | http://www.apache.org/licenses/LICENSE-2.0 | 
 |  | 
 | Unless required by applicable law or agreed to in writing, software | 
 | distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
 | WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the | 
 | License for the specific language governing permissions and limitations under | 
 | the License. |