meshtastic-android/app/build.gradle

179 wiersze
6.4 KiB
Groovy
Czysty Zwykły widok Historia

2020-01-20 23:53:22 +00:00
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlinx-serialization'
2020-01-22 17:28:59 +00:00
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.github.triplet.play'
// apply plugin: "app.brant.amazonappstorepublisher"
2020-01-20 23:53:22 +00:00
2020-01-22 21:40:57 +00:00
// Apply the Crashlytics Gradle plugin
apply plugin: 'com.google.firebase.crashlytics'
2020-01-23 02:32:21 +00:00
// protobuf
apply plugin: 'com.google.protobuf'
2020-01-20 23:53:22 +00:00
android {
/*
signingConfigs {
release {
storeFile "$meshtasticKeystoreFile"
keyAlias 'upload'
storePassword "$meshtasticKeystorePassword"
keyPassword "$meshtasticKeyPassword"
}
} */
2020-01-20 23:53:22 +00:00
compileSdkVersion 29
2020-08-26 20:46:10 +00:00
buildToolsVersion "30.0.1" // Note: 30.0.0.2 doesn't yet work on Github actions CI
2020-01-20 23:53:22 +00:00
defaultConfig {
2020-01-23 05:46:41 +00:00
applicationId "com.geeksville.mesh"
minSdkVersion 21 // The oldest emulator image I have tried is 22 (though 21 probably works)
2020-01-20 23:53:22 +00:00
targetSdkVersion 29
2020-09-14 16:11:17 +00:00
versionCode 20000 // format is Mmmss (where M is 1+the numeric major number
versionName "1.0.00"
2020-01-20 23:53:22 +00:00
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
2020-04-14 00:01:29 +00:00
minifyEnabled true
shrinkResources true
2020-01-20 23:53:22 +00:00
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
2020-04-11 00:25:55 +00:00
debug {
pseudoLocalesEnabled true
}
2020-01-20 23:53:22 +00:00
}
2020-04-11 17:21:26 +00:00
defaultConfig {
// We have to list all translated languages here, because some of our libs have bogus languages that google play
// doesn't like and we need to strip them (gr)
resConfigs "cs", "de", "el", "en", "es", "fi", "fr", "ga", "ht", "it", "ja", "nl", "no", "pt", "ro", "ru", "sk", "sl", "sq", "sv", "tr", "zh"
2020-04-11 20:20:30 +00:00
// Needed to make mapbox work inside the firebase testlab - FIXME, alas, still doesn't work
ndk {
// abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
2020-04-11 17:21:26 +00:00
}
buildFeatures {
// Enables Jetpack Compose for this module
// compose true // NOTE, if true main app crashes if you use regular view layout functions
}
// Set both the Java and Kotlin compilers to target Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
2020-02-10 15:40:45 +00:00
composeOptions {
//kotlinCompilerVersion "1.3.61-dev-withExperimentalGoogleExtensions-20200129"
//kotlinCompilerExtensionVersion "$compose_version"
2020-02-10 15:40:45 +00:00
}
2020-01-20 23:53:22 +00:00
}
play {
// configure per https://github.com/Triple-T/gradle-play-publisher#authenticating-gradle-play-publisher
track = 'internal'
defaultToAppBundles = true
serviceAccountCredentials = file("../../play-credentials.json")
}
2020-02-09 15:28:24 +00:00
2020-02-10 15:40:45 +00:00
androidExtensions {
experimental = true
}
2020-01-23 02:32:21 +00:00
// per protobuf-gradle-plugin docs, this is recommended for android
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.9.0'
}
generateProtoTasks {
all().each { task ->
task.builtins {
java {
2020-05-11 04:39:59 +00:00
// use the smaller android version of the library
option "lite"
2020-01-23 02:32:21 +00:00
}
}
}
}
}
2020-01-20 23:53:22 +00:00
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
2020-04-07 16:36:12 +00:00
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
2020-08-15 19:24:17 +00:00
implementation 'androidx.appcompat:appcompat:1.2.0'
2020-07-24 20:00:38 +00:00
implementation 'androidx.core:core-ktx:1.3.1'
2020-06-16 17:31:57 +00:00
implementation 'androidx.fragment:fragment-ktx:1.2.5'
2020-04-08 22:25:57 +00:00
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
2020-08-30 19:27:10 +00:00
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
2020-09-08 19:05:26 +00:00
implementation 'com.google.android.material:material:1.2.1'
2020-04-07 16:36:12 +00:00
implementation 'androidx.viewpager2:viewpager2:1.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
2020-08-24 20:28:59 +00:00
2020-04-29 18:39:43 +00:00
testImplementation 'junit:junit:4.13'
2020-08-30 19:27:10 +00:00
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
// kotlin serialization
2020-08-18 18:25:16 +00:00
implementation "org.jetbrains.kotlinx:kotlinx-serialization-runtime:1.0-M1-1.4.0-rc"
2020-04-11 16:39:34 +00:00
// rate this app
implementation "com.vorlonsoft:androidrate:1.2.1"
// Coroutines
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
2020-01-23 02:32:21 +00:00
// You need to depend on the lite runtime library, not protobuf-java
2020-01-25 04:35:42 +00:00
// For now I'm not using javalite, because I want JSON printing
//implementation 'com.google.protobuf:protobuf-java:3.11.1'
//implementation 'com.google.protobuf:protobuf-java-util:3.11.1'
implementation 'com.google.protobuf:protobuf-javalite:3.12.2'
2020-03-12 01:13:44 +00:00
2020-06-05 18:53:50 +00:00
// For UART access
// implementation 'com.google.android.things:androidthings:1.0'
2020-08-18 18:34:25 +00:00
implementation 'com.github.mik3y:usb-serial-for-android:v3.0.0'
2020-06-05 18:53:50 +00:00
2020-03-11 21:45:49 +00:00
// mapbox
2020-07-20 19:15:18 +00:00
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.1'
2020-01-23 02:32:21 +00:00
// mapbox specifies a really old version of okhttp3 which causes lots of API warnings. trying a newer version
2020-08-18 18:34:25 +00:00
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
// location services
implementation 'com.google.android.gms:play-services-location:17.0.0'
2020-02-14 15:47:20 +00:00
// For Google Sign-In (owner name accesss)
2020-07-25 03:51:59 +00:00
implementation 'com.google.android.gms:play-services-auth:18.1.0'
2020-02-14 15:47:20 +00:00
2020-01-22 21:40:57 +00:00
// Add the Firebase SDK for Crashlytics.
2020-08-24 20:28:59 +00:00
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
2020-01-22 17:28:59 +00:00
// alas implementation bug deep in the bowels when I tried it for my SyncBluetoothDevice class
// implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3"
2020-01-22 17:28:59 +00:00
// add SDKs for any other desired Firebase products
// https://firebase.google.com/docs/android/setup#available-libraries
// barcode support
// per https://github.com/journeyapps/zxing-android-embedded for support of android version 22
implementation('com.journeyapps:zxing-android-embedded:4.1.0') { transitive = false }
2020-04-29 18:39:43 +00:00
implementation 'com.google.zxing:core:3.4.0'
2020-07-24 20:00:38 +00:00
def work_version = '2.4.0'
// Work Request - used to delay boot event handling
// implementation "androidx.work:work-runtime:$work_version"
implementation "androidx.work:work-runtime-ktx:$work_version"
2020-01-22 04:32:19 +00:00
implementation project(':geeksville-androidlib')
2020-01-20 23:53:22 +00:00
}