SchildiChat-android/vector/build.gradle

618 lines
22 KiB
Groovy
Raw Normal View History

import com.android.build.OutputFile
2018-10-03 17:56:33 +02:00
apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.appdistribution'
apply plugin: 'com.google.android.gms.oss-licenses-plugin'
2018-10-03 17:56:33 +02:00
apply plugin: 'kotlin-android'
2020-12-16 00:46:52 +01:00
apply plugin: 'kotlin-parcelize'
2018-10-19 14:26:38 +02:00
apply plugin: 'kotlin-kapt'
apply plugin: 'com.likethesalad.stem'
2021-10-14 18:47:28 +02:00
apply plugin: 'dagger.hilt.android.plugin'
2022-05-04 15:52:51 +02:00
apply plugin: 'kotlinx-knit'
2018-10-19 14:26:38 +02:00
if (project.hasProperty("coverage")) {
apply plugin: 'jacoco'
}
2018-10-19 14:26:38 +02:00
kapt {
correctErrorTypes = true
}
2018-10-03 17:56:33 +02:00
2022-05-04 17:14:41 +02:00
knit {
files = fileTree(project.rootDir) {
include '**/*.md'
include '**/*.kt'
include '**/*.kts'
exclude '**/build/**'
exclude '**/.gradle/**'
exclude '**/towncrier/template.md'
exclude '**/CHANGES.md'
exclude '/node_modules'
2022-05-04 17:14:41 +02:00
}
}
// Note: 2 digits max for each value
2020-06-30 13:34:02 +02:00
ext.versionMajor = 1
2022-02-09 11:18:03 +01:00
ext.versionMinor = 4
// Note: even values are reserved for regular release, odd values for hotfix release.
// When creating a hotfix, you should decrease the value, since the current value
// is the value for the next regular release.
ext.versionPatch = 32
ext.scVersion = 56
2019-03-18 18:53:14 +01:00
static def getGitTimestamp() {
def cmd = 'git show -s --format=%ct'
return cmd.execute().text.trim() as Long
}
2019-03-13 17:00:30 +01:00
static def generateVersionCodeFromTimestamp() {
// It's unix timestamp, minus timestamp of October 3rd 2018 (first commit date) divided by 100: It's incremented by one every 100 seconds.
2020-01-13 15:12:39 +01:00
// plus 20_000_000 for compatibility reason with the previous way the Version Code was computed
// Note that the result will be multiplied by 10 when adding the digit for the arch
return ((getGitTimestamp() - 1_538_524_800) / 100).toInteger() + 20_000_000
}
def generateVersionCodeFromVersionName() {
2020-01-13 15:12:39 +01:00
// plus 4_000_000 for compatibility reason with the previous way the Version Code was computed
// Note that the result will be multiplied by 10 when adding the digit for the arch
2020-05-16 12:37:56 +02:00
return (versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch + scVersion) + 4_000_000
}
def getVersionCode() {
if (gitBranchName() == "develop") {
return generateVersionCodeFromTimestamp()
} else {
return generateVersionCodeFromVersionName()
}
}
2019-03-13 17:00:30 +01:00
static def gitRevision() {
2020-01-17 16:06:58 +01:00
def cmd = "git rev-parse --short=8 HEAD"
2019-03-13 17:00:30 +01:00
return cmd.execute().text.trim()
}
static def gitRevisionDate() {
def cmd = "git show -s --format=%ci HEAD^{commit}"
return cmd.execute().text.trim()
}
static def gitBranchName() {
def fromEnv = System.env.BUILDKITE_BRANCH as String ?: ""
if (!fromEnv.isEmpty()) {
return fromEnv
} else {
// Note: this command return "HEAD" on Buildkite, so use the system env 'BUILDKITE_BRANCH' content first
def cmd = "git rev-parse --abbrev-ref HEAD"
return cmd.execute().text.trim()
}
2019-03-13 17:00:30 +01:00
}
// For Google Play build, build on any other branch than main will have a "-dev" suffix
static def getGplayVersionSuffix() {
Merge remote-tracking branch 'upstream/develop' into spaces Change-Id: I10235a7a808ae66f5b00ad2e58c2aedf395e8e25 Conflicts: matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/summary/RoomAggregateNotificationCount.kt sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/summary/RoomSummaryDataSource.kt vector/build.gradle vector/src/main/java/im/vector/app/core/extensions/TimelineEvent.kt vector/src/main/java/im/vector/app/features/configuration/VectorConfiguration.kt vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt vector/src/main/java/im/vector/app/features/home/HomeDetailViewModel.kt vector/src/main/java/im/vector/app/features/home/HomeDrawerFragment.kt vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt vector/src/main/java/im/vector/app/features/home/room/detail/timeline/action/MessageActionsViewModel.kt vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/MessageInformationDataFactory.kt vector/src/main/java/im/vector/app/features/home/room/list/RoomListAction.kt vector/src/main/java/im/vector/app/features/home/room/list/RoomListFragment.kt vector/src/main/java/im/vector/app/features/home/room/list/RoomListViewModel.kt vector/src/main/java/im/vector/app/features/home/room/list/RoomListViewModelFactory.kt vector/src/main/java/im/vector/app/features/home/room/list/SectionHeaderAdapter.kt vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt vector/src/main/java/im/vector/app/features/roomprofile/RoomProfileActivity.kt vector/src/main/java/im/vector/app/features/ui/SharedPreferencesUiStateRepository.kt
2021-05-02 12:12:52 +02:00
if (gitBranchName() == "main" || true) {
return ""
} else {
return "-dev"
}
}
static def gitTag() {
def cmd = "git describe --exact-match --tags"
return cmd.execute().text.trim()
}
// For F-Droid build, build on a not tagged commit will have a "-dev" suffix
static def getFdroidVersionSuffix() {
if (gitTag() == "") {
return "-dev"
} else {
return ""
}
}
project.android.buildTypes.all { buildType ->
buildType.javaCompileOptions.annotationProcessorOptions.arguments =
[
validateEpoxyModelUsage: String.valueOf(buildType.name == 'debug')
]
}
// map for the version codes last digit
// x86 must have greater values than arm
// 64 bits have greater value than 32 bits
ext.abiVersionCodes = ["armeabi-v7a": 1, "arm64-v8a": 2, "x86": 3, "x86_64": 4].withDefault { 0 }
def buildNumber = System.env.BUILDKITE_BUILD_NUMBER as Integer ?: 0
2019-03-13 17:00:30 +01:00
2018-10-03 17:56:33 +02:00
android {
// Due to a bug introduced in Android gradle plugin 3.6.0, we have to specify the ndk version to use
// Ref: https://issuetracker.google.com/issues/144111441
ndkVersion "21.3.6528147"
2021-09-15 11:28:58 +02:00
compileSdk versions.compileSdk
2018-10-03 17:56:33 +02:00
defaultConfig {
2020-05-12 16:03:33 +02:00
applicationId "de.spiritcroc.riotx"
2020-06-18 14:18:40 +02:00
// Set to API 21: see #405
2021-09-15 11:28:58 +02:00
minSdk versions.minSdk
targetSdk versions.targetSdk
multiDexEnabled true
2019-07-11 16:49:06 +02:00
2020-12-01 17:50:59 +01:00
renderscriptTargetApi 24
renderscriptSupportModeEnabled true
// `develop` branch will have version code from timestamp, to ensure each build from CI has a incremented versionCode.
// Other branches (main, features, etc.) will have version code based on application version.
versionCode 40100890
2019-07-11 16:49:06 +02:00
2020-08-27 15:37:10 +02:00
// Required for sonar analysis
versionName "1.4.31.sc56"
2020-08-27 15:37:10 +02:00
// Generate a random app task affinity
manifestPlaceholders = [appTaskAffinitySuffix: "H_${gitRevision()}"]
buildConfigField "String", "GIT_REVISION", "\"${gitRevision()}\""
buildConfigField "String", "GIT_REVISION_DATE", "\"${gitRevisionDate()}\""
buildConfigField "String", "GIT_BRANCH_NAME", "\"${gitBranchName()}\""
buildConfigField "String", "BUILD_NUMBER", "\"${buildNumber}\""
2019-03-13 17:00:30 +01:00
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
// Keep abiFilter for the universalApk
ndk {
abiFilters "armeabi-v7a", "x86", 'arm64-v8a', 'x86_64'
}
// Ref: https://developer.android.com/studio/build/configure-apk-splits.html
splits {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
// By default all ABIs are included, so use reset() and include to specify that we only
// want APKs for armeabi-v7a, x86, arm64-v8a and x86_64.
// Resets the list of ABIs that Gradle should create APKs for to none.
reset()
// Specifies a list of ABIs that Gradle should create APKs for.
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
// Generate a universal APK that includes all ABIs, so user who install from CI tool can use this one by default.
universalApk true
}
}
/*
applicationVariants.all { variant ->
// assign different version code for each output
def baseVariantVersion = variant.versionCode * 10
variant.outputs.each { output ->
def baseAbiVersionCode = project.ext.abiVersionCodes.get(output.getFilter(OutputFile.ABI))
// Known limitation: it does not modify the value in the BuildConfig.java generated file
2020-10-19 12:29:11 +02:00
// See https://issuetracker.google.com/issues/171133218
output.versionCodeOverride = baseVariantVersion + baseAbiVersionCode
print "ABI " + output.getFilter(OutputFile.ABI) + " \t-> VersionCode = " + output.versionCodeOverride + "\n"
}
}
*/
2020-09-25 08:58:48 +02:00
// The following argument makes the Android Test Orchestrator run its
// "pm clear" command after each test invocation. This command ensures
// that the app's state is completely cleared between tests.
testInstrumentationRunnerArguments clearPackageData: 'true'
}
testOptions {
// Disables animations during instrumented tests you run from the command line…
// This property does not affect tests that you run using Android Studio.”
animationsDisabled = true
2021-11-10 19:36:28 +01:00
// Comment to run on Android 12
// execution 'ANDROIDX_TEST_ORCHESTRATOR'
2018-10-03 17:56:33 +02:00
}
signingConfigs {
debug {
keyAlias 'androiddebugkey'
keyPassword 'android'
storeFile file('./signature/debug.keystore')
storePassword 'android'
}
2022-07-05 16:07:12 +02:00
nightly {
keyAlias System.env.ELEMENT_ANDROID_NIGHTLY_KEYID ?: project.property("signing.element.nightly.keyId")
keyPassword System.env.ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD ?: project.property("signing.element.nightly.keyPassword")
2022-07-05 16:07:12 +02:00
storeFile file('./signature/nightly.keystore')
storePassword System.env.ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD ?: project.property("signing.element.nightly.storePassword")
2022-07-05 16:07:12 +02:00
}
release {
keyAlias project.property("signing.element.keyId")
keyPassword project.property("signing.element.keyPassword")
storeFile file(project.property("signing.element.storePath"))
storePassword project.property("signing.element.storePassword")
}
}
2018-10-03 17:56:33 +02:00
buildTypes {
2019-03-13 15:11:02 +01:00
debug {
applicationIdSuffix ".debug"
2020-07-17 11:35:40 +02:00
resValue "string", "app_name", "SchildiChat dbg"
resValue "color", "launcher_background", "#0DBD8B"
signingConfig signingConfigs.debug
if (project.hasProperty("coverage")) {
testCoverageEnabled = coverage.enableTestCoverage
}
2019-03-13 15:11:02 +01:00
}
2018-10-03 17:56:33 +02:00
release {
2020-07-17 11:35:40 +02:00
resValue "string", "app_name", "SchildiChat"
resValue "color", "launcher_background", "#0DBD8B"
2020-06-11 19:37:20 +02:00
postprocessing {
removeUnusedCode true
removeUnusedResources true
2020-06-16 11:18:33 +02:00
// We do not activate obfuscation as it makes it hard then to read crash reports, and it's a bit useless on an open source project :)
2020-06-11 19:37:20 +02:00
obfuscate false
optimizeCode true
proguardFiles 'proguard-rules.pro'
}
2022-01-25 22:26:52 +01:00
// signingConfig signingConfigs.release
2018-10-03 17:56:33 +02:00
}
2022-07-05 16:07:12 +02:00
nightly {
initWith release
2022-07-05 16:07:12 +02:00
applicationIdSuffix ".nightly"
2022-07-05 17:50:01 +02:00
versionNameSuffix "-nightly"
// Just override the background color of the launcher icon for the nightly build.
resValue "color", "launcher_background", "#07007E"
// We need to copy paste this block, this is not done automatically by `initWith release`
postprocessing {
removeUnusedCode true
removeUnusedResources true
// We do not activate obfuscation as it makes it hard then to read crash reports, and it's a bit useless on an open source project :)
obfuscate false
optimizeCode true
proguardFiles 'proguard-rules.pro'
}
2022-07-05 16:11:44 +02:00
matchingFallbacks = ['release']
2022-07-05 16:07:12 +02:00
signingConfig signingConfigs.nightly
firebaseAppDistribution {
artifactType = "APK"
// We upload the universal APK to fix this error:
// "App Distribution found more than 1 output file for this variant.
// Please contact firebase-support@google.com for help using APK splits with App Distribution."
artifactPath = "$rootDir/vector/build/outputs/apk/gplay/nightly/vector-gplay-universal-nightly.apk"
// This file will be generated by the GitHub action
releaseNotesFile = "CHANGES_NIGHTLY.md"
groups = "external-testers"
// This should not be required, but if I do not add the appId, I get this error:
// "App Distribution halted because it had a problem uploading the APK: [404] Requested entity was not found."
appId = "1:912726360885:android:efd8545af52a9f9300427c"
}
2022-07-05 16:07:12 +02:00
}
2018-10-03 17:56:33 +02:00
}
2018-12-13 11:00:50 +01:00
2019-03-13 17:00:30 +01:00
flavorDimensions "store"
productFlavors {
2019-03-19 14:38:15 +01:00
gplay {
apply plugin: 'com.google.gms.google-services'
afterEvaluate {
tasks.matching { it.name.contains("GoogleServices") && !it.name.contains("Gplay") }*.enabled = false
}
2019-03-13 17:00:30 +01:00
dimension "store"
isDefault = true
2019-03-13 17:00:30 +01:00
versionName "1.4.31.sc56"
resValue "bool", "isGplay", "true"
2019-03-13 17:00:30 +01:00
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"G\""
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"GooglePlay\""
}
2019-03-19 14:38:15 +01:00
fdroid {
2019-03-13 17:00:30 +01:00
dimension "store"
versionName "1.4.31.sc56"
resValue "bool", "isGplay", "false"
2019-03-13 17:00:30 +01:00
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\""
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"FDroid\""
}
}
lintOptions {
2019-04-03 12:04:24 +02:00
lintConfig file("lint.xml")
checkDependencies true
abortOnError true
2019-03-13 17:00:30 +01:00
}
2018-12-13 11:00:50 +01:00
compileOptions {
2021-09-15 11:28:58 +02:00
sourceCompatibility versions.sourceCompat
targetCompatibility versions.targetCompat
2018-12-13 11:00:50 +01:00
}
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs += [
"-opt-in=kotlin.RequiresOptIn",
// Fixes false positive "This is an internal Mavericks API. It is not intended for external use."
// of MvRx `by viewModel()` calls. Maybe due to the inlining of code... This is a temporary fix...
"-opt-in=com.airbnb.mvrx.InternalMavericksApi",
// Opt in for kotlinx.coroutines.FlowPreview too
"-opt-in=kotlinx.coroutines.FlowPreview",
// Opt in for kotlinx.coroutines.ExperimentalCoroutinesApi too
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
]
}
2020-04-28 14:15:23 +02:00
sourceSets {
androidTest {
java.srcDirs += "src/sharedTest/java"
}
test {
java.srcDirs += "src/sharedTest/java"
}
// Add sourceSets for `release` version when building `nightly`
nightly {
java.srcDirs += "src/release/java"
}
2020-04-28 14:15:23 +02:00
}
2020-12-16 00:46:52 +01:00
buildFeatures {
viewBinding true
}
2021-06-01 20:29:44 +02:00
packagingOptions {
exclude 'META-INF/lib_release.kotlin_module'
}
2018-10-03 17:56:33 +02:00
}
dependencies {
implementation project(":vector-config")
implementation project(":matrix-sdk-android")
implementation project(":matrix-sdk-android-flow")
implementation project(":library:jsonviewer")
2021-06-15 12:23:54 +02:00
implementation project(":library:ui-styles")
implementation project(":library:core-utils")
implementation project(":library:attachment-viewer")
implementation project(":library:diff-match-patch")
2022-02-22 19:48:48 +01:00
implementation project(":library:multipicker")
implementation 'androidx.multidex:multidex:2.0.1'
2018-10-03 17:56:33 +02:00
implementation libs.jetbrains.kotlinReflect
2021-09-15 11:28:58 +02:00
implementation libs.jetbrains.coroutinesCore
implementation libs.jetbrains.coroutinesAndroid
implementation libs.androidx.recyclerview
2021-09-15 11:28:58 +02:00
implementation libs.androidx.appCompat
implementation libs.androidx.fragmentKtx
implementation libs.androidx.constraintLayout
implementation "androidx.sharetarget:sharetarget:1.1.0"
implementation libs.androidx.core
implementation "androidx.media:media:1.6.0"
implementation "androidx.transition:transition:1.4.1"
implementation libs.androidx.biometric
2019-10-01 20:11:15 +02:00
implementation "org.threeten:threetenbp:1.4.0:no-tzdb"
implementation "com.gabrielittner.threetenbp:lazythreetenbp:0.10.0"
2019-10-01 20:11:15 +02:00
implementation libs.squareup.moshi
implementation libs.squareup.moshiKt
kapt libs.squareup.moshiKotlin
// Lifecycle
implementation libs.androidx.lifecycleLivedata
implementation libs.androidx.lifecycleProcess
2022-02-07 16:10:26 +01:00
implementation libs.androidx.lifecycleRuntimeKtx
2021-09-20 16:54:39 +02:00
implementation libs.androidx.datastorepreferences
// Opus Encoder
implementation libs.element.opusencoder
// Log
2021-09-15 11:28:58 +02:00
implementation libs.jakewharton.timber
// Debug
implementation 'com.facebook.stetho:stetho:1.6.0'
// Phone number https://github.com/google/libphonenumber
implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.53'
// FlowBinding
implementation libs.github.flowBinding
implementation libs.github.flowBindingAppcompat
implementation libs.airbnb.epoxy
implementation libs.airbnb.epoxyGlide
kapt libs.airbnb.epoxyProcessor
implementation libs.airbnb.epoxyPaging
implementation libs.airbnb.mavericks
2018-10-19 15:30:40 +02:00
// Snap Helper https://github.com/rubensousa/GravitySnapHelper
implementation 'com.github.rubensousa:gravitysnaphelper:2.2.2'
// Nightly
// API-only library
gplayImplementation libs.google.appdistributionApi
// Full SDK implementation
gplayImplementation libs.google.appdistribution
// Work
implementation libs.androidx.work
// Paging
implementation libs.androidx.pagingRuntimeKtx
2019-06-18 18:29:48 +02:00
// Functional Programming
implementation libs.arrow.core
// Pref
implementation libs.androidx.preferenceKtx
// UI
2018-10-29 17:20:08 +01:00
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation libs.google.material
implementation 'me.gujun.android:span:1.7'
implementation libs.markwon.core
implementation libs.markwon.extLatex
implementation libs.markwon.imageGlide
implementation libs.markwon.inlineParser
implementation libs.markwon.html
implementation 'com.googlecode.htmlcompressor:htmlcompressor:1.5.2'
implementation 'me.saket:better-link-movement-method:2.2.0'
implementation 'com.google.android.flexbox:flexbox:3.0.0'
implementation libs.androidx.autoFill
2020-12-01 17:50:59 +01:00
implementation 'jp.wasabeef:glide-transformations:4.3.0'
implementation 'com.github.hyuwah:DraggableView:1.0.0'
// Custom Tab
implementation 'androidx.browser:browser:1.4.0'
2019-05-16 10:23:57 +02:00
// Passphrase strength helper
implementation 'com.nulab-inc:zxcvbn:1.7.0'
2019-05-16 10:23:57 +02:00
2021-09-20 16:54:39 +02:00
// Alerter
2021-12-09 23:37:06 +01:00
implementation 'com.github.tapadoo:alerter:7.2.4'
2019-05-16 10:23:57 +02:00
implementation 'com.otaliastudios:autocomplete:1.1.0'
// Shake detection
implementation 'com.squareup:seismic:1.0.3'
// Image Loading
implementation libs.github.bigImageViewer
implementation libs.github.glideImageLoader
implementation libs.github.progressPieIndicator
implementation libs.github.glideImageViewFactory
2020-07-05 21:47:38 +02:00
// implementation 'com.github.MikeOrtiz:TouchImageView:3.0.2'
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
2020-07-05 21:47:38 +02:00
implementation libs.github.glide
kapt libs.github.glideCompiler
2022-01-31 17:17:37 +01:00
implementation 'com.github.yalantis:ucrop:2.2.8'
2018-10-29 17:20:08 +01:00
2020-12-09 12:34:22 +01:00
// Chat effects
2022-02-22 22:31:06 +01:00
implementation 'nl.dionsegijn:konfetti-xml:2.0.2'
2022-01-27 09:56:41 +01:00
implementation 'com.github.jetradarmobile:android-snowfall:1.2.1'
// DI
2021-10-14 18:47:28 +02:00
implementation libs.dagger.hilt
kapt libs.dagger.hiltCompiler
2018-10-03 17:56:33 +02:00
2021-11-23 15:34:04 +01:00
// Analytics
implementation 'com.posthog.android:posthog:1.1.2'
2021-07-07 01:49:39 +02:00
// UnifiedPush
implementation 'com.github.UnifiedPush:android-connector:2.0.0'
2021-07-07 01:49:39 +02:00
// UnifiedPush gplay flavor only
gplayImplementation('com.github.UnifiedPush:android-embedded_fcm_distributor:2.1.1') {
exclude group: 'com.google.firebase', module: 'firebase-core'
exclude group: 'com.google.firebase', module: 'firebase-analytics'
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
}
// OSS License, gplay flavor only
gplayImplementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
implementation "androidx.emoji2:emoji2:1.1.0"
2020-02-12 16:48:11 +01:00
2020-08-12 14:02:00 +02:00
// WebRTC
// org.webrtc:google-webrtc is for development purposes only
// implementation 'org.webrtc:google-webrtc:1.0.+'
implementation('com.facebook.react:react-native-webrtc:1.94.2-jitsi-10227332@aar')
2020-05-05 11:46:21 +02:00
2021-02-10 16:55:07 +01:00
// Jitsi
implementation('org.jitsi.react:jitsi-meet-sdk:5.0.2') {
exclude group: 'com.google.firebase'
exclude group: 'com.google.android.gms'
exclude group: 'com.android.installreferrer'
}
2020-05-05 11:46:21 +02:00
2020-01-22 14:19:04 +01:00
// QR-code
// Stick to 3.3.3 because of https://github.com/zxing/zxing/issues/1170
implementation 'com.google.zxing:core:3.3.3'
2020-01-22 14:19:04 +01:00
implementation 'me.dm7.barcodescanner:zxing:1.9.13'
2020-12-09 16:45:33 +01:00
// Emoji Keyboard
implementation libs.vanniktech.emojiMaterial
implementation libs.vanniktech.emojiGoogle
2020-12-09 16:45:33 +01:00
implementation 'im.dlg:android-dialer:1.2.5'
// JWT
api libs.jsonwebtoken.jjwtApi
runtimeOnly libs.jsonwebtoken.jjwtImpl
runtimeOnly(libs.jsonwebtoken.jjwtOrgjson) {
exclude group: 'org.json', module: 'json' //provided by Android natively
}
implementation 'commons-codec:commons-codec:1.15'
2021-12-15 11:57:43 +01:00
// MapTiler
fdroidImplementation(libs.maplibre.androidSdk) {
exclude group: 'com.google.android.gms', module: 'play-services-location'
}
fdroidImplementation(libs.maplibre.pluginAnnotation) {
exclude group: 'com.google.android.gms', module: 'play-services-location'
}
gplayImplementation libs.maplibre.androidSdk
gplayImplementation libs.maplibre.pluginAnnotation
// TESTS
testImplementation libs.tests.junit
testImplementation libs.tests.kluent
testImplementation libs.mockk.mockk
2020-04-28 14:15:23 +02:00
// Plant Timber tree for test
testImplementation libs.tests.timberJunitRule
testImplementation libs.airbnb.mavericksTesting
testImplementation(libs.jetbrains.coroutinesTest) {
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
}
2020-02-06 23:22:07 +01:00
// Flipper, debug builds only
debugImplementation(libs.flipper.flipper) {
exclude group: 'com.facebook.fbjni', module: 'fbjni'
}
debugImplementation(libs.flipper.flipperNetworkPlugin) {
exclude group: 'com.facebook.fbjni', module: 'fbjni'
}
debugImplementation 'com.facebook.soloader:soloader:0.10.4'
debugImplementation "com.kgurgul.flipper:flipper-realm-android:2.2.0"
2020-06-11 19:40:46 +02:00
// Activate when you want to check for leaks, from time to time.
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'
2020-06-08 19:46:55 +02:00
androidTestImplementation libs.androidx.testCore
androidTestImplementation libs.androidx.testRunner
androidTestImplementation libs.androidx.testRules
androidTestImplementation libs.androidx.junit
androidTestImplementation libs.androidx.espressoCore
androidTestImplementation libs.androidx.espressoContrib
androidTestImplementation libs.androidx.espressoIntents
androidTestImplementation libs.tests.kluent
androidTestImplementation libs.androidx.coreTesting
androidTestImplementation(libs.jetbrains.coroutinesTest) {
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
}
2020-04-28 14:15:23 +02:00
// Plant Timber tree for test
androidTestImplementation libs.tests.timberJunitRule
// "The one who serves a great Espresso"
androidTestImplementation('com.adevinta.android:barista:4.2.0') {
exclude group: 'org.jetbrains.kotlin'
}
2022-06-10 09:51:20 +02:00
androidTestImplementation libs.mockk.mockkAndroid
androidTestUtil libs.androidx.orchestrator
debugImplementation libs.androidx.fragmentTesting
androidTestImplementation "org.jetbrains.kotlin:kotlin-reflect:1.7.10"
2018-10-03 17:56:33 +02:00
}