Stories progress

This commit is contained in:
Matthieu 2023-06-02 18:20:54 +02:00
parent 73193abd95
commit dda06b1cd5
11 changed files with 708 additions and 163 deletions

View File

@ -231,17 +231,12 @@ class MainActivity : BaseThemedWithoutBarActivity() {
nameRes = R.string.logout
iconicsIcon = GoogleMaterial.Icon.gmd_close
},
primaryDrawerItem {
nameRes = R.string.story_image
iconicsIcon = GoogleMaterial.Icon.gmd_auto_stories
},
)
binding.drawer.onDrawerItemClickListener = { v, drawerItem, position ->
when (position){
1 -> launchActivity(ProfileActivity())
2 -> launchActivity(SettingsActivity())
3 -> logOut()
4 -> launchActivity(StoriesActivity())
}
false
}

View File

@ -12,13 +12,14 @@ import androidx.paging.RemoteMediator
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import org.pixeldroid.app.R
import org.pixeldroid.app.utils.db.dao.feedContent.FeedContentDao
import org.pixeldroid.app.posts.StatusViewHolder
import org.pixeldroid.app.posts.feeds.cachedFeeds.FeedViewModel
import org.pixeldroid.app.posts.feeds.cachedFeeds.CachedFeedFragment
import org.pixeldroid.app.posts.feeds.cachedFeeds.FeedViewModel
import org.pixeldroid.app.posts.feeds.cachedFeeds.ViewModelFactory
import org.pixeldroid.app.stories.StoryCarouselViewHolder
import org.pixeldroid.app.utils.api.objects.FeedContentDatabase
import org.pixeldroid.app.utils.api.objects.Status
import org.pixeldroid.app.utils.db.dao.feedContent.FeedContentDao
import org.pixeldroid.app.utils.displayDimensionsInPx
import kotlin.properties.Delegates
@ -40,7 +41,7 @@ class PostFeedFragment<T: FeedContentDatabase>: CachedFeedFragment<T>() {
adapter = PostsAdapter(requireContext().displayDimensionsInPx())
home = requireArguments().get("home") as Boolean
home = requireArguments().getBoolean("home")
@Suppress("UNCHECKED_CAST")
if (home){
@ -55,7 +56,7 @@ class PostFeedFragment<T: FeedContentDatabase>: CachedFeedFragment<T>() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
savedInstanceState: Bundle?,
): View? {
val view = super.onCreateView(inflater, container, savedInstanceState)
@ -78,17 +79,34 @@ class PostFeedFragment<T: FeedContentDatabase>: CachedFeedFragment<T>() {
) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return StatusViewHolder.create(parent)
return if(viewType == R.layout.post_fragment){
StatusViewHolder.create(parent)
} else {
StoryCarouselViewHolder.create(parent)
}
}
override fun getItemViewType(position: Int): Int {
return R.layout.post_fragment
return if(home && position == 0) R.layout.story_carousel
else R.layout.post_fragment
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val uiModel = getItem(position) as Status?
uiModel?.let {
(holder as StatusViewHolder).bind(it, apiHolder, db, lifecycleScope, displayDimensionsInPx)
if(home && position == 0){
holder.itemView.visibility = View.GONE
holder.itemView.layoutParams = RecyclerView.LayoutParams(0, 0)
(holder as StoryCarouselViewHolder).bind(apiHolder, lifecycleScope, holder.itemView)
} else {
holder.itemView.visibility = View.VISIBLE
holder.itemView.layoutParams =
RecyclerView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
val uiModel = getItem(if(home) position - 1 else position) as Status?
uiModel?.let {
(holder as StatusViewHolder).bind(it, apiHolder, db, lifecycleScope, displayDimensionsInPx)
}
}
}
}

View File

@ -1,6 +1,5 @@
package org.pixeldroid.app.searchDiscover
import android.annotation.SuppressLint
import android.app.SearchManager
import android.content.Context
import android.content.Intent
@ -9,22 +8,11 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.google.android.material.carousel.CarouselLayoutManager
import kotlinx.coroutines.launch
import org.pixeldroid.app.databinding.FragmentSearchBinding
import org.pixeldroid.app.databinding.StoryCarouselBinding
import org.pixeldroid.app.searchDiscover.TrendingActivity.Companion.TRENDING_TAG
import org.pixeldroid.app.searchDiscover.TrendingActivity.Companion.TrendingType
import org.pixeldroid.app.stories.StoriesActivity
import org.pixeldroid.app.stories.StoriesActivity.Companion.STORY_CAROUSEL
import org.pixeldroid.app.stories.StoriesActivity.Companion.STORY_CAROUSEL_USER_ID
import org.pixeldroid.app.utils.BaseFragment
import org.pixeldroid.app.utils.api.PixelfedAPI
import org.pixeldroid.app.utils.api.objects.CarouselUserContainer
import org.pixeldroid.app.utils.api.objects.StoryCarousel
import org.pixeldroid.app.utils.bindingLifecycleAware
@ -51,13 +39,6 @@ class SearchDiscoverFragment : BaseFragment() {
isSubmitButtonEnabled = true
}
val adapter = StoriesListAdapter(::onClickStory)
binding.recyclerView2.adapter = adapter
loadStories(adapter)
binding.recyclerView2.layoutManager = CarouselLayoutManager()
return binding.root
}
@ -78,68 +59,4 @@ class SearchDiscoverFragment : BaseFragment() {
ContextCompat.startActivity(binding.root.context, intent, null)
}
private fun onClickStory(carousel: StoryCarousel, userId: String){
val intent = Intent(requireContext(), StoriesActivity::class.java)
intent.putExtra(STORY_CAROUSEL, carousel)
intent.putExtra(STORY_CAROUSEL_USER_ID, userId)
startActivity(intent)
}
private fun loadStories(adapter: StoriesListAdapter) {
lifecycleScope.launch {
try{
val api = apiHolder.api ?: apiHolder.setToCurrentUser()
val carousel = api.carousel()
adapter.initCarousel(carousel)
} catch (exception: Exception){
//TODO
}
}
}
}
class StoriesListAdapter(private val listener: (StoryCarousel, String) -> Unit): RecyclerView.Adapter<StoriesListAdapter.ViewHolder>() {
private var storyCarousel: StoryCarousel? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val v = StoryCarouselBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return ViewHolder(v)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
storyCarousel?.nodes?.get(position)?.let { holder.bindItem(it) }
holder.itemView.setOnClickListener {
storyCarousel?.let { carousel ->
storyCarousel?.nodes?.get(position)?.user?.id?.let { userId ->
listener(
carousel,
userId
)
}
}
}
}
override fun getItemCount(): Int {
return storyCarousel?.nodes?.size ?: 0
}
@SuppressLint("NotifyDataSetChanged")
fun initCarousel(carousel: StoryCarousel){
storyCarousel = carousel
notifyDataSetChanged()
}
class ViewHolder(var itemBinding: StoryCarouselBinding) :
RecyclerView.ViewHolder(itemBinding.root) {
fun bindItem(user: CarouselUserContainer) {
Glide.with(itemBinding.root).load(user.nodes?.firstOrNull()?.src).into(itemBinding.carouselImageView)
Glide.with(itemBinding.root).load(user.user?.avatar).circleCrop().into(itemBinding.storyAuthorProfilePicture)
itemBinding.username.text = user.user?.username ?: "" //TODO check which one to use here!
}
}
}

View File

