feat: refs #8176 refactorSearchDialog

This commit is contained in:
Sergio De la torre 2024-11-14 12:17:26 +01:00
parent 83bc9d9de4
commit 59deb90428
16 changed files with 257 additions and 182 deletions

View File

@ -24,7 +24,7 @@ class SearchableAdapter(
private lateinit var searchView: SearchView private lateinit var searchView: SearchView
inner class NameViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class NameViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val nombreTextView: TextView = itemView.findViewById(android.R.id.text1) private val nameText: TextView = itemView.findViewById(android.R.id.text1)
fun bind(nameWithId: NameWithId, query: String) { fun bind(nameWithId: NameWithId, query: String) {
val spannableString = SpannableString(nameWithId.name) val spannableString = SpannableString(nameWithId.name)
@ -41,7 +41,7 @@ class SearchableAdapter(
) )
} }
} }
nombreTextView.text = spannableString nameText.text = spannableString
itemView.setOnClickListener { itemView.setOnClickListener {
onItemClick(nameWithId) onItemClick(nameWithId)
} }

View File

@ -17,7 +17,7 @@ class SearchableRecyclerView @JvmOverloads constructor(
defStyleAttr: Int = 0 defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) { ) : LinearLayout(context, attrs, defStyleAttr) {
private val searchView: SearchView val searchView: SearchView
private val recyclerView: RecyclerView private val recyclerView: RecyclerView
lateinit var adapter: SearchableAdapter lateinit var adapter: SearchableAdapter
private var allItems: MutableList<NameWithId> = mutableListOf() private var allItems: MutableList<NameWithId> = mutableListOf()
@ -33,7 +33,7 @@ class SearchableRecyclerView @JvmOverloads constructor(
visibility = View.GONE visibility = View.GONE
true true
} }
visibility = View.GONE
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean { override fun onQueryTextSubmit(query: String?): Boolean {
return false return false
@ -53,18 +53,23 @@ class SearchableRecyclerView @JvmOverloads constructor(
adapter.notifyDataSetChanged() adapter.notifyDataSetChanged()
} }
fun setVisibilityRecycler(visibility: Int) {
recyclerView.visibility = visibility
if (visibility == View.VISIBLE) {
searchView.requestFocus()
}
}
fun setOnCloseListener(listener: () -> Boolean) { fun setOnCloseListener(listener: () -> Boolean) {
searchView.setOnCloseListener { listener() } searchView.setOnCloseListener { listener() }
} }
fun getSearchView(): SearchView { fun setVisibility() {
return searchView searchView.visibility = View.VISIBLE
recyclerView.visibility = View.VISIBLE
}
fun setSearchHint(searchHint: String): SearchableRecyclerView {
searchView.queryHint = searchHint
searchView.setIconifiedByDefault(true)
searchView.isIconified = false
searchView.post {
searchView.requestFocus()
}
return this
} }
} }

View File

