From 6758ec498bb97907ba69edc839c1286cf3c4530a Mon Sep 17 00:00:00 2001 From: Alexander Bakker Date: Fri, 23 May 2025 13:40:08 +0200 Subject: [PATCH] Update gradle, update dependencies and bump minSdkVersion to 23 New versions of Jetpack libraries require minSdkVersion 23. There are a couple of changes in the code to fix incorrect usage of annotations that started breaking the build after this Gradle update. --- app/build.gradle | 41 +- .../aegis/AegisApplicationBase.java | 9 - .../aegis/crypto/CryptoUtils.java | 11 +- .../aegis/crypto/KeyStoreHandle.java | 14 +- .../aegis/services/NotificationService.java | 7 +- .../ui/preferences/SwitchPreference.java | 3 - .../aegis/ui/views/TotpProgressBar.java | 4 - .../aegis/vault/VaultEntryIcon.java | 15 +- app/src/main/res/raw/aboutlibraries.json | 538 +++++++++++------- app/src/main/res/values-v23/themes.xml | 18 - app/src/main/res/values/themes.xml | 8 + build.gradle | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 13 files changed, 378 insertions(+), 296 deletions(-) delete mode 100644 app/src/main/res/values-v23/themes.xml diff --git a/app/build.gradle b/app/build.gradle index dab8aa72..fd1e685e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -26,7 +26,7 @@ android { defaultConfig { applicationId "${packageName}" - minSdkVersion 21 + minSdkVersion 23 targetSdkVersion 35 versionCode 77 versionName "3.3.4" @@ -96,13 +96,16 @@ android { packagingOptions { // R8 doesn't remove these resources, so exclude them manually. This reduces APK size by 4MB. resources { - excludes += ['/org/bouncycastle/pqc/**/*.properties'] + excludes += [ + '/org/bouncycastle/pqc/**/*.properties', + 'META-INF/versions/9/OSGI-INF/MANIFEST.MF' + ] } } compileOptions { - targetCompatibility 1.8 - sourceCompatibility 1.8 + targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_17 coreLibraryDesugaringEnabled true } lint { @@ -141,13 +144,13 @@ aboutLibraries { } dependencies { - def cameraxVersion = '1.4.0' + def cameraxVersion = '1.4.2' def glideVersion = '4.16.0' - def guavaVersion = '33.3.1' - def hiltVersion = '2.52' + def guavaVersion = '33.4.8' + def hiltVersion = '2.56.2' def junitVersion = '4.13.2' def libsuVersion = '6.0.0' - def roomVersion = "2.6.1" + def roomVersion = '2.7.1' annotationProcessor 'androidx.annotation:annotation:1.9.1' annotationProcessor "androidx.room:room-compiler:$roomVersion" @@ -155,18 +158,18 @@ dependencies { annotationProcessor "com.github.bumptech.glide:compiler:${glideVersion}" implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'androidx.activity:activity:1.9.3' + implementation 'androidx.activity:activity:1.10.1' implementation 'androidx.appcompat:appcompat:1.7.0' implementation "androidx.biometric:biometric:1.1.0" implementation "androidx.camera:camera-camera2:$cameraxVersion" implementation "androidx.camera:camera-lifecycle:$cameraxVersion" implementation "androidx.camera:camera-view:$cameraxVersion" - implementation 'androidx.core:core:1.15.0' - implementation 'androidx.constraintlayout:constraintlayout:2.2.0' - implementation 'androidx.documentfile:documentfile:1.0.1' - implementation 'androidx.lifecycle:lifecycle-process:2.8.7' + implementation 'androidx.core:core:1.16.0' + implementation 'androidx.constraintlayout:constraintlayout:2.2.1' + implementation 'androidx.documentfile:documentfile:1.1.0' + implementation 'androidx.lifecycle:lifecycle-process:2.9.0' implementation "androidx.preference:preference:1.2.1" - implementation 'androidx.recyclerview:recyclerview:1.3.2' + implementation 'androidx.recyclerview:recyclerview:1.4.0' implementation "androidx.room:room-runtime:$roomVersion" implementation 'androidx.viewpager2:viewpager2:1.1.0' implementation 'com.caverock:androidsvg-aar:1.4' @@ -181,7 +184,7 @@ dependencies { implementation "com.github.topjohnwu.libsu:io:${libsuVersion}" implementation "com.google.guava:guava:${guavaVersion}-android" implementation 'com.google.android.material:material:1.12.0' - implementation 'com.google.protobuf:protobuf-javalite:4.28.3' + implementation 'com.google.protobuf:protobuf-javalite:4.31.0' implementation 'com.google.zxing:core:3.5.3' implementation('com.mikepenz:aboutlibraries:11.2.3') { exclude group: 'com.mikepenz', module: 'aboutlibraries-core' @@ -189,7 +192,7 @@ dependencies { implementation 'com.mikepenz:aboutlibraries-core-android:11.2.3' implementation 'com.nulab-inc:zxcvbn:1.9.0' implementation 'net.lingala.zip4j:zip4j:2.11.5' - implementation 'org.bouncycastle:bcprov-jdk18on:1.79' + implementation 'org.bouncycastle:bcprov-jdk18on:1.80' implementation 'org.simpleflatmapper:sfm-csv:8.2.3' androidTestAnnotationProcessor "com.google.dagger:hilt-android-compiler:$hiltVersion" @@ -207,8 +210,8 @@ dependencies { testImplementation 'androidx.test:core:1.6.1' testImplementation "com.google.guava:guava:${guavaVersion}-jre" testImplementation "junit:junit:${junitVersion}" - testImplementation 'org.json:json:20240303' - testImplementation 'org.robolectric:robolectric:4.14' + testImplementation 'org.json:json:20250517' + testImplementation 'org.robolectric:robolectric:4.14.1' - coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.3' + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' } diff --git a/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java b/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java index 998a4ca1..2d973fa7 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java +++ b/app/src/main/java/com/beemdevelopment/aegis/AegisApplicationBase.java @@ -17,23 +17,14 @@ import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleEventObserver; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ProcessLifecycleOwner; -import androidx.room.Room; -import com.beemdevelopment.aegis.database.AppDatabase; -import com.beemdevelopment.aegis.database.AuditLogEntry; -import com.beemdevelopment.aegis.database.AuditLogRepository; import com.beemdevelopment.aegis.receivers.VaultLockReceiver; import com.beemdevelopment.aegis.ui.MainActivity; import com.beemdevelopment.aegis.util.IOUtils; import com.beemdevelopment.aegis.vault.VaultManager; import com.topjohnwu.superuser.Shell; -import org.checkerframework.checker.units.qual.A; - import java.util.Collections; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import dagger.hilt.InstallIn; import dagger.hilt.android.EarlyEntryPoint; diff --git a/app/src/main/java/com/beemdevelopment/aegis/crypto/CryptoUtils.java b/app/src/main/java/com/beemdevelopment/aegis/crypto/CryptoUtils.java index 95ef8f7f..00b2bd61 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/crypto/CryptoUtils.java +++ b/app/src/main/java/com/beemdevelopment/aegis/crypto/CryptoUtils.java @@ -1,7 +1,5 @@ package com.beemdevelopment.aegis.crypto; -import android.os.Build; - import com.beemdevelopment.aegis.crypto.bc.SCrypt; import java.io.ByteArrayOutputStream; @@ -23,7 +21,6 @@ import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.GCMParameterSpec; -import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class CryptoUtils { @@ -66,13 +63,7 @@ public class CryptoUtils { // generate the nonce if none is given // we are not allowed to do this ourselves as "setRandomizedEncryptionRequired" is set to true if (nonce != null) { - AlgorithmParameterSpec spec; - // apparently kitkat doesn't support GCMParameterSpec - if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) { - spec = new IvParameterSpec(nonce); - } else { - spec = new GCMParameterSpec(CRYPTO_AEAD_TAG_SIZE * 8, nonce); - } + AlgorithmParameterSpec spec = new GCMParameterSpec(CRYPTO_AEAD_TAG_SIZE * 8, nonce); cipher.init(opmode, key, spec); } else { cipher.init(opmode, key); diff --git a/app/src/main/java/com/beemdevelopment/aegis/crypto/KeyStoreHandle.java b/app/src/main/java/com/beemdevelopment/aegis/crypto/KeyStoreHandle.java index 5cb1c89b..6ed1c05c 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/crypto/KeyStoreHandle.java +++ b/app/src/main/java/com/beemdevelopment/aegis/crypto/KeyStoreHandle.java @@ -1,11 +1,8 @@ package com.beemdevelopment.aegis.crypto; -import android.os.Build; import android.security.keystore.KeyGenParameterSpec; import android.security.keystore.KeyProperties; -import androidx.annotation.RequiresApi; - import java.io.IOException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; @@ -45,10 +42,6 @@ public class KeyStoreHandle { } public SecretKey generateKey(String id) throws KeyStoreHandleException { - if (!isSupported()) { - throw new KeyStoreHandleException("Symmetric KeyStore keys are not supported in this version of Android"); - } - try { KeyGenerator generator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES, STORE_NAME); generator.init(new KeyGenParameterSpec.Builder(id, @@ -87,14 +80,13 @@ public class KeyStoreHandle { throw new KeyStoreHandleException(e); } - if (isSupported() && isKeyPermanentlyInvalidated(key)) { + if (isKeyPermanentlyInvalidated(key)) { return null; } return key; } - @RequiresApi(api = Build.VERSION_CODES.M) private static boolean isKeyPermanentlyInvalidated(SecretKey key) { // try to initialize a dummy cipher and see if an InvalidKeyException is thrown try { @@ -127,8 +119,4 @@ public class KeyStoreHandle { throw new KeyStoreHandleException(e); } } - - public static boolean isSupported() { - return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; - } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java b/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java index 0e03c44c..bcc9030a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java +++ b/app/src/main/java/com/beemdevelopment/aegis/services/NotificationService.java @@ -4,7 +4,6 @@ import android.annotation.SuppressLint; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; -import android.os.Build; import android.os.IBinder; import androidx.annotation.Nullable; @@ -29,11 +28,7 @@ public class NotificationService extends Service { @SuppressLint("LaunchActivityFromNotification") public void serviceMethod() { - int flags = PendingIntent.FLAG_ONE_SHOT; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - flags |= PendingIntent.FLAG_IMMUTABLE; - } - + int flags = PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE; Intent intent = new Intent(this, VaultLockReceiver.class); intent.setAction(VaultLockReceiver.ACTION_LOCK_VAULT); intent.setPackage(BuildConfig.APPLICATION_ID); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/preferences/SwitchPreference.java b/app/src/main/java/com/beemdevelopment/aegis/ui/preferences/SwitchPreference.java index 044230e6..a2c590a6 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/preferences/SwitchPreference.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/preferences/SwitchPreference.java @@ -1,17 +1,14 @@ package com.beemdevelopment.aegis.ui.preferences; import android.content.Context; -import android.os.Build; import android.util.AttributeSet; -import androidx.annotation.RequiresApi; import androidx.preference.Preference; import androidx.preference.SwitchPreferenceCompat; public class SwitchPreference extends SwitchPreferenceCompat { private Preference.OnPreferenceChangeListener _listener; - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/TotpProgressBar.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/TotpProgressBar.java index cbdbdb87..3ed61dd9 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/TotpProgressBar.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/TotpProgressBar.java @@ -2,14 +2,11 @@ package com.beemdevelopment.aegis.ui.views; import android.animation.ObjectAnimator; import android.content.Context; -import android.os.Build; import android.os.Handler; import android.util.AttributeSet; import android.view.animation.LinearInterpolator; import android.widget.ProgressBar; -import androidx.annotation.RequiresApi; - import com.beemdevelopment.aegis.helpers.AnimationsHelper; import com.beemdevelopment.aegis.otp.TotpInfo; @@ -30,7 +27,6 @@ public class TotpProgressBar extends ProgressBar { super(context, attrs, defStyleAttr); } - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public TotpProgressBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultEntryIcon.java b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultEntryIcon.java index f45a71ec..fd18556a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultEntryIcon.java +++ b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultEntryIcon.java @@ -1,5 +1,8 @@ package com.beemdevelopment.aegis.vault; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.beemdevelopment.aegis.encoding.Base64; import com.beemdevelopment.aegis.encoding.EncodingException; import com.beemdevelopment.aegis.encoding.Hex; @@ -7,8 +10,6 @@ import com.beemdevelopment.aegis.icons.IconType; import com.beemdevelopment.aegis.util.JsonUtils; import com.google.common.hash.HashCode; -import org.checkerframework.checker.nullness.qual.NonNull; -import org.checkerframework.checker.nullness.qual.Nullable; import org.json.JSONException; import org.json.JSONObject; @@ -25,21 +26,21 @@ public class VaultEntryIcon implements Serializable { public static final int MAX_DIMENS = 512; - public VaultEntryIcon(byte @NonNull [] bytes, @NonNull IconType type) { + public VaultEntryIcon(@NonNull byte[] bytes, @NonNull IconType type) { this(bytes, type, generateHash(bytes, type)); } - VaultEntryIcon(byte @NonNull [] bytes, @NonNull IconType type, byte @NonNull [] hash) { + VaultEntryIcon(@NonNull byte[] bytes, @NonNull IconType type, @NonNull byte[] hash) { _bytes = bytes; _hash = hash; _type = type; } - public byte @NonNull [] getBytes() { + public @NonNull byte[] getBytes() { return _bytes; } - public byte @NonNull [] getHash() { + public @NonNull byte[] getHash() { return _hash; } @@ -98,7 +99,7 @@ public class VaultEntryIcon implements Serializable { } } - private static byte @NonNull [] generateHash(byte @NonNull [] bytes, @NonNull IconType type) { + private static @NonNull byte[] generateHash(@NonNull byte[] bytes, @NonNull IconType type) { try { MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(type.toMimeType().getBytes(StandardCharsets.UTF_8)); diff --git a/app/src/main/res/raw/aboutlibraries.json b/app/src/main/res/raw/aboutlibraries.json index a91d29ce..fc7d5304 100644 --- a/app/src/main/res/raw/aboutlibraries.json +++ b/app/src/main/res/raw/aboutlibraries.json @@ -1,6 +1,6 @@ { "metadata": { - "generated": "2024-10-18T11:49:53.854Z" + "generated": "2025-05-23T11:52:25.992Z" }, "libraries": [ { @@ -13,14 +13,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.9.3", + "artifactVersion": "1.10.1", "description": "Provides the base Activity subclass and the relevant hooks to build a composable structure on top.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Activity", - "website": "https://developer.android.com/jetpack/androidx/releases/activity#1.9.3", + "website": "https://developer.android.com/jetpack/androidx/releases/activity#1.10.1", "licenses": [ "Apache-2.0" ], @@ -38,14 +38,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.9.3", + "artifactVersion": "1.10.1", "description": "Kotlin extensions for 'activity' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Activity Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/activity#1.9.3", + "website": "https://developer.android.com/jetpack/androidx/releases/activity#1.10.1", "licenses": [ "Apache-2.0" ], @@ -63,14 +63,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.4.0", + "artifactVersion": "1.4.1", "description": "Java annotation for use on unstable Android API surfaces. When used in conjunction with the Experimental annotation lint checks, this annotation provides functional parity with Kotlin's Experimental annotation.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Experimental annotation", - "website": "https://developer.android.com/jetpack/androidx/releases/annotation#1.4.0", + "website": "https://developer.android.com/jetpack/androidx/releases/annotation#1.4.1", "licenses": [ "Apache-2.0" ], @@ -88,14 +88,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.8.0", + "artifactVersion": "1.9.1", "description": "Provides source annotations for tooling and readability.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Annotation", - "website": "https://developer.android.com/jetpack/androidx/releases/annotation#1.8.0", + "website": "https://developer.android.com/jetpack/androidx/releases/annotation#1.9.1", "licenses": [ "Apache-2.0" ], @@ -229,17 +229,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.4", + "artifactVersion": "1.4.2", "description": "Camera2 implementation and extensions for the Jetpack Camera Library, a library providing a consistent and reliable camera foundation that enables great camera driven experiences across all of Android.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Camera2", - "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.3.4", + "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.4.2", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.camera:camera-core", @@ -251,18 +254,21 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.4", + "artifactVersion": "1.4.2", "description": "Core components for the Jetpack Camera Library, a library providing a consistent and reliable camera foundation that enables great camera driven experiences across all of Android.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Camera Core", - "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.3.4", + "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.4.2", "licenses": [ "Apache-2.0", "44d1a25c593283261968a15c8cc213cd" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.camera:camera-lifecycle", @@ -274,17 +280,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.4", + "artifactVersion": "1.4.2", "description": "Lifecycle components for the Jetpack Camera Library, a library providing a consistent and reliable camera foundation that enables great camera driven experiences across all of Android.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Camera Lifecycle", - "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.3.4", + "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.4.2", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.camera:camera-video", @@ -296,17 +305,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.4", + "artifactVersion": "1.4.2", "description": "Video components for the Jetpack Camera Library, a library providing a consistent and reliable camera foundation that enables great camera driven experiences across all of Android.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Camera Video", - "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.3.4", + "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.4.2", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.camera:camera-view", @@ -318,17 +330,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.4", + "artifactVersion": "1.4.2", "description": "UI tools for the Jetpack Camera Library, a library providing a consistent and reliable camera foundation that enables great camera driven experiences across all of Android.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Camera View", - "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.3.4", + "website": "https://developer.android.com/jetpack/androidx/releases/camera#1.4.2", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.cardview:cardview", @@ -353,7 +368,7 @@ ] }, { - "uniqueId": "androidx.collection:collection", + "uniqueId": "androidx.collection:collection-jvm", "funding": [ ], @@ -362,17 +377,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.1.0", + "artifactVersion": "1.4.2", "description": "Standalone efficient collections.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", - "url": "http://source.android.com" + "url": "https://cs.android.com/androidx/platform/frameworks/support" }, - "name": "Support collections", - "website": "http://developer.android.com/tools/extras/support-library.html", + "name": "collections", + "website": "https://developer.android.com/jetpack/androidx/releases/collection#1.4.2", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.collection:collection-ktx", @@ -384,17 +402,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.1.0", + "artifactVersion": "1.4.2", "description": "Kotlin extensions for 'collection' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", - "url": "http://source.android.com" + "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Collections Kotlin Extensions", - "website": "http://developer.android.com/tools/extras/support-library.html", + "website": "https://developer.android.com/jetpack/androidx/releases/collection#1.4.2", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.concurrent:concurrent-futures", @@ -450,17 +471,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.1.4", - "description": "ConstraintLayout for Android", + "artifactVersion": "2.2.1", + "description": "This library offers a flexible and adaptable way to position and animate widgets", "scm": { - "connection": "git@github.com:androidx/constraintlayout.git", - "url": "https://github.com/androidx/constraintlayout" + "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", + "url": "https://cs.android.com/androidx/platform/frameworks/support" }, - "name": "Android ConstraintLayout", - "website": "http://tools.android.com", + "name": "ConstraintLayout", + "website": "https://developer.android.com/jetpack/androidx/releases/constraintlayout#2.2.1", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.constraintlayout:constraintlayout-core", @@ -472,17 +496,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.0.4", - "description": "ConstraintLayout core", + "artifactVersion": "1.1.1", + "description": "This library contains engines and algorithms for constraint based layout and complex animations (it is used by the ConstraintLayout library)", "scm": { - "connection": "git@github.com:androidx/constraintlayout.git", - "url": "https://github.com/androidx/constraintlayout" + "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", + "url": "https://cs.android.com/androidx/platform/frameworks/support" }, - "name": "Android ConstraintLayout Core", - "website": "http://tools.android.com", + "name": "ConstraintLayout Core", + "website": "https://developer.android.com/jetpack/androidx/releases/constraintlayout#1.1.1", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.coordinatorlayout:coordinatorlayout", @@ -516,14 +543,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.13.1", + "artifactVersion": "1.16.0", "description": "Provides backward-compatible implementations of Android platform APIs and features.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Core", - "website": "https://developer.android.com/jetpack/androidx/releases/core#1.13.1", + "website": "https://developer.android.com/jetpack/androidx/releases/core#1.16.0", "licenses": [ "Apache-2.0" ], @@ -541,14 +568,39 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.13.1", + "artifactVersion": "1.16.0", "description": "Kotlin extensions for 'core' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Core Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/core#1.13.1", + "website": "https://developer.android.com/jetpack/androidx/releases/core#1.16.0", + "licenses": [ + "Apache-2.0" + ], + "organization": { + "name": "The Android Open Source Project" + } + }, + { + "uniqueId": "androidx.core:core-viewtree", + "funding": [ + + ], + "developers": [ + { + "name": "The Android Open Source Project" + } + ], + "artifactVersion": "1.0.0", + "description": "Provides ViewTree extensions packaged for use by other core androidx libraries", + "scm": { + "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", + "url": "https://cs.android.com/androidx/platform/frameworks/support" + }, + "name": "androidx.core:core-viewtree", + "website": "https://developer.android.com/jetpack/androidx/releases/core#1.0.0", "licenses": [ "Apache-2.0" ], @@ -647,17 +699,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.0.1", + "artifactVersion": "1.1.0", "description": "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 14 or later.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", - "url": "http://source.android.com" + "url": "https://cs.android.com/androidx/platform/frameworks/support" }, - "name": "Support Document File", - "website": "http://developer.android.com/tools/extras/support-library.html", + "name": "Document File", + "website": "https://developer.android.com/jetpack/androidx/releases/documentfile#1.1.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.drawerlayout:drawerlayout", @@ -867,14 +922,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle-Common", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle-Common", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -892,14 +947,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle LiveData", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle LiveData", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -917,14 +972,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle LiveData Core", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle LiveData Core", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -942,14 +997,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Kotlin extensions for 'livedata-core' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "LiveData Core Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -967,14 +1022,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Kotlin extensions for 'livedata' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "LiveData Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -992,14 +1047,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle Process", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle Process", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -1017,14 +1072,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle Runtime", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle Runtime", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -1042,14 +1097,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Kotlin extensions for 'lifecycle' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -1067,14 +1122,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle ViewModel", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle ViewModel", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -1092,14 +1147,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Kotlin extensions for 'viewmodel' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle ViewModel Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -1117,14 +1172,14 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.8.6", + "artifactVersion": "2.9.0", "description": "Android Lifecycle ViewModel", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Lifecycle ViewModel with SavedState", - "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.8.6", + "website": "https://developer.android.com/jetpack/androidx/releases/lifecycle#2.9.0", "licenses": [ "Apache-2.0" ], @@ -1317,17 +1372,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.1", + "artifactVersion": "1.4.0", "description": "Allows libraries to prepopulate ahead of time compilation traces to be read by ART", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, - "name": "androidx.profileinstaller:profileinstaller", - "website": "https://developer.android.com/jetpack/androidx/releases/profileinstaller#1.3.1", + "name": "Profile Installer", + "website": "https://developer.android.com/jetpack/androidx/releases/profileinstaller#1.4.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.recyclerview:recyclerview", @@ -1339,17 +1397,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.3.2", + "artifactVersion": "1.4.0", "description": "Android Support RecyclerView", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, - "name": "Support RecyclerView", - "website": "https://developer.android.com/jetpack/androidx/releases/recyclerview#1.3.2", + "name": "RecyclerView", + "website": "https://developer.android.com/jetpack/androidx/releases/recyclerview#1.4.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.resourceinspection:resourceinspection-annotation", @@ -1374,7 +1435,7 @@ ] }, { - "uniqueId": "androidx.room:room-common", + "uniqueId": "androidx.room:room-common-jvm", "funding": [ ], @@ -1383,20 +1444,23 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.6.1", + "artifactVersion": "2.7.1", "description": "Android Room-Common", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Room-Common", - "website": "https://developer.android.com/jetpack/androidx/releases/room#2.6.1", + "website": "https://developer.android.com/jetpack/androidx/releases/room#2.7.1", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { - "uniqueId": "androidx.room:room-runtime", + "uniqueId": "androidx.room:room-runtime-android", "funding": [ ], @@ -1405,17 +1469,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.6.1", + "artifactVersion": "2.7.1", "description": "Android Room-Runtime", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Room-Runtime", - "website": "https://developer.android.com/jetpack/androidx/releases/room#2.6.1", + "website": "https://developer.android.com/jetpack/androidx/releases/room#2.7.1", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.savedstate:savedstate", @@ -1427,17 +1494,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.2.1", + "artifactVersion": "1.3.0", "description": "Android Lifecycle Saved State", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Saved State", - "website": "https://developer.android.com/jetpack/androidx/releases/savedstate#1.2.1", + "website": "https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.savedstate:savedstate-ktx", @@ -1449,17 +1519,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.2.1", + "artifactVersion": "1.3.0", "description": "Kotlin extensions for 'savedstate' artifact", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "SavedState Kotlin Extensions", - "website": "https://developer.android.com/jetpack/androidx/releases/savedstate#1.2.1", + "website": "https://developer.android.com/jetpack/androidx/releases/savedstate#1.3.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.slidingpanelayout:slidingpanelayout", @@ -1484,7 +1557,7 @@ ] }, { - "uniqueId": "androidx.sqlite:sqlite", + "uniqueId": "androidx.sqlite:sqlite-android", "funding": [ ], @@ -1493,20 +1566,23 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.4.0", - "description": "Android DB", + "artifactVersion": "2.5.0", + "description": "SQLite API", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "SQLite", - "website": "https://developer.android.com/jetpack/androidx/releases/sqlite#2.4.0", + "website": "https://developer.android.com/jetpack/androidx/releases/sqlite#2.5.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { - "uniqueId": "androidx.sqlite:sqlite-framework", + "uniqueId": "androidx.sqlite:sqlite-framework-android", "funding": [ ], @@ -1515,17 +1591,20 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "2.4.0", - "description": "The implementation of Support SQLite library using the framework code.", + "artifactVersion": "2.5.0", + "description": "The implementation of SQLite library using the framework code.", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "SQLite Framework Integration", - "website": "https://developer.android.com/jetpack/androidx/releases/sqlite#2.4.0", + "website": "https://developer.android.com/jetpack/androidx/releases/sqlite#2.5.0", "licenses": [ "Apache-2.0" - ] + ], + "organization": { + "name": "The Android Open Source Project" + } }, { "uniqueId": "androidx.startup:startup-runtime", @@ -1631,14 +1710,36 @@ "name": "The Android Open Source Project" } ], - "artifactVersion": "1.0.0", + "artifactVersion": "1.2.0", "description": "Android Tracing", "scm": { "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", "url": "https://cs.android.com/androidx/platform/frameworks/support" }, "name": "Android Tracing", - "website": "https://developer.android.com/jetpack/androidx/releases/tracing#1.0.0", + "website": "https://developer.android.com/jetpack/androidx/releases/tracing#1.2.0", + "licenses": [ + "Apache-2.0" + ] + }, + { + "uniqueId": "androidx.tracing:tracing-ktx", + "funding": [ + + ], + "developers": [ + { + "name": "The Android Open Source Project" + } + ], + "artifactVersion": "1.2.0", + "description": "Android Tracing", + "scm": { + "connection": "scm:git:https://android.googlesource.com/platform/frameworks/support", + "url": "https://cs.android.com/androidx/platform/frameworks/support" + }, + "name": "Android Tracing Runtime Kotlin Extensions", + "website": "https://developer.android.com/jetpack/androidx/releases/tracing#1.2.0", "licenses": [ "Apache-2.0" ] @@ -2154,7 +2255,7 @@ "developers": [ ], - "artifactVersion": "2.52", + "artifactVersion": "2.56.2", "description": "A fast dependency injector for Android and Java.", "scm": { "connection": "scm:git:git://github.com/google/dagger.git", @@ -2179,7 +2280,7 @@ "developers": [ ], - "artifactVersion": "2.52", + "artifactVersion": "2.56.2", "description": "A fast dependency injector for Android and Java.", "scm": { "connection": "scm:git:git://github.com/google/dagger.git", @@ -2204,7 +2305,7 @@ "developers": [ ], - "artifactVersion": "2.52", + "artifactVersion": "2.56.2", "description": "A fast dependency injector for Android and Java.", "scm": { "connection": "scm:git:git://github.com/google/dagger.git", @@ -2229,7 +2330,7 @@ "developers": [ ], - "artifactVersion": "2.52", + "artifactVersion": "2.56.2", "description": "A fast dependency injector for Android and Java.", "scm": { "connection": "scm:git:git://github.com/google/dagger.git", @@ -2254,7 +2355,7 @@ "developers": [ ], - "artifactVersion": "2.52", + "artifactVersion": "2.56.2", "description": "A fast dependency injector for Android and Java.", "scm": { "connection": "scm:git:git://github.com/google/dagger.git", @@ -2279,7 +2380,7 @@ "developers": [ ], - "artifactVersion": "2.19.1", + "artifactVersion": "2.34.0", "description": "Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time.", "scm": { "connection": "scm:git:https://github.com/google/error-prone.git", @@ -2304,7 +2405,7 @@ "developers": [ ], - "artifactVersion": "2.28.0", + "artifactVersion": "2.36.0", "description": "Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time.", "scm": { "connection": "scm:git:https://github.com/google/error-prone.git", @@ -2329,7 +2430,7 @@ "developers": [ ], - "artifactVersion": "1.0.2", + "artifactVersion": "1.0.3", "description": "Contains\n com.google.common.util.concurrent.internal.InternalFutureFailureAccess and\n InternalFutures. Most users will never need to use this artifact. Its\n classes are conceptually a part of Guava, but they're in this separate\n artifact so that Android libraries can use them without pulling in all of\n Guava (just as they can use ListenableFuture by depending on the\n listenablefuture artifact).", "scm": { "connection": "scm:git:https://github.com/google/guava.git", @@ -2350,7 +2451,7 @@ "developers": [ ], - "artifactVersion": "33.3.1-android", + "artifactVersion": "33.4.8-android", "description": "Guava is a suite of core and expanded libraries that include\n utility classes, Google's collections, I/O classes, and\n much more.", "scm": { "connection": "scm:git:https://github.com/google/guava.git", @@ -2416,7 +2517,7 @@ "developers": [ ], - "artifactVersion": "4.28.2", + "artifactVersion": "4.31.0", "description": "Lite version of Protocol Buffers library. This version is optimized for code size, but does\n not guarantee API/ABI stability.", "scm": { "connection": "scm:git:https://github.com/protocolbuffers/protobuf.git", @@ -2428,6 +2529,31 @@ "BSD-3-Clause" ] }, + { + "uniqueId": "com.google.testparameterinjector:test-parameter-injector", + "funding": [ + + ], + "developers": [ + + ], + "artifactVersion": "1.18", + "description": "A simple yet powerful parameterized test runner.", + "scm": { + "connection": "scm:git:git://github.com/google/testparameterinjector.git", + "url": "http://github.com/google/testparameterinjector/", + "developerConnection": "scm:git:ssh://git@github.com/google/testparameterinjector.git" + }, + "name": "TestParameterInjector for JUnit4", + "website": "https://github.com/google/testparameterinjector", + "licenses": [ + "Apache-2.0" + ], + "organization": { + "url": "http://www.google.com/", + "name": "Google Inc." + } + }, { "uniqueId": "com.google.zxing:core", "funding": [ @@ -2688,13 +2814,13 @@ "name": "The Legion of the Bouncy Castle Inc." } ], - "artifactVersion": "1.78.1", - "description": "The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.8 and up.", + "artifactVersion": "1.80", + "description": "The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains the JCA/JCE provider and low-level API for the BC Java version 1.80 for Java 8 and later.", "scm": { "url": "https://github.com/bcgit/bc-java" }, "name": "Bouncy Castle Provider", - "website": "https://www.bouncycastle.org/java.html", + "website": "https://www.bouncycastle.org/download/bouncy-castle-java/", "licenses": [ "73252b46f36df25ef51a7994de439aea" ] @@ -2710,19 +2836,22 @@ "name": "Michael Ernst" }, { - "organisationUrl": "https://www.cs.washington.edu/", + "organisationUrl": "http://uwaterloo.ca/", + "name": "Werner M. Dietl" + }, + { + "organisationUrl": "https://www.cs.washington.edu/research/plse/", "name": "Suzanne Millstein" } ], - "artifactVersion": "3.43.0", - "description": "checker-qual contains annotations (type qualifiers) that a programmer\nwrites to specify Java code for type-checking by the Checker Framework.", + "artifactVersion": "2.5.5", + "description": "Checker Qual is the set of annotations (qualifiers) and supporting classes\n used by the Checker Framework to type check Java source code. Please\n see artifact:\n org.checkerframework:checker", "scm": { - "connection": "scm:git:https://github.com/typetools/checker-framework.git", - "url": "https://github.com/typetools/checker-framework.git", - "developerConnection": "scm:git:ssh://git@github.com/typetools/checker-framework.git" + "connection": "https://github.com/typetools/checker-framework.git", + "url": "https://github.com/typetools/checker-framework.git" }, "name": "Checker Qual", - "website": "https://checkerframework.org/", + "website": "https://checkerframework.org", "licenses": [ "MIT" ] @@ -2870,7 +2999,7 @@ "name": "Kotlin Team" } ], - "artifactVersion": "2.0.20", + "artifactVersion": "2.1.10", "description": "Kotlin Standard Library", "scm": { "connection": "scm:git:https://github.com/JetBrains/kotlin.git", @@ -2883,54 +3012,6 @@ "Apache-2.0" ] }, - { - "uniqueId": "org.jetbrains.kotlin:kotlin-stdlib-jdk7", - "funding": [ - - ], - "developers": [ - { - "organisationUrl": "https://www.jetbrains.com", - "name": "Kotlin Team" - } - ], - "artifactVersion": "1.8.22", - "description": "Kotlin Standard Library JDK 7 extension", - "scm": { - "connection": "scm:git:https://github.com/JetBrains/kotlin.git", - "url": "https://github.com/JetBrains/kotlin", - "developerConnection": "scm:git:https://github.com/JetBrains/kotlin.git" - }, - "name": "Kotlin Stdlib Jdk7", - "website": "https://kotlinlang.org/", - "licenses": [ - "Apache-2.0" - ] - }, - { - "uniqueId": "org.jetbrains.kotlin:kotlin-stdlib-jdk8", - "funding": [ - - ], - "developers": [ - { - "organisationUrl": "https://www.jetbrains.com", - "name": "Kotlin Team" - } - ], - "artifactVersion": "1.8.22", - "description": "Kotlin Standard Library JDK 8 extension", - "scm": { - "connection": "scm:git:https://github.com/JetBrains/kotlin.git", - "url": "https://github.com/JetBrains/kotlin", - "developerConnection": "scm:git:https://github.com/JetBrains/kotlin.git" - }, - "name": "Kotlin Stdlib Jdk8", - "website": "https://kotlinlang.org/", - "licenses": [ - "Apache-2.0" - ] - }, { "uniqueId": "org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm", "funding": [ @@ -3030,7 +3111,7 @@ "name": "JetBrains Team" } ], - "artifactVersion": "1.7.1", + "artifactVersion": "1.7.3", "description": "Kotlin multiplatform serialization runtime library", "scm": { "url": "https://github.com/Kotlin/kotlinx.serialization" @@ -3052,7 +3133,7 @@ "name": "JetBrains Team" } ], - "artifactVersion": "1.7.1", + "artifactVersion": "1.7.3", "description": "Kotlin multiplatform serialization runtime library", "scm": { "url": "https://github.com/Kotlin/kotlinx.serialization" @@ -3074,7 +3155,7 @@ "name": "JetBrains Team" } ], - "artifactVersion": "1.7.1", + "artifactVersion": "1.7.3", "description": "Kotlin multiplatform serialization runtime library", "scm": { "url": "https://github.com/Kotlin/kotlinx.serialization" @@ -3119,7 +3200,7 @@ "name": "Douglas Crockford" } ], - "artifactVersion": "20240303", + "artifactVersion": "20250517", "description": "JSON is a light-weight, language independent, data interchange format.\n See http://www.JSON.org/\n\n The files in this package implement JSON encoders/decoders in Java.\n It also includes the capability to convert between JSON and XML, HTTP\n headers, Cookies, and CDL.\n\n This is a reference implementation. There are a large number of JSON packages\n in Java. Perhaps someday the Java community will standardize on one. Until\n then, choose carefully.", "scm": { "connection": "scm:git:git://github.com/douglascrockford/JSON-java.git", @@ -3158,6 +3239,29 @@ "name": "Jonathan Hedley" } }, + { + "uniqueId": "org.jspecify:jspecify", + "funding": [ + + ], + "developers": [ + { + "name": "Kevin Bourrillion" + } + ], + "artifactVersion": "1.0.0", + "description": "An artifact of well-named and well-specified annotations to power static analysis checks", + "scm": { + "connection": "scm:git:git@github.com:jspecify/jspecify.git", + "url": "https://github.com/jspecify/jspecify/", + "developerConnection": "scm:git:git@github.com:jspecify/jspecify.git" + }, + "name": "JSpecify annotations", + "website": "http://jspecify.org/", + "licenses": [ + "Apache-2.0" + ] + }, { "uniqueId": "org.ow2.asm:asm", "funding": [ @@ -3174,7 +3278,7 @@ "name": "Remi Forax" } ], - "artifactVersion": "9.7", + "artifactVersion": "9.7.1", "description": "ASM, a very small and fast Java bytecode manipulation framework", "scm": { "connection": "scm:git:https://gitlab.ow2.org/asm/asm/", @@ -3207,7 +3311,7 @@ "name": "Remi Forax" } ], - "artifactVersion": "9.7", + "artifactVersion": "9.7.1", "description": "Static code analysis API of ASM, a very small and fast Java bytecode manipulation framework", "scm": { "connection": "scm:git:https://gitlab.ow2.org/asm/asm/", @@ -3240,7 +3344,7 @@ "name": "Remi Forax" } ], - "artifactVersion": "9.7", + "artifactVersion": "9.7.1", "description": "Usefull class adapters based on ASM, a very small and fast Java bytecode manipulation framework", "scm": { "connection": "scm:git:https://gitlab.ow2.org/asm/asm/", @@ -3273,7 +3377,7 @@ "name": "Remi Forax" } ], - "artifactVersion": "9.7", + "artifactVersion": "9.7.1", "description": "Tree API of ASM, a very small and fast Java bytecode manipulation framework", "scm": { "connection": "scm:git:https://gitlab.ow2.org/asm/asm/", @@ -3306,7 +3410,7 @@ "name": "Remi Forax" } ], - "artifactVersion": "9.7", + "artifactVersion": "9.7.1", "description": "Utilities for ASM, a very small and fast Java bytecode manipulation framework", "scm": { "connection": "scm:git:https://gitlab.ow2.org/asm/asm/", @@ -3341,7 +3445,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3372,7 +3476,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3403,7 +3507,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3426,7 +3530,7 @@ "name": "The Android Open Source Projects" } ], - "artifactVersion": "1.0.12", + "artifactVersion": "1.0.16", "description": "Robolectric Nativeruntime Distribution Compat", "scm": { "connection": "https://android.googlesource.com/platform/manifest.git", @@ -3456,7 +3560,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3487,7 +3591,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3518,7 +3622,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3549,7 +3653,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3580,7 +3684,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3611,7 +3715,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3642,7 +3746,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3673,7 +3777,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3704,7 +3808,7 @@ "name": "Christian Williams" } ], - "artifactVersion": "4.13", + "artifactVersion": "4.14.1", "description": "An alternative Android testing framework.", "scm": { "connection": "scm:git:git://github.com/robolectric/robolectric.git", @@ -3898,6 +4002,32 @@ "licenses": [ "MIT" ] + }, + { + "uniqueId": "org.yaml:snakeyaml", + "funding": [ + + ], + "developers": [ + { + "name": "Andrey Somov" + }, + { + "name": "Alexander Maslov" + } + ], + "artifactVersion": "2.3", + "description": "YAML 1.1 parser and emitter for Java", + "scm": { + "connection": "scm:git:http://bitbucket.org/snakeyaml/snakeyaml", + "url": "https://bitbucket.org/snakeyaml/snakeyaml/src", + "developerConnection": "scm:git:ssh://git@bitbucket.org/snakeyaml/snakeyaml" + }, + "name": "SnakeYAML", + "website": "https://bitbucket.org/snakeyaml/snakeyaml", + "licenses": [ + "Apache-2.0" + ] } ], "licenses": { diff --git a/app/src/main/res/values-v23/themes.xml b/app/src/main/res/values-v23/themes.xml deleted file mode 100644 index 0dae2de7..00000000 --- a/app/src/main/res/values-v23/themes.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index d135ec24..f490f38b 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -187,12 +187,20 @@