Browse Source

Merge pull request #4020 from nextcloud/chore/2064/removeJCenter

remove jCenter
Marcel Hibbe 1 year ago
parent
commit
1c8b1080b7

+ 4 - 7
app/build.gradle

@@ -226,7 +226,7 @@ dependencies {
 
     implementation "com.squareup.retrofit2:retrofit:${retrofit2Version}"
     implementation "com.squareup.retrofit2:adapter-rxjava2:${retrofit2Version}"
-    implementation 'com.github.aurae.retrofit2:converter-logansquare:1.4.1'
+    implementation 'de.mannodermaus.retrofit2:converter-logansquare:1.4.1'
 
     implementation "com.google.dagger:dagger:${daggerVersion}"
     kapt "com.google.dagger:dagger-compiler:${daggerVersion}"
@@ -243,8 +243,8 @@ dependencies {
     implementation "androidx.room:room-ktx:${roomVersion}"
 
     implementation "org.parceler:parceler-api:$parcelerVersion"
-    implementation 'eu.davidea:flexible-adapter:5.1.0'
-    implementation 'eu.davidea:flexible-adapter-ui:1.0.0'
+    implementation 'com.github.ddB0515.FlexibleAdapter:flexible-adapter:5.1.1'
+    implementation 'com.github.ddB0515.FlexibleAdapter:flexible-adapter-ui:5.1.1'
     implementation 'org.apache.commons:commons-lang3:3.14.0'
     implementation 'com.github.wooplr:Spotlight:1.3'
     implementation 'com.google.code.findbugs:jsr305:3.0.2'
@@ -258,10 +258,7 @@ dependencies {
     implementation "com.github.nextcloud-deps.hwsecurity:hwsecurity-fido:${fidoVersion}"
     implementation "com.github.nextcloud-deps.hwsecurity:hwsecurity-fido2:${fidoVersion}"
 
-    implementation 'com.novoda:merlin:1.2.1'
-
     implementation 'com.github.nextcloud:PopupBubble:2.0.0'
-    implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
 
     implementation "com.afollestad.material-dialogs:core:${materialDialogsVersion}"
     implementation "com.afollestad.material-dialogs:datetime:${materialDialogsVersion}"
@@ -301,7 +298,7 @@ dependencies {
     debugImplementation("androidx.compose.ui:ui-tooling")
 
     //tests
-    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
+    androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.6.8")
     debugImplementation("androidx.compose.ui:ui-test-manifest")
 
     testImplementation 'junit:junit:4.13.2'

+ 0 - 4
app/src/main/AndroidManifest.xml

@@ -298,10 +298,6 @@
                 android:resource="@xml/auth" />
         </service>
 
-        <service
-            android:name="com.novoda.merlin.MerlinService"
-            android:exported="false" />
-
         <provider
             android:name="androidx.core.content.FileProvider"
             android:authorities="${applicationId}"

+ 2 - 12
app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt

@@ -16,17 +16,16 @@ import android.util.Log
 import android.view.View
 import android.widget.SeekBar
 import androidx.core.content.ContextCompat
-import androidx.core.content.res.ResourcesCompat
 import androidx.work.WorkInfo
 import androidx.work.WorkManager
 import autodagger.AutoInjector
 import coil.load
-import com.amulyakhare.textdrawable.TextDrawable
 import com.nextcloud.android.common.ui.theme.utils.ColorRole
 import com.nextcloud.talk.R
 import com.nextcloud.talk.application.NextcloudTalkApplication
 import com.nextcloud.talk.application.NextcloudTalkApplication.Companion.sharedApplication
 import com.nextcloud.talk.databinding.ItemCustomIncomingVoiceMessageBinding
+import com.nextcloud.talk.extensions.loadBotsAvatar
 import com.nextcloud.talk.extensions.loadChangelogBotAvatar
 import com.nextcloud.talk.extensions.loadFederatedUserAvatar
 import com.nextcloud.talk.models.json.chat.ChatMessage
@@ -259,16 +258,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) :
         } else if (message.actorType == "bots" && message.actorId == "changelog") {
             binding.messageUserAvatar.loadChangelogBotAvatar()
         } else if (message.actorType == "bots") {
-            val drawable = TextDrawable.builder()
-                .beginConfig()
-                .bold()
-                .endConfig()
-                .buildRound(
-                    ">",
-                    ResourcesCompat.getColor(context!!.resources, R.color.black, null)
-                )
-            binding.messageUserAvatar.visibility = View.VISIBLE
-            binding.messageUserAvatar.setImageDrawable(drawable)
+            binding.messageUserAvatar.loadBotsAvatar()
         } else if (message.actorType == "federated_users") {
             binding.messageUserAvatar.loadFederatedUserAvatar(message)
         }

+ 16 - 11
app/src/main/java/com/nextcloud/talk/extensions/ImageViewExtensions.kt

@@ -10,13 +10,13 @@
 
 package com.nextcloud.talk.extensions
 
+import android.graphics.drawable.ColorDrawable
 import android.graphics.drawable.Drawable
 import android.graphics.drawable.LayerDrawable
 import android.os.Build
 import android.util.Log
 import android.widget.ImageView
 import androidx.core.content.ContextCompat
-import androidx.core.content.res.ResourcesCompat
 import coil.annotation.ExperimentalCoilApi
 import coil.imageLoader
 import coil.load
@@ -26,7 +26,6 @@ import coil.request.SuccessResult
 import coil.result
 import coil.transform.CircleCropTransformation
 import coil.transform.RoundedCornersTransformation
-import com.amulyakhare.textdrawable.TextDrawable
 import com.nextcloud.talk.R
 import com.nextcloud.talk.data.user.model.User
 import com.nextcloud.talk.models.domain.ConversationModel
@@ -36,6 +35,7 @@ import com.nextcloud.talk.models.json.conversations.Conversation
 import com.nextcloud.talk.ui.theme.ViewThemeUtils
 import com.nextcloud.talk.utils.ApiUtils
 import com.nextcloud.talk.utils.DisplayUtils
+import com.nextcloud.talk.utils.TextDrawable
 
 private const val ROUNDING_PIXEL = 16f
 private const val TAG = "ImageViewExtensions"
@@ -315,15 +315,20 @@ fun ImageView.loadChangelogBotAvatar(): io.reactivex.disposables.Disposable {
 }
 
 fun ImageView.loadBotsAvatar(): io.reactivex.disposables.Disposable {
-    return loadUserAvatar(
-        TextDrawable.builder()
-            .beginConfig()
-            .bold()
-            .endConfig()
-            .buildRound(
-                ">",
-                ResourcesCompat.getColor(context.resources, R.color.black, null)
-            )
+    val data: Any = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+        val layers = arrayOfNulls<Drawable>(2)
+        layers[0] = ColorDrawable(context.getColor(R.color.black))
+        layers[1] = TextDrawable(context, ">")
+        val layerDrawable = LayerDrawable(layers)
+        layerDrawable
+    } else {
+        R.mipmap.ic_launcher
+    }
+
+    return DisposableWrapper(
+        load(data) {
+            transformations(CircleCropTransformation())
+        }
     )
 }
 

+ 61 - 0
app/src/main/java/com/nextcloud/talk/utils/TextDrawable.kt

@@ -0,0 +1,61 @@
+/*
+ * Nextcloud Talk - Android Client
+ *
+ * SPDX-FileCopyrightText: 2024 Marcel Hibbe <dev@mhibbe.de>
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+package com.nextcloud.talk.utils
+
+import android.content.Context
+import android.graphics.Canvas
+import android.graphics.ColorFilter
+import android.graphics.Paint
+import android.graphics.PixelFormat
+import android.graphics.Rect
+import android.graphics.drawable.Drawable
+import com.nextcloud.talk.R
+
+class TextDrawable(val context: Context, private var text: String) : Drawable() {
+    private val paint = Paint()
+    private val bounds: Rect
+
+    init {
+        paint.color = context.getColor(R.color.textColorOnPrimaryBackground)
+        paint.isAntiAlias = true
+        paint.textSize = TEXT_SIZE
+        bounds = Rect()
+    }
+
+    override fun draw(canvas: Canvas) {
+        if (text.isNotEmpty()) {
+            paint.getTextBounds(
+                text,
+                0,
+                text.length,
+                bounds
+            )
+            val x: Int = (getBounds().width() - bounds.width()) / 2
+            val y: Int = ((getBounds().height() + bounds.height()) / 2) + Y_OFFSET
+            canvas.drawText(text, x.toFloat(), y.toFloat(), paint)
+        }
+    }
+
+    override fun setColorFilter(colorFilter: ColorFilter?) {
+        paint.setColorFilter(colorFilter)
+    }
+
+    override fun setAlpha(alpha: Int) {
+        paint.alpha = alpha
+    }
+
+    @Deprecated("Deprecated in Java", ReplaceWith("PixelFormat.OPAQUE", "android.graphics.PixelFormat"))
+    override fun getOpacity(): Int {
+        return PixelFormat.OPAQUE
+    }
+
+    companion object {
+        private const val Y_OFFSET = 5
+        private const val TEXT_SIZE = 50f
+    }
+}

+ 1 - 0
app/src/main/res/values/colors.xml

@@ -49,6 +49,7 @@
     <color name="chat_separator">#E8E8E8</color>
     <color name="grey_600">#757575</color>
     <color name="nc_grey">#D5D5D5</color>
+    <color name="black">#000000</color>
     <color name="call_incomingCallTextView">#E9FFFFFF</color>
     <color name="grey950">#111111</color>
     <color name="textColorMaxContrast">#767676</color>

+ 1 - 1
build.gradle

@@ -2,6 +2,7 @@
  * Nextcloud Talk - Android Client
  *
  * SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2024 Marcel Hibbe <dev@mhibbe.de>
  * SPDX-FileCopyrightText: 2021 Andy Scherzinger <info@andy-scherzinger.de>
  * SPDX-FileCopyrightText: 2017-2019 Mario Danic <mario@lovelyhq.com>
  * SPDX-License-Identifier: GPL-3.0-or-later
@@ -47,7 +48,6 @@ allprojects {
         google()
         mavenCentral()
         maven { url 'https://jitpack.io' }
-        gradlePluginPortal() // for jcenter mirroring, remove ASAP
     }
 }
 

+ 1 - 1
detekt.yml

@@ -1,7 +1,7 @@
 # SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
 # SPDX-License-Identifier: GPL-3.0-or-later
 build:
-  maxIssues: 129
+  maxIssues: 138
   weights:
     # complexity: 2
     # LongParameterList: 1

+ 1 - 2
gradle.properties

@@ -17,7 +17,7 @@
 
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-XX:MaxHeapSize\=2048m -Xmx2048m
+org.gradle.jvmargs=-XX:MaxHeapSize\=4096m -Xmx4096m
 org.gradle.dependency.verification.console=verbose
 
 android.useAndroidX=true
@@ -25,7 +25,6 @@ android.enableJetifier=true
 android.nonTransitiveRClass=false
 android.nonFinalResIds=false
 
-# org.gradle.parallel=true
 org.gradle.daemon=true
 org.gradle.configureondemand=true
 org.gradle.caching=true

File diff suppressed because it is too large
+ 178 - 114
gradle/verification-keyring.keys


+ 110 - 97
gradle/verification-metadata.xml

@@ -4,16 +4,17 @@
       <verify-metadata>true</verify-metadata>
       <verify-signatures>true</verify-signatures>
       <trusted-artifacts>
+         <trust file="tensorflow-lite-metadata-0.1.0-rc2.pom" reason="differing hash on every CI run - temp global trust"/>
+         <trust group="androidx.fragment"/>
          <trust group="com.android.tools.build" name="aapt2" version="8.4.1-11315950" reason="ships OS specific artifacts (win/linux) - temp global trust"/>
          <trust group="com.github.nextcloud-deps" name="android-talk-webrtc" version="110.5481.0" reason="ships OS specific artifacts (win/linux) - temp global trust"/>
+         <trust group="com.google.dagger"/>
+         <trust group="org.javassist" name="javassist" version="3.26.0-GA" reason="java assist"/>
          <trust file=".*-sources[.]jar" regex="true"/>
-		 <trust file="tensorflow-lite-metadata-0.1.0-rc2.pom" reason="differing hash on every CI run - temp global trust"/>
-          <trust group="com.google.dagger" />
-          <trust group="org.javassist" name="javassist" version="3.26.0-GA" reason="java assist"/>
-          <trust group="androidx.fragment"/>
       </trusted-artifacts>
       <ignored-keys>
          <ignored-key id="23778689FBFBE047" reason="Key couldn't be downloaded from any key server"/>
+         <ignored-key id="B943F5CB616566CD" reason="Key couldn't be downloaded from any key server"/>
       </ignored-keys>
       <trusted-keys>
          <trusted-key id="02A36B6DB7056EB5E6FFEF893DA731F041734930" group="org.parceler"/>
@@ -108,6 +109,8 @@
             <trusting group="org.slf4j"/>
          </trusted-key>
          <trusted-key id="61DEBD732F3F07771269972E2F87304808D40CEC" group="net.zetetic" name="android-database-sqlcipher" version="4.5.4"/>
+         <trusted-key id="64B9B09F164AA0BF88742EB61188B69F6D6259CA" group="com.google.accompanist"/>
+         <trusted-key id="666A4692CE11B7B3F4EB7B3410066A9707090CF9" group="org.javassist" name="javassist" version="3.26.0-GA"/>
          <trusted-key id="694621A7227D8D5289699830ABE9F3126BB741C1" group="^com[.]google($|([.].*))" regex="true"/>
          <trusted-key id="696B6199A2A9D8C29CE78CC0D041CAD2E452550F" group="com.google.protobuf"/>
          <trusted-key id="6A814B1F869C2BBEAB7CB7271A2A1C94BDE89688" group="org.apache.httpcomponents" name="httpcomponents-parent" version="12"/>
@@ -129,6 +132,7 @@
             <trusting group="androidx.annotation"/>
             <trusting group="androidx.camera"/>
             <trusting group="androidx.collection"/>
+            <trusting group="androidx.compose.foundation"/>
             <trusting group="androidx.compose.material3"/>
             <trusting group="androidx.core"/>
             <trusting group="androidx.emoji2"/>
@@ -140,7 +144,6 @@
             <trusting group="androidx.sqlite"/>
             <trusting group="androidx.webkit"/>
             <trusting group="androidx.work"/>
-             <trusting group="androidx.compose.foundation"/>
          </trusted-key>
          <trusted-key id="84789D24DF77A32433CE1F079EB80E92EB2135B1">
             <trusting group="org.apache" name="apache"/>
@@ -223,7 +226,6 @@
          <trusted-key id="E4AC7874F3479A0F1F8ECF9960BB45F36B649F22" group="fr.dudie" name="nominatim-api" version="3.4"/>
          <trusted-key id="E77417AC194160A3FABD04969A259C7EE636C5ED" group="^com[.]google($|([.].*))" regex="true"/>
          <trusted-key id="E7DC75FC24FB3C8DFE8086AD3D5839A2262CBBFB" group="org.jetbrains.kotlinx"/>
-          <trusted-key id="64B9B09F164AA0BF88742EB61188B69F6D6259CA" group="com.google.accompanist"/>
          <trusted-key id="E82D2EAF2E83830CE1F7F6BE571A5291E827E1C7" group="net.java" name="jvnet-parent" version="3"/>
          <trusted-key id="E85AED155021AF8A6C6B7A4A7C7D8456294423BA" group="org.objenesis"/>
          <trusted-key id="EAA526B91DD83BA3E1B9636FA730529CA355A63E" group="org.ccil.cowan.tagsoup" name="tagsoup" version="1.2.1"/>
@@ -278,6 +280,14 @@
             <sha256 value="46fc8e842d9a4e030dfd9e108c3bc08310f922bd7421f29f67dcaaa4adac3764" origin="Generated by Gradle"/>
          </artifact>
       </component>
+      <component group="androidx.activity" name="activity-compose" version="1.7.0">
+         <artifact name="activity-compose-1.7.0.aar">
+            <sha256 value="caa72885d1ce7979c1d6c59a8b255c6097b770780d4d4da95d56979a348646cd" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+         <artifact name="activity-compose-1.7.0.module">
+            <sha256 value="f7a29bcba338575dcf89a553cff9cfad3f140340eaf2b56fd0193244da602c0a" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="androidx.annotation" name="annotation" version="1.0.0">
          <artifact name="annotation-1.0.0.jar">
             <sha256 value="0baae9755f7caf52aa80cd04324b91ba93af55d4d1d17dcc9a7b53d99ef7c016" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -310,50 +320,6 @@
             <sha256 value="9516c2ae44284ea0bd3d0eade0ee638879b708cbe31e3af92ba96c300604ebc3" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
-       <component group="androidx.exifinterface" name="exifinterface" version="1.3.6">
-           <artifact name="exifinterface-1.3.6.aar">
-               <sha256 value="1804105e9e05fdd8f760413bad5de498c381aa329f4f9d94c851bc891ac654c6" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-           <artifact name="exifinterface-1.3.6.module">
-               <sha256 value="5e9fd84ca3fd3b7706f6856fa4383107de8676bf7c42b7d4b8108949414d6201" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.core" name="core" version="1.1.0">
-           <artifact name="core-1.1.0.pom">
-               <sha256 value="dae46132cdcd46b798425f7cb78fd65890869b6d26101ccdcd43461a4f51754c" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.core" name="core" version="1.3.2">
-           <artifact name="core-1.3.2.pom">
-               <sha256 value="afb5ea494dd083ed404cd51f580d218e37362f8ae326e893bee521290ed34920" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.test.ext" name="junit" version="1.1.5">
-           <artifact name="junit-1.1.5.aar">
-               <sha256 value="4307c0e60f5d701db9c59bcd9115af705113c36a9132fa3dbad58db1294e9bfd" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-           <artifact name="junit-1.1.5.pom">
-               <sha256 value="4cff0df04cae25831e821ef2f9129245783460e98d0fd67d8f6824065a134c4e" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.core" name="core-ktx" version="1.8.0">
-           <artifact name="core-ktx-1.8.0.module">
-               <sha256 value="a91bc3e02f209f643dd8275345a9e3003ce20d64fc0760eccf479c1709842f72" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.annotation" name="annotation-experimental" version="1.3.0">
-           <artifact name="annotation-experimental-1.3.0.aar">
-               <sha256 value="abfd29c8556e5bd0325a9f769ab9e9d154ff4a5515c476cdd5a2a8285b1b19dc" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-           <artifact name="annotation-experimental-1.3.0.module">
-               <sha256 value="5eebeaff01d042e06dcf292abf8964ad391e4b0159f0090f16253d6045d38da0" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.annotation" name="annotation-experimental" version="1.1.0-rc01">
-           <artifact name="annotation-experimental-1.1.0-rc01.module">
-               <sha256 value="d45ac493e84d968aabb2bea2b7744031a98cf5074447c0f3b862d600fc44b55c" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
       <component group="androidx.annotation" name="annotation" version="1.5.0">
          <artifact name="annotation-1.5.0.jar">
             <sha256 value="261fb7c0210858500bab66d34354972a75166ab4182add283780b05513d6ec4a" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -370,14 +336,6 @@
             <sha256 value="fbc64f5c44a7added8b6eab517cf7d70555e25153bf5d44a6ed9b0e5312f7de9" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
-       <component group="androidx.exifinterface" name="exifinterface" version="1.3.2">
-           <artifact name="exifinterface-1.3.2.aar">
-               <sha256 value="8770c180103e0b8c04a07eb4c59153af639b09eca25deae9bdcdaf869d1e5b6b" origin="Generated by Gradle"/>
-           </artifact>
-           <artifact name="exifinterface-1.3.2.module">
-               <sha256 value="10ba5b5cbea7f5c8758be4fdaec60a3545e891a1130d830a442b88cf5336a885" origin="Generated by Gradle"/>
-           </artifact>
-       </component>
       <component group="androidx.annotation" name="annotation-experimental" version="1.0.0">
          <artifact name="annotation-experimental-1.0.0.pom">
             <sha256 value="6b73ff6608f4b1d6cbab620b65708a382d0b39901cf4e6b0d16f84a1b04d7732" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -391,6 +349,19 @@
             <sha256 value="0361d1526a4d7501255e19779e09e93cdbd07fee0e2f5c50b7a137432d510119" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="androidx.annotation" name="annotation-experimental" version="1.1.0-rc01">
+         <artifact name="annotation-experimental-1.1.0-rc01.module">
+            <sha256 value="d45ac493e84d968aabb2bea2b7744031a98cf5074447c0f3b862d600fc44b55c" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
+      <component group="androidx.annotation" name="annotation-experimental" version="1.3.0">
+         <artifact name="annotation-experimental-1.3.0.aar">
+            <sha256 value="abfd29c8556e5bd0325a9f769ab9e9d154ff4a5515c476cdd5a2a8285b1b19dc" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+         <artifact name="annotation-experimental-1.3.0.module">
+            <sha256 value="5eebeaff01d042e06dcf292abf8964ad391e4b0159f0090f16253d6045d38da0" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="androidx.annotation" name="annotation-experimental" version="1.3.1">
          <artifact name="annotation-experimental-1.3.1.aar">
             <sha256 value="e4d49dc3880b7b7437ea54ce71461e02897faa4e1ecc53e63ecadb1a14c20c9c" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -399,37 +370,6 @@
             <sha256 value="9b6974a7dfe26d3c209dd63e16f8ee2461b57a091789160ca1eb492bb1bf3f84" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
-       <component group="androidx.activity" name="activity-compose" version="1.7.0">
-           <artifact name="activity-compose-1.7.0.aar">
-               <sha256 value="caa72885d1ce7979c1d6c59a8b255c6097b770780d4d4da95d56979a348646cd" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-           <artifact name="activity-compose-1.7.0.module">
-               <sha256 value="f7a29bcba338575dcf89a553cff9cfad3f140340eaf2b56fd0193244da602c0a" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
-       <component group="androidx.compose.runtime" name="runtime" version="1.0.1">
-           <artifact name="runtime-1.0.1.module">
-               <sha256 value="2543a8c7edc16bde91f140286b4fd3773d7204a283a4ec99f6e5e286aa92c0c3" origin="Generated by Gradle"/>
-           </artifact>
-       </component>
-       <component group="androidx.compose.runtime" name="runtime-saveable" version="1.0.1">
-           <artifact name="runtime-saveable-1.0.1.module">
-               <sha256 value="c0d6f142542d8d74f65481ef6526d2be265f01f812a112948fcde87a458f4fb6" origin="Generated by Gradle"/>
-           </artifact>
-       </component>
-       <component group="androidx.compose.ui" name="ui" version="1.0.1">
-           <artifact name="ui-1.0.1.aar">
-               <sha256 value="1943daa4a3412861b9a2bdc1a7c8c2ff05d9b8191c1d3e56ebb223d2eb4a8526" origin="Generated by Gradle"/>
-           </artifact>
-           <artifact name="ui-1.0.1.module">
-               <sha256 value="57031a6ac9b60e5b56792ebf5cde6e16812ff566ed9190cbd188b00b46c13779" origin="Generated by Gradle"/>
-           </artifact>
-       </component>
-       <component group="androidx.compose" name="compose-bom" version="2024.06.00">
-           <artifact name="compose-bom-2024.06.00.pom">
-               <sha256 value="1b391a969ff81c0bb43b3711e92d977e8bfa72457a11d8a37910a7051bdc3045" origin="Generated by Gradle" reason="Artifact is not signed"/>
-           </artifact>
-       </component>
       <component group="androidx.appcompat" name="appcompat" version="1.1.0">
          <artifact name="appcompat-1.1.0.pom">
             <sha256 value="340d617121f8ef8e02a6680c8f357aa3e542276d0c8a1cdcb6fd98984b2cb7b9" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -630,6 +570,29 @@
             <sha256 value="db1492b88e41c6039b0b3f2dcf94ae3fcedf74270eba824598184bad03a122ff" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="androidx.compose" name="compose-bom" version="2024.06.00">
+         <artifact name="compose-bom-2024.06.00.pom">
+            <sha256 value="1b391a969ff81c0bb43b3711e92d977e8bfa72457a11d8a37910a7051bdc3045" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
+      <component group="androidx.compose.runtime" name="runtime" version="1.0.1">
+         <artifact name="runtime-1.0.1.module">
+            <sha256 value="2543a8c7edc16bde91f140286b4fd3773d7204a283a4ec99f6e5e286aa92c0c3" origin="Generated by Gradle"/>
+         </artifact>
+      </component>
+      <component group="androidx.compose.runtime" name="runtime-saveable" version="1.0.1">
+         <artifact name="runtime-saveable-1.0.1.module">
+            <sha256 value="c0d6f142542d8d74f65481ef6526d2be265f01f812a112948fcde87a458f4fb6" origin="Generated by Gradle"/>
+         </artifact>
+      </component>
+      <component group="androidx.compose.ui" name="ui" version="1.0.1">
+         <artifact name="ui-1.0.1.aar">
+            <sha256 value="1943daa4a3412861b9a2bdc1a7c8c2ff05d9b8191c1d3e56ebb223d2eb4a8526" origin="Generated by Gradle"/>
+         </artifact>
+         <artifact name="ui-1.0.1.module">
+            <sha256 value="57031a6ac9b60e5b56792ebf5cde6e16812ff566ed9190cbd188b00b46c13779" origin="Generated by Gradle"/>
+         </artifact>
+      </component>
       <component group="androidx.concurrent" name="concurrent-futures" version="1.0.0">
          <artifact name="concurrent-futures-1.0.0.pom">
             <sha256 value="4505b9a5e30a9418b59a9ad6702c3e4193aea6e691a3d03cf220c7640ad083e2" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -730,6 +693,11 @@
             <sha256 value="3d1f4e37b77dd92353879a040ab4ce2f706798bcbdf066147491c3642b3f79a6" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="androidx.core" name="core" version="1.3.2">
+         <artifact name="core-1.3.2.pom">
+            <sha256 value="afb5ea494dd083ed404cd51f580d218e37362f8ae326e893bee521290ed34920" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="androidx.core" name="core" version="1.6.0">
          <artifact name="core-1.6.0.aar">
             <sha256 value="875dbec888c91b05521575fd180cc08824d2c4d12b10b0261b4f9d6825214ef1" origin="Generated by Gradle"/>
@@ -751,6 +719,11 @@
             <sha256 value="8674ade1d12962469dd2d1e6edc03b465f20d180b0840a129bc40b351e8651d1" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="androidx.core" name="core-ktx" version="1.8.0">
+         <artifact name="core-ktx-1.8.0.module">
+            <sha256 value="a91bc3e02f209f643dd8275345a9e3003ce20d64fc0760eccf479c1709842f72" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="androidx.cursoradapter" name="cursoradapter" version="1.0.0">
          <artifact name="cursoradapter-1.0.0.aar">
             <sha256 value="a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -951,6 +924,22 @@
             <sha256 value="44ce22ee620d28f17301bcc60ad49b69b7d0596c2a87b054ad1e3feac7b4a898" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="androidx.exifinterface" name="exifinterface" version="1.3.2">
+         <artifact name="exifinterface-1.3.2.aar">
+            <sha256 value="8770c180103e0b8c04a07eb4c59153af639b09eca25deae9bdcdaf869d1e5b6b" origin="Generated by Gradle"/>
+         </artifact>
+         <artifact name="exifinterface-1.3.2.module">
+            <sha256 value="10ba5b5cbea7f5c8758be4fdaec60a3545e891a1130d830a442b88cf5336a885" origin="Generated by Gradle"/>
+         </artifact>
+      </component>
+      <component group="androidx.exifinterface" name="exifinterface" version="1.3.6">
+         <artifact name="exifinterface-1.3.6.aar">
+            <sha256 value="1804105e9e05fdd8f760413bad5de498c381aa329f4f9d94c851bc891ac654c6" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+         <artifact name="exifinterface-1.3.6.module">
+            <sha256 value="5e9fd84ca3fd3b7706f6856fa4383107de8676bf7c42b7d4b8108949414d6201" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="androidx.exifinterface" name="exifinterface" version="1.3.7">
          <artifact name="exifinterface-1.3.7.aar">
             <sha256 value="0e8f1832266c5b0667ad3d3b1098e624e49a09075493a014a7e88af01fd30ad3" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -1667,6 +1656,14 @@
             <sha256 value="25dab6426d594dd2f3d3dc04234e99307bdfb3c36ce811f64d5ed32f302b5295" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="androidx.test.ext" name="junit" version="1.1.5">
+         <artifact name="junit-1.1.5.aar">
+            <sha256 value="4307c0e60f5d701db9c59bcd9115af705113c36a9132fa3dbad58db1294e9bfd" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+         <artifact name="junit-1.1.5.pom">
+            <sha256 value="4cff0df04cae25831e821ef2f9129245783460e98d0fd67d8f6824065a134c4e" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="androidx.test.services" name="storage" version="1.4.2">
          <artifact name="storage-1.4.2.aar">
             <sha256 value="b34861f0cd920cb1089f08c3f27e5865b7f920284cc45f4ed12ef8d6980dac48" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -3839,6 +3836,22 @@
             <sha256 value="5b99aa67a3d5422c6bd909a0bd9abebdb742157490399a6680aefe17384f0c68" origin="Generated by Gradle" reason="Artifact is not signed"/>
          </artifact>
       </component>
+      <component group="com.github.ddB0515.FlexibleAdapter" name="flexible-adapter" version="5.1.1">
+         <artifact name="flexible-adapter-5.1.1.aar">
+            <sha256 value="41929c785c249e0395faf89fd6bb253aafd65d44d88dbeaa46ecd9658d706cc4" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+         <artifact name="flexible-adapter-5.1.1.module">
+            <sha256 value="bf687e1e750784ca73fac106e36a131364fd65c0bc90d1aae3251e3424d28424" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
+      <component group="com.github.ddB0515.FlexibleAdapter" name="flexible-adapter-ui" version="5.1.1">
+         <artifact name="flexible-adapter-ui-5.1.1.aar">
+            <sha256 value="064f4b5136d92037c92ec0a5494fddfc2ab6b4b4e9873c4c616a093d0a49412a" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+         <artifact name="flexible-adapter-ui-5.1.1.module">
+            <sha256 value="ba284c9e2c1ba32c2e09a90a3142135b89ca68ebda856533e39dfddf9a67ce5b" origin="Generated by Gradle" reason="Artifact is not signed"/>
+         </artifact>
+      </component>
       <component group="com.github.natario1" name="Autocomplete" version="1.1.0">
          <artifact name="Autocomplete-1.1.0.aar">
             <sha256 value="4234ad6fbd47ef8f148205b6faab7846c148346971c0fbd5ac690dd7e5541657" origin="Generated by Gradle" reason="Artifact is not signed"/>
@@ -4639,14 +4652,6 @@
             <sha256 value="9a35e48f20f3021c21e469d52fa88b3acc08b20dab77b6c646f72f6fb205ec92" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
          </artifact>
       </component>
-      <component group="com.novoda" name="merlin" version="1.2.1">
-         <artifact name="merlin-1.2.1.aar">
-            <sha256 value="c62d03d0fde57f26fa633feeee24d7dfed3d66cc81097e4d6306b076cc7d70b6" origin="Generated by Gradle" reason="Artifact is not signed"/>
-         </artifact>
-         <artifact name="merlin-1.2.1.pom">
-            <sha256 value="62dbaffb68b60ca317c05bba83a9fea8d866c3d3e7a2bd928c69591aa2fe4418" origin="Generated by Gradle" reason="Artifact is not signed"/>
-         </artifact>
-      </component>
       <component group="com.squareup" name="javapoet" version="1.2.0">
          <artifact name="javapoet-1.2.0.pom">
             <pgp value="9E84765A7AA3E3D3D5598A408E3F0DE7AE354651"/>
@@ -4741,6 +4746,14 @@
             <sha256 value="c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20" origin="Generated by Gradle"/>
          </artifact>
       </component>
+      <component group="de.mannodermaus.retrofit2" name="converter-logansquare" version="1.4.1">
+         <artifact name="converter-logansquare-1.4.1.jar">
+            <sha256 value="92fb573479c85570c63862d51ce31b5cadcbfbb1618a75027a92ed191b7b4bd2" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
+         </artifact>
+         <artifact name="converter-logansquare-1.4.1.pom">
+            <sha256 value="dd96918c7a737b1641ce463e7a57744d0769fddbbdb7a1564fe758831af403a8" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
+         </artifact>
+      </component>
       <component group="io.fabric8" name="kubernetes-client-bom" version="5.12.4">
          <artifact name="kubernetes-client-bom-5.12.4.pom">
             <pgp value="A42FEF087AF29AE864684EAEE6039456D5BBD4F8"/>

Some files were not shown because too many files changed in this diff