You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
6.2 KiB
180 lines
6.2 KiB
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
apply plugin: 'kotlin-android-extensions'
|
|
apply plugin: 'kotlin-kapt'
|
|
apply plugin: 'realm-android'
|
|
// Crashlytics
|
|
apply plugin: 'com.google.gms.google-services'
|
|
apply plugin: 'com.google.firebase.crashlytics'
|
|
// Serialization
|
|
apply plugin: "kotlinx-serialization"
|
|
|
|
|
|
repositories {
|
|
maven { url 'https://jitpack.io' } // required for MPAndroidChart
|
|
jcenter() // for kotlin serialization
|
|
}
|
|
|
|
android {
|
|
|
|
compileSdkVersion 34
|
|
buildToolsVersion "30.0.3"
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
|
|
defaultConfig {
|
|
applicationId "net.pokeranalytics.android"
|
|
minSdkVersion 23
|
|
targetSdkVersion 34
|
|
versionCode 170
|
|
versionName "6.0.28"
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
ext.enableCrashlytics = false
|
|
firebaseCrashlytics {
|
|
mappingFileUploadEnabled false // should help speed up build times: https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?hl=en&platform=android
|
|
}
|
|
}
|
|
release {
|
|
minifyEnabled true
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
applicationVariants.all { variant ->
|
|
variant.outputs.all { output ->
|
|
def date = new Date()
|
|
def formattedDate = date.format('yyMMdd_HHmm')
|
|
def appName = "PokerAnalytics"
|
|
def buildType = variant.buildType.name
|
|
def newName
|
|
if (buildType == 'debug'){
|
|
newName = "${appName}_${defaultConfig.versionName}(${defaultConfig.versionCode})_${formattedDate}_debug.apk"
|
|
} else {
|
|
newName = "${appName}_${defaultConfig.versionName}(${defaultConfig.versionCode})_${formattedDate}_release.apk"
|
|
}
|
|
outputFileName = newName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
flavorDimensions 'endOfUse'
|
|
productFlavors { // already used: 50000, 51000, 52000, 52130, 52110, 52120
|
|
standard {
|
|
dimension = 'endOfUse'
|
|
}
|
|
// oct2021 {
|
|
// dimension = 'endOfUse'
|
|
// versionNameSuffix = '_oct2021'
|
|
// versionCode = 52120 + android.defaultConfig.versionCode
|
|
// }
|
|
}
|
|
|
|
configurations {
|
|
release {
|
|
all*.exclude group: 'com.google.guava', module: 'listenablefuture'
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
viewBinding true
|
|
}
|
|
namespace 'net.pokeranalytics.android'
|
|
lint {
|
|
disable 'MissingTranslation'
|
|
}
|
|
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
|
|
|
// Kotlin
|
|
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.6'
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6"
|
|
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
|
// implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.20.0") // JVM dependency
|
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
|
|
|
|
// Android
|
|
implementation 'androidx.appcompat:appcompat:1.1.0'
|
|
implementation 'androidx.core:core-ktx:1.3.1'
|
|
implementation 'com.google.android.material:material:1.3.0'
|
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
|
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
|
implementation 'androidx.work:work-runtime-ktx:2.7.1'
|
|
// implementation 'com.google.android.play:core-ktx:1.8.1' // In-app Reviews
|
|
|
|
implementation 'com.google.android.play:review:2.0.1'
|
|
implementation 'com.google.android.play:review-ktx:2.0.1'
|
|
|
|
// Places
|
|
implementation 'com.google.android.libraries.places:places:2.3.0'
|
|
|
|
// Billing / Subscriptions
|
|
implementation 'com.android.billingclient:billing:7.0.0'
|
|
|
|
// Import the BoM for the Firebase platform
|
|
implementation platform('com.google.firebase:firebase-bom:26.1.0')
|
|
// Declare the dependencies for the Crashlytics and Analytics libraries
|
|
// When using the BoM, you don't specify versions in Firebase library dependencies
|
|
implementation 'com.google.firebase:firebase-crashlytics-ktx'
|
|
implementation 'com.google.firebase:firebase-analytics-ktx'
|
|
|
|
// Logs
|
|
implementation 'com.jakewharton.timber:timber:4.7.1'
|
|
|
|
// MPAndroidChart
|
|
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
|
|
|
|
// CSV Parser: https://mvnrepository.com/artifact/org.apache.commons/commons-csv
|
|
implementation 'org.apache.commons:commons-csv:1.7'
|
|
|
|
// Polynomial Regression
|
|
implementation 'org.apache.commons:commons-math3:3.6.1'
|
|
|
|
// ffmpeg for encoding video (HH export)
|
|
implementation 'com.arthenica:ffmpeg-kit-min-gpl:4.4.LTS'
|
|
|
|
// Camera
|
|
def camerax_version = "1.1.0"
|
|
implementation "androidx.camera:camera-core:${camerax_version}"
|
|
implementation "androidx.camera:camera-camera2:${camerax_version}"
|
|
implementation "androidx.camera:camera-lifecycle:${camerax_version}"
|
|
implementation "androidx.camera:camera-video:${camerax_version}"
|
|
|
|
implementation "androidx.camera:camera-view:${camerax_version}"
|
|
implementation "androidx.camera:camera-extensions:${camerax_version}"
|
|
|
|
// Image picking and registerForActivityResult
|
|
implementation 'androidx.activity:activity-ktx:1.6.1'
|
|
implementation "androidx.fragment:fragment-ktx:1.4.1"
|
|
|
|
// Retrofit
|
|
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
|
|
|
// Instrumented Tests
|
|
androidTestImplementation 'androidx.test:core:1.6.1'
|
|
androidTestImplementation 'androidx.test:runner:1.6.2'
|
|
androidTestImplementation 'androidx.test:rules:1.6.1'
|
|
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
|
|
|
|
// Test
|
|
testImplementation 'junit:junit:4.13.2'
|
|
testImplementation 'com.android.support.test:runner:1.0.2'
|
|
testImplementation 'com.android.support.test:rules:1.0.2'
|
|
|
|
// gross, somehow needed to make the stop notif work
|
|
implementation 'com.google.guava:guava:27.0.1-android'
|
|
|
|
}
|
|
|
|
|