From 36c25a37d6ad67e7f22866a5094f00ed3bd64ac1 Mon Sep 17 00:00:00 2001 From: erik-everardo Date: Sun, 7 Jan 2024 01:40:06 -0600 Subject: [PATCH] oculta boton de agregar imagen en fragmento de imagenes --- .../image_list/presentation/ImageListViewModel.kt | 13 ++++++++++++- .../images/image_list/ui/ImagesFragment.kt | 9 +++++++++ app/src/main/res/layout/fragment_images.xml | 2 ++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt b/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt index aa078c9..bcf3704 100644 --- a/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt +++ b/app/src/main/java/com/isolaatti/images/image_list/presentation/ImageListViewModel.kt @@ -3,6 +3,7 @@ package com.isolaatti.images.image_list.presentation import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.isolaatti.auth.domain.AuthRepository import com.isolaatti.images.common.domain.entity.Image import com.isolaatti.images.common.domain.repository.ImagesRepository import com.isolaatti.utils.Resource @@ -16,7 +17,7 @@ import javax.inject.Inject import kotlin.properties.Delegates @HiltViewModel -class ImageListViewModel @Inject constructor(private val imagesRepository: ImagesRepository) : ViewModel() { +class ImageListViewModel @Inject constructor(private val imagesRepository: ImagesRepository, private val authRepository: AuthRepository) : ViewModel() { enum class Event { REMOVED_IMAGE, ADDED_IMAGE_BEGINNING @@ -31,6 +32,8 @@ class ImageListViewModel @Inject constructor(private val imagesRepository: Image private var loadedFirstTime = false var userId by Delegates.notNull() + val isUserItself: MutableLiveData = MutableLiveData() + private val list: List get() { return liveList.value ?: listOf() } @@ -95,4 +98,12 @@ class ImageListViewModel @Inject constructor(private val imagesRepository: Image }.flowOn(Dispatchers.IO).launchIn(this) } } + + fun getUserId() { + viewModelScope.launch { + authRepository.getUserId().onEach { + isUserItself.postValue(userId == it) + }.flowOn(Dispatchers.IO).launchIn(this) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt b/app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt index dce9947..be57c1d 100644 --- a/app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt +++ b/app/src/main/java/com/isolaatti/images/image_list/ui/ImagesFragment.kt @@ -95,6 +95,7 @@ class ImagesFragment : Fragment() { SOURCE_SQUAD -> {} SOURCE_PROFILE -> { viewModel.userId = arguments.sourceId.toInt() + viewModel.getUserId() viewModel.loadNext() } } @@ -239,6 +240,14 @@ class ImagesFragment : Fragment() { deletingImagesDialog = null } } + + viewModel.isUserItself.observe(viewLifecycleOwner) { + setupUiForUser(it) + } + } + + private fun setupUiForUser(isUserItSelf: Boolean) { + viewBinding.newPictureButton.visibility = if(isUserItSelf) View.VISIBLE else View.GONE } companion object { diff --git a/app/src/main/res/layout/fragment_images.xml b/app/src/main/res/layout/fragment_images.xml index 6634cd7..d142382 100644 --- a/app/src/main/res/layout/fragment_images.xml +++ b/app/src/main/res/layout/fragment_images.xml @@ -42,6 +42,8 @@ android:layout_height="wrap_content" android:layout_margin="16dp" app:srcCompat="@drawable/baseline_add_24" + android:visibility="gone" + tools:visibility="visible" android:contentDescription="@string/upload_a_picture" />