Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge next into master #5536

Merged
merged 62 commits into from
Apr 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
a008eb0
Removed adding GD project from the ManualProjectCreatorDialog
grzesiek2010 Mar 6, 2023
8df9c85
Removed redundant tests
grzesiek2010 Mar 6, 2023
42af6cf
Removed unused strings
grzesiek2010 Mar 6, 2023
1f09452
Fixed tests that use GD projects
grzesiek2010 Mar 6, 2023
ab042a0
Removed unused method from MainMenuPage
grzesiek2010 Mar 7, 2023
abdfd73
When deleting Google Drive/Sheets project warn that it can’t be creat…
grzesiek2010 Mar 7, 2023
30dfa7e
Do not allow to set server type in settings
grzesiek2010 Mar 7, 2023
d2a0c1e
Added SettingsImportingResult to be returned instead of boolean after…
grzesiek2010 Mar 7, 2023
dcd107d
Do not allow to scan qr codes with google drive protocol
grzesiek2010 Mar 7, 2023
426de11
Improved and extended GoogleDriveDeprecationTest
grzesiek2010 Mar 7, 2023
20a29cd
Run master CI jobs on next as well
seadowg Mar 15, 2023
740a7db
Merge pull request #5494 from seadowg/ci-config
grzesiek2010 Mar 16, 2023
a6a8564
Updated the Gradle Versions Plugin
grzesiek2010 Mar 16, 2023
5514455
Updated Dependencies and Versions
grzesiek2010 Mar 16, 2023
d043bfb
Updated dependencies in the project gradle file
grzesiek2010 Mar 16, 2023
707e9c6
Updated gradle
grzesiek2010 Mar 16, 2023
12d8be7
Updated checkstyle and pmd
grzesiek2010 Mar 16, 2023
e9cae9f
Updated kotlin
grzesiek2010 Mar 16, 2023
7bfd318
Allow adding empty lines in chained method calls
grzesiek2010 Mar 17, 2023
e642840
Formatted kotlin code
grzesiek2010 Mar 17, 2023
83e4357
Fixed setting java version in kotlin
grzesiek2010 Mar 18, 2023
7422c48
Updated androidx.lifecycle
grzesiek2010 Mar 20, 2023
e10cc46
Removed unused method
grzesiek2010 Mar 20, 2023
92a6969
Code improvements
grzesiek2010 Mar 21, 2023
ef7e68d
Merge pull request #5476 from grzesiek2010/COLLECT-5400
seadowg Mar 22, 2023
6feaeed
Add notes about regression testing process
seadowg Mar 22, 2023
8f31bf4
Make sure FormEntryPage doesn't match hierachy
seadowg Mar 13, 2023
db04cd9
Add test for save points created on swiping
seadowg Mar 15, 2023
a84d66d
Push currentActivity down to where it's used
seadowg Mar 15, 2023
70a5ac1
Protect from situations where destroy() is used on the bottom of a ba…
seadowg Mar 15, 2023
055f6ca
Add test for onSaveInstanceState save points
seadowg Mar 15, 2023
6f2ac56
Make it clearer what situations are being simulated
seadowg Mar 15, 2023
be4aa49
Add audit assertions for save point cases
seadowg Mar 16, 2023
f8f7f25
Fix other FormActivityTestRule tests
seadowg Mar 16, 2023
a8e92a6
Fix test using wrong page
seadowg Mar 16, 2023
b210453
Create new rule for testing FormEntryActivity
seadowg Mar 22, 2023
38b2830
Make blank form intents consistent
seadowg Mar 22, 2023
f6d02a0
Add test for edit form son swipe savepoints
seadowg Mar 22, 2023
6f159b8
Add test for exiting app save point with process death
seadowg Mar 22, 2023
fb69638
Add tests to check save points are loaded correctly
seadowg Mar 22, 2023
a39b629
Added a comment
grzesiek2010 Mar 22, 2023
0d08fc6
Remove stray text
seadowg Mar 23, 2023
e2a67c6
Merge pull request #5503 from grzesiek2010/dependency_updates_v2023.2
grzesiek2010 Mar 23, 2023
5825e52
Bumped the targed sdk version
grzesiek2010 Mar 23, 2023
7e8001b
Merge pull request #5515 from seadowg/regression-docs
seadowg Mar 24, 2023
4439960
Remove untested and (believed to be) unnecessary updateAnswersForScre…
seadowg Nov 2, 2022
dd3f2c3
Make sure answers aren't cleared when changing form language
seadowg Mar 24, 2023
ffdca89
Merge pull request #5519 from grzesiek2010/COLLECT-5510
seadowg Mar 24, 2023
4eb4e82
Merge pull request #5330 from seadowg/update-answers
seadowg Mar 30, 2023
77ec7af
Correct typos
seadowg Mar 30, 2023
dda231f
Add comment justifying assertions
seadowg Mar 30, 2023
bdb07bc
Remove redundant qualifier
seadowg Mar 30, 2023
8c6a8f7
Remove unused cast
seadowg Mar 30, 2023
091edc3
Assert save point fully
seadowg Mar 30, 2023
1ba310e
Inline method
seadowg Mar 30, 2023
94c4e93
Improved scheduling auto-send jobs
grzesiek2010 Mar 27, 2023
67b5139
Merge pull request #5524 from grzesiek2010/COLLECT-5473
seadowg Mar 31, 2023
40d4bc1
Assert all answers for save point
seadowg Mar 31, 2023
42fe4bf
Add more detail to test name
seadowg Mar 31, 2023
6254676
Assert all correct answers
seadowg Mar 31, 2023
c8d42a7
Merge pull request #5516 from seadowg/save-point-test
grzesiek2010 Mar 31, 2023
0ab387d
Merge remote-tracking branch 'upstream/master' into next
seadowg Mar 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -365,13 +365,17 @@ workflows:
- compile
filters:
branches:
ignore: master
ignore:
- master
- next
- test_smoke_instrumented:
requires:
- compile
filters:
branches:
only: master
only:
- master
- next

