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
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) {
val spannableString = SpannableString(nameWithId.name)
@ -41,7 +41,7 @@ class SearchableAdapter(
)
}
}
nombreTextView.text = spannableString
nameText.text = spannableString
itemView.setOnClickListener {
onItemClick(nameWithId)
}

View File

@ -17,7 +17,7 @@ class SearchableRecyclerView @JvmOverloads constructor(
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {
private val searchView: SearchView
val searchView: SearchView
private val recyclerView: RecyclerView
lateinit var adapter: SearchableAdapter
private var allItems: MutableList<NameWithId> = mutableListOf()
@ -33,7 +33,7 @@ class SearchableRecyclerView @JvmOverloads constructor(
visibility = View.GONE
true
}
visibility = View.GONE
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String?): Boolean {
return false
@ -53,18 +53,23 @@ class SearchableRecyclerView @JvmOverloads constructor(
adapter.notifyDataSetChanged()
}
fun setVisibilityRecycler(visibility: Int) {
recyclerView.visibility = visibility
if (visibility == View.VISIBLE) {
searchView.requestFocus()
}
}
fun setOnCloseListener(listener: () -> Boolean) {
searchView.setOnCloseListener { listener() }
}
fun getSearchView(): SearchView {
return searchView
fun setVisibility() {
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.OnOptionsSelectedListener
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.CustomDialog
import es.verdnatura.presentation.view.feature.ajustes.adapter.SettingsAdapter
@ -81,42 +82,46 @@ class AjustesFragment :
super.init()
}
private fun setSearchable(name: MutableList<String>) {
val searchableRecyclerView = binding.searchableRecyclerView
searchableRecyclerView.visibility = View.VISIBLE
val adapter = SearchableAdapter(names = name, context = requireContext()) { nombre ->
sectorListVO.forEach {
if (it.description == nombre) {
runBlocking {
mobileApplication.dataStoreApp.editDataStoreKey(
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 ->
private fun setSearchable(listNames: MutableList<NameWithId>) {
val adapter =
SearchableAdapter(
listElements = listNames,
context = requireContext()
) { elementSelected ->
sectorListVO.forEach {
if (it.id == elementSelected.id) {
runBlocking {
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
}
searchableRecyclerView.setAdapter(adapter, name)
binding.searchableRecyclerView.setAdapter(adapter, listNames)
binding.searchableRecyclerView.visibility = View.VISIBLE
binding.searchableRecyclerView.setSearchHint(getString(R.string.sectorSearch))
}
@ -266,13 +271,13 @@ class AjustesFragment :
}
// modificar
listSectores.sort()
val array = arrayOfNulls<String>(listSectores.size)
sectorListVO = it.list
//Tarea 8176
//setSearchable(sectorListVO.map { it.description } as MutableList<String>)
showDialogForAll(
listSectores.toArray(array), getString(R.string.selectSector)
)
setSearchable(sectorListVO.map {
NameWithId(
id = it.id,
name = it.description
)
} as MutableList<NameWithId>)
} else {
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.OnPasillerosItemClickListener
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.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.model.ItemInventaryVO
import es.verdnatura.presentation.view.feature.pasillero.model.PasillerosItemVO
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import kotlinx.coroutines.launch
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
@ -39,10 +39,8 @@ class InventaryFragment :
private var pasillerosItemClickListener: OnPasillerosItemClickListener? = null
private var layoutManager: LinearLayoutManager? = null
private var firstVisiblePosition = 0
private var secondVisiblePosition = 1
private lateinit var itemClicked: ItemInventaryVO
private val items = ArrayList<SearchBuyerModel>()
private lateinit var buyerId: String
private var buyerId: Number = -1
companion object {
fun newInstance() = InventaryFragment()
@ -59,39 +57,17 @@ class InventaryFragment :
viewModel.itemShelvingBuyerGet()
binding.filterBuyer.text = mobileApplication.dataStoreApp.readDataStoreKey<String>((BUYER))
buyerId = mobileApplication.dataStoreApp.readDataStoreKey((BUYERID))
if (buyerId.isNotBlank()) {
buyerId = mobileApplication.dataStoreApp.readDataStoreKey<Int>((BUYERID))
if (buyerId != -1) {
viewModel.getInventory(
buyerId.toInt(), mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
buyerId, mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
}
binding.filterBuyer.setOnClickListener {
SimpleSearchDialogCompat(
context,
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()
binding.searchableRecyclerView.visibility = View.VISIBLE
binding.searchableRecyclerView.setSearchHint(getString(R.string.BuyerSearch))
}
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialogTwoButtons(requireContext())
binding.mainToolbar.toolbarTitle.text = getString(R.string.itemShelvingRadar)
@ -100,6 +76,36 @@ class InventaryFragment :
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() {
ma.hideBottomNavigation(View.GONE)
val listIcons: ArrayList<ImageView> = ArrayList()
@ -114,9 +120,9 @@ class InventaryFragment :
if (item == iconReload.drawable) {
firstVisiblePosition = layoutManager?.findFirstVisibleItemPosition() ?: 0
if (buyerId.isNotBlank()) {
if (buyerId != -1) {
viewModel.getInventory(
buyerId.toInt(),
buyerId,
mobileApplication.dataStoreApp.readDataStoreKey(WAREHOUSEFK)
)
} else {
@ -178,8 +184,13 @@ class InventaryFragment :
override fun observeViewModel() {
with(viewModel) {
buyersList.observe(viewLifecycleOwner) {
createBuyerList(it.list)
buyersList.observe(viewLifecycleOwner) { item ->
setSearchable(item.list.map {
NameWithId(
it.userFk,
it.nickname
)
} as MutableList<NameWithId>)
}
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) }
fun getInventory(buyerFk: Int, warehouseFk: Int) {
fun getInventory(buyerFk: Number, warehouseFk: Int) {
salix.itemShelvingFilterBuyer(params = arrayListOf(buyerFk, warehouseFk))
.enqueue(object : SalixCallback<List<ItemInventaryVO>>(context) {
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))
.enqueue(object : SalixCallback<List<WorkerFromMistake>>(context) {
override fun onSuccess(response: Response<List<WorkerFromMistake>>) {

View File

@ -4,7 +4,6 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import es.verdnatura.R
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.OnMistakeWorkerClickListener
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.CustomDialogInput
import es.verdnatura.presentation.view.component.CustomDialogList
import es.verdnatura.presentation.view.feature.articulo.adapter.BarcodeAdapter
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.SearchDepartmentModel
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.WorkerFromMistake
import ir.mirrajabi.searchdialog.SimpleSearchDialogCompat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
class WorkermistakeFragment(
var entryPoint: String = ""
@ -49,7 +44,6 @@ class WorkermistakeFragment(
private var listMistakes: ArrayList<BarcodeVO> = ArrayList()
private var listMistakesAdapter: BarcodeAdapter? = null
private var workerMistakeName: WorkerFromMistake? = null
private val departments = ArrayList<SearchDepartmentModel>()
companion object {
fun newInstance(entryPoint: String) = WorkermistakeFragment(entryPoint)
@ -83,32 +77,8 @@ class WorkermistakeFragment(
customDialogList = CustomDialogList(requireContext())
binding.filterDepartment.setOnClickListener {
SimpleSearchDialogCompat(
context,
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()
binding.searchableRecyclerView.visibility = View.VISIBLE
binding.searchableRecyclerView.setSearchHint(getString(R.string.departamentSearch))
}
customDialogInput = CustomDialogInput(requireContext())
customDialog = CustomDialog(requireContext())
@ -122,6 +92,36 @@ class WorkermistakeFragment(
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() {
binding.mainToolbar.backButton.setOnClickListener {
ma.onMyBackPressed()
@ -151,7 +151,12 @@ class WorkermistakeFragment(
override fun observeViewModel() {
with(viewModel) {
mistakeDepartmentList.observe(viewLifecycleOwner) {
createDepartmentList(it.list)
setSearchable(it.list.map { item ->
NameWithId(
id = item.id,
name = item.name
)
} as MutableList<NameWithId>)
}
workerFromMistakeList.observe(viewLifecycleOwner) {
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>) {
listWorker.clear()
list.forEach { worker ->
try {
listWorker.add(worker)
} catch (e: Exception) {
e.message!!.toast(requireContext())
try {
listWorker.apply {
clear()
addAll(list)
}
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(
var id: Int? = null,
var name: String = ""
var id: Int,
var name: String
)
data class WorkerFromMistake(

View File

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

View File

@ -27,25 +27,15 @@
<!-- RecyclerView en la parte superior -->
<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"
<LinearLayout
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_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/divider">
app:layout_constraintTop_toTopOf="parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/setttings_items"
@ -54,7 +44,21 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
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 -->
<LinearLayout

View File

@ -57,8 +57,8 @@
android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="#78909C"
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>
@ -111,9 +111,19 @@
android:layout_height="wrap_content"
android:clipToPadding="false"
tools:listitem="@layout/item_inventary_row" />
</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
android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment"

View File

@ -49,7 +49,6 @@
android:layout_width="match_parent"
android:layout_weight="1"
android:backgroundTint="@android:color/white"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
android:focusable="false"
android:hint="@string/suppliers"
android:lines="1"
@ -57,7 +56,8 @@
android:textAlignment="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="@android:color/darker_gray"
android:visibility="visible" />
android:visibility="visible"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
</LinearLayout>
@ -73,10 +73,9 @@
android:id="@+id/filter_entry"
style="@style/InputLineTextSearch"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_marginTop="24dp"
android:layout_weight="1"
android:backgroundTint="@android:color/white"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp"
android:focusable="false"
android:hint="@string/entry"
android:lines="1"
@ -84,11 +83,34 @@
android:textAlignment="center"
android:textColor="@color/verdnatura_pumpkin_orange"
android:textColorHint="@android:color/darker_gray"
android:visibility="invisible" />
android:visibility="invisible"
app:drawableEndCompat="@drawable/ic_arrow_drop_down_black_24dp" />
</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
android:id="@+id/main_toolbar"
layout="@layout/toolbar_fragment"
@ -96,5 +118,5 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@ -101,6 +101,7 @@
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/workermistake_recyclerview"
android:layout_width="match_parent"
@ -110,6 +111,17 @@
</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
android:id="@+id/main_toolbar"
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="ticketPickup">Ticket de recogida</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>

View File

@ -904,5 +904,10 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</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>

View File

@ -904,5 +904,10 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</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>

View File

@ -907,5 +907,10 @@
<string name="scanExpeditionForMove">Escanea la/s caja/s que cambia/n de ruta</string>
<string name="ticketPickup">Ticket de recogida</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>