@ -32,6 +32,7 @@ import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnAjustesItemClickListener import es.verdnatura.presentation.common.OnAjustesItemClickListener
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
import es.verdnatura.presentation.common.ToolBarAdapterTooltip import es.verdnatura.presentation.common.ToolBarAdapterTooltip
import es.verdnatura.presentation.view.commom.NameWithId
import es.verdnatura.presentation.view.commom.SearchableAdapter import es.verdnatura.presentation.view.commom.SearchableAdapter
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.feature.ajustes.adapter.SettingsAdapter import es.verdnatura.presentation.view.feature.ajustes.adapter.SettingsAdapter
@ -81,42 +82,46 @@ class AjustesFragment :
super.init() super.init()
} }
private fun setSearchable(name: MutableList<String>) { private fun setSearchable(listNames: MutableList<NameWithId>) {
val searchableRecyclerView = binding.searchableRecyclerView val adapter =
searchableRecyclerView.visibility = View.VISIBLE SearchableAdapter(
listElements = listNames,
val adapter = SearchableAdapter(names = name, context = requireContext()) { nombre -> context = requireContext()
sectorListVO.forEach { ) { elementSelected ->
if (it.description == nombre) { sectorListVO.forEach {
runBlocking { if (it.id == elementSelected.id) {
mobileApplication.dataStoreApp.editDataStoreKey( runBlocking {
PRINTERNAME, getString(R.string.noprinter)
)
mobileApplication.dataStoreApp.editDataStoreKey(PRINTERFK, -1)
mobileApplication.dataStoreApp.editDataStoreKey(
SECTORDESCRIP, it.description
)
mobileApplication.dataStoreApp.editDataStoreKey(
SECTORFK, it.id
)
it.warehouseFk?.let { it1 ->
mobileApplication.dataStoreApp.editDataStoreKey( mobileApplication.dataStoreApp.editDataStoreKey(
WAREHOUSEFK, it1 PRINTERNAME, getString(R.string.noprinter)
) )
mobileApplication.dataStoreApp.editDataStoreKey(PRINTERFK, -1)
mobileApplication.dataStoreApp.editDataStoreKey(
SECTORDESCRIP, it.description
)
mobileApplication.dataStoreApp.editDataStoreKey(
SECTORFK, it.id
)
it.warehouseFk?.let { it1 ->
mobileApplication.dataStoreApp.editDataStoreKey(
WAREHOUSEFK, it1
)
}
} }
viewModel.settingsItem[0].sectorFk = it.id
viewModel.settingsItem[0].selected = it.description
viewModel.workerUpdateOperatorSalix(
"sector", mobileApplication.userId!!, it.id, null
)
settingsAdapter!!.notifyItemChanged(0)
return@forEach
} }
viewModel.settingsItem[0].sectorFk = it.id
viewModel.settingsItem[0].selected = it.description
viewModel.workerUpdateOperatorSalix(
"sector", mobileApplication.userId!!, it.id, null
)
settingsAdapter!!.notifyItemChanged(0)
return@forEach
} }
binding.searchableRecyclerView.visibility = View.GONE
} }
searchableRecyclerView.visibility = View.GONE
} binding.searchableRecyclerView.setAdapter(adapter, listNames)
searchableRecyclerView.setAdapter(adapter, name) binding.searchableRecyclerView.visibility = View.VISIBLE
binding.searchableRecyclerView.setSearchHint(getString(R.string.sectorSearch))
} }
@ -266,13 +271,13 @@ class AjustesFragment :
} }
// modificar // modificar
listSectores.sort() listSectores.sort()
val array = arrayOfNulls<String>(listSectores.size)
sectorListVO = it.list sectorListVO = it.list
//Tarea 8176 setSearchable(sectorListVO.map {
//setSearchable(sectorListVO.map { it.description } as MutableList<String>) NameWithId(
showDialogForAll( id = it.id,
listSectores.toArray(array), getString(R.string.selectSector) name = it.description
) )
} as MutableList<NameWithId>)
} else { } else {
customDialog.setTitle(getString(R.string.sectors)) customDialog.setTitle(getString(R.string.sectors))

View File

@ -18,13 +18,13 @@ import es.verdnatura.presentation.common.OnInvetoryNichoClickListener
import es.verdnatura.presentation.common.OnOptionsSelectedListener import es.verdnatura.presentation.common.OnOptionsSelectedListener
import es.verdnatura.presentation.common.OnPasillerosItemClickListener import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.common.ToolBarAdapterTooltip import es.verdnatura.presentation.common.ToolBarAdapterTooltip
import es.verdnatura.presentation.view.commom.NameWithId
import es.verdnatura.presentation.view.commom.SearchableAdapter
import es.verdnatura.presentation.view.component.CustomDialogInput import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.component.CustomDialogTwoButtons import es.verdnatura.presentation.view.component.CustomDialogTwoButtons
import es.verdnatura.presentation.view.feature.calidad.model.BuyerVO
import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapter import es.verdnatura.presentation.view.feature.inventario.adapter.InventoryAdapter
import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO import es.verdnatura.presentation.view.feature.inventario.model.ItemInventaryVO
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@Suppress("UNUSED_ANONYMOUS_PARAMETER") @Suppress("UNUSED_ANONYMOUS_PARAMETER")
@ -39,10 +39,8 @@ class InventaryFragment :
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private var layoutManager: LinearLayoutManager? = null private var layoutManager: LinearLayoutManager? = null
private var firstVisiblePosition = 0 private var firstVisiblePosition = 0
private var secondVisiblePosition = 1
private lateinit var itemClicked: ItemInventaryVO private lateinit var itemClicked: ItemInventaryVO
private val items = ArrayList<SearchBuyerModel>() private var buyerId: Number = -1
private lateinit var buyerId: String
companion object { companion object {
fun newInstance() = InventaryFragment() fun newInstance() = InventaryFragment()
@ -59,39 +57,17 @@ class InventaryFragment :
viewModel.itemShelvingBuyerGet() viewModel.itemShelvingBuyerGet()
binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER)) binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER))
buyerId = mobileApplication.dataStoreApp.readDataStoreKey((BUYERID)) buyerId = mobileApplication.dataStoreApp.readDataStoreKey<Int>((BUYERID))
if (buyerId.isNotBlank()) { if (buyerId != -1) {
viewModel.getInventory( viewModel.getInventory(
buyerId.toInt(), mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK) buyerId, mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
) )
} }
binding.filterBuyer.setOnClickListener { binding.filterBuyer.setOnClickListener {
SimpleSearchDialogCompat( binding.searchableRecyclerView.visibility = View.VISIBLE
context, binding.searchableRecyclerView.setSearchHint(getString(R.string.BuyerSearch))
getString(R.string.compradores),
getString(R.string.escribirparteNombre),
null,
items
) { baseSearchDialogCompat, nombre, position ->
binding.filterBuyer.text = (nombre.title)
buyerId = nombre.getBuyerId()
lifecycleScope.launch {
mobileApplication.dataStoreApp.editDataStoreKey(
BUYER, nombre.getBuyerNickname()
)
mobileApplication.dataStoreApp.editDataStoreKey(
BUYERID, nombre.getBuyerId()
)
}
viewModel.getInventory(
nombre.getBuyerId().toInt(),
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
baseSearchDialogCompat.dismiss()
}.show()
} }
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialogTwoButtons(requireContext()) customDialog = CustomDialogTwoButtons(requireContext())
binding.mainToolbar.toolbarTitle.text = getString(R.string.itemShelvingRadar) binding.mainToolbar.toolbarTitle.text = getString(R.string.itemShelvingRadar)
@ -100,6 +76,36 @@ class InventaryFragment :
super.init() super.init()
} }
private fun setSearchable(listNames: MutableList<NameWithId>) {
val adapter =
SearchableAdapter(
listElements = listNames,
context = requireContext()
) { elementSelected ->
lifecycleScope.launch {
mobileApplication.dataStoreApp.editDataStoreKey(
BUYER, elementSelected.name
)
mobileApplication.dataStoreApp.editDataStoreKey(
BUYERID, elementSelected.id
)
}
viewModel.getInventory(
elementSelected.id,
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
binding.filterBuyer.text = (elementSelected.name)
buyerId = elementSelected.id
binding.searchableRecyclerView.visibility = View.GONE
}
binding.searchableRecyclerView.setAdapter(adapter, listNames)
}
private fun setToolBar() { private fun setToolBar() {
ma.hideBottomNavigation(View.GONE) ma.hideBottomNavigation(View.GONE)
val listIcons: ArrayList<ImageView> = ArrayList() val listIcons: ArrayList<ImageView> = ArrayList()
@ -114,9 +120,9 @@ class InventaryFragment :
if (item == iconReload.drawable) { if (item == iconReload.drawable) {
firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0 firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0
if (buyerId.isNotBlank()) { if (buyerId != -1) {
viewModel.getInventory( viewModel.getInventory(
buyerId.toInt(), buyerId,
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK) mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
) )
} else { } else {
@ -178,8 +184,13 @@ class InventaryFragment :
override fun observeViewModel() { override fun observeViewModel() {
with(viewModel) { with(viewModel) {
buyersList.observe(viewLifecycleOwner) { buyersList.observe(viewLifecycleOwner) { item ->
createBuyerList(it.list) setSearchable(item.list.map {
NameWithId(
it.userFk,
it.nickname
)
} as MutableList<NameWithId>)
} }
inventaryList.observe(viewLifecycleOwner) { it -> inventaryList.observe(viewLifecycleOwner) { it ->
@ -265,13 +276,6 @@ class InventaryFragment :
} }
private fun createBuyerList(list: List<BuyerVO>) {
items.clear()
if (list.isNotEmpty()) list.forEach { buyer ->
items.add(SearchBuyerModel(buyer.nickname, buyer.userFk))
}
}
} }

View File

@ -82,7 +82,7 @@ class InventaryViewModel(val context: Context) : BaseViewModel(context) {
val loadInventaryList: LiveData<Event<InventaryListVO>> = _inventaryList.map { Event(it) } val loadInventaryList: LiveData<Event<InventaryListVO>> = _inventaryList.map { Event(it) }
fun getInventory(buyerFk: Int, warehouseFk: Int) { fun getInventory(buyerFk: Number, warehouseFk: Int) {
salix.itemShelvingFilterBuyer(params = arrayListOf(buyerFk, warehouseFk)) salix.itemShelvingFilterBuyer(params = arrayListOf(buyerFk, warehouseFk))
.enqueue(object : SalixCallback<List<ItemInventaryVO>>(context) { .enqueue(object : SalixCallback<List<ItemInventaryVO>>(context) {
override fun onSuccess(response: Response<List<ItemInventaryVO>>) { override fun onSuccess(response: Response<List<ItemInventaryVO>>) {
@ -146,7 +146,7 @@ class InventaryViewModel(val context: Context) : BaseViewModel(context) {
}) })
} }
fun workerGetFromHasMistake(departmentFk: Int) { fun workerGetFromHasMistake(departmentFk: Number) {
salix.workerGetFromHasMistake(arrayListOf(departmentFk)) salix.workerGetFromHasMistake(arrayListOf(departmentFk))
.enqueue(object : SalixCallback<List<WorkerFromMistake>>(context) { .enqueue(object : SalixCallback<List<WorkerFromMistake>>(context) {
override fun onSuccess(response: Response<List<WorkerFromMistake>>) { override fun onSuccess(response: Response<List<WorkerFromMistake>>) {

View File

@ -4,7 +4,6 @@ import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R import es.verdnatura.R
import es.verdnatura.databinding.FragmentWorkermistakeBinding import es.verdnatura.databinding.FragmentWorkermistakeBinding
@ -15,23 +14,19 @@ import es.verdnatura.presentation.base.BaseFragment
import es.verdnatura.presentation.common.OnBarcodeRowClickListener import es.verdnatura.presentation.common.OnBarcodeRowClickListener
import es.verdnatura.presentation.common.OnMistakeWorkerClickListener import es.verdnatura.presentation.common.OnMistakeWorkerClickListener
import es.verdnatura.presentation.common.OnPasillerosItemClickListener import es.verdnatura.presentation.common.OnPasillerosItemClickListener
import es.verdnatura.presentation.view.commom.NameWithId
import es.verdnatura.presentation.view.commom.SearchableAdapter
import es.verdnatura.presentation.view.component.CustomDialog import es.verdnatura.presentation.view.component.CustomDialog
import es.verdnatura.presentation.view.component.CustomDialogInput import es.verdnatura.presentation.view.component.CustomDialogInput
import es.verdnatura.presentation.view.component.CustomDialogList import es.verdnatura.presentation.view.component.CustomDialogList
import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter
import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO import es.verdnatura.presentation.view.feature.articulo.model.BarcodeVO
import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel import es.verdnatura.presentation.view.feature.inventario.fragment.InventaryViewModel
import es.verdnatura.presentation.view.feature.inventario.fragment.SearchDepartmentModel
import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeAdapter import es.verdnatura.presentation.view.feature.workermistake.adapter.WorkermistakeAdapter
import es.verdnatura.presentation.view.feature.workermistake.model.DepartmentMistake
import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType import es.verdnatura.presentation.view.feature.workermistake.model.MistakeType
import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake import es.verdnatura.presentation.view.feature.workermistake.model.WorkerFromMistake
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class WorkermistakeFragment( class WorkermistakeFragment(
var entryPoint: String = "" var entryPoint: String = ""
@ -49,7 +44,6 @@ class WorkermistakeFragment(
private var listMistakes: ArrayList<BarcodeVO> = ArrayList() private var listMistakes: ArrayList<BarcodeVO> = ArrayList()
private var listMistakesAdapter: BarcodeAdapter? = null private var listMistakesAdapter: BarcodeAdapter? = null
private var workerMistakeName: WorkerFromMistake? = null private var workerMistakeName: WorkerFromMistake? = null
private val departments = ArrayList<SearchDepartmentModel>()
companion object { companion object {
fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint) fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint)
@ -83,32 +77,8 @@ class WorkermistakeFragment(
customDialogList = CustomDialogList(requireContext()) customDialogList = CustomDialogList(requireContext())
binding.filterDepartment.setOnClickListener { binding.filterDepartment.setOnClickListener {
SimpleSearchDialogCompat( binding.searchableRecyclerView.visibility = View.VISIBLE
context, binding.searchableRecyclerView.setSearchHint(getString(R.string.departamentSearch))
getString(R.string.departamentos),
getString(R.string.escribirparteNombre),
null,
departments
) { baseSearchDialogCompat, nombre, position ->
binding.filterDepartment.text = (nombre.title)
lifecycleScope.launch(Dispatchers.IO) {
mobileApplication.dataStoreApp.editDataStoreKey(
DEPARTMENTMISTAKE,
nombre.getDepartmentName()
)
mobileApplication.dataStoreApp.editDataStoreKey(
DEPARTMENTMISTAKEID,
nombre.getDepartmentId()
)
}
viewModel.workerGetFromHasMistake(
nombre.getDepartmentId()
)
binding.filterItemFk.isEnabled = true
baseSearchDialogCompat.dismiss()
}.show()
} }
customDialogInput = CustomDialogInput(requireContext()) customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext()) customDialog = CustomDialog(requireContext())
@ -122,6 +92,36 @@ class WorkermistakeFragment(
binding.mainToolbar.toolbarTitle.text = entryPoint binding.mainToolbar.toolbarTitle.text = entryPoint
} }
private fun setSearchable(listNames: MutableList<NameWithId>) {
val adapter =
SearchableAdapter(
listElements = listNames,
context = requireContext()
) { elementSelected ->
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
DEPARTMENTMISTAKE,
elementSelected.name
)
mobileApplication.dataStoreApp.editDataStoreKey(
DEPARTMENTMISTAKEID,
elementSelected.id
)
viewModel.workerGetFromHasMistake(
elementSelected.id
)
}
binding.filterDepartment.text = elementSelected.name
binding.searchableRecyclerView.visibility = View.GONE
}
binding.searchableRecyclerView.setAdapter(adapter, listNames)
}
private fun setEvents() { private fun setEvents() {
binding.mainToolbar.backButton.setOnClickListener { binding.mainToolbar.backButton.setOnClickListener {
ma.onMyBackPressed() ma.onMyBackPressed()
@ -151,7 +151,12 @@ class WorkermistakeFragment(
override fun observeViewModel() { override fun observeViewModel() {
with(viewModel) { with(viewModel) {
mistakeDepartmentList.observe(viewLifecycleOwner) { mistakeDepartmentList.observe(viewLifecycleOwner) {
createDepartmentList(it.list) setSearchable(it.list.map { item ->
NameWithId(
id = item.id,
name = item.name
)
} as MutableList<NameWithId>)
} }
workerFromMistakeList.observe(viewLifecycleOwner) { workerFromMistakeList.observe(viewLifecycleOwner) {
createWorkerList(it.list) createWorkerList(it.list)
@ -214,32 +219,20 @@ class WorkermistakeFragment(
} }
private fun createDepartmentList(list: List<DepartmentMistake>) {
departments.clear()
list.forEach { department ->
try {
departments.add(SearchDepartmentModel(department.name, department.id))
} catch (e: Exception) {
e.message!!.toast(requireContext())
}
}
}
private fun createWorkerList(list: List<WorkerFromMistake>) { private fun createWorkerList(list: List<WorkerFromMistake>) {
listWorker.clear() try {
listWorker.apply {
list.forEach { worker -> clear()
try { addAll(list)
listWorker.add(worker)
} catch (e: Exception) {
e.message!!.toast(requireContext())
} }
listWorkerAuxiliary.apply {
clear()
addAll(listWorker)
}
} catch (e: Exception) {
e.message?.toast(requireContext())
} }
listWorkerAuxiliary.clear()
listWorkerAuxiliary.addAll(listWorker)
} }
} }

View File

@ -13,8 +13,8 @@ data class ExpeditionMistakeSalix(
) )
data class DepartmentMistake( data class DepartmentMistake(
var id: Int? = null, var id: Int,
var name: String = "" var name: String
) )
data class WorkerFromMistake( data class WorkerFromMistake(

View File

@ -10,7 +10,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:queryHint="Buscar..." android:queryHint="Buscar..."
android:text="sdfsdf" android:text=""
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textColorHint="@android:color/darker_gray" /> android:textColorHint="@android:color/darker_gray" />

View File

@ -27,25 +27,15 @@
<!-- RecyclerView en la parte superior --> <!-- RecyclerView en la parte superior -->
<LinearLayout
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
android:id="@+id/searchableRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/scrollView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/divider"
app:layout_constraintVertical_bias="0" />
<!-- Contenedor de los demás datos debajo del RecyclerView -->
<ScrollView
android:id="@+id/scrollView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="@dimen/toolbar_height"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/divider"> app:layout_constraintTop_toTopOf="parent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/setttings_items" android:id="@+id/setttings_items"
@ -54,7 +44,21 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0" /> app:layout_constraintVertical_bias="0" />
</ScrollView>
<!-- Contenedor de los demás datos debajo del RecyclerView -->
</LinearLayout>
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
android:id="@+id/searchableRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintVertical_bias="0" />
<!-- Splash progress en el centro de la pantalla --> <!-- Splash progress en el centro de la pantalla -->
<LinearLayout <LinearLayout

View File

@ -57,8 +57,8 @@
android:textColor="@color/verdnatura_pumpkin_orange" android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="#78909C" android:textColorHint="#78909C"
android:visibility="visible" android:visibility="visible"
tools:ignore="TextContrastCheck" app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" /> tools:ignore="TextContrastCheck" />
</LinearLayout> </LinearLayout>
@ -111,9 +111,19 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipToPadding="false" android:clipToPadding="false"
tools:listitem="@layout/item_inventary_row" /> tools:listitem="@layout/item_inventary_row" />
</LinearLayout> </LinearLayout>
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
android:id="@+id/searchableRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintVertical_bias="0" />
<include <include
android:id="@+id/main_toolbar" android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment" layout="@layout/toolbar_fragment"

View File

@ -49,7 +49,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_weight="1" android:layout_weight="1"
android:backgroundTint="@android:color/white" android:backgroundTint="@android:color/white"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
android:focusable="false" android:focusable="false"
android:hint="@string/suppliers" android:hint="@string/suppliers"
android:lines="1" android:lines="1"
@ -57,7 +56,8 @@
android:textAlignment="center" android:textAlignment="center"
android:textColor="@color/verdnatura_pumpkin_orange" android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="@android:color/darker_gray" android:textColorHint="@android:color/darker_gray"
android:visibility="visible" /> android:visibility="visible"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
</LinearLayout> </LinearLayout>
@ -73,10 +73,9 @@
android:id="@+id/filter_entry" android:id="@+id/filter_entry"
style="@style/InputLineTextSearch" style="@style/InputLineTextSearch"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:layout_weight="1"
android:backgroundTint="@android:color/white" android:backgroundTint="@android:color/white"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
android:focusable="false" android:focusable="false"
android:hint="@string/entry" android:hint="@string/entry"
android:lines="1" android:lines="1"
@ -84,11 +83,34 @@
android:textAlignment="center" android:textAlignment="center"
android:textColor="@color/verdnatura_pumpkin_orange" android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="@android:color/darker_gray" android:textColorHint="@android:color/darker_gray"
android:visibility="invisible" /> android:visibility="invisible"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
android:id="@+id/searchableSuplierRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintVertical_bias="0" />
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
android:id="@+id/searchableEntriesRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintVertical_bias="0" />
<include <include
android:id="@+id/main_toolbar" android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment" layout="@layout/toolbar_fragment"
@ -96,5 +118,5 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</layout> </layout>

View File

@ -101,6 +101,7 @@
</LinearLayout> </LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/workermistake_recyclerview" android:id="@+id/workermistake_recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -110,6 +111,17 @@
</LinearLayout> </LinearLayout>
<es.verdnatura.presentation.view.commom.SearchableRecyclerView
android:id="@+id/searchableRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/main_toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintVertical_bias="0" />
<include <include
android:id="@+id/main_toolbar" android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment" layout="@layout/toolbar_fragment"

View File

@ -904,6 +904,11 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string> <string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</string> <string name="ticketPickup">Ticket de recogida</string>
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string> <string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
<string name="departamentSearch">Escribe departamento</string>
<string name="BuyerSearch">Escribe comprador</string>
<string name="sectorSearch">Escribe sector</string>
<string name="supplierSearch">Escribe proveedor</string>
<string name="entrySearch">Escribe entrada</string>
</resources> </resources>

View File

@ -904,5 +904,10 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string> <string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</string> <string name="ticketPickup">Ticket de recogida</string>
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string> <string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
<string name="departamentSearch">Escribe departamento</string>
<string name="BuyerSearch">Escribe comprador</string>
<string name="sectorSearch">Escribe sector</string>
<string name="supplierSearch">Escribe proveedor</string>
<string name="entrySearch">Escribe entrada</string>
</resources> </resources>

View File

@ -904,5 +904,10 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string> <string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</string> <string name="ticketPickup">Ticket de recogida</string>
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string> <string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
<string name="departamentSearch">Escribe departamento</string>
<string name="BuyerSearch">Escribe comprador</string>
<string name="sectorSearch">Escribe sector</string>
<string name="supplierSearch">Escribe proveedor</string>
<string name="entrySearch">Escribe entrada</string>
</resources> </resources>

View File

@ -907,5 +907,10 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string> <string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</string> <string name="ticketPickup">Ticket de recogida</string>
<string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string> <string name="ticketPickupDescr">El ticket %1$s van a pasar a recogerlo</string>
<string name="departamentSearch">Escribe departamento</string>
<string name="BuyerSearch">Escribe comprador</string>
<string name="sectorSearch">Escribe sector</string>
<string name="supplierSearch">Escribe proveedor</string>
<string name="entrySearch">Escribe entrada</string>
</resources> </resources>