diff --git a/ui/window/DragAndDropAcrossApps/DragSource/build.gradle b/ui/window/DragAndDropAcrossApps/DragSource/build.gradle
index 81b100f..21ef61c 100644
--- a/ui/window/DragAndDropAcrossApps/DragSource/build.gradle
+++ b/ui/window/DragAndDropAcrossApps/DragSource/build.gradle
@@ -15,24 +15,25 @@
  */
 buildscript {
     repositories {
+        google()
+        mavenCentral()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.0.0'
+        classpath 'com.android.tools.build:gradle:3.2.1'
     }
 }
 
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 24
-    buildToolsVersion "23.0.2"
+    compileSdkVersion 28
 
     defaultConfig {
         applicationId "com.example.android.dragsource"
         minSdkVersion 24
-        targetSdkVersion 24
+        targetSdkVersion 28
         versionCode 1
         versionName "1.0"
     }
@@ -45,8 +46,7 @@
 }
 
 dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile 'com.android.support:appcompat-v7:24.1.1'
-    compile 'com.android.support:support-v13:24.1.1'
+    compile 'com.android.support:appcompat-v7:28.0.0'
+    compile 'com.android.support:support-v13:28.0.0'
 
 }
diff --git a/ui/window/DragAndDropAcrossApps/DropTarget/build.gradle b/ui/window/DragAndDropAcrossApps/DropTarget/build.gradle
index 7dc387a..aadcb62 100644
--- a/ui/window/DragAndDropAcrossApps/DropTarget/build.gradle
+++ b/ui/window/DragAndDropAcrossApps/DropTarget/build.gradle
@@ -16,24 +16,25 @@
 
 buildscript {
     repositories {
+        google()
+        mavenCentral()
         jcenter()
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.0.0'
+        classpath 'com.android.tools.build:gradle:3.2.1'
     }
 }
 
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 24
-    buildToolsVersion "23.0.2"
+    compileSdkVersion 28
 
     defaultConfig {
         applicationId "com.example.android.droptarget"
         minSdkVersion 24
-        targetSdkVersion 24
+        targetSdkVersion 28
         versionCode 1
         versionName "1.0"
     }
@@ -46,7 +47,6 @@
 }
 
 dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
-    compile 'com.android.support:appcompat-v7:24.0.0'
-    compile 'com.android.support:support-v13:24.0.0'
+    compile 'com.android.support:appcompat-v7:28.0.0'
+    compile 'com.android.support:support-v13:28.0.0'
 }
diff --git a/ui/window/DragAndDropAcrossApps/README.md b/ui/window/DragAndDropAcrossApps/README.md
index 4c49eeb..e4198fb 100644
--- a/ui/window/DragAndDropAcrossApps/README.md
+++ b/ui/window/DragAndDropAcrossApps/README.md
@@ -14,15 +14,15 @@
 ------------
 
 Android N introduces support for drag and drop between applications,
-augmenting the existing APIs that have enabled this within a single 
+augmenting the existing APIs that have enabled this within a single
 window before.
 
-To start a drag operation you need to call `View.startDragAndDrop`. 
+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 
+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). 
+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
@@ -34,24 +34,24 @@
 
 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 
+To enable cross-window and cross-app drag and drop add
 `View.DRAG_FLAG_GLOBAL` to the flags passed to the `View.startDragAndDrop`
-call. 
+call.
 
-If a Uri requiring permission grants is being sent, then the 
-`android.view.View.DRAG_FLAG_GLOBAL_URI_READ` and/or the 
+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 
+`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 24
-- Android Build Tools v24.0.2
+- Android SDK 28
+- Android Build Tools v28.0.0
 - Android Support Repository
 
 Screenshots
@@ -80,7 +80,7 @@
 License
 -------
 
-Copyright 2016 The Android Open Source Project, Inc.
+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
diff --git a/ui/window/DragAndDropAcrossApps/gradle/wrapper/gradle-wrapper.properties b/ui/window/DragAndDropAcrossApps/gradle/wrapper/gradle-wrapper.properties
index 6ecb12e..cb6d377 100644
--- a/ui/window/DragAndDropAcrossApps/gradle/wrapper/gradle-wrapper.properties
+++ b/ui/window/DragAndDropAcrossApps/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
\ No newline at end of file
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-bin.zip
