Skip to content

Commit

Permalink
ref: use viewmodel for EditIngredientsFragment.kt
Browse files Browse the repository at this point in the history
feat: add dokka to build.gradle.kts
  • Loading branch information
VaiTon committed May 17, 2021
1 parent 38117d2 commit 8253e3a
Show file tree
Hide file tree
Showing 9 changed files with 181 additions and 137 deletions.
2 changes: 2 additions & 0 deletions app/build.gradle.kts
Expand Up @@ -21,6 +21,7 @@ plugins {
id("kotlin-parcelize")
id("kotlin-kapt")
id("dagger.hilt.android.plugin")
id("org.jetbrains.dokka") version "1.4.32"
}

fun obtainTestBuildType(): String {
Expand All @@ -35,6 +36,7 @@ fun obtainTestBuildType(): String {
dependencies {
// Kotlin
implementation("org.jetbrains.kotlin:kotlin-stdlib:${rootProject.extra["kotlinVersion"]}")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0-RC")


Expand Down
Expand Up @@ -46,7 +46,8 @@ import openfoodfacts.github.scrachx.openfood.analytics.AnalyticsEvent
import openfoodfacts.github.scrachx.openfood.analytics.MatomoAnalytics
import openfoodfacts.github.scrachx.openfood.databinding.ActivityEditProductBinding
import openfoodfacts.github.scrachx.openfood.features.product.ProductFragmentPagerAdapter
import openfoodfacts.github.scrachx.openfood.features.product.edit.overview.ProductEditOverviewFragment
import openfoodfacts.github.scrachx.openfood.features.product.edit.ingredients.EditIngredientsFragment
import openfoodfacts.github.scrachx.openfood.features.product.edit.overview.EditOverviewFragment
import openfoodfacts.github.scrachx.openfood.features.shared.BaseActivity
import openfoodfacts.github.scrachx.openfood.images.IMG_ID
import openfoodfacts.github.scrachx.openfood.images.ProductImage
Expand Down Expand Up @@ -99,8 +100,8 @@ class ProductEditActivity : BaseActivity() {

private val addProductPhotosFragment = ProductEditPhotosFragment()
private val nutritionFactsFragment = ProductEditNutritionFactsFragment()
private val ingredientsFragment = ProductEditIngredientsFragment()
private val editOverviewFragment = ProductEditOverviewFragment()
private val ingredientsFragment = EditIngredientsFragment()
private val editOverviewFragment = EditOverviewFragment()

private val imagesFilePath = arrayOfNulls<String>(3)

Expand Down

Large diffs are not rendered by default.

@@ -0,0 +1,26 @@
package openfoodfacts.github.scrachx.openfood.features.product.edit.ingredients

import androidx.lifecycle.ViewModel
import androidx.lifecycle.liveData
import dagger.hilt.android.lifecycle.HiltViewModel
import openfoodfacts.github.scrachx.openfood.models.DaoSession
import openfoodfacts.github.scrachx.openfood.models.entities.allergen.AllergenNameDao
import openfoodfacts.github.scrachx.openfood.utils.LocaleManager
import javax.inject.Inject

@HiltViewModel
class EditIngredientsViewModel @Inject constructor(
private val daoSession: DaoSession,
private val localeManager: LocaleManager
) : ViewModel() {

val allergens = liveData {
daoSession.allergenNameDao.queryBuilder()
.where(AllergenNameDao.Properties.LanguageCode.eq(localeManager.getLanguage()))
.orderDesc(AllergenNameDao.Properties.Name)
.list()
.map { it.name }
.let { emit(it) }
}

}
Expand Up @@ -81,7 +81,7 @@ import javax.inject.Inject
* Product Overview fragment of AddProductActivity
*/
@AndroidEntryPoint
class ProductEditOverviewFragment : ProductEditFragment() {
class EditOverviewFragment : ProductEditFragment() {
private var _binding: FragmentAddProductOverviewBinding? = null
private val binding get() = _binding!!

Expand Down Expand Up @@ -485,7 +485,7 @@ class ProductEditOverviewFragment : ProductEditFragment() {
@Inject
lateinit var daoSession: DaoSession

private val viewModel: OverviewViewModel by viewModels()
private val viewModel: EditOverviewViewModel by viewModels()

/**
* Auto load suggestions into various NachoTextViews
Expand Down Expand Up @@ -583,14 +583,14 @@ class ProductEditOverviewFragment : ProductEditFragment() {
binding.name.isActivated = false
}
.doOnError {
Log.e(ProductEditOverviewFragment::class.java.simpleName, "Error retrieving product state from server api.", it)
Log.e(EditOverviewFragment::class.java.simpleName, "Error retrieving product state from server api.", it)
binding.name.setText(StringUtils.EMPTY)
binding.name.isActivated = true
}
.subscribe { productState ->
if (productState.status != 1L) {
Log.e(
ProductEditOverviewFragment::class.simpleName,
EditOverviewFragment::class.simpleName,
"Retrieved product with code ${productState.code}, but status was not successful."
)
binding.name.setText(StringUtils.EMPTY)
Expand Down
Expand Up @@ -13,7 +13,7 @@ import openfoodfacts.github.scrachx.openfood.utils.LocaleManager
import javax.inject.Inject

@HiltViewModel
class OverviewViewModel @Inject constructor(
class EditOverviewViewModel @Inject constructor(
private val daoSession: DaoSession,
private val localeManager: LocaleManager
) : ViewModel() {
Expand Down
Expand Up @@ -11,6 +11,7 @@ fun EditText?.getContent() = this?.text?.toString()
* @return true if the edit text string value is not empty
*/
fun EditText?.isNotEmpty() = !isEmpty()

fun EditText.isContentDifferent(toCompare: String?): Boolean {
val fieldValue = getContent()
return !(fieldValue.isNullOrEmpty() && toCompare.isNullOrEmpty()
Expand Down
Expand Up @@ -14,7 +14,7 @@
android:clipToPadding="false"
android:isScrollContainer="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".features.product.edit.ProductEditIngredientsFragment">
tools:context=".features.product.edit.ingredients.EditIngredientsFragment">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/fragment_add_product_overview.xml
Expand Up @@ -11,7 +11,7 @@
android:clipToPadding="false"
android:isScrollContainer="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".features.product.edit.overview.ProductEditOverviewFragment">
tools:context=".features.product.edit.overview.EditOverviewFragment">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
Expand Down

0 comments on commit 8253e3a

Please sign in to comment.