From 76aaaf5119014284857e01cf5577d70e0cc1bcb0 Mon Sep 17 00:00:00 2001 From: Hieu Vu Date: Thu, 12 Oct 2023 22:13:22 +0700 Subject: [PATCH 1/2] Remove unused code --- .../adapters/LineListItemAdapter.kt | 75 ----------- .../adapters/RecipeItemAdapter.kt | 49 ------- .../productlist/FilterFragment.kt | 24 ---- .../presentation/utils/BindingAdapters.kt | 40 ------ .../presentation/utils/ObservableViewModel.kt | 37 ------ app/src/main/res/layout/fragment_filter.xml | 67 ---------- .../res/layout/layout_category_grid_item.xml | 50 -------- .../main/res/layout/layout_grid_list_item.xml | 85 ------------- .../main/res/layout/layout_image_layout.xml | 16 --- .../main/res/layout/layout_line_list_item.xml | 120 ------------------ .../main/res/layout/recipe_item_layout.xml | 65 ---------- 11 files changed, 628 deletions(-) delete mode 100644 app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/LineListItemAdapter.kt delete mode 100644 app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/RecipeItemAdapter.kt delete mode 100644 app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/FilterFragment.kt delete mode 100644 app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/BindingAdapters.kt delete mode 100644 app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/ObservableViewModel.kt delete mode 100644 app/src/main/res/layout/fragment_filter.xml delete mode 100644 app/src/main/res/layout/layout_category_grid_item.xml delete mode 100644 app/src/main/res/layout/layout_grid_list_item.xml delete mode 100644 app/src/main/res/layout/layout_image_layout.xml delete mode 100644 app/src/main/res/layout/layout_line_list_item.xml delete mode 100644 app/src/main/res/layout/recipe_item_layout.xml diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/LineListItemAdapter.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/LineListItemAdapter.kt deleted file mode 100644 index 35562fdb..00000000 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/LineListItemAdapter.kt +++ /dev/null @@ -1,75 +0,0 @@ -package com.hieuwu.groceriesstore.presentation.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.ListAdapter -import androidx.recyclerview.widget.RecyclerView -import com.hieuwu.groceriesstore.databinding.LayoutLineListItemBinding -import com.hieuwu.groceriesstore.domain.models.LineItemModel - -class LineListItemAdapter(val onClickListener: OnClickListener, val context: Context) : - ListAdapter(DiffCallback) { - - class LineItemViewHolder(val binding: LayoutLineListItemBinding) : - RecyclerView.ViewHolder(binding.root) { - fun bind(lineItemModel: LineItemModel) { - binding.lineItem = lineItemModel - binding.executePendingBindings() - } - } - - fun removeItemAt(position: Int) { - val lineItem = getItem(position) - onClickListener.onRemoveItem(lineItem) - } - - override fun onBindViewHolder(holder: LineItemViewHolder, position: Int) { - val lineItem = getItem(position) - holder.binding.plusBtn.setOnClickListener { - onClickListener.onPlusClick(lineItem) - } - - holder.binding.minusBtn.setOnClickListener { - onClickListener.onMinusClick(lineItem) - } - - holder.binding.deleteBtn.setOnClickListener { - onClickListener.onRemoveItem(lineItem) - } - - holder.bind(lineItem) - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LineItemViewHolder { - val binding = LayoutLineListItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return LineItemViewHolder(binding) - } - - companion object DiffCallback : DiffUtil.ItemCallback() { - override fun areItemsTheSame( - oldItem: LineItemModel, - newItem: LineItemModel - ): Boolean { - return oldItem == newItem - } - - override fun areContentsTheSame( - oldItem: LineItemModel, - newItem: LineItemModel - ): Boolean { - return (oldItem.id == newItem.id) - } - } - - class OnClickListener constructor( - var minusListener: (lineItemModel: LineItemModel) -> Unit = {}, - var plusListener: (lineItemModel: LineItemModel) -> Unit = {}, - var removeListener: (lineItemModel: LineItemModel) -> Unit = {} - ) { - fun onMinusClick(lineItemModel: LineItemModel) = minusListener(lineItemModel) - fun onPlusClick(lineItemModel: LineItemModel) = plusListener(lineItemModel) - fun onRemoveItem(lineItemModel: LineItemModel) = removeListener(lineItemModel) - } -} diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/RecipeItemAdapter.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/RecipeItemAdapter.kt deleted file mode 100644 index be50b31d..00000000 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/adapters/RecipeItemAdapter.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.hieuwu.groceriesstore.presentation.adapters - -import android.view.LayoutInflater -import android.view.ViewGroup -import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.ListAdapter -import androidx.recyclerview.widget.RecyclerView -import com.hieuwu.groceriesstore.databinding.RecipeItemLayoutBinding -import com.hieuwu.groceriesstore.domain.models.RecipeModel - -class RecipeItemAdapter(val onClickListener: OnClickListener) : - ListAdapter(DiffCallback) { - - class RecipeItemViewHolder(private var binding: RecipeItemLayoutBinding) : - RecyclerView.ViewHolder(binding.root) { - fun bind(recipe: RecipeModel) { - binding.recipeModel = recipe - binding.executePendingBindings() - } - } - - override fun onBindViewHolder(holder: RecipeItemViewHolder, position: Int) { - val category = getItem(position) - holder.itemView.setOnClickListener { - onClickListener.onClick(category) - } - holder.bind(category) - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecipeItemViewHolder { - return RecipeItemViewHolder( - RecipeItemLayoutBinding.inflate(LayoutInflater.from(parent.context)) - ) - } - - companion object DiffCallback : DiffUtil.ItemCallback() { - override fun areItemsTheSame(oldItem: RecipeModel, newItem: RecipeModel): Boolean { - return oldItem == newItem - } - - override fun areContentsTheSame(oldItem: RecipeModel, newItem: RecipeModel): Boolean { - return oldItem.id == newItem.id - } - } - - class OnClickListener(val clickListener: (category: RecipeModel) -> Unit = {}) { - fun onClick(category: RecipeModel) = clickListener(category) - } -} diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/FilterFragment.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/FilterFragment.kt deleted file mode 100644 index da0edcde..00000000 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/FilterFragment.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.hieuwu.groceriesstore.presentation.productlist - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.databinding.DataBindingUtil -import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import com.hieuwu.groceriesstore.R -import com.hieuwu.groceriesstore.databinding.FragmentFilterBinding - -class FilterFragment : BottomSheetDialogFragment() { - - lateinit var binding: FragmentFilterBinding - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - binding = DataBindingUtil.inflate(inflater, R.layout.fragment_filter, container, false) - - return binding.root - } -} diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/BindingAdapters.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/BindingAdapters.kt deleted file mode 100644 index 57475fc6..00000000 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/BindingAdapters.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.hieuwu.groceriesstore.presentation.utils - -import android.widget.ImageView -import androidx.core.net.toUri -import androidx.databinding.BindingAdapter -import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide -import com.bumptech.glide.request.RequestOptions -import com.hieuwu.groceriesstore.R -import com.hieuwu.groceriesstore.domain.models.LineItemModel -import com.hieuwu.groceriesstore.domain.models.RecipeModel -import com.hieuwu.groceriesstore.presentation.adapters.LineListItemAdapter -import com.hieuwu.groceriesstore.presentation.adapters.RecipeItemAdapter - - -@BindingAdapter("imageUrl") -fun bindImage(imgView: ImageView, imgUrl: String?) { - imgUrl?.let { - val imgUri = imgUrl.toUri().buildUpon().scheme("https").build() - Glide.with(imgView.context) - .load(imgUri) - .apply( - RequestOptions().placeholder(R.drawable.loading_animation) - .error(R.drawable.ic_broken_image) - ) - .into(imgView) - } -} - -@BindingAdapter("lineListData") -fun bindRecyclerViewLine(recyclerView: RecyclerView, data: MutableList?) { - val adapter = recyclerView.adapter as LineListItemAdapter - adapter.submitList(data) -} - -@BindingAdapter("recipeListData") -fun bindRecyclerViewRecipe(recyclerView: RecyclerView, data: MutableList?) { - val adapter = recyclerView.adapter as RecipeItemAdapter - adapter.submitList(data) -} diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/ObservableViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/ObservableViewModel.kt deleted file mode 100644 index 3b2cc4cf..00000000 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/utils/ObservableViewModel.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.hieuwu.groceriesstore.presentation.utils - -import androidx.databinding.Observable -import androidx.databinding.PropertyChangeRegistry -import androidx.lifecycle.ViewModel - -open class ObservableViewModel : ViewModel(), Observable { - - private val callbacks: PropertyChangeRegistry by lazy { PropertyChangeRegistry() } - - override fun addOnPropertyChangedCallback(callback: Observable.OnPropertyChangedCallback) { - callbacks.add(callback) - } - - override fun removeOnPropertyChangedCallback(callback: Observable.OnPropertyChangedCallback) { - callbacks.remove(callback) - } - - /** - * Notifies listeners that all properties of this instance have changed. - */ - @Suppress("unused") - fun notifyChange() { - callbacks.notifyCallbacks(this, 0, null) - } - - /** - * Notifies listeners that a specific property has changed. The getter for the property - * that changes should be marked with [Bindable] to generate a field in - * `BR` to be used as `fieldId`. - * - * @param fieldId The generated BR id for the Bindable field. - */ - fun notifyPropertyChanged(fieldId: Int) { - callbacks.notifyCallbacks(this, fieldId, null) - } -} diff --git a/app/src/main/res/layout/fragment_filter.xml b/app/src/main/res/layout/fragment_filter.xml deleted file mode 100644 index e7f9a8a8..00000000 --- a/app/src/main/res/layout/fragment_filter.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/layout_category_grid_item.xml b/app/src/main/res/layout/layout_category_grid_item.xml deleted file mode 100644 index 57aa01d1..00000000 --- a/app/src/main/res/layout/layout_category_grid_item.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_grid_list_item.xml b/app/src/main/res/layout/layout_grid_list_item.xml deleted file mode 100644 index 8317f118..00000000 --- a/app/src/main/res/layout/layout_grid_list_item.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_image_layout.xml b/app/src/main/res/layout/layout_image_layout.xml deleted file mode 100644 index 30a2603b..00000000 --- a/app/src/main/res/layout/layout_image_layout.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout/layout_line_list_item.xml b/app/src/main/res/layout/layout_line_list_item.xml deleted file mode 100644 index b98f18c2..00000000 --- a/app/src/main/res/layout/layout_line_list_item.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/recipe_item_layout.xml b/app/src/main/res/layout/recipe_item_layout.xml deleted file mode 100644 index 851de83b..00000000 --- a/app/src/main/res/layout/recipe_item_layout.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - From 1fd6e6e182ab0d93acaa981dc82720467b34ac1a Mon Sep 17 00:00:00 2001 From: Hieu Vu Date: Thu, 12 Oct 2023 22:13:57 +0700 Subject: [PATCH 2/2] Get rid of observable viewmodel --- .../presentation/account/AccountViewModel.kt | 8 +++----- .../groceriesstore/presentation/cart/CartViewModel.kt | 4 ++-- .../presentation/checkout/CheckOutViewModel.kt | 5 ++--- .../presentation/explore/ExploreViewModel.kt | 4 ++-- .../presentation/favourite/FavouriteViewModel.kt | 4 ++-- .../notificationsettings/NotificationSettingsViewModel.kt | 5 ++--- .../presentation/onboarding/OnboardingViewModel.kt | 4 ++-- .../presentation/productdetail/ProductDetailViewModel.kt | 4 ++-- .../presentation/productlist/ProductListFragment.kt | 6 +----- .../presentation/updateprofile/UpdateProfileViewModel.kt | 5 ++--- 10 files changed, 20 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/account/AccountViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/account/AccountViewModel.kt index 9f28f4b0..9f60f1d4 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/account/AccountViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/account/AccountViewModel.kt @@ -1,22 +1,20 @@ package com.hieuwu.groceriesstore.presentation.account -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.domain.models.UserModel import com.hieuwu.groceriesstore.domain.usecases.GetProfileUseCase import com.hieuwu.groceriesstore.domain.usecases.SignOutUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow -import javax.inject.Inject import kotlinx.coroutines.launch +import javax.inject.Inject @HiltViewModel class AccountViewModel @Inject constructor( private val getProfileUseCase: GetProfileUseCase, private val signOutUseCase: SignOutUseCase -) : ObservableViewModel() { +) : ViewModel() { private val _user: MutableStateFlow = MutableStateFlow(null) val user: MutableStateFlow diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/cart/CartViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/cart/CartViewModel.kt index cf7f114c..60ad3735 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/cart/CartViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/cart/CartViewModel.kt @@ -1,10 +1,10 @@ package com.hieuwu.groceriesstore.presentation.cart +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.domain.models.LineItemModel import com.hieuwu.groceriesstore.domain.models.OrderModel import com.hieuwu.groceriesstore.domain.usecases.UpdateCartItemUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -16,7 +16,7 @@ import timber.log.Timber @HiltViewModel class CartViewModel @Inject constructor( private val updateCartItemUseCase: UpdateCartItemUseCase -) : ObservableViewModel() { +) : ViewModel() { val order: StateFlow = updateCartItemUseCase.getCurrentCart() diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/checkout/CheckOutViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/checkout/CheckOutViewModel.kt index af532b7c..5a0aae5e 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/checkout/CheckOutViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/checkout/CheckOutViewModel.kt @@ -1,12 +1,12 @@ package com.hieuwu.groceriesstore.presentation.checkout +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.domain.models.OrderModel import com.hieuwu.groceriesstore.domain.models.UserModel import com.hieuwu.groceriesstore.domain.usecases.GetCurrentCartUseCase import com.hieuwu.groceriesstore.domain.usecases.GetProfileUseCase import com.hieuwu.groceriesstore.domain.usecases.SubmitOrderUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow @@ -22,8 +22,7 @@ class CheckOutViewModel @Inject constructor( private val getCurrentCartUseCase: GetCurrentCartUseCase, private val getProfileUseCase: GetProfileUseCase, private val submitOrderUseCase: SubmitOrderUseCase -) : - ObservableViewModel() { +) : ViewModel() { private val _user = getCurrentUser()!!.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), null) val user: StateFlow diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt index 9993d2db..a44af731 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt @@ -1,5 +1,6 @@ package com.hieuwu.groceriesstore.presentation.explore +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.data.database.entities.LineItem import com.hieuwu.groceriesstore.data.database.entities.Order @@ -11,7 +12,6 @@ import com.hieuwu.groceriesstore.domain.usecases.CreateNewOrderUseCase import com.hieuwu.groceriesstore.domain.usecases.GetCategoriesListUseCase import com.hieuwu.groceriesstore.domain.usecases.GetCurrentCartUseCase import com.hieuwu.groceriesstore.domain.usecases.SearchProductUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import com.hieuwu.groceriesstore.utilities.OrderStatus import dagger.hilt.android.lifecycle.HiltViewModel import java.util.* @@ -30,7 +30,7 @@ class ExploreViewModel @Inject constructor( private val searchProductUseCase: SearchProductUseCase, private val createNewOrderUseCase: CreateNewOrderUseCase, private val addToCartUseCase: AddToCartUseCase -) : ObservableViewModel() { +) : ViewModel() { private val _currentCart: StateFlow = getCurrentCard()!! diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/favourite/FavouriteViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/favourite/FavouriteViewModel.kt index 0aaecf72..8df2b4f0 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/favourite/FavouriteViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/favourite/FavouriteViewModel.kt @@ -2,11 +2,11 @@ package com.hieuwu.groceriesstore.presentation.favourite import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel import androidx.lifecycle.asLiveData import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.data.repository.RecipeRepository import com.hieuwu.groceriesstore.domain.models.RecipeModel -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.stateIn @@ -14,7 +14,7 @@ import javax.inject.Inject @HiltViewModel class FavouriteViewModel @Inject constructor(private val recipeRepository: RecipeRepository) : - ObservableViewModel() { + ViewModel() { private var _recipesList: MutableLiveData> = recipeRepository.getFromLocal().stateIn( diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/notificationsettings/NotificationSettingsViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/notificationsettings/NotificationSettingsViewModel.kt index 938ee743..74886508 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/notificationsettings/NotificationSettingsViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/notificationsettings/NotificationSettingsViewModel.kt @@ -1,11 +1,11 @@ package com.hieuwu.groceriesstore.presentation.notificationsettings import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.domain.models.UserModel import com.hieuwu.groceriesstore.domain.usecases.GetProfileUseCase import com.hieuwu.groceriesstore.domain.usecases.UserSettingsUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch @@ -16,8 +16,7 @@ import javax.inject.Inject class NotificationSettingsViewModel @Inject constructor( private val userSettingsUseCase: UserSettingsUseCase, private val getProfileUseCase: GetProfileUseCase, -) : - ObservableViewModel() { +) : ViewModel() { private val _user: MutableStateFlow = MutableStateFlow(null) val user: MutableStateFlow get() = _user diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/onboarding/OnboardingViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/onboarding/OnboardingViewModel.kt index d888f966..6695817e 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/onboarding/OnboardingViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/onboarding/OnboardingViewModel.kt @@ -1,9 +1,9 @@ package com.hieuwu.groceriesstore.presentation.onboarding import android.content.SharedPreferences +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.domain.usecases.RefreshAppDataUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -15,7 +15,7 @@ import javax.inject.Inject class OnboardingViewModel @Inject constructor( private val refreshAppDataUseCase: RefreshAppDataUseCase, private val sharedPreferences: SharedPreferences -) : ObservableViewModel() { +) : ViewModel() { private val _isSyncedSuccessful = MutableStateFlow(false) val isSyncedSuccessful: StateFlow diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/productdetail/ProductDetailViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/productdetail/ProductDetailViewModel.kt index 8dd21235..9c7df22d 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/productdetail/ProductDetailViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/productdetail/ProductDetailViewModel.kt @@ -1,13 +1,13 @@ package com.hieuwu.groceriesstore.presentation.productdetail import androidx.lifecycle.SavedStateHandle +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.data.database.entities.LineItem import com.hieuwu.groceriesstore.data.database.entities.Order import com.hieuwu.groceriesstore.data.repository.OrderRepository import com.hieuwu.groceriesstore.domain.models.OrderModel import com.hieuwu.groceriesstore.domain.usecases.GetProductDetailUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import com.hieuwu.groceriesstore.utilities.OrderStatus import dagger.hilt.android.lifecycle.HiltViewModel import java.util.* @@ -23,7 +23,7 @@ class ProductDetailViewModel @Inject constructor( savedStateHandle: SavedStateHandle, getProductDetailUseCase: GetProductDetailUseCase, private val orderRepository: OrderRepository -) : ObservableViewModel() { +) : ViewModel() { private val args = ProductDetailFragmentArgs.fromSavedStateHandle(savedStateHandle) diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/ProductListFragment.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/ProductListFragment.kt index 6857223b..f194fbfb 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/ProductListFragment.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/productlist/ProductListFragment.kt @@ -53,10 +53,6 @@ class ProductListFragment : Fragment() { } private fun showFilterDialog() { - val bottomSheetDialogFragment = FilterFragment() - bottomSheetDialogFragment.show( - activity?.supportFragmentManager!!, - bottomSheetDialogFragment.tag - ) + // Do nothing. Add filter feature later } } diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/updateprofile/UpdateProfileViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/updateprofile/UpdateProfileViewModel.kt index 7254b03c..b69497a9 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/updateprofile/UpdateProfileViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/updateprofile/UpdateProfileViewModel.kt @@ -2,11 +2,11 @@ package com.hieuwu.groceriesstore.presentation.updateprofile import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.hieuwu.groceriesstore.domain.models.UserModel import com.hieuwu.groceriesstore.domain.usecases.GetProfileUseCase import com.hieuwu.groceriesstore.domain.usecases.UpdateProfileUseCase -import com.hieuwu.groceriesstore.presentation.utils.ObservableViewModel import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch @@ -16,8 +16,7 @@ import javax.inject.Inject class UpdateProfileViewModel @Inject constructor( private val updateProfileUseCase: UpdateProfileUseCase, private val getProfileUseCase: GetProfileUseCase, -) : - ObservableViewModel() { +) : ViewModel() { private val _user: MutableStateFlow = MutableStateFlow(null) val user: MutableStateFlow get() = _user