buildscript {
  ext.firebaseVersion = '11.4.2'
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'
  }
}

apply plugin: 'com.android.library'

android {
  compileSdkVersion 26
  buildToolsVersion "25.0.3"
  defaultConfig {
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    // multiDexEnabled true
  }
  buildTypes {
    release {
      minifyEnabled false
    }
  }
  productFlavors {
  }
}


allprojects {
  repositories {
    jcenter()
    mavenLocal()
    maven {
      url "https://maven.google.com"
    }
  }
}

rootProject.gradle.buildFinished { buildResult ->
  if (buildResult.getFailure() != null) {
    try {
      String message = buildResult.getFailure().properties.get("reportableCauses").toString()
      if (message.contains("com.android.dex.DexException: Multiple dex files define Lcom/google/") ||
        message.contains("java.util.zip.ZipException: duplicate entry: com/google/android/gms/")) {
        logger.log(LogLevel.ERROR, "")
        logger.log(LogLevel.ERROR, " -----------------------------------------------------------")
        logger.log(LogLevel.ERROR, "|                    REACT NATIVE FIREBASE                  |")
        logger.log(LogLevel.ERROR, " ----------------------------------------------------------- ")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, "|  This is a common build error when using libraries that   |")
        logger.log(LogLevel.ERROR, "|  require google play services.                            |")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, "|  This error occurs because different versions of google   |")
        logger.log(LogLevel.ERROR, "|  play services or google play services modules are being  |")
        logger.log(LogLevel.ERROR, "|  required by different libraries.                         |")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, "|  A temporary fix would be to set:                         |")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, "|             android { multiDexEnabled true }              |")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, "|  inside your build gradle, however it is recommended for  |")
        logger.log(LogLevel.ERROR, "|  your prod build that you de-duplicate these to minimize  |")
        logger.log(LogLevel.ERROR, "|  bundle size.                                             |")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, "|  See http://invertase.link/dupe-dex for how to do this.   |")
        logger.log(LogLevel.ERROR, "|                                                           |")
        logger.log(LogLevel.ERROR, " ----------------------------------------------------------- ")
      }
    } catch (Exception exception) {}
  }
}


dependencies {
  compile fileTree(include: ['*.jar'], dir: 'libs')
  compile "com.facebook.react:react-native:+"  // From node_modules
  compile 'me.leolin:ShortcutBadger:1.1.18@aar'
  compile "com.google.android.gms:play-services-base:$firebaseVersion"
  compile "com.google.firebase:firebase-core:$firebaseVersion"
  compile "com.google.firebase:firebase-config:$firebaseVersion"
  compile "com.google.firebase:firebase-auth:$firebaseVersion"
  compile "com.google.firebase:firebase-database:$firebaseVersion"
  compile "com.google.firebase:firebase-storage:$firebaseVersion"
  compile "com.google.firebase:firebase-messaging:$firebaseVersion"
  compile "com.google.firebase:firebase-crash:$firebaseVersion"
  compile "com.google.firebase:firebase-perf:$firebaseVersion"
  compile "com.google.firebase:firebase-ads:$firebaseVersion"
  compile "com.google.firebase:firebase-firestore:$firebaseVersion"
  compile "com.google.firebase:firebase-invites:$firebaseVersion"
}
