From 41ea6d98e57bc6142a10d89644e11c16de7fc856 Mon Sep 17 00:00:00 2001
From: Rayron Victor <rayronvictor@gmail.com>
Date: Tue, 24 Apr 2018 14:51:07 -0300
Subject: [PATCH] Using SDK Version variables from root project

Instead of assuming the `compileSdkVersion`, `targetSdkVersion`, etc, read it from the root project.
Default `compileSdkVersion` and `targetSdkVersion` to the latest versions.

Android Target API Level 26 will be required in August 2018.
https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
And the React Native team is already working on this:
facebook/react-native#17741
facebook/react-native#18095
---
 android-exoplayer/build.gradle | 21 ++++++++++++++++-----
 android/build.gradle           | 18 +++++++++++++-----
 2 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/android-exoplayer/build.gradle b/android-exoplayer/build.gradle
index b25b816..9f01ea7 100644
--- a/android-exoplayer/build.gradle
+++ b/android-exoplayer/build.gradle
@@ -1,17 +1,28 @@
 apply plugin: 'com.android.library'
 
+def _ext = rootProject.ext
+
+def _reactNativeVersion = _ext.has('reactNative') ? _ext.reactNative : '+'
+def _compileSdkVersion = _ext.has('compileSdkVersion') ? _ext.compileSdkVersion : 27
+def _buildToolsVersion = _ext.has('buildToolsVersion') ? _ext.buildToolsVersion : '27.0.3'
+def _minSdkVersion = _ext.has('minSdkVersion') ? _ext.minSdkVersion : 16
+def _targetSdkVersion = _ext.has('targetSdkVersion') ? _ext.targetSdkVersion : 27
+
 android {
-    compileSdkVersion 23
-    buildToolsVersion "25.0.2"
+    compileSdkVersion _compileSdkVersion
+    buildToolsVersion _buildToolsVersion
 
     defaultConfig {
-        minSdkVersion 16
-        targetSdkVersion 23
+        minSdkVersion _minSdkVersion
+        targetSdkVersion _targetSdkVersion
+        versionCode 1
+        versionName "1.0"
     }
 }
 
 dependencies {
-    provided 'com.facebook.react:react-native:+'
+    //noinspection GradleDynamicVersion
+    provided "com.facebook.react:react-native:${_reactNativeVersion}"
     compile 'com.google.android.exoplayer:exoplayer:r2.4.0'
     compile('com.google.android.exoplayer:extension-okhttp:r2.4.0') {
         exclude group: 'com.squareup.okhttp3', module: 'okhttp'
diff --git a/android/build.gradle b/android/build.gradle
index 922bd9e..789f434 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,12 +1,20 @@
 apply plugin: 'com.android.library'
 
+def _ext = rootProject.ext
+
+def _reactNativeVersion = _ext.has('reactNative') ? _ext.reactNative : '+'
+def _compileSdkVersion = _ext.has('compileSdkVersion') ? _ext.compileSdkVersion : 27
+def _buildToolsVersion = _ext.has('buildToolsVersion') ? _ext.buildToolsVersion : '27.0.3'
+def _minSdkVersion = _ext.has('minSdkVersion') ? _ext.minSdkVersion : 16
+def _targetSdkVersion = _ext.has('targetSdkVersion') ? _ext.targetSdkVersion : 27
+
 android {
-    compileSdkVersion 25
-    buildToolsVersion "25.0.2"
+    compileSdkVersion _compileSdkVersion
+    buildToolsVersion _buildToolsVersion
 
     defaultConfig {
-        minSdkVersion 16
-        targetSdkVersion 25
+        minSdkVersion _minSdkVersion
+        targetSdkVersion _targetSdkVersion
         versionCode 1
         versionName "1.0"
         ndk {
@@ -17,6 +25,6 @@ android {
 
 dependencies {
     //noinspection GradleDynamicVersion
-    provided 'com.facebook.react:react-native:+'
+    provided "com.facebook.react:react-native:${_reactNativeVersion}"
     compile 'com.yqritc:android-scalablevideoview:1.0.4'
 }