Skip to content

Commit

Permalink
ref: minors, use receiver args
Browse files Browse the repository at this point in the history
fix: fixed NPE in ProductEditNutritionFactsFragment.kt
  • Loading branch information
VaiTon committed Jul 27, 2021
1 parent c9ca8ea commit ecc5047
Show file tree
Hide file tree
Showing 20 changed files with 241 additions and 279 deletions.
Expand Up @@ -59,7 +59,6 @@ import openfoodfacts.github.scrachx.openfood.models.Product
import openfoodfacts.github.scrachx.openfood.models.ProductImageField
import openfoodfacts.github.scrachx.openfood.models.findByCode
import openfoodfacts.github.scrachx.openfood.network.ApiFields
import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient
import openfoodfacts.github.scrachx.openfood.network.services.ProductsAPI
import openfoodfacts.github.scrachx.openfood.utils.*
import openfoodfacts.github.scrachx.openfood.utils.FileDownloader.download
Expand All @@ -83,8 +82,6 @@ class ImagesManageActivity : BaseActivity() {
@Inject
lateinit var productsApi: ProductsAPI

@Inject
lateinit var client: OpenFoodAPIClient

@Inject
lateinit var picasso: Picasso
Expand Down
Expand Up @@ -35,8 +35,9 @@ import android.widget.SearchView
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.app.ActivityCompat
import androidx.core.app.ActivityCompat.shouldShowRequestPermissionRationale
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.checkSelfPermission
import androidx.core.content.edit
import androidx.core.net.toUri
import androidx.fragment.app.Fragment
Expand All @@ -60,6 +61,7 @@ import com.mikepenz.materialdrawer.model.interfaces.IProfile
import dagger.hilt.android.AndroidEntryPoint
import io.reactivex.disposables.CompositeDisposable
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import kotlinx.coroutines.rx2.await
import kotlinx.coroutines.withContext
Expand Down Expand Up @@ -117,9 +119,7 @@ import openfoodfacts.github.scrachx.openfood.utils.NavigationDrawerListener.Comp
import openfoodfacts.github.scrachx.openfood.utils.NavigationDrawerListener.Companion.ITEM_SEARCH_BY_CODE
import openfoodfacts.github.scrachx.openfood.utils.NavigationDrawerListener.Companion.ITEM_USER
import openfoodfacts.github.scrachx.openfood.utils.NavigationDrawerListener.Companion.ITEM_YOUR_LISTS
import openfoodfacts.github.scrachx.openfood.utils.Utils.hideKeyboard
import openfoodfacts.github.scrachx.openfood.utils.Utils.isApplicationInstalled
import openfoodfacts.github.scrachx.openfood.utils.Utils.isNetworkConnected
import openfoodfacts.github.scrachx.openfood.utils.Utils.scheduleProductUploadJob
import java.io.FileNotFoundException
import java.io.IOException
Expand Down Expand Up @@ -163,6 +163,9 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
private var searchMenuItem: MenuItem? = null
private var userSettingsURI: Uri? = null

private var historySyncJob: Job? = null


private val loginThenUpdate = registerForActivityResult(LoginContract())
{ isLoggedIn -> if (isLoggedIn) updateConnectedState() }
private val loginThenOpenContributions = registerForActivityResult(LoginContract())
Expand All @@ -177,7 +180,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
_binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)