@ -0,0 +1,133 @@
package org.pixeldroid.app.stories
import android.annotation.SuppressLint
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.lifecycle.LifecycleCoroutineScope
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import kotlinx.coroutines.launch
import org.pixeldroid.app.R
import org.pixeldroid.app.databinding.StoryCarouselAddStoryBinding
import org.pixeldroid.app.databinding.StoryCarouselBinding
import org.pixeldroid.app.databinding.StoryCarouselItemBinding
import org.pixeldroid.app.postCreation.carousel.dpToPx
import org.pixeldroid.app.utils.api.objects.CarouselUserContainer
import org.pixeldroid.app.utils.api.objects.StoryCarousel
import org.pixeldroid.app.utils.di.PixelfedAPIHolder
class StoryCarouselViewHolder(val binding: StoryCarouselBinding) : RecyclerView.ViewHolder(binding.root) {
fun bind(
pixelfedAPI: PixelfedAPIHolder,
lifecycleScope: LifecycleCoroutineScope,
itemView: View
) {
val adapter = StoriesListAdapter()
binding.storyCarousel.adapter = adapter
loadStories(adapter, lifecycleScope, pixelfedAPI, itemView)
}
private fun loadStories(
adapter: StoriesListAdapter,
lifecycleScope: LifecycleCoroutineScope,
apiHolder: PixelfedAPIHolder,
itemView: View
) {
lifecycleScope.launch {
try{
val api = apiHolder.api ?: apiHolder.setToCurrentUser()
val carousel = api.carousel()
if (carousel.nodes?.isEmpty() != true) {
itemView.visibility = View.VISIBLE
itemView.layoutParams.height = 200.dpToPx(binding.root.context)
itemView.layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT
adapter.initCarousel(carousel)
}
} catch (exception: Exception){
//TODO
}
}
}
companion object {
fun create(parent: ViewGroup): StoryCarouselViewHolder {
val itemBinding = StoryCarouselBinding.inflate(
LayoutInflater.from(parent.context), parent, false
)
return StoryCarouselViewHolder(itemBinding)
}
}
}
class StoriesListAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var storyCarousel: StoryCarousel? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return if(viewType == R.layout.story_carousel_add_story){
val v = StoryCarouselAddStoryBinding.inflate(LayoutInflater.from(parent.context), parent, false)
AddViewHolder(v)
}
else {
val v = StoryCarouselItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
ViewHolder(v)
}
}
override fun getItemViewType(position: Int): Int {
return if(position == 0) R.layout.story_carousel_add_story
else R.layout.story_carousel_item
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if(position > 0) {
val carouselPosition = position - 1
storyCarousel?.nodes?.get(carouselPosition)?.let { (holder as ViewHolder).bindItem(it) }
holder.itemView.setOnClickListener {
storyCarousel?.let { carousel ->
storyCarousel?.nodes?.get(carouselPosition)?.user?.id?.let { userId ->
val intent = Intent(holder.itemView.context, StoriesActivity::class.java)
intent.putExtra(StoriesActivity.STORY_CAROUSEL, carousel)
intent.putExtra(StoriesActivity.STORY_CAROUSEL_USER_ID, userId)
holder.itemView.context.startActivity(intent)
}
}
}
} else {
holder.itemView.setOnClickListener {
//TODO support for adding a story
}
}
}
override fun getItemCount(): Int {
// If the storyCarousel is not set, the carousel is not shown, so itemCount of 0
return (storyCarousel?.nodes?.size?.plus(1)) ?: 0
}
@SuppressLint("NotifyDataSetChanged")
fun initCarousel(carousel: StoryCarousel){
storyCarousel = carousel
notifyDataSetChanged()
}
class AddViewHolder(itemBinding: StoryCarouselAddStoryBinding) : RecyclerView.ViewHolder(itemBinding.root)
class ViewHolder(private val itemBinding: StoryCarouselItemBinding) :
RecyclerView.ViewHolder(itemBinding.root) {
fun bindItem(user: CarouselUserContainer) {
Glide.with(itemBinding.root).load(user.nodes?.firstOrNull()?.src).into(itemBinding.carouselImageView)
Glide.with(itemBinding.root).load(user.user?.avatar).circleCrop().into(itemBinding.storyAuthorProfilePicture)
itemBinding.username.text = user.user?.username ?: "" //TODO check which one to use here!
}
}
}

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/errorLayout"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/errorLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:visibility="gone"
tools:visibility="visible"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:showIn="@layout/fragment_feed"
xmlns:tools="http://schemas.android.com/tools">
tools:visibility="visible">
<ImageView
android:id="@+id/imageView4"

View File

@ -25,7 +25,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/recyclerView2">
app:layout_constraintTop_toBottomOf="@+id/search">
<com.google.android.material.card.MaterialCardView
android:id="@+id/trendingCardView"
@ -177,16 +177,5 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView2"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="horizontal"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/search" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>

View File

@ -1,50 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.carousel.MaskableFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
<androidx.recyclerview.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/carousel_item_container"
android:layout_width="120dp"
android:layout_height="match_parent"
tools:layout_height="240dp"
android:layout_marginStart="4dp"
android:layout_marginEnd="4dp"
android:foreground="?attr/selectableItemBackground"
app:shapeAppearance="?attr/shapeAppearanceCornerExtraLarge">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/carousel_image_view"
android:contentDescription="@string/story_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:srcCompat="@tools:sample/backgrounds/scenic" />
<ImageView
android:id="@+id/storyAuthorProfilePicture"
android:contentDescription="@string/profile_picture"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginBottom="6dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@id/username"
app:layout_constraintStart_toStartOf="@id/username"
tools:srcCompat="@tools:sample/avatars[3]" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="pixeldroid" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.carousel.MaskableFrameLayout>
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/story_carousel"
android:layout_width="match_parent"
android:paddingVertical="8dp"
android:layout_height="216dp"
tools:listitem="@layout/story_carousel_item"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="horizontal"
app:layoutManager="com.google.android.material.carousel.CarouselLayoutManager"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/search" />

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.carousel.MaskableFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/carousel_add_story"
android:layout_width="120dp"
android:layout_height="match_parent"
android:layout_marginStart="4dp"
tools:context="androidx.recyclerview.widget.RecyclerView"
android:layout_marginEnd="4dp"
android:background="?attr/colorSecondaryContainer"
android:foreground="?attr/selectableItemBackground"
app:shapeAppearance="?attr/shapeAppearanceCornerExtraLarge">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/carousel_image_view"
android:layout_width="match_parent"
android:layout_height="40dp"
android:contentDescription="@string/story_image"
android:scaleType="fitCenter"
android:src="@drawable/collection_add"
app:layout_constraintBottom_toTopOf="@id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="?attr/colorOnSecondaryContainer" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/add_story"
android:textColor="?attr/colorOnSecondaryContainer"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/carousel_image_view" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.carousel.MaskableFrameLayout>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.carousel.MaskableFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/carousel_item_container"
android:layout_width="120dp"
android:layout_height="match_parent"
android:layout_marginStart="4dp"
tools:context="androidx.recyclerview.widget.RecyclerView"
android:layout_marginEnd="4dp"
android:foreground="?attr/selectableItemBackground"
app:shapeAppearance="?attr/shapeAppearanceCornerExtraLarge">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/carousel_image_view"
android:contentDescription="@string/story_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:srcCompat="@tools:sample/backgrounds/scenic" />
<ImageView
android:id="@+id/storyAuthorProfilePicture"
android:contentDescription="@string/profile_picture"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginBottom="6dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toTopOf="@id/username"
app:layout_constraintStart_toStartOf="@id/username"
tools:srcCompat="@tools:sample/avatars[3]" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="pixeldroid" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.carousel.MaskableFrameLayout>

View File

@ -336,4 +336,5 @@ For more info about Pixelfed, you can check here: https://pixelfed.org"</string>
<string name="story_reply_error">Something went wrong sending reply</string>
<string name="error_fetch_story">Something went wrong fetching the carousel</string>
<string name="sent_reply_story">Sent reply</string>
<string name="add_story">Add Story</string>
</resources>

