Refactor dialog choose art form list Arts
This commit is contained in:
parent
58521997c1
commit
13b3d5e63b
@ -132,6 +132,8 @@ import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLUComponen
|
|||||||
import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLUModule;
|
import it.integry.integrywmsnative.view.dialogs.basket_lu.DialogBasketLUModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageModule;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListComponent;
|
||||||
@ -248,7 +250,8 @@ import it.integry.integrywmsnative.view.dialogs.update_available.DialogUpdateAva
|
|||||||
DialogAskLivelloPosizioneModule.class,
|
DialogAskLivelloPosizioneModule.class,
|
||||||
VerificaGiacenzeModule.class,
|
VerificaGiacenzeModule.class,
|
||||||
DialogExtraInfoModule.class,
|
DialogExtraInfoModule.class,
|
||||||
DialogAskDepositoModule.class
|
DialogAskDepositoModule.class,
|
||||||
|
DialogChooseArtFromListaArtsModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@ -417,6 +420,8 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DialogAskDepositoComponent.Factory dialogAskDepositoComponent();
|
DialogAskDepositoComponent.Factory dialogAskDepositoComponent();
|
||||||
|
|
||||||
|
DialogChooseArtFromListaArtsComponent.Factory dialogChooseArtFromListaArtsComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@ -329,8 +329,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onArtListLoaded(ArrayList<MtbAart> artList, RunnableArgs<MtbAart> onArtChoosed) {
|
public void onArtListLoaded(ArrayList<MtbAart> artList, RunnableArgs<MtbAart> onArtChoosed) {
|
||||||
new DialogChooseArtFromListaArtsView(true, artList, onArtChoosed)
|
DialogChooseArtFromListaArtsView.newInstance(true, artList, onArtChoosed)
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), "dialog-choose-art");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -1173,8 +1173,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete) {
|
public void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete) {
|
||||||
new DialogChooseArtFromListaArtsView(true, artsList, onComplete)
|
DialogChooseArtFromListaArtsView.newInstance(true, artsList, onComplete)
|
||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "dialog-choose-art");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -367,8 +367,23 @@ public class SpedizioneViewModel {
|
|||||||
if (this.mListener != null) mListener.onCreateDocsRequest();
|
if (this.mListener != null) mListener.onCreateDocsRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendChooseArtRequest(List<MtbAart> mtbAarts, RunnableArgs<MtbAart> onComplete) {
|
private MtbAart sendChooseArtRequest(List<MtbAart> mtbAarts) {
|
||||||
if (this.mListener != null) mListener.onChooseArtRequest(mtbAarts, onComplete);
|
final CountDownLatch latch = new CountDownLatch(1);
|
||||||
|
AtomicReference<MtbAart> result = new AtomicReference<>();
|
||||||
|
|
||||||
|
mListener.onChooseArtRequest(mtbAarts, data -> {
|
||||||
|
result.set(data);
|
||||||
|
latch.countDown();
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
latch.await(); // Attende che il dialog venga chiuso
|
||||||
|
return result.get();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
this.sendError(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<MtbAart> sendChooseArtsRequest(List<MtbAart> mtbAarts) {
|
private List<MtbAart> sendChooseArtsRequest(List<MtbAart> mtbAarts) {
|
||||||
@ -755,13 +770,9 @@ public class SpedizioneViewModel {
|
|||||||
if (mtbAartList.size() == 1) {
|
if (mtbAartList.size() == 1) {
|
||||||
this.searchArtFromAnag(mtbAartList.get(0), pickData);
|
this.searchArtFromAnag(mtbAartList.get(0), pickData);
|
||||||
} else {
|
} else {
|
||||||
this.sendChooseArtRequest(mtbAartList, art -> {
|
var art = this.sendChooseArtRequest(mtbAartList);
|
||||||
try {
|
if (art == null) return;
|
||||||
this.searchArtFromAnag(art, pickData);
|
this.searchArtFromAnag(art, pickData);
|
||||||
} catch (Exception e) {
|
|
||||||
this.sendError(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new NoResultFromBarcodeException(barcodeProd);
|
throw new NoResultFromBarcodeException(barcodeProd);
|
||||||
|
|||||||
@ -1,77 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
|
||||||
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtItemModelBinding;
|
|
||||||
|
|
||||||
public class DialogChooseArtFromListaArtsAdapter extends RecyclerView.Adapter<DialogChooseArtFromListaArtsAdapter.ViewHolder> {
|
|
||||||
|
|
||||||
protected Context mContext;
|
|
||||||
|
|
||||||
private List<MtbAart> mDataset;
|
|
||||||
private final IRecyclerItemClicked<MtbAart> mOnItemClickListener;
|
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
protected DialogChooseArtFromListaArtItemModelBinding mViewDataBinding;
|
|
||||||
|
|
||||||
|
|
||||||
public ViewHolder(DialogChooseArtFromListaArtItemModelBinding v) {
|
|
||||||
super(v.getRoot());
|
|
||||||
mViewDataBinding = v;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void bind(MtbAart mtbAart) {
|
|
||||||
mViewDataBinding.setItem(mtbAart);
|
|
||||||
mViewDataBinding.executePendingBindings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public DialogChooseArtFromListaArtsAdapter(Context context, List<MtbAart> myDataset, IRecyclerItemClicked<MtbAart> onItemClickListener) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = myDataset;
|
|
||||||
mOnItemClickListener = onItemClickListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DialogChooseArtFromListaArtsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
// create a new view
|
|
||||||
DialogChooseArtFromListaArtItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.dialog_choose_art_from_lista_art__item_model, parent, false);
|
|
||||||
|
|
||||||
return new ViewHolder(viewDataBinding);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindViewHolder(DialogChooseArtFromListaArtsAdapter.ViewHolder holder, int position) {
|
|
||||||
MtbAart item = mDataset.get(position);
|
|
||||||
holder.bind(item);
|
|
||||||
|
|
||||||
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
|
|
||||||
if(mOnItemClickListener != null) {
|
|
||||||
mOnItemClickListener.onItemClick(item, position);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewRecycled(DialogChooseArtFromListaArtsAdapter.ViewHolder holder) {
|
|
||||||
super.onViewRecycled(holder);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemCount() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogChooseArtFromListaArtsComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogChooseArtFromListaArtsComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogChooseArtFromListaArtsView dialogChooseArtFromListaArtsView);
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogChooseArtFromListaArtsComponent.class)
|
||||||
|
public class DialogChooseArtFromListaArtsModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogChooseArtFromListaArtsViewModel providesDialogChooseArtFromListaArtsViewModel() {
|
||||||
|
return new DialogChooseArtFromListaArtsViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,6 +1,8 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
@ -10,76 +12,116 @@ import androidx.core.content.ContextCompat;
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
|
import com.ravikoradiya.liveadapter.Type;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtBinding;
|
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtItemModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogChooseArtFromListaArtsBinding;
|
||||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||||
|
import kotlin.Unit;
|
||||||
|
|
||||||
public class DialogChooseArtFromListaArtsView extends BaseDialogFragment {
|
public class DialogChooseArtFromListaArtsView extends BaseDialogFragment {
|
||||||
|
@Inject
|
||||||
|
DialogChooseArtFromListaArtsViewModel mViewModel;
|
||||||
|
|
||||||
|
private DialogChooseArtFromListaArtsBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
private final RunnableArgs<MtbAart> onComplete;
|
||||||
private final boolean mEnableSelection;
|
private final boolean mEnableSelection;
|
||||||
private final List<MtbAart> mListaArts;
|
private final List<MtbAart> mListaArts;
|
||||||
private final RunnableArgs<MtbAart> mOnItemChoosed;
|
|
||||||
|
|
||||||
|
//Pass here all external parameters
|
||||||
|
public static DialogChooseArtFromListaArtsView newInstance(boolean enableSelection, List<MtbAart> listaArts, RunnableArgs<MtbAart> onComplete) {
|
||||||
|
return new DialogChooseArtFromListaArtsView(enableSelection, listaArts, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
public DialogChooseArtFromListaArtsView(boolean enableSelection, List<MtbAart> listaArts, RunnableArgs<MtbAart> onItemChoosed) {
|
private DialogChooseArtFromListaArtsView(boolean enableSelection, List<MtbAart> listaArts, RunnableArgs<MtbAart> onComplete) {
|
||||||
super();
|
super();
|
||||||
|
this.onComplete = onComplete;
|
||||||
this.mEnableSelection = enableSelection;
|
this.mEnableSelection = enableSelection;
|
||||||
this.mListaArts = listaArts;
|
this.mListaArts = listaArts;
|
||||||
this.mOnItemChoosed = onItemChoosed;
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogChooseArtFromListaArtsComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
var binding = DialogChooseArtFromListaArtBinding.inflate(LayoutInflater.from(requireContext()));
|
this.mContext = requireContext();
|
||||||
|
|
||||||
binding.titleText.setText(this.mEnableSelection ? R.string.dialog_choose_art_from_lista_art :
|
mBindings = DialogChooseArtFromListaArtsBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
mBindings.titleText.setText(this.mEnableSelection ? R.string.dialog_choose_art_from_lista_art :
|
||||||
R.string.articoli_disponibili);
|
R.string.articoli_disponibili);
|
||||||
|
|
||||||
initRecyclerView(binding, mListaArts);
|
initRecyclerView(mBindings, mListaArts);
|
||||||
|
|
||||||
setCancelable(false);
|
setCancelable(true);
|
||||||
|
|
||||||
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
.setView(binding.getRoot())
|
.setView(mBindings.getRoot())
|
||||||
.setCancelable(isCancelable())
|
.setCancelable(isCancelable())
|
||||||
.create();
|
.create();
|
||||||
|
|
||||||
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
alertDialog.setOnShowListener(this);
|
alertDialog.setOnShowListener(this);
|
||||||
|
alertDialog.setOnDismissListener(this);
|
||||||
return alertDialog;
|
return alertDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initRecyclerView(DialogChooseArtFromListaArtBinding binding, List<MtbAart> dataset) {
|
@Override
|
||||||
|
public void dismiss() {
|
||||||
|
dismiss(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dismiss(MtbAart item) {
|
||||||
|
if (getDialog() != null) getDialog().dismiss();
|
||||||
|
onComplete.run(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView(DialogChooseArtFromListaArtsBinding binding, List<MtbAart> dataset) {
|
||||||
binding.itemsList.setNestedScrollingEnabled(false);
|
binding.itemsList.setNestedScrollingEnabled(false);
|
||||||
binding.itemsList.setHasFixedSize(true);
|
binding.itemsList.setHasFixedSize(true);
|
||||||
binding.itemsList.setLayoutManager(new LinearLayoutManager(requireContext()));
|
binding.itemsList.setLayoutManager(new LinearLayoutManager(requireContext()));
|
||||||
|
|
||||||
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL);
|
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireContext(), SimpleDividerItemDecoration.VERTICAL);
|
||||||
itemDecorator.setDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.divider));
|
itemDecorator.setDrawable(Objects.requireNonNull(ContextCompat.getDrawable(requireContext(), R.drawable.divider)));
|
||||||
binding.itemsList.addItemDecoration(itemDecorator);
|
binding.itemsList.addItemDecoration(itemDecorator);
|
||||||
|
|
||||||
IRecyclerItemClicked<MtbAart> onItemClickListener = (item, position) -> {
|
var itemType = new Type<MtbAart, DialogChooseArtFromListaArtItemModelBinding>(R.layout.dialog_choose_art_from_lista_art__item_model, BR.item);
|
||||||
if (mOnItemChoosed != null) {
|
|
||||||
mOnItemChoosed.run(item);
|
itemType.onClick(x -> {
|
||||||
|
dismiss(x.getBinding().getItem());
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
new LiveAdapter(dataset, BR.item)
|
||||||
|
.map(MtbAart.class, itemType)
|
||||||
|
.onNoData(noData -> {
|
||||||
|
// mBindings.emptyView.setVisibility(noData ? View.VISIBLE : View.GONE);
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
})
|
||||||
|
.into(this.mBindings.itemsList);
|
||||||
}
|
}
|
||||||
|
|
||||||
dismiss();
|
|
||||||
};
|
|
||||||
|
|
||||||
DialogChooseArtFromListaArtsAdapter mCurrentAdapter = new DialogChooseArtFromListaArtsAdapter(
|
|
||||||
requireContext(), dataset, this.mEnableSelection ? onItemClickListener : null);
|
|
||||||
binding.itemsList.setAdapter(mCurrentAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts;
|
||||||
|
|
||||||
|
public class DialogChooseArtFromListaArtsViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
|
||||||
|
android:layout_width="36dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:src="@drawable/ic_error_white_24dp"
|
||||||
|
app:tint="?colorPrimary" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:text="@string/dialog_choose_art_from_lista_art" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.SearchView
|
||||||
|
android:id="@+id/search_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:backgroundTint="@android:color/white"
|
||||||
|
android:hint="@string/search"
|
||||||
|
app:iconifiedByDefault="false"/>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/items_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:nestedScrollingEnabled="false"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:listitem="@layout/dialog_choose_art_from_lista_art__item_model"
|
||||||
|
tools:itemCount="5"/>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
Loading…
x
Reference in New Issue
Block a user