buildscript {
  repositories {
    google()
    mavenCentral()
  }
  dependencies {
    classpath "com.android.tools.build:gradle:7.0.0"
  }
}

repositories {
  google()
  mavenCentral()
}

apply plugin: "com.android.library"

rootProject.buildDir = project.property("build_dir")

android {
  compileSdkVersion 31
  defaultConfig {
    minSdkVersion 16
  }

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

  testOptions {
    unitTests {
      includeAndroidResources = true
    }
  }

  dependencies {
    testImplementation files(project.property("flutter_jar"))
    testImplementation "androidx.annotation:annotation:1.1.0"
    testImplementation "androidx.fragment:fragment:1.1.0"
    testImplementation "androidx.lifecycle:lifecycle-runtime:2.2.0"
    testImplementation "androidx.lifecycle:lifecycle-common-java8:2.2.0"
    testImplementation "androidx.test:core:1.4.0"
    testImplementation "com.google.android.play:core:1.8.0"
    testImplementation "com.ibm.icu:icu4j:69.1"
    testImplementation "org.mockito:mockito-core:3.11.2"
    testImplementation "org.robolectric:robolectric:4.6.1"
    testImplementation "junit:junit:4.13"
  }

  sourceSets {
    main {
      test {
        java {
          srcDirs = ["../test"]
       }
      }
    }
  }

  testOptions.unitTests.all {
    jvmArgs "-Xmx1g"

    testLogging {
      events "passed", "skipped", "failed", "standardOut", "standardError"
      exceptionFormat "full"
      showStackTraces true
    }
  }
}