View File

@ -483,6 +483,9 @@
<artifact name="core-1.10.1.module">
<sha256 value="5daa0133e452b42259e307744870de96aa1b6b95fe99a020c6f8a1a1799dc549" origin="Generated by Gradle"/>
</artifact>
<artifact name="core-1.10.1.pom">
<sha256 value="da26fa6b89c430698d36e6d04b5dcf2f9ace9a316bdb25a2c548004bb8f5999b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.core" name="core" version="1.9.0">
<artifact name="core-1.9.0.aar">
@ -513,6 +516,9 @@
<artifact name="core-ktx-1.10.1.module">
<sha256 value="b4d5fedfa08b07718c4c114077df2f9b2a884c8f60eac18e0709c3975e237974" origin="Generated by Gradle"/>
</artifact>
<artifact name="core-ktx-1.10.1.pom">
<sha256 value="cfe6e91c497b0160c704d0a69c41fa8aa2386bff621b963dbce99f366d17e71a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.core" name="core-ktx" version="1.9.0">
<artifact name="core-ktx-1.9.0.aar">
@ -661,6 +667,17 @@
<sha256 value="f9959d78fed2ded515699f5237eede3942067a6937b0db5fb8fff97db4b2264e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-adapters" version="8.0.2">
<artifact name="databinding-adapters-8.0.2.aar">
<sha256 value="1be1bd94d5c709bb5e31cc12a5001aa703a0cb379d515119ac84b00b07f9e338" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-adapters-8.0.2.module">
<sha256 value="1d598f6bdccb89021fa38deb00599d2b068e92279e4176b323c9e89b73ae5470" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-adapters-8.0.2.pom">
<sha256 value="4d1b5958b5193b925edea87c6d9e0b123433d17b01ca19917bf73fcad61a1837" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-common" version="8.0.0">
<artifact name="databinding-common-8.0.0.jar">
<sha256 value="9fa21e2030273ee3cb8c4701c341af8cf9359791a3b45b2bc0be07870c03b1c8" origin="Generated by Gradle"/>
@ -709,6 +726,14 @@
<sha256 value="d1f155830a5b06af7e1da0aaef5226b811087fb58c48bf8c14ac7fdaa92c21a0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-common" version="8.0.2">
<artifact name="databinding-common-8.0.2.jar">
<sha256 value="9fa21e2030273ee3cb8c4701c341af8cf9359791a3b45b2bc0be07870c03b1c8" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-common-8.0.2.pom">
<sha256 value="5fc919ead256e660d805dbd49a32b1e881ddce164bdc35ccf0641d836d55a2cc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler" version="8.0.0">
<artifact name="databinding-compiler-8.0.0.jar">
<sha256 value="dcf8ce5ca0126b14d627bc0bf405b5d8b4ede1cf2b9c45d9b037a78e4c31e840" origin="Generated by Gradle"/>
@ -757,6 +782,14 @@
<sha256 value="e82ecf85ba08c6e186d6e0d69ceb31a4c6cbba9638b3bfb6a14ce35a12ea406b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler" version="8.0.2">
<artifact name="databinding-compiler-8.0.2.jar">
<sha256 value="dcf8ce5ca0126b14d627bc0bf405b5d8b4ede1cf2b9c45d9b037a78e4c31e840" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-compiler-8.0.2.pom">
<sha256 value="581caaa26b0aaf6e6a4d7a5b2f864ee761a2e74fc9dba04e0601d8b4690383f7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler-common" version="8.0.0">
<artifact name="databinding-compiler-common-8.0.0.jar">
<sha256 value="0ba3fe2768b967a50554312c84cbeda9c6525b4883bb91dca38a439c12953953" origin="Generated by Gradle"/>
@ -805,6 +838,14 @@
<sha256 value="bcdfa76de17864142da96695b2a37a06f597cddab6d6fe5b367976fd2cf2157d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-compiler-common" version="8.0.2">
<artifact name="databinding-compiler-common-8.0.2.jar">
<sha256 value="7b5cf583171d30a3fff4a0230b620a601e4b0a9d2de05d66bebf678229740caf" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-compiler-common-8.0.2.pom">
<sha256 value="7ae7924f9ddaf6b42e3882c2ce255424b87eb623b3f57eedbfe1372b4930de33" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-ktx" version="8.0.0">
<artifact name="databinding-ktx-8.0.0.aar">
<sha256 value="650d4b39cd9cc721e18c7095238e13104170b24f1606b99ddb3fae43a98f290f" origin="Generated by Gradle"/>
@ -871,6 +912,17 @@
<sha256 value="56393e431f5a6643873d4a833317157fcfabe1a42f6e3e1d69160698923cf017" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-ktx" version="8.0.2">
<artifact name="databinding-ktx-8.0.2.aar">
<sha256 value="cc921c6ecbd091da6bbf23389a0a18bcb474a8e3cde053e9b8542285af749ad9" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-ktx-8.0.2.module">
<sha256 value="7337070347498b9ce2dd0db4578001812a65b21f40078863348e50cada18965a" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-ktx-8.0.2.pom">
<sha256 value="9accd6cf048b9751b151fd115776e011ea3b43a8408be9362886100167f78844" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-runtime" version="8.0.0">
<artifact name="databinding-runtime-8.0.0.aar">
<sha256 value="77d02c369cc27b862690d9303e9839b208d1cf260b93f66f479d04d7c1f521ea" origin="Generated by Gradle"/>
@ -937,6 +989,17 @@
<sha256 value="90ba5a14a6c35b2045000ec08cbacc1313c6e27e60d2cbc8f1add432ddaf466f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="databinding-runtime" version="8.0.2">
<artifact name="databinding-runtime-8.0.2.aar">
<sha256 value="bc18f642b5cc122027224b1861f51e27846dbfadb18fab14c85ab3966b80efa7" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-runtime-8.0.2.module">
<sha256 value="b73749744dbd58dfe0508052a1dc83db7467aad245fa8d5d915d8c8dc5a82502" origin="Generated by Gradle"/>
</artifact>
<artifact name="databinding-runtime-8.0.2.pom">
<sha256 value="a7570caab5189b86dd5a3203c4512ad5c96eab633575c8455c2279358eb6ad1a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="viewbinding" version="8.0.0">
<artifact name="viewbinding-8.0.0.aar">
<sha256 value="2425d869bc92a5dee70ae3dc44fce8707f42ea61c227063289f4091e6f98696b" origin="Generated by Gradle"/>
@ -1003,6 +1066,17 @@
<sha256 value="46dac2e5d222917edcd7b7c18aca1263e9072d0bb9ce4ab1f233e210fc05ffd4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.databinding" name="viewbinding" version="8.0.2">
<artifact name="viewbinding-8.0.2.aar">
<sha256 value="995d561aa5b45401ab6a10e886e53dbd7d813fdfb0d3e170024a4c6260531d80" origin="Generated by Gradle"/>
</artifact>
<artifact name="viewbinding-8.0.2.module">
<sha256 value="2c36c3fb570d1825e87bf90567d67a8445cbe1055400ef4eb8c969f6cf04d6a9" origin="Generated by Gradle"/>
</artifact>
<artifact name="viewbinding-8.0.2.pom">
<sha256 value="ab4eff6fde0a6504efe818dd0a1a8e9f748f188a52e388f5a47f068ace495107" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="androidx.documentfile" name="documentfile" version="1.0.0">
<artifact name="documentfile-1.0.0.aar">
<sha256 value="865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487" origin="Generated by Gradle"/>
@ -2743,6 +2817,14 @@
<sha256 value="4ff5620d2a14158552a1fdd79c45bf0462a239c91eadcc9d7f1a043fdd36e74a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android" name="signflinger" version="8.0.2">
<artifact name="signflinger-8.0.2.jar">
<sha256 value="1f25f3f9c5d706fd7bc133a45bf35511093197d540635a613d1aae11260e314a" origin="Generated by Gradle"/>
</artifact>
<artifact name="signflinger-8.0.2.pom">
<sha256 value="52235fa6135412c6bea143b352e80bcee680573ae0a084f4757e6d11cc56f2c6" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android" name="zipflinger" version="8.0.0">
<artifact name="zipflinger-8.0.0.jar">
<sha256 value="d82b239494dd262e65cd94b2edf96c9b5cf19c7afbfc84f2601749f50e15c765" origin="Generated by Gradle"/>
@ -2791,6 +2873,14 @@
<sha256 value="84e879c2d9027c71416d61b7a57b8b1b9d22e9b382c5d506629f5f133bd0ca48" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android" name="zipflinger" version="8.0.2">
<artifact name="zipflinger-8.0.2.jar">
<sha256 value="d82b239494dd262e65cd94b2edf96c9b5cf19c7afbfc84f2601749f50e15c765" origin="Generated by Gradle"/>
</artifact>
<artifact name="zipflinger-8.0.2.pom">
<sha256 value="1afaabcfb9106f38449022f68f8457fd5800812a05b0d1978e1fbb683935ed8e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.databinding" name="baseLibrary" version="8.0.0">
<artifact name="baseLibrary-8.0.0.jar">
<sha256 value="530b2113317ff4d0f69ffdfb49387ba4b86aac169e1c77dff943405b79adcf8b" origin="Generated by Gradle"/>
@ -2839,6 +2929,14 @@
<sha256 value="7d32de4f791d348f483cf38848dc9f75707b93cd4bd5cba1cd35e585c8174185" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.databinding" name="baseLibrary" version="8.0.2">
<artifact name="baseLibrary-8.0.2.jar">
<sha256 value="530b2113317ff4d0f69ffdfb49387ba4b86aac169e1c77dff943405b79adcf8b" origin="Generated by Gradle"/>
</artifact>
<artifact name="baseLibrary-8.0.2.pom">
<sha256 value="109e5619816b78f2830b356f58c004abe741cfc791f418da7628287ae659b735" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="annotations" version="31.0.0">
<artifact name="annotations-31.0.0.jar">
<sha256 value="d4ba7dd6055a6f1fd6ddb6dcef4e2096c15908bc7dc6057cb2e06f3a0db949c7" origin="Generated by Gradle"/>
@ -2887,6 +2985,14 @@
<sha256 value="a717eb7f102474f9722937dea2910a40cec025886a49c498d31072417f8672b1" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="annotations" version="31.0.2">
<artifact name="annotations-31.0.2.jar">
<sha256 value="d4ba7dd6055a6f1fd6ddb6dcef4e2096c15908bc7dc6057cb2e06f3a0db949c7" origin="Generated by Gradle"/>
</artifact>
<artifact name="annotations-31.0.2.pom">
<sha256 value="b75e574be3ff479a462f00e3447e8a8d229bae50ca5ff28017439bfdc5e6b358" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="common" version="31.0.0">
<artifact name="common-31.0.0.jar">
<sha256 value="a39ee18a435a5061d324040e18af3f633a447933780b57da91efaccd946ee3a2" origin="Generated by Gradle"/>
@ -2935,6 +3041,14 @@
<sha256 value="2461553cd32b020c6db64d4ecb62de47a3d43b84d03e55bdcf2fb175b1c6013b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="common" version="31.0.2">
<artifact name="common-31.0.2.jar">
<sha256 value="09f1b19445cc1307e3d065c0f9fde4779abc5100b351eca2b0361c6dc9930d8d" origin="Generated by Gradle"/>
</artifact>
<artifact name="common-31.0.2.pom">
<sha256 value="48de32eb2338e0f1780892295766223b6d8a893c9cfb81e42bab726b703ea513" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="desugar_jdk_libs" version="2.0.2">
<artifact name="desugar_jdk_libs-2.0.2.jar">
<sha256 value="25ddad0d96cf7ba284cfa7866f54aa3508468a1df80e79cb44733a66f755d330" origin="Generated by Gradle"/>
@ -3015,6 +3129,14 @@
<sha256 value="7e981e0c454860690572a5dcfc71c0aedaf481acbd89e75f687a41796c4148c1" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="dvlib" version="31.0.2">
<artifact name="dvlib-31.0.2.jar">
<sha256 value="d946ad39a40b667c82da87724527815536de62d0db0e8ea333449fdb90509001" origin="Generated by Gradle"/>
</artifact>
<artifact name="dvlib-31.0.2.pom">
<sha256 value="003ae630a77d4b052dded20b098a05456a140ad9d44289544dacc53a7d71e7d5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="play-sdk-proto" version="31.0.0">
<artifact name="play-sdk-proto-31.0.0.jar">
<sha256 value="270f0f4653fe0d6477e55359dd47fb61ec5c96597997871e916b405042b39b91" origin="Generated by Gradle"/>
@ -3063,6 +3185,14 @@
<sha256 value="2fae923931c0fd7b33fb2b4200c61d29caee15937d75269c94c7a5dcd499b796" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="play-sdk-proto" version="31.0.2">
<artifact name="play-sdk-proto-31.0.2.jar">
<sha256 value="270f0f4653fe0d6477e55359dd47fb61ec5c96597997871e916b405042b39b91" origin="Generated by Gradle"/>
</artifact>
<artifact name="play-sdk-proto-31.0.2.pom">
<sha256 value="072b1c8fd5039e071305df82448ee4766e37047496b7fff11956df386b4e90a5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="repository" version="31.0.0">
<artifact name="repository-31.0.0.jar">
<sha256 value="c11d10822af862cee3412ddc7245f6054d4b00a9e61fd1d2357390280879ea36" origin="Generated by Gradle"/>
@ -3111,6 +3241,14 @@
<sha256 value="667653c809193fc351c8c8eec128907309a7fbb4e494fc1eb546aad9fd835cdc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="repository" version="31.0.2">
<artifact name="repository-31.0.2.jar">
<sha256 value="c11d10822af862cee3412ddc7245f6054d4b00a9e61fd1d2357390280879ea36" origin="Generated by Gradle"/>
</artifact>
<artifact name="repository-31.0.2.pom">
<sha256 value="d233b52c9b4866dafa7051021ddb2cc1cb43082de82936fba5f4d533504b7df5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdk-common" version="31.0.0">
<artifact name="sdk-common-31.0.0.jar">
<sha256 value="766aa3b48b8c87adb8a1b0fed6689d48ec85ea803f85ab9f155c0e40c510e258" origin="Generated by Gradle"/>
@ -3159,6 +3297,14 @@
<sha256 value="7bc35830a91a8327698f060c2d67d7d014f0011b46380b5aa3f1bd8aa2e4e170" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdk-common" version="31.0.2">
<artifact name="sdk-common-31.0.2.jar">
<sha256 value="766aa3b48b8c87adb8a1b0fed6689d48ec85ea803f85ab9f155c0e40c510e258" origin="Generated by Gradle"/>
</artifact>
<artifact name="sdk-common-31.0.2.pom">
<sha256 value="943fa00ed10c3832fe8f481e7e42c10522f6c7932633ba0621aab999b31c7823" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdklib" version="31.0.0">
<artifact name="sdklib-31.0.0.jar">
<sha256 value="9770b9aaedcb5543497b9abb79ac0e1ee5ba3a8197969b52aa51a06f6bc10964" origin="Generated by Gradle"/>
@ -3207,6 +3353,14 @@
<sha256 value="d21f059100bdf0959fb8cb092545a61a4b40d4193452d22b0e195467edbbe952" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools" name="sdklib" version="31.0.2">
<artifact name="sdklib-31.0.2.jar">
<sha256 value="9770b9aaedcb5543497b9abb79ac0e1ee5ba3a8197969b52aa51a06f6bc10964" origin="Generated by Gradle"/>
</artifact>
<artifact name="sdklib-31.0.2.pom">
<sha256 value="42de15d10f4d6e3056cd841ef95acb7d8f230030a98d038b36fb2b7f0c51094a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="crash" version="31.0.0">
<artifact name="crash-31.0.0.jar">
<sha256 value="1a940620fcd33f546200defd5347be74f7341c08563fc52a0eeeb4b8ccdd0c51" origin="Generated by Gradle"/>
@ -3255,6 +3409,14 @@
<sha256 value="0a262b8253b7fbe9e5d1275a33c78573336a6142e344bfb135a0e0e5dc02e695" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="crash" version="31.0.2">
<artifact name="crash-31.0.2.jar">
<sha256 value="1a940620fcd33f546200defd5347be74f7341c08563fc52a0eeeb4b8ccdd0c51" origin="Generated by Gradle"/>
</artifact>
<artifact name="crash-31.0.2.pom">
<sha256 value="71586bec46ffd2451740aecfab05a384a718ba8f99b0bac49095f83b044ff5fc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="protos" version="31.0.0">
<artifact name="protos-31.0.0.jar">
<sha256 value="d074b93c2395722c6fff42b0397c5ba6cb2be44338a49a5133fbfb9b8191a68d" origin="Generated by Gradle"/>
@ -3303,6 +3465,14 @@
<sha256 value="d7e49152ae95634a1c2d6f7598ddb3f90bc84d6bdb12e5e5ff07f4ed0b5711f9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="protos" version="31.0.2">
<artifact name="protos-31.0.2.jar">
<sha256 value="d074b93c2395722c6fff42b0397c5ba6cb2be44338a49a5133fbfb9b8191a68d" origin="Generated by Gradle"/>
</artifact>
<artifact name="protos-31.0.2.pom">
<sha256 value="227f9c1462e9db1f553804e1e6688394f4b6560448966f5d60ed5d08ef9af048" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="shared" version="31.0.0">
<artifact name="shared-31.0.0.jar">
<sha256 value="d7efd1542cf705b1a0a46ac493849f7cf3d5e4b3bcdc78a4fa0478ea6c7caccb" origin="Generated by Gradle"/>
@ -3351,6 +3521,14 @@
<sha256 value="342f8d447039869a383d2ac489c11ec2e961cb2ebfc46a1471b48165e309c05d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="shared" version="31.0.2">
<artifact name="shared-31.0.2.jar">
<sha256 value="d7efd1542cf705b1a0a46ac493849f7cf3d5e4b3bcdc78a4fa0478ea6c7caccb" origin="Generated by Gradle"/>
</artifact>
<artifact name="shared-31.0.2.pom">
<sha256 value="4e1955960dff7db47dd095c8a93415cce45c7735319aa3e9987c642a7841dd4a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="tracker" version="31.0.0">
<artifact name="tracker-31.0.0.jar">
<sha256 value="a62bcf8ad3816bdc276999e80c8edd52bdb1a20bfd571d8f5f7e91fce1c74545" origin="Generated by Gradle"/>
@ -3399,6 +3577,14 @@
<sha256 value="b5766093acbde97fb76134a47581c5d3fdca12854c701876ca824ffe65bc9d18" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.analytics-library" name="tracker" version="31.0.2">
<artifact name="tracker-31.0.2.jar">
<sha256 value="a62bcf8ad3816bdc276999e80c8edd52bdb1a20bfd571d8f5f7e91fce1c74545" origin="Generated by Gradle"/>
</artifact>
<artifact name="tracker-31.0.2.pom">
<sha256 value="42a1fa5f85db2c073460a148df837fea984f18e23a6f775137c53546aaa29ce5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2" version="8.0.0-9289358">
<artifact name="aapt2-8.0.0-9289358-linux.jar">
<sha256 value="28a0a45b05fd15fff817ea3a0c9b4aba8ed9230fec3f8537700fca95ad4c02b4" origin="Generated by Gradle"/>
@ -3447,6 +3633,14 @@
<sha256 value="2204406c10b55fc35a248c5a81d3dfb5af83e6ec00a9cbf1da6c7b75c8bf92f9" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2" version="8.0.2-9289358">
<artifact name="aapt2-8.0.2-9289358-linux.jar">
<sha256 value="e18c5ff5e71e3e9fcf6b6ad021c7013538f31066e253e3b4816fccf105f3a364" origin="Generated by Gradle"/>
</artifact>
<artifact name="aapt2-8.0.2-9289358.pom">
<sha256 value="b8441f0f03f45eea49542ff8930f5e0ef40e4826da63ccbd541e33ef4e7f72bf" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2-proto" version="8.0.0-9289358">
<artifact name="aapt2-proto-8.0.0-9289358.jar">
<sha256 value="1fee8cb58a6a8a884d87322d62358149be0a4f415a77608533f9ff32f421af35" origin="Generated by Gradle"/>
@ -3495,6 +3689,14 @@
<sha256 value="8ea1b7b16d951ab1d964637b7244bdcc9354b4e5249de7bf019b927ab6c5077a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aapt2-proto" version="8.0.2-9289358">
<artifact name="aapt2-proto-8.0.2-9289358.jar">
<sha256 value="b7dc57505b56d06ab057bcc5360ca7cb995e61c2633ddaa17c0638b17913aaae" origin="Generated by Gradle"/>
</artifact>
<artifact name="aapt2-proto-8.0.2-9289358.module">
<sha256 value="53a68846734600d0988d744600dbf93298b95662de996591330327de97c20168" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aaptcompiler" version="8.0.0">
<artifact name="aaptcompiler-8.0.0.jar">
<sha256 value="1beed0bd0ef7398ae89603b99ef7ce6cfe08db2ad21ca3b198141030a059cbe9" origin="Generated by Gradle"/>
@ -3543,6 +3745,14 @@
<sha256 value="7b8178d425d942995a111c2203dd78c27a649457b8c475e1b522aee983ec2cb8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="aaptcompiler" version="8.0.2">
<artifact name="aaptcompiler-8.0.2.jar">
<sha256 value="1006750a1bbdf22db39b480a8c10ee2f982d0395cbefbc83812aeaf9593b6567" origin="Generated by Gradle"/>
</artifact>
<artifact name="aaptcompiler-8.0.2.module">
<sha256 value="77372cb582dde1d3a4115ad8ab79166b78c52c270e2f6543b449d13e36012c0e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apksig" version="8.0.0">
<artifact name="apksig-8.0.0.jar">
<sha256 value="1556367f117415b3fbb66b3222254197b0f4aafdbc9f467497304409f0d30386" origin="Generated by Gradle"/>
@ -3591,6 +3801,14 @@
<sha256 value="5d4f8ca0e9ee72daef54705ffc8d2e4c6c0e4187de1b6f6ccf4372ee685501bc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apksig" version="8.0.2">
<artifact name="apksig-8.0.2.jar">
<sha256 value="1556367f117415b3fbb66b3222254197b0f4aafdbc9f467497304409f0d30386" origin="Generated by Gradle"/>
</artifact>
<artifact name="apksig-8.0.2.pom">
<sha256 value="374bb501b01ba1f5a9c4d30f57bc97997956e84197a88d14729982b69dc009ae" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apkzlib" version="8.0.0">
<artifact name="apkzlib-8.0.0.jar">
<sha256 value="79474dbb7505515a7fe081149a119aa4c6580ac4da8dc3ea7d3675956b00fffc" origin="Generated by Gradle"/>
@ -3639,6 +3857,14 @@
<sha256 value="bfaf5a5c015a2dbdfa1671d6d9977e26d45083ec10333792ad5af0da8058c2f0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="apkzlib" version="8.0.2">
<artifact name="apkzlib-8.0.2.jar">
<sha256 value="79474dbb7505515a7fe081149a119aa4c6580ac4da8dc3ea7d3675956b00fffc" origin="Generated by Gradle"/>
</artifact>
<artifact name="apkzlib-8.0.2.pom">
<sha256 value="78ede78a36dca570993fcd10859a69e2ef4d5b03a5f5794d7512f10c754fbfc1" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder" version="8.0.0">
<artifact name="builder-8.0.0.jar">
<sha256 value="d892991279f1cc14b1cdf29ea9f688354608ce52e6269a1e87a345f1d6b0feb6" origin="Generated by Gradle"/>
@ -3687,6 +3913,14 @@
<sha256 value="41f066ebad7aae4e0000923e2fbc15cfeccdfee1a5a65d9e5eaea2f8d8553e9e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder" version="8.0.2">
<artifact name="builder-8.0.2.jar">
<sha256 value="779804f5b8bd22c4f3fe69866e17cfc0f58f9ed3c4e02b9626b42bf66551140c" origin="Generated by Gradle"/>
</artifact>
<artifact name="builder-8.0.2.module">
<sha256 value="720d811feecb2a20e592525e7b38963e39df76c083d355ab55730504d0dc46ec" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-model" version="8.0.0">
<artifact name="builder-model-8.0.0.jar">
<sha256 value="009e56d1ef37cc43c60f903f35a8ff9700e548e4a62ab6be73adf0ef9768a53c" origin="Generated by Gradle"/>
@ -3735,6 +3969,14 @@
<sha256 value="03240e8df11bfdae4c28f08ee2555693a2262d620abde71efef2444d3df91204" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-model" version="8.0.2">
<artifact name="builder-model-8.0.2.jar">
<sha256 value="cbaa1696178cf3627840faaffe30c62e709e101bc15809a02783e45dfab815a0" origin="Generated by Gradle"/>
</artifact>
<artifact name="builder-model-8.0.2.module">
<sha256 value="41c689f58e7a48ade2132219dda503a7b32e9767c912f07c8ac5c68d153cb4e3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-test-api" version="8.0.0">
<artifact name="builder-test-api-8.0.0.jar">
<sha256 value="9c649b120397057e3bef14fd018dd79b786840d7afed6055de8013e470edca8f" origin="Generated by Gradle"/>
@ -3783,6 +4025,14 @@
<sha256 value="6643477cdb3c66e492cf4e387fd947fe2838356b66c50e152dcb18fc4e9a2c9e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="builder-test-api" version="8.0.2">
<artifact name="builder-test-api-8.0.2.jar">
<sha256 value="66f7798525a8eb5cd85dd905ce9a6de737a1d2363dee4155babd5e388e96d4f7" origin="Generated by Gradle"/>
</artifact>
<artifact name="builder-test-api-8.0.2.module">
<sha256 value="acf833bb07ff61db0dc47151eb89236d93f25a75d6bf55958c9c57c36abb8c19" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="bundletool" version="1.13.2">
<artifact name="bundletool-1.13.2.jar">
<sha256 value="e56e54b7657f67e77c7550bec64f70d0de2780a4795024b99fcf6a701bd1718d" origin="Generated by Gradle"/>
@ -3839,6 +4089,14 @@
<sha256 value="003dc00de3926c648be9926e7a752d6de83d7afddc040026676cfc0b13a44f09" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle" version="8.0.2">
<artifact name="gradle-8.0.2.jar">
<sha256 value="645916554831d28eb1dec154910c3e24ed4a077e03949c41d2ab4d47a623c9b6" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-8.0.2.module">
<sha256 value="95a5a36f446bbfb4d6f290c98a8c9da9f2ab71c59290ada87617c07f4cda1164" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-api" version="8.0.0">
<artifact name="gradle-api-8.0.0.jar">
<sha256 value="3179f8ea0fceba7d19f6f99518bcd78a331c70370674b7dd671e456e43645778" origin="Generated by Gradle"/>
@ -3887,6 +4145,14 @@
<sha256 value="c704b81d38da2bd91a497abe22c7d7133d2fc03615a2d9b85164423abbb68680" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-api" version="8.0.2">
<artifact name="gradle-api-8.0.2.jar">
<sha256 value="e3a14c889d8e6b3e1c026015950db54a4d1bd09ade82e05307adba603f46f036" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-api-8.0.2.module">
<sha256 value="c6aa577911ca61680a34e5e0612011f1cb823e5193e72cff92ce3b9aa8597668" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-settings-api" version="8.0.0">
<artifact name="gradle-settings-api-8.0.0.jar">
<sha256 value="156a9173682632202e4246a4aab9c9fa56776a5849f944efd0cf4006abb4deb1" origin="Generated by Gradle"/>
@ -3935,6 +4201,14 @@
<sha256 value="6e33365860aa66f2f6213f96f402cf1803c5b697e62e902cd6903a031132646d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="gradle-settings-api" version="8.0.2">
<artifact name="gradle-settings-api-8.0.2.jar">
<sha256 value="1eeadff69357705c9289e0a7253c95f9e499f543ff853e413d49652ae13e1d8a" origin="Generated by Gradle"/>
</artifact>
<artifact name="gradle-settings-api-8.0.2.module">
<sha256 value="038db3ffd98a091a3f3cce0de61ace5d003ee3ade5c903e0c41268e81c2b8213" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="manifest-merger" version="31.0.0">
<artifact name="manifest-merger-31.0.0.jar">
<sha256 value="e1feb9f8c9b98dfa6eb073f068588d268a946d3c86e4dcf8bfd1a957891f2db6" origin="Generated by Gradle"/>
@ -3983,6 +4257,14 @@
<sha256 value="8558cd791618b659bcf863d140b819b9e7fdd216fb469258f46f99dd6e8a8a19" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="manifest-merger" version="31.0.2">
<artifact name="manifest-merger-31.0.2.jar">
<sha256 value="8a354d36df3e22d0df567645bc6430d95579919bf36055e945702f1c3c0c8ae2" origin="Generated by Gradle"/>
</artifact>
<artifact name="manifest-merger-31.0.2.module">
<sha256 value="344ee2fc68a62b42b548a97900c2148cb8185b532ffe5d38a202903c22684bd1" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.build" name="transform-api" version="2.0.0-deprecated-use-gradle-api">
<artifact name="transform-api-2.0.0-deprecated-use-gradle-api.jar">
<sha256 value="4de4a3d05e1c534c2db9e4588bf34082bb2bd232d8abb9727c430290ce225740" origin="Generated by Gradle"/>
@ -4055,6 +4337,14 @@
<sha256 value="a1201e1954b861462fb781e9326c8aaafff3d7e1b9f479e1954246c5706d5a6d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.ddms" name="ddmlib" version="31.0.2">
<artifact name="ddmlib-31.0.2.jar">
<sha256 value="66de3038ddc4f240a2b3331bc9863b379c3999a1a8b0923dc731f11a9a295034" origin="Generated by Gradle"/>
</artifact>
<artifact name="ddmlib-31.0.2.pom">
<sha256 value="0e659c671d8cb2f8e6270cf89dfe4d7f778b2362f137417598a66c4ac7432ccb" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.com-intellij" name="intellij-core" version="31.0.0">
<artifact name="intellij-core-31.0.0.jar">
<sha256 value="2d258f6137c7585608ea43320cfa0a685d32a40e6dd4cd0c21f466e60fd01ace" origin="Generated by Gradle"/>
@ -4103,6 +4393,14 @@
<sha256 value="c3837e2a28614820bd690d8a67c7e9be44f3a35c61eb23ae3b49615392fc6c4b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.com-intellij" name="intellij-core" version="31.0.2">
<artifact name="intellij-core-31.0.2.jar">
<sha256 value="2d258f6137c7585608ea43320cfa0a685d32a40e6dd4cd0c21f466e60fd01ace" origin="Generated by Gradle"/>
</artifact>
<artifact name="intellij-core-31.0.2.pom">
<sha256 value="71d9dc3bc918ff648f4caa9b84cce965cfaf2e722a20ab22209973ad959988c8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.com-intellij" name="kotlin-compiler" version="31.0.0">
<artifact name="kotlin-compiler-31.0.0.jar">
<sha256 value="1b1ff8dca59b78e59aaa02818e1aef4aa142302fdfa7fb9041ca0c342da0bbe3" origin="Generated by Gradle"/>
@ -4151,6 +4449,14 @@
<sha256 value="74a51cdcdc2cad30148bd09b547813ebcdb5f654ce87542b1c7198c72d99f365" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.com-intellij" name="kotlin-compiler" version="31.0.2">
<artifact name="kotlin-compiler-31.0.2.jar">
<sha256 value="1b1ff8dca59b78e59aaa02818e1aef4aa142302fdfa7fb9041ca0c342da0bbe3" origin="Generated by Gradle"/>
</artifact>
<artifact name="kotlin-compiler-31.0.2.pom">
<sha256 value="21f820987561e1f0ea81d929be39bed75029b2f6ce31e71f12f960bd21ad0ce3" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.org-jetbrains" name="uast" version="31.0.0">
<artifact name="uast-31.0.0.jar">
<sha256 value="b4b1a74a712518c0dfd9930e9ffa69288ec84cf2fb55a5abd09f30b73ab0cac0" origin="Generated by Gradle"/>
@ -4199,6 +4505,14 @@
<sha256 value="54fdfaee2772e2634cc880c0fd840162e4fb9a0816c141fc1f1861a0bb0b2fb1" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.external.org-jetbrains" name="uast" version="31.0.2">
<artifact name="uast-31.0.2.jar">
<sha256 value="b4b1a74a712518c0dfd9930e9ffa69288ec84cf2fb55a5abd09f30b73ab0cac0" origin="Generated by Gradle"/>
</artifact>
<artifact name="uast-31.0.2.pom">
<sha256 value="1babf60cd97a3c46ef03efc59f788f207bfdf40798dc1580094e82cb4962476c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.0.0">
<artifact name="layoutlib-api-31.0.0.jar">
<sha256 value="3df9c0423d26dffae97d9d622492c817dd57ac2d46b15e077b2af5fd9bf8ac05" origin="Generated by Gradle"/>
@ -4247,6 +4561,14 @@
<sha256 value="4eae2c7d5427bee5ea46de4e34d57391246246d59c5361654605d86a662eff09" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.layoutlib" name="layoutlib-api" version="31.0.2">
<artifact name="layoutlib-api-31.0.2.jar">
<sha256 value="3df9c0423d26dffae97d9d622492c817dd57ac2d46b15e077b2af5fd9bf8ac05" origin="Generated by Gradle"/>
</artifact>
<artifact name="layoutlib-api-31.0.2.pom">
<sha256 value="aa19976bc553f0997df764b41de5bee281d2b7abc140ab6a03ac28429402201c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint" version="31.0.0">
<artifact name="lint-31.0.0.jar">
<sha256 value="e2a2b4f88cf9977021161361c242a6ec8476eaba67fae00074fa0f2eb03252bc" origin="Generated by Gradle"/>
@ -4295,6 +4617,14 @@
<sha256 value="ca243ed5f5f258fcbbf6dbc68fb67b41c1eb2619c1b2fa9a25fe81bee5d24b8b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint" version="31.0.2">
<artifact name="lint-31.0.2.jar">
<sha256 value="e2a2b4f88cf9977021161361c242a6ec8476eaba67fae00074fa0f2eb03252bc" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-31.0.2.pom">
<sha256 value="096e0899cce2006b8acbaeb65fff52f1d9323deb197d2f0890fae33b0a903b7a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-api" version="31.0.0">
<artifact name="lint-api-31.0.0.jar">
<sha256 value="758d7c660e13be3693d3149a384637071bd5ec1809d121bccc25ce9a9fdcebd8" origin="Generated by Gradle"/>
@ -4343,6 +4673,14 @@
<sha256 value="bfd67ec5c33a31aba6f8c7fd7868d9553052547ee68b96134be28e261cc58cbb" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-api" version="31.0.2">
<artifact name="lint-api-31.0.2.jar">
<sha256 value="b574c059dbe7c0bd5a8fb99b239e6ba844484a59c6622f2636c107eb87c3c24b" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-api-31.0.2.pom">
<sha256 value="d3c7262df68b1ad59afc0c1e069771ff0ca864eb30f85d49f103f76e30f3e8e8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-checks" version="31.0.0">
<artifact name="lint-checks-31.0.0.jar">
<sha256 value="67d210b6331030d27b11d7e081a9d299eb1d7a5519304de5a2c00fbb19044d42" origin="Generated by Gradle"/>
@ -4391,6 +4729,14 @@
<sha256 value="433a5eec03260d73490b22de398028e3853cf1b2b70aa794924acf0970b4daad" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-checks" version="31.0.2">
<artifact name="lint-checks-31.0.2.jar">
<sha256 value="67d210b6331030d27b11d7e081a9d299eb1d7a5519304de5a2c00fbb19044d42" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-checks-31.0.2.pom">
<sha256 value="71eb9b33710111313827505bf889a6d2ad0c97727706c2719e9046975aa25801" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-gradle" version="31.0.0">
<artifact name="lint-gradle-31.0.0.jar">
<sha256 value="0d34bcad5e346ebb6324ff8eee79d8fc418fa9a77892ffe17d48ea7677654a6d" origin="Generated by Gradle"/>
@ -4439,6 +4785,14 @@
<sha256 value="7439762386e32cf09df74562ff97e2b91125a6a8fe59fe4e1a52a9ab5a33b9af" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-gradle" version="31.0.2">
<artifact name="lint-gradle-31.0.2.jar">
<sha256 value="0d34bcad5e346ebb6324ff8eee79d8fc418fa9a77892ffe17d48ea7677654a6d" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-gradle-31.0.2.pom">
<sha256 value="1f38ce5f8e02a486910e9c33a4a52cdf9b79f435337a9a292ce44eee638ce133" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-model" version="31.0.0">
<artifact name="lint-model-31.0.0.jar">
<sha256 value="162eb85f27efc7b11821f80bb9861a02bb979127beba9b265155c19c80f809ac" origin="Generated by Gradle"/>
@ -4487,6 +4841,14 @@
<sha256 value="ea25b2d3ba3f405da6f8ad2fac2851ad4a1a595ad1045fefe2573ea92e849afd" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-model" version="31.0.2">
<artifact name="lint-model-31.0.2.jar">
<sha256 value="162eb85f27efc7b11821f80bb9861a02bb979127beba9b265155c19c80f809ac" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-model-31.0.2.pom">
<sha256 value="f4045ca809c79b395dec9f021ea5af4aa8e5e2b106ee2a3bb4595c0d92759272" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-typedef-remover" version="31.0.0">
<artifact name="lint-typedef-remover-31.0.0.jar">
<sha256 value="26c9384cd0cc727c0985097baf4fbcd90d556e06bb0f586c175ca9912fbc66ff" origin="Generated by Gradle"/>
@ -4535,6 +4897,14 @@
<sha256 value="5537e52ace4818756376098e1191257ca7bd56b367ca0d77db26a947d1606172" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.lint" name="lint-typedef-remover" version="31.0.2">
<artifact name="lint-typedef-remover-31.0.2.jar">
<sha256 value="26c9384cd0cc727c0985097baf4fbcd90d556e06bb0f586c175ca9912fbc66ff" origin="Generated by Gradle"/>
</artifact>
<artifact name="lint-typedef-remover-31.0.2.pom">
<sha256 value="958d48522ef1093ee67b0e410eb8e341eb1234c093ac94160c76299458177c63" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.0.0">
<artifact name="android-device-provider-ddmlib-proto-31.0.0.jar">
<sha256 value="332794db1e7702c9689c8075532f235cccbf57d70aba29cbd7d378e781bad37f" origin="Generated by Gradle"/>
@ -4583,6 +4953,14 @@
<sha256 value="95d5930e0e5290171e2c99877c78025047cece156ea7013e048d172fd976f953" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-ddmlib-proto" version="31.0.2">
<artifact name="android-device-provider-ddmlib-proto-31.0.2.jar">
<sha256 value="332794db1e7702c9689c8075532f235cccbf57d70aba29cbd7d378e781bad37f" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-device-provider-ddmlib-proto-31.0.2.pom">
<sha256 value="95833ccc426dfab62fb1eedca8b4beb86aedbc95743b8af59fa0793c1acd24e5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-gradle-proto" version="31.0.0">
<artifact name="android-device-provider-gradle-proto-31.0.0.jar">
<sha256 value="48f8b288d3b3195199ded91cbaa67a28be2fb9d317da187b88a7d4ffb505a578" origin="Generated by Gradle"/>
@ -4631,6 +5009,14 @@
<sha256 value="0952c1148c0cccec2247be49e2c01aa9dfeba704b0d3dcdff0ef87eda495dfd8" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-device-provider-gradle-proto" version="31.0.2">
<artifact name="android-device-provider-gradle-proto-31.0.2.jar">
<sha256 value="48f8b288d3b3195199ded91cbaa67a28be2fb9d317da187b88a7d4ffb505a578" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-device-provider-gradle-proto-31.0.2.pom">
<sha256 value="313bc5f9895a1a18052c94ad2e000660514417f2860bfdab7a1a33a75f8ef2db" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.0.0">
<artifact name="android-test-plugin-host-additional-test-output-proto-31.0.0.jar">
<sha256 value="6c4d0907badf886cbea14e56e8d08ce232ee775403ad811c27a280520d7efa1a" origin="Generated by Gradle"/>
@ -4679,6 +5065,14 @@
<sha256 value="28c5ea167d9d4a9acd486a95a0e5faf8109a925f9148f542a78e78bfcaf2bd3f" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-additional-test-output-proto" version="31.0.2">
<artifact name="android-test-plugin-host-additional-test-output-proto-31.0.2.jar">
<sha256 value="6c4d0907badf886cbea14e56e8d08ce232ee775403ad811c27a280520d7efa1a" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-additional-test-output-proto-31.0.2.pom">
<sha256 value="9761246a51bd0eb2cddaa2aeb5dd68c4877e03ac768531a88c2afb4f30f5b7a5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.0.0">
<artifact name="android-test-plugin-host-coverage-proto-31.0.0.jar">
<sha256 value="22686a7d1775171e76534ab8f40f9c9677cabc77321088e3268cb9cb74d0e5c6" origin="Generated by Gradle"/>
@ -4727,6 +5121,14 @@
<sha256 value="d3880dea30b005c3532c58dd5ee6d937393569ad997db6b1aa9b388b38cd51f4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-coverage-proto" version="31.0.2">
<artifact name="android-test-plugin-host-coverage-proto-31.0.2.jar">
<sha256 value="22686a7d1775171e76534ab8f40f9c9677cabc77321088e3268cb9cb74d0e5c6" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-coverage-proto-31.0.2.pom">
<sha256 value="2c2aff5d6007101aeb3156a55f3255a9fd5494fbd7b73cf845d94a11b13606da" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-logcat-proto" version="31.0.0">
<artifact name="android-test-plugin-host-logcat-proto-31.0.0.jar">
<sha256 value="62234086f76d3dc1d1acbf9def72fcd7741ce2a10de587b4608ab45da62e9bc1" origin="Generated by Gradle"/>
@ -4775,6 +5177,14 @@
<sha256 value="45b7021f35e73f8082b5e555263027cff01bd9618d17a228e62be9d7a4971c17" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-logcat-proto" version="31.0.2">
<artifact name="android-test-plugin-host-logcat-proto-31.0.2.jar">
<sha256 value="62234086f76d3dc1d1acbf9def72fcd7741ce2a10de587b4608ab45da62e9bc1" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-logcat-proto-31.0.2.pom">
<sha256 value="30582f3d9e654785786e9842e7d400052d701be118b59c334e918f1fe7637fba" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-retention-proto" version="31.0.0">
<artifact name="android-test-plugin-host-retention-proto-31.0.0.jar">
<sha256 value="031c4c933c5e53ddb863b960074ba36ec040a2464f208d4f5d390d2b227f6505" origin="Generated by Gradle"/>
@ -4823,6 +5233,14 @@
<sha256 value="5ca52fc90dbab3f82d7c5f4c13b282e20d475d933926c36aa2dee54ed134e223" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-host-retention-proto" version="31.0.2">
<artifact name="android-test-plugin-host-retention-proto-31.0.2.jar">
<sha256 value="031c4c933c5e53ddb863b960074ba36ec040a2464f208d4f5d390d2b227f6505" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-host-retention-proto-31.0.2.pom">
<sha256 value="055c33b308ae5bd9c3ab760ffe50f92c1a20bcdffe30f925c8234b48337fbda1" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.0.0">
<artifact name="android-test-plugin-result-listener-gradle-proto-31.0.0.jar">
<sha256 value="38c664b016fc380676ab80fb9da0c42f13b049cfd98d16467a2049fe85072e70" origin="Generated by Gradle"/>
@ -4871,6 +5289,14 @@
<sha256 value="1f747f55dbbc5deb1bfe07187964ff2f5a766bf6d0c6db1e55d85905d144a1ab" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.android.tools.utp" name="android-test-plugin-result-listener-gradle-proto" version="31.0.2">
<artifact name="android-test-plugin-result-listener-gradle-proto-31.0.2.jar">
<sha256 value="38c664b016fc380676ab80fb9da0c42f13b049cfd98d16467a2049fe85072e70" origin="Generated by Gradle"/>
</artifact>
<artifact name="android-test-plugin-result-listener-gradle-proto-31.0.2.pom">
<sha256 value="0a180d1f1abad7b409ebce6f3552475fa53bed37c2cdab9761522f23c656f4c5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.arthenica" name="ffmpeg-kit-min-gpl" version="5.1.LTS">
<artifact name="ffmpeg-kit-min-gpl-5.1.LTS.aar">
<sha256 value="fbb9dfbe79fef708601be4bf53f5770482dbc6dc5dc98d44784f2e41e3b1a2dc" origin="Generated by Gradle"/>
@ -5126,6 +5552,9 @@
<artifact name="material-1.9.0.module">
<sha256 value="5b87bccdfa041a57347f3e1bfa34966030657de6f4cf991d82ec041e8153beb4" origin="Generated by Gradle"/>
</artifact>
<artifact name="material-1.9.0.pom">
<sha256 value="0054f445c8550b5b51784a471c037a9acc33aa217d6540075fd59fa6c1dc83ea" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.api.grpc" name="proto-google-common-protos" version="2.0.1">
<artifact name="proto-google-common-protos-2.0.1.jar">