hideKeyboard(this)
hideKeyboard()
setSupportActionBar(binding.toolbarInclude.toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(false)
swapToFragment(HomeFragment.newInstance())
Expand Down Expand Up @@ -244,8 +247,8 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
.withHasStableIds(true)
.withAccountHeader(headerResult) //set the AccountHeader we created earlier for the header
.withOnDrawerListener(object : Drawer.OnDrawerListener {
override fun onDrawerSlide(drawerView: View, slideOffset: Float) = hideKeyboard(this@MainActivity)
override fun onDrawerOpened(drawerView: View) = hideKeyboard(this@MainActivity)
override fun onDrawerSlide(drawerView: View, slideOffset: Float) = hideKeyboard()
override fun onDrawerOpened(drawerView: View) = hideKeyboard()
override fun onDrawerClosed(drawerView: View) = Unit
})
.addDrawerItems(
Expand Down Expand Up @@ -432,12 +435,16 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {

// Adds nutriscore and quantity values in old history for schema 5 update
val mSharedPref = getSharedPreferences("prefs", 0)

val isOldHistoryDataSynced = mSharedPref.getBoolean("is_old_history_data_synced", false)
if (!isOldHistoryDataSynced && isNetworkConnected(this)) {
apiClient.syncOldHistory()
if (!isOldHistoryDataSynced && this.isNetworkConnected()) {
historySyncJob?.cancel()
historySyncJob = lifecycleScope.launch { apiClient.syncOldHistory() }
}

binding.bottomNavigationInclude.bottomNavigation.selectNavigationItem(0)
binding.bottomNavigationInclude.bottomNavigation.installBottomNavigation(this)

handleIntent(intent)

if (isFlavors(OFF)) {
Expand All @@ -457,24 +464,24 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
}

private fun checkThenStartScanActivity() {
if (ContextCompat.checkSelfPermission(this@MainActivity, Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED
) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this@MainActivity, Manifest.permission.CAMERA)) {
MaterialAlertDialogBuilder(this@MainActivity)
when {
checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED -> {
startScanActivity()
}
shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) -> {
MaterialAlertDialogBuilder(this)
.setTitle(R.string.action_about)
.setMessage(R.string.permission_camera)
.setPositiveButton(android.R.string.ok) { _, _ ->
requestCameraThenOpenScan.launch(Manifest.permission.CAMERA)
}
.show()

} else {
}
else -> {
requestCameraThenOpenScan.launch(Manifest.permission.CAMERA)
}
} else {
startScanActivity()
}

}

private fun updateProfileForCurrentUser() {
Expand Down Expand Up @@ -848,7 +855,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {

if (tempBarcode.isNotEmpty()) {
dialog.dismiss()
if (isNetworkConnected(this@MainActivity)) {
if (this@MainActivity.isNetworkConnected()) {
contentResolver.openInputStream(selected)!!.use {
val image = ProductImage(
tempBarcode,
Expand Down
Expand Up @@ -39,7 +39,7 @@ import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository
import openfoodfacts.github.scrachx.openfood.utils.LocaleManager
import openfoodfacts.github.scrachx.openfood.utils.NavigationDrawerListener
import openfoodfacts.github.scrachx.openfood.utils.NavigationDrawerListener.NavigationDrawerType
import openfoodfacts.github.scrachx.openfood.utils.Utils
import openfoodfacts.github.scrachx.openfood.utils.isNetworkConnected
import javax.inject.Inject

/**
Expand Down Expand Up @@ -146,7 +146,7 @@ class AllergensAlertFragment : NavigationBaseFragment() {
}.show()
}

} else if (Utils.isNetworkConnected(requireContext())) {
} else if (requireContext().isNetworkConnected()) {
val lt = LoadToast(context)
.setText(requireActivity().getString(R.string.toast_retrieving))
.setBackgroundColor(ResourcesCompat.getColor(requireContext().resources, R.color.blue, requireContext().theme))
Expand Down
Expand Up @@ -29,12 +29,8 @@ import openfoodfacts.github.scrachx.openfood.listeners.CommonBottomListenerInsta
import openfoodfacts.github.scrachx.openfood.listeners.CommonBottomListenerInstaller.selectNavigationItem
import openfoodfacts.github.scrachx.openfood.models.Product
import openfoodfacts.github.scrachx.openfood.models.ProductImageField
import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient
import openfoodfacts.github.scrachx.openfood.repositories.ProductRepository
import openfoodfacts.github.scrachx.openfood.utils.LocaleManager
import openfoodfacts.github.scrachx.openfood.utils.PhotoReceiverHandler
import openfoodfacts.github.scrachx.openfood.utils.Utils
import openfoodfacts.github.scrachx.openfood.utils.isHardwareCameraInstalled
import openfoodfacts.github.scrachx.openfood.utils.*
import java.util.*
import javax.inject.Inject
import kotlin.collections.ArrayList
Expand All @@ -46,8 +42,6 @@ class ProductCompareActivity : BaseActivity() {

private val viewModel: ProductCompareViewModel by viewModels()

@Inject
lateinit var client: OpenFoodAPIClient

@Inject
lateinit var productRepository: ProductRepository
Expand Down Expand Up @@ -118,24 +112,7 @@ class ProductCompareActivity : BaseActivity() {

fullProductClickListener = {
val barcode = it.code
if (Utils.isNetworkConnected(activity)) {
Utils.hideKeyboard(activity)

client.openProduct(barcode, activity)
} else {
MaterialAlertDialogBuilder(activity)
.setTitle(R.string.device_offline_dialog_title)
.setMessage(R.string.connectivity_check)
.setPositiveButton(R.string.txt_try_again) { _, _ ->
if (Utils.isNetworkConnected(activity)) {
client.openProduct(barcode, activity)
} else {
Toast.makeText(activity, R.string.device_offline_dialog_title, Toast.LENGTH_SHORT).show()
}
}
.setNegativeButton(R.string.dismiss) { d, _ -> d.dismiss() }
.show()
}
openProduct(barcode)
}
}

Expand Down
Expand Up @@ -48,8 +48,8 @@ import openfoodfacts.github.scrachx.openfood.customtabs.WebViewFallback
import openfoodfacts.github.scrachx.openfood.databinding.ActivityLoginBinding
import openfoodfacts.github.scrachx.openfood.features.shared.BaseActivity
import openfoodfacts.github.scrachx.openfood.network.services.ProductsAPI
import openfoodfacts.github.scrachx.openfood.utils.Utils
import openfoodfacts.github.scrachx.openfood.utils.getLoginPreferences
import openfoodfacts.github.scrachx.openfood.utils.hideKeyboard
import java.io.IOException
import java.net.HttpCookie
import javax.inject.Inject
Expand Down Expand Up @@ -87,7 +87,7 @@ class LoginActivity : BaseActivity() {
// Disable login button
viewModel.canLogIn.postValue(false)

Utils.hideKeyboard(this)
hideKeyboard()

// Start checks
val login = binding.loginInput.text.toString()
Expand Down
Expand Up @@ -66,11 +66,7 @@ import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient
import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient.Companion.PNG_EXT
import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient.Companion.addToHistory
import openfoodfacts.github.scrachx.openfood.network.services.ProductsAPI
import openfoodfacts.github.scrachx.openfood.utils.OfflineProductService
import openfoodfacts.github.scrachx.openfood.utils.Utils.hideKeyboard
import openfoodfacts.github.scrachx.openfood.utils.clearCameraCache
import openfoodfacts.github.scrachx.openfood.utils.getLoginPreferences
import openfoodfacts.github.scrachx.openfood.utils.getProductState
import openfoodfacts.github.scrachx.openfood.utils.*
import java.io.IOException
import java.util.*
import javax.inject.Inject
Expand All @@ -89,9 +85,6 @@ class ProductEditActivity : BaseActivity() {
@Inject
lateinit var daoSession: DaoSession

@Inject
lateinit var client: OpenFoodAPIClient

@Inject
lateinit var productsApi: ProductsAPI

Expand Down Expand Up @@ -330,7 +323,7 @@ class ProductEditActivity : BaseActivity() {
scheduleProductUpload(this, sharedPreferences)

Toast.makeText(this, R.string.productSavedToast, Toast.LENGTH_SHORT).show()
hideKeyboard(this)
hideKeyboard()

// Report analytics
if (editingMode) {
Expand Down
Expand Up @@ -32,6 +32,7 @@ import android.widget.AdapterView.OnItemSelectedListener
import androidx.core.net.toFile
import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope
import com.afollestad.materialdialogs.MaterialDialog
import com.google.android.material.textfield.TextInputLayout
Expand Down Expand Up @@ -402,8 +403,15 @@ class ProductEditNutritionFactsFragment : ProductEditFragment() {
.resize(requireContext().dpsToPixel(50), requireContext().dpsToPixel(50))
.centerInside()
.into(binding.btnAddImageNutritionFacts, object : Callback {
override fun onSuccess() = afterNutritionImgLoaded()
override fun onError(ex: Exception) = afterNutritionImgLoaded()
override fun onSuccess() {
if (!lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) return
afterNutritionImgLoaded()
}

override fun onError(ex: Exception) {
if (!lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)) return
afterNutritionImgLoaded()
}
})
}

Expand Down
Expand Up @@ -56,7 +56,6 @@ import openfoodfacts.github.scrachx.openfood.listeners.CommonBottomListenerInsta
import openfoodfacts.github.scrachx.openfood.listeners.OnRefreshListener
import openfoodfacts.github.scrachx.openfood.models.ProductState
import openfoodfacts.github.scrachx.openfood.models.eventbus.ProductNeedsRefreshEvent
import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient
import openfoodfacts.github.scrachx.openfood.utils.Utils
import openfoodfacts.github.scrachx.openfood.utils.requireProductState
import org.greenrobot.eventbus.EventBus
Expand All @@ -68,9 +67,6 @@ class ProductViewActivity : BaseActivity(), IProductView, OnRefreshListener {
private var _binding: ActivityProductBinding? = null
private val binding get() = _binding!!

@Inject
lateinit var client: OpenFoodAPIClient

@Inject
lateinit var sharedPreferences: SharedPreferences

Expand Down Expand Up @@ -157,7 +153,7 @@ class ProductViewActivity : BaseActivity(), IProductView, OnRefreshListener {
}

override fun onRefresh() {
client.openProduct(productState!!.product!!.code, this)
openProduct(productState!!.product!!.code)
}

override fun onNewIntent(intent: Intent) {
Expand Down
Expand Up @@ -548,7 +548,9 @@ class NutritionProductFragment : BaseFragment(), CustomTabActivityHelper.Connect
val dialog = MaterialDialog.Builder(requireActivity()).run {
title(R.string.calculate_nutrition_facts)
customView(R.layout.dialog_calculate_calories, false)
dismissListener { Utils.hideKeyboard(requireActivity()) }
dismissListener {
requireActivity().hideKeyboard()
}
build()
}.apply { show() }

Expand Down
Expand Up @@ -38,7 +38,6 @@ import openfoodfacts.github.scrachx.openfood.models.HistoryProductDao
import openfoodfacts.github.scrachx.openfood.models.Product
import openfoodfacts.github.scrachx.openfood.models.entities.ListedProduct
import openfoodfacts.github.scrachx.openfood.models.entities.ProductLists
import openfoodfacts.github.scrachx.openfood.network.OpenFoodAPIClient
import openfoodfacts.github.scrachx.openfood.utils.*
import openfoodfacts.github.scrachx.openfood.utils.SortType.*
import java.io.File
Expand All @@ -52,9 +51,6 @@ class ProductListActivity : BaseActivity(), SwipeController.Actions {
private var _binding: ActivityYourListedProductsBinding? = null
private val binding get() = _binding!!

@Inject
lateinit var client: OpenFoodAPIClient

@Inject
lateinit var daoSession: DaoSession

Expand Down

0 comments on commit ecc5047

Please sign in to comment.