def isNewArchitectureEnabled() {
  return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}

buildscript {
  ext.safeExtGet = {prop, fallback ->
    rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
  }
  repositories {
    google()
    gradlePluginPortal()
  }
  dependencies {
    classpath("com.android.tools.build:gradle:7.3.1")
    classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.22")
  }
}

apply plugin: 'com.android.library'
apply plugin: 'com.facebook.react'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'kotlin-kapt'

android {
  compileSdkVersion safeExtGet('compileSdkVersion', 33)
  namespace "com.rtnmapsgl"

  buildFeatures {
      compose true
  }
  composeOptions {
      kotlinCompilerExtensionVersion "1.2.0"
  }

  defaultConfig {
    minSdkVersion safeExtGet('minSdkVersion', 21)
    targetSdkVersion safeExtGet('targetSdkVersion', 33)
    buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
  }
  
  sourceSets {
    main {
        if (isNewArchitectureEnabled()) {
            java.srcDirs += ['src/newarch']
        } else {
            java.srcDirs += ['src/oldarch']
        }
    }
  }
  compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
      jvmTarget = '1.8'
  }
}

repositories {
  mavenCentral()
  google()
}

dependencies {
  implementation 'com.facebook.react:react-native'
    api 'com.google.code.gson:gson:2.10'
    api "androidx.compose.ui:ui:1.2.0"
    api "androidx.compose.ui:ui-tooling-preview:1.2.0"
    api 'androidx.activity:activity-compose:1.3.1'
    api 'androidx.core:core-ktx:1.7.0'
    api "androidx.compose.material:material:1.2.0"
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}