nightly:
triggers:
Expand All @@ -381,6 +385,7 @@ workflows:
branches:
only:
- master
- next
jobs:
- compile
- test_instrumented:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Please note that the `master` branch reflects ongoing development and is not pro
## Release cycle
Releases can be requested by any community member and generally happen every 2 months.

Before release we perform a "code freeze" (we stop merging pull requests) and then carry out regression testing. If any problems are found, the release is blocked until we can merge fixes. Once the process is complete, [@lognaturel](https://github.com/lognaturel) pushes the releases to the Play Store following [these instructions](#creating-signed-releases-for-google-play-store). The code is "unfrozen" after a short grace period to make hot fixing easier.
Before release we perform a "code freeze" (we stop merging pull requests). A new beta will then be released to the Play Store by [@lognaturel](https://github.com/lognaturel) and that will be used for regression testing by [@getodk/testers](https://github.com/orgs/getodk/teams/testers). If any problems are found, the release is blocked until we can merge fixes. Regression testing should continue on the original beta build (rather than a new one with fixes) unless problems block the rest of testing. Once the process is complete, [@lognaturel](https://github.com/lognaturel) pushes the releases to the Play Store following [these instructions](#creating-signed-releases-for-google-play-store). The code is "unfrozen" after a short grace period to make hot fixing easier.

At the beginning of each release cycle, [@grzesiek2010](https://github.com/grzesiek2010) updates all dependencies that have compatible upgrades available and ensures that the build targets the latest SDK.

Expand Down
4 changes: 1 addition & 3 deletions analytics/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}

namespace 'org.odk.collect.analytics'
}

Expand Down
4 changes: 0 additions & 4 deletions androidshared/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,6 @@ android {
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
}

testOptions {
unitTests {
includeAndroidResources = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ class ImageCompressorTest {

// unsupported exif tags
ExifInterface.TAG_THUMBNAIL_IMAGE_LENGTH to "5",
ExifInterface.TAG_DNG_VERSION to "100",
ExifInterface.TAG_DNG_VERSION to "100"
)

saveTestBitmap(3000, 4000, attributes)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,8 @@ class ImageFileUtilsTest {
assertEquals(
ExifInterface.ORIENTATION_UNDEFINED,
exifData.getAttributeInt(
ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED
ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_UNDEFINED
)
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@ object ImageFileUtils {
@JvmStatic
fun saveBitmapToFile(bitmap: Bitmap?, path: String) {
val compressFormat =
if (path.lowercase(Locale.getDefault()).endsWith(".png"))
if (path.lowercase(Locale.getDefault()).endsWith(".png")) {
CompressFormat.PNG
else CompressFormat.JPEG
} else {
CompressFormat.JPEG
}
try {
if (bitmap != null) {
FileOutputStream(path).use { out -> bitmap.compress(compressFormat, IMAGE_COMPRESS_QUALITY, out) }
Expand Down Expand Up @@ -101,7 +103,9 @@ object ImageFileUtils {
if (bitmap != null) {
bitmap = Bitmap.createScaledBitmap(
bitmap,
newWidth.toInt(), newHeight.toInt(), false
newWidth.toInt(),
newHeight.toInt(),
false
)
}
} else {
Expand All @@ -122,7 +126,11 @@ object ImageFileUtils {
if (bitmap != null) {
Timber.i(
"Screen is %dx%d. Image has been scaled down by %f to %dx%d",
screenHeight, screenWidth, scale, bitmap.height, bitmap.width
screenHeight,
screenWidth,
scale,
bitmap.height,
bitmap.width
)
}
return bitmap
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ object PrefUtils {
title: String,
labelIds: IntArray,
values: Array<String>,
settings: Settings,
settings: Settings
): ListPreference {
val labels: Array<String?> = labelIds.map { context.getString(it) }.toTypedArray()
return createListPref(context, key, title, labels, values, settings)
Expand Down Expand Up @@ -48,7 +48,7 @@ object PrefUtils {
title: String,
labels: Array<String?>,
values: Array<String>,
settings: Settings,
settings: Settings
): ListPreference {
ensurePrefHasValidValue(key, values, settings)
return ListPreference(context).also {
Expand All @@ -65,7 +65,7 @@ object PrefUtils {
private fun ensurePrefHasValidValue(
key: String,
validValues: Array<String>,
settings: Settings,
settings: Settings
) {
val value = settings.getString(key)
if (validValues.indexOf(value) < 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ class MultiClickSafeButton : MaterialButton {
constructor(context: Context) : super(context)

constructor(context: Context, attrs: AttributeSet?) : super(
context, attrs
context,
attrs
)

override fun performClick(): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ class MultiClickSafeImageButton : AppCompatImageButton {
constructor(context: Context) : super(context)

constructor(context: Context, attrs: AttributeSet?) : super(
context, attrs
context,
attrs
)

override fun performClick(): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ class MultiClickSafeTextInputEditText : TextInputEditText {
constructor(context: Context) : super(context)

constructor(context: Context, attrs: AttributeSet?) : super(
context, attrs
context,
attrs
)

override fun performClick(): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import androidx.test.espresso.action.ViewActions.pressBack
import androidx.test.espresso.matcher.ViewMatchers.isRoot
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.`is`
import org.hamcrest.Matchers.equalToIgnoringCase
import org.hamcrest.Matchers.`is`
import org.hamcrest.Matchers.nullValue
import org.junit.Rule
import org.junit.Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,15 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LifecycleRegistry

class FakeLifecycleOwner : LifecycleOwner {

private val lifecycle: LifecycleRegistry by lazy {
private val lifecycleRegistry: LifecycleRegistry by lazy {
LifecycleRegistry(this).also {
it.handleLifecycleEvent(Lifecycle.Event.ON_RESUME)
}
}

override val lifecycle: LifecycleRegistry = lifecycleRegistry

fun destroy() {
lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY)
}

override fun getLifecycle(): Lifecycle {
return lifecycle
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ fun <T> LiveData<T>.getOrAwaitValue(
var data: T? = null
val latch = CountDownLatch(1)
val observer = object : Observer<T> {
override fun onChanged(o: T?) {
override fun onChanged(o: T) {
data = o
latch.countDown()
[email protected](this)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class CoroutineAndWorkManagerScheduler(foregroundContext: CoroutineContext, back
.setInputData(workManagerInputData)
.build()

workManager.beginUniqueWork(tag, ExistingWorkPolicy.KEEP, workRequest).enqueue()
workManager.beginUniqueWork(tag, ExistingWorkPolicy.APPEND_OR_REPLACE, workRequest).enqueue()
}

override fun networkDeferred(tag: String, spec: TaskSpec, repeatPeriod: Long, inputData: Map<String, String>) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package org.odk.collect.audioclips
import android.media.MediaPlayer
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.map
import org.odk.collect.async.Cancellable
import org.odk.collect.async.Scheduler
import java.io.File
Expand Down Expand Up @@ -57,7 +57,7 @@ class AudioClipViewModel(private val mediaPlayerFactory: Supplier<MediaPlayer>,
}

fun isPlaying(clipID: String): LiveData<Boolean> {
return Transformations.map(currentlyPlaying) { value ->
return currentlyPlaying.map { value ->
if (isCurrentPlayingClip(clipID, value)) {
!value!!.isPaused
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ import org.junit.Rule
import org.junit.Test
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentMatchers
import org.mockito.Mockito.`when`
import org.mockito.Mockito.doThrow
import org.mockito.Mockito.inOrder
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.odk.collect.androidtest.getOrAwaitValue
import org.odk.collect.testshared.FakeScheduler
import java.io.File
Expand Down
4 changes: 0 additions & 4 deletions audiorecorder/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,6 @@ android {
targetCompatibility JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
}

testOptions {
unitTests.includeAndroidResources = true
}
Expand Down
13 changes: 7 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:7.4.0'
classpath 'com.google.gms:google-services:4.3.14'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.21"
classpath "org.jlleitschuh.gradle:ktlint-gradle:10.1.0"
classpath "com.github.ben-manes:gradle-versions-plugin:0.44.0"
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'com.google.gms:google-services:4.3.15'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10"
classpath "org.jlleitschuh.gradle:ktlint-gradle:11.3.1"
classpath "com.github.ben-manes:gradle-versions-plugin:0.46.0"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3"
classpath "com.google.android.gms:oss-licenses-plugin:0.10.6"
}
Expand Down Expand Up @@ -64,6 +64,7 @@ allprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
freeCompilerArgs = ['-Xjvm-default=all']
jvmTarget = '1.8'
}
}
}
Expand Down
32 changes: 16 additions & 16 deletions buildSrc/src/main/java/dependencies/Dependencies.kt
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
package dependencies

object Dependencies {
const val desugar = "com.android.tools:desugar_jdk_libs:1.1.5"
const val desugar = "com.android.tools:desugar_jdk_libs:2.0.2"
const val androidx_startup = "androidx.startup:startup-runtime:1.1.1"
const val androidx_annotations = "androidx.annotation:annotation:1.5.0"
const val androidx_annotations = "androidx.annotation:annotation:1.6.0"
const val androidx_lifecycle_runtime_ktx = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycle}"
const val androidx_viewpager2= "androidx.viewpager2:viewpager2:1.0.0"
const val androidx_lifecycle_livedata_ktx = "androidx.lifecycle:lifecycle-livedata-ktx:${Versions.lifecycle}"
const val androidx_lifecycle_viewmodel_ktx = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}"
const val androidx_core_ktx = "androidx.core:core-ktx:1.9.0"
const val androidx_browser = "androidx.browser:browser:1.4.0"
const val androidx_recyclerview = "androidx.recyclerview:recyclerview:1.2.1"
const val androidx_browser = "androidx.browser:browser:1.5.0"
const val androidx_recyclerview = "androidx.recyclerview:recyclerview:1.3.0"
const val androidx_fragment = "androidx.fragment:fragment:${Versions.androidx_fragment}"
const val androidx_navigation_fragment_ktx = "androidx.navigation:navigation-fragment-ktx:2.5.3"
const val androidx_navigation_ui = "androidx.navigation:navigation-ui-ktx:2.5.3"
const val androidx_appcompat = "androidx.appcompat:appcompat:1.5.1"
const val androidx_appcompat = "androidx.appcompat:appcompat:1.6.1"
const val androidx_work_runtime = "androidx.work:work-runtime:${Versions.work}"
const val androidx_cardview = "androidx.cardview:cardview:1.0.0"
const val androidx_exinterface = "androidx.exifinterface:exifinterface:1.3.6"
Expand All @@ -23,10 +23,10 @@ object Dependencies {
const val androidx_fragment_ktx = "androidx.fragment:fragment-ktx:${Versions.androidx_fragment}"
const val android_material = "com.google.android.material:material:1.7.0"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like there is a problem with MaterialCardView using a Material 3 style with a non-Material 3 theme that we need to address to upgrade to 1.8.0

const val android_flexbox = "com.google.android.flexbox:flexbox:3.0.0"
const val google_api_client_android = "com.google.api-client:google-api-client-android:2.1.1"
const val google_api_services_drive = "com.google.apis:google-api-services-drive:v3-rev20221023-2.0.0"
const val google_api_services_sheets = "com.google.apis:google-api-services-sheets:v4-rev20220927-2.0.0"
const val play_services_auth = "com.google.android.gms:play-services-auth:20.4.0"
const val google_api_client_android = "com.google.api-client:google-api-client-android:2.2.0"
const val google_api_services_drive = "com.google.apis:google-api-services-drive:v3-rev20230212-2.0.0"
const val google_api_services_sheets = "com.google.apis:google-api-services-sheets:v4-rev20230227-2.0.0"
const val play_services_auth = "com.google.android.gms:play-services-auth:20.4.1"
const val play_services_maps = "com.google.android.gms:play-services-maps:18.1.0"
const val play_services_location = "com.google.android.gms:play-services-location:20.0.0" // Check if map screens still work when upgrading
const val play_services_oss_licenses = "com.google.android.gms:play-services-oss-licenses:17.0.0"
Expand All @@ -35,7 +35,7 @@ object Dependencies {
const val guava = "com.google.guava:guava:31.1-android"
const val squareup_okhttp = "com.squareup.okhttp3:okhttp:${Versions.okhttp3}"
const val squareup_okhttp_tls = "com.squareup.okhttp3:okhttp-tls:${Versions.okhttp3}"
const val burgstaller_okhttp_digest = "io.github.rburgst:okhttp-digest:3.0"
const val burgstaller_okhttp_digest = "io.github.rburgst:okhttp-digest:3.0.1"
const val persian_joda_time = "com.github.mohamadian:persianjodatime:1.2"
const val myanmar_calendar = "com.github.chanmratekoko:myanmar-calendar:1.0.6.RC3"
const val bikram_sambat = "bikramsambat:bikram-sambat:1.1.0"
Expand All @@ -57,17 +57,17 @@ object Dependencies {
const val glide_compiler = "com.github.bumptech.glide:compiler:${Versions.glide}"
const val caverock_androidsvg = "com.caverock:androidsvg-aar:1.4"
const val mp4parser_muxer = "org.mp4parser:muxer:1.9.41" // Check if https://github.com/getodk/collect/issues/5323 no longer takes place before upgrading
const val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib:1.7.22"
const val gson = "com.google.code.gson:gson:2.10"
const val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib:1.8.10"
const val gson = "com.google.code.gson:gson:2.10.1"
const val firebase_analytics = "com.google.firebase:firebase-analytics:21.2.0"
const val firebase_crashlytics = "com.google.firebase:firebase-crashlytics:18.3.2"
const val firebase_crashlytics = "com.google.firebase:firebase-crashlytics:18.3.5"
const val fastlane_screengrab = "tools.fastlane:screengrab:2.1.1"
const val leakcanary = "com.squareup.leakcanary:leakcanary-android:2.10"
const val timber = "com.jakewharton.timber:timber:5.0.1"
const val slf4j_api = "org.slf4j:slf4j-api:2.0.6"
const val slf4j_timber = "com.arcao:slf4j-timber:3.1@aar"
const val emoji_java = "com.vdurmont:emoji-java:5.1.1"
const val json_schema_validator = "com.networknt:json-schema-validator:1.0.75"
const val json_schema_validator = "com.networknt:json-schema-validator:1.0.78"
const val splashscreen = "androidx.core:core-splashscreen:1.0.0"
const val camerax_core = "androidx.camera:camera-core:${Versions.camerax}"
const val camerax_view = "androidx.camera:camera-view:${Versions.camerax}"
Expand All @@ -81,14 +81,14 @@ object Dependencies {
const val mockito_inline = "org.mockito:mockito-inline:${Versions.mockito}"
const val mockito_kotlin = "org.mockito.kotlin:mockito-kotlin:4.1.0"
const val androidx_fragment_testing = "androidx.fragment:fragment-testing:${Versions.androidx_fragment}"
const val androidx_arch_core_testing = "androidx.arch.core:core-testing:2.1.0"
const val androidx_arch_core_testing = "androidx.arch.core:core-testing:2.2.0"
const val androidx_work_testing = "androidx.work:work-testing:${Versions.work}"
const val androidx_test_core_ktx = "androidx.test:core-ktx:1.5.0"
const val androidx_test_rules = "androidx.test:rules:1.5.0"
const val androidx_test_espresso_contrib = "androidx.test.espresso:espresso-contrib:${Versions.espresso}"
const val androidx_test_espresso_core = "androidx.test.espresso:espresso-core:${Versions.espresso}"
const val androidx_test_espresso_intents = "androidx.test.espresso:espresso-intents:${Versions.espresso}"
const val androidx_test_ext_junit = "androidx.test.ext:junit:1.1.4"
const val androidx_test_ext_junit = "androidx.test.ext:junit:1.1.5"
const val okhttp3_mockwebserver = "com.squareup.okhttp3:mockwebserver:${Versions.okhttp3}"
const val hamcrest = "org.hamcrest:hamcrest:2.2"
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
Expand Down
Loading