Refactoring activity lista bancali
This commit is contained in:
parent
8d87970a75
commit
627d3646a6
@ -11,6 +11,8 @@ import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePicking
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleComponent;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleModule;
|
||||||
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliModule;
|
||||||
import it.integry.integrywmsnative.gest.main.MainActivityComponent;
|
import it.integry.integrywmsnative.gest.main.MainActivityComponent;
|
||||||
import it.integry.integrywmsnative.gest.main.MainActivityModule;
|
import it.integry.integrywmsnative.gest.main.MainActivityModule;
|
||||||
import it.integry.integrywmsnative.gest.main.MainFragmentComponent;
|
import it.integry.integrywmsnative.gest.main.MainFragmentComponent;
|
||||||
@ -63,6 +65,7 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
MainActivityModule.class,
|
MainActivityModule.class,
|
||||||
MainFragmentModule.class,
|
MainFragmentModule.class,
|
||||||
MainAccettazioneModule.class,
|
MainAccettazioneModule.class,
|
||||||
|
ListaBancaliModule.class,
|
||||||
ContenutoBancaleModule.class,
|
ContenutoBancaleModule.class,
|
||||||
PVOrdineAcquistoGrigliaModule.class,
|
PVOrdineAcquistoGrigliaModule.class,
|
||||||
PVOrdineAcquistoEditModule.class,
|
PVOrdineAcquistoEditModule.class,
|
||||||
@ -90,6 +93,7 @@ public interface MainApplicationComponent {
|
|||||||
MainActivityComponent.Factory mainActivityComponent();
|
MainActivityComponent.Factory mainActivityComponent();
|
||||||
MainFragmentComponent.Factory mainFragmentComponent();
|
MainFragmentComponent.Factory mainFragmentComponent();
|
||||||
MainAccettazioneComponent.Factory mainAccettazioneComponent();
|
MainAccettazioneComponent.Factory mainAccettazioneComponent();
|
||||||
|
ListaBancaliComponent.Factory listaBancaliComponent();
|
||||||
ContenutoBancaleComponent.Factory contenutoBancaleComponent();
|
ContenutoBancaleComponent.Factory contenutoBancaleComponent();
|
||||||
PVOrdineAcquistoGrigliaComponent.Factory pvOrdineAcquistoGrigliaComponent();
|
PVOrdineAcquistoGrigliaComponent.Factory pvOrdineAcquistoGrigliaComponent();
|
||||||
PVOrdineAcquistoEditComponent.Factory pvOrdineAcquistoEditComponent();
|
PVOrdineAcquistoEditComponent.Factory pvOrdineAcquistoEditComponent();
|
||||||
|
|||||||
@ -4,10 +4,16 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
@ -16,9 +22,10 @@ import it.integry.integrywmsnative.core.model.MtbColt;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
||||||
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
|
import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivity;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.viewmodel.ListaBancaliViewModel;
|
import it.integry.integrywmsnative.gest.lista_bancali.ui.ListaColliMainListAdapter;
|
||||||
|
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||||
|
|
||||||
public class ListaBancaliActivity extends BaseActivity {
|
public class ListaBancaliActivity extends BaseActivity implements ListaBancaliViewModel.Listener{
|
||||||
|
|
||||||
private static class Key {
|
private static class Key {
|
||||||
private static final String MtbColtsKey = "mtbColtsKey";
|
private static final String MtbColtsKey = "mtbColtsKey";
|
||||||
@ -28,9 +35,12 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
private static final String FlagOnlyResiduo = "flagOnlyResiduo";
|
private static final String FlagOnlyResiduo = "flagOnlyResiduo";
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActivityListaBancaliBinding bindings;
|
public ActivityListaBancaliBinding mBindings;
|
||||||
|
|
||||||
private ListaBancaliViewModel mViewModel;
|
@Inject
|
||||||
|
ListaBancaliViewModel mViewModel;
|
||||||
|
|
||||||
|
private final ObservableArrayList<MtbColt> mtbColts = new ObservableArrayList<>();
|
||||||
|
|
||||||
private RunnableArgsWithReturn<MtbColt, Boolean> mCanRecoverUl;
|
private RunnableArgsWithReturn<MtbColt, Boolean> mCanRecoverUl;
|
||||||
private PrinterRESTConsumer.Type mPrinterType;
|
private PrinterRESTConsumer.Type mPrinterType;
|
||||||
@ -78,7 +88,12 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
bindings = DataBindingUtil.setContentView(this, R.layout.activity_lista_bancali);
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_lista_bancali);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.listaBancaliComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
|
||||||
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL));
|
||||||
@ -86,16 +101,36 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
|
mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName));
|
||||||
mFlagOnlyResiduo = DataCache.retrieveItem(getIntent().getStringExtra(Key.FlagOnlyResiduo));
|
mFlagOnlyResiduo = DataCache.retrieveItem(getIntent().getStringExtra(Key.FlagOnlyResiduo));
|
||||||
|
|
||||||
List<MtbColt> mtbColts = DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtsKey));
|
mtbColts.addAll(DataCache.retrieveItem(getIntent().getStringExtra(Key.MtbColtsKey)));
|
||||||
mViewModel = new ListaBancaliViewModel(this, mtbColts, mFlagOnlyResiduo);
|
|
||||||
|
|
||||||
|
this.initRecyclerView();
|
||||||
|
|
||||||
setSupportActionBar(this.bindings.toolbar);
|
setSupportActionBar(this.mBindings.toolbar);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void initRecyclerView() {
|
||||||
|
mBindings.listaColliMainList.setHasFixedSize(true);
|
||||||
|
mBindings.listaColliMainList.setLayoutManager(new LinearLayoutManager(this));
|
||||||
|
|
||||||
|
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(this, SimpleDividerItemDecoration.VERTICAL);
|
||||||
|
itemDecorator.setDrawable(ContextCompat.getDrawable(this, R.drawable.divider));
|
||||||
|
mBindings.listaColliMainList.addItemDecoration(itemDecorator);
|
||||||
|
|
||||||
|
|
||||||
|
ListaColliMainListAdapter adapter = new ListaColliMainListAdapter(mtbColts)
|
||||||
|
.setOnItemClickListener(mtbColtSelected -> {
|
||||||
|
this.mViewModel.dispatchMtbColt(mtbColtSelected, mFlagOnlyResiduo, this::startContenutoBancaleActivity);
|
||||||
|
});
|
||||||
|
|
||||||
|
adapter.setEmptyView(mBindings.listaBancaliEmptyView);
|
||||||
|
mBindings.listaColliMainList.setAdapter(adapter);
|
||||||
|
|
||||||
|
mBindings.elevatedToolbar.setRecyclerView(mBindings.listaColliMainList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onSupportNavigateUp() {
|
public boolean onSupportNavigateUp() {
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.lista_bancali;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ListaBancaliComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
ListaBancaliComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(ListaBancaliActivity listaBancaliActivity);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.lista_bancali;
|
||||||
|
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = ListaBancaliComponent.class)
|
||||||
|
public class ListaBancaliModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
ListaBancaliViewModel providesListaBancaliViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) {
|
||||||
|
return new ListaBancaliViewModel(colliMagazzinoRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.lista_bancali;
|
||||||
|
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
|
||||||
|
public class ListaBancaliViewModel {
|
||||||
|
|
||||||
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
|
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ListaBancaliViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) {
|
||||||
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void dispatchMtbColt(MtbColt mtbColtToDispatch, boolean onlyResiduo, RunnableArgs<MtbColt> onComplete) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
new Thread(() -> {
|
||||||
|
mColliMagazzinoRESTConsumer.getByTestata(mtbColtToDispatch, onlyResiduo, false, mtbColt -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
ObservableArrayList<MtbColr> mtbColrObservableArrayList = new ObservableArrayList<>();
|
||||||
|
if(mtbColt != null && mtbColt.getMtbColr() != null) mtbColrObservableArrayList.addAll(mtbColt.getMtbColr());
|
||||||
|
mtbColtToDispatch.setMtbColr(mtbColrObservableArrayList);
|
||||||
|
|
||||||
|
onComplete.run(mtbColtToDispatch);
|
||||||
|
}, this::sendError);
|
||||||
|
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListaBancaliViewModel setListener(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILoadingListener {
|
||||||
|
|
||||||
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,76 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.lista_bancali.ui;
|
||||||
|
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.view.ExtendedRecyclerView;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.databinding.ListaBancaliListModelBinding;
|
||||||
|
|
||||||
|
public class ListaColliMainListAdapter extends ExtendedRecyclerView<MtbColt, ListaColliMainListAdapter.ViewHolder> {
|
||||||
|
|
||||||
|
|
||||||
|
private RunnableArgs<MtbColt> mOnItemClickListener;
|
||||||
|
|
||||||
|
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
protected ListaBancaliListModelBinding mViewDataBinding;
|
||||||
|
|
||||||
|
|
||||||
|
public ViewHolder(ListaBancaliListModelBinding v) {
|
||||||
|
super(v.getRoot());
|
||||||
|
mViewDataBinding = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void bind(MtbColt mtbColt) {
|
||||||
|
mViewDataBinding.setMtbColt(mtbColt);
|
||||||
|
mViewDataBinding.executePendingBindings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ListaColliMainListAdapter(ObservableArrayList<MtbColt> myDataset) {
|
||||||
|
super(myDataset);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListaColliMainListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
// create a new view
|
||||||
|
ListaBancaliListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_bancali_list_model, parent, false);
|
||||||
|
|
||||||
|
return new ViewHolder(viewDataBinding);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(ListaColliMainListAdapter.ViewHolder holder, int position) {
|
||||||
|
MtbColt item = mDataset.get(position);
|
||||||
|
holder.bind(item);
|
||||||
|
|
||||||
|
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
|
||||||
|
if(mOnItemClickListener != null) {
|
||||||
|
mOnItemClickListener.run(item);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewRecycled(ListaColliMainListAdapter.ViewHolder holder) {
|
||||||
|
super.onViewRecycled(holder);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public ListaColliMainListAdapter setOnItemClickListener(RunnableArgs<MtbColt> onItemClickListener) {
|
||||||
|
this.mOnItemClickListener = onItemClickListener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,126 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.lista_bancali.ui;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.View;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.databinding.ListaBancaliListModelBinding;
|
|
||||||
|
|
||||||
public class MainListListaColliAdapter extends RecyclerView.Adapter<MainListListaColliAdapter.ViewHolder> {
|
|
||||||
|
|
||||||
protected Context mContext;
|
|
||||||
protected ObservableArrayList<MtbColt> mDataset;
|
|
||||||
|
|
||||||
private View mEmptyView;
|
|
||||||
|
|
||||||
private IRecyclerItemClicked<MtbColt> mOnItemClickListener;
|
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
protected ListaBancaliListModelBinding mViewDataBinding;
|
|
||||||
|
|
||||||
|
|
||||||
public ViewHolder(ListaBancaliListModelBinding v) {
|
|
||||||
super(v.getRoot());
|
|
||||||
mViewDataBinding = v;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void bind(MtbColt mtbColt) {
|
|
||||||
mViewDataBinding.setMtbColt(mtbColt);
|
|
||||||
mViewDataBinding.executePendingBindings();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public MainListListaColliAdapter(Context context, ObservableArrayList<MtbColt> myDataset, IRecyclerItemClicked<MtbColt> onItemClickListener, View emptyView) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = myDataset;
|
|
||||||
mEmptyView = emptyView;
|
|
||||||
mOnItemClickListener = onItemClickListener;
|
|
||||||
|
|
||||||
myDataset.addOnListChangedCallback(onListChangedCallback);
|
|
||||||
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public MainListListaColliAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
// create a new view
|
|
||||||
ListaBancaliListModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.lista_bancali_list_model, parent, false);
|
|
||||||
|
|
||||||
return new ViewHolder(viewDataBinding);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindViewHolder(MainListListaColliAdapter.ViewHolder holder, int position) {
|
|
||||||
MtbColt item = mDataset.get(position);
|
|
||||||
holder.bind(item);
|
|
||||||
|
|
||||||
holder.mViewDataBinding.getRoot().setOnClickListener(x -> {
|
|
||||||
if(mOnItemClickListener != null) {
|
|
||||||
mOnItemClickListener.onItemClick(item, position);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewRecycled(MainListListaColliAdapter.ViewHolder holder) {
|
|
||||||
super.onViewRecycled(holder);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemCount() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void checkIfEmpty() {
|
|
||||||
if (mEmptyView != null) {
|
|
||||||
final boolean emptyViewVisible = getItemCount() == 0;
|
|
||||||
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<MtbColt>>() {
|
|
||||||
@Override
|
|
||||||
public void onChanged(ObservableList<MtbColt> sender) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeChanged(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeInserted(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeMoved(ObservableList<MtbColt> sender, int fromPosition, int toPosition, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeRemoved(ObservableList<MtbColt> sender, int positionStart, int itemCount) {
|
|
||||||
notifyDataSetChanged();
|
|
||||||
checkIfEmpty();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,82 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.lista_bancali.viewmodel;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
|
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ui.MainListListaColliAdapter;
|
|
||||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
|
||||||
|
|
||||||
public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
|
|
||||||
|
|
||||||
private ListaBancaliActivity mContext;
|
|
||||||
private ObservableArrayList<MtbColt> mMtbColts;
|
|
||||||
|
|
||||||
private MainListListaColliAdapter mAdapter;
|
|
||||||
|
|
||||||
private boolean mLoadOnlyResiduo;
|
|
||||||
|
|
||||||
public ListaBancaliViewModel(ListaBancaliActivity context, List<MtbColt> mtbColts, boolean loadOnlyResiduo){
|
|
||||||
mContext = context;
|
|
||||||
mMtbColts = new ObservableArrayList<>();
|
|
||||||
mMtbColts.addAll(mtbColts);
|
|
||||||
|
|
||||||
this.mLoadOnlyResiduo = loadOnlyResiduo;
|
|
||||||
|
|
||||||
initRecyclerView();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void initRecyclerView() {
|
|
||||||
mContext.bindings.listaColliMainList.setHasFixedSize(true);
|
|
||||||
mContext.bindings.listaColliMainList.setLayoutManager(new LinearLayoutManager(mContext));
|
|
||||||
|
|
||||||
SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(mContext, SimpleDividerItemDecoration.VERTICAL);
|
|
||||||
itemDecorator.setDrawable(ContextCompat.getDrawable(mContext, R.drawable.divider));
|
|
||||||
mContext.bindings.listaColliMainList.addItemDecoration(itemDecorator);
|
|
||||||
|
|
||||||
|
|
||||||
mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView);
|
|
||||||
mContext.bindings.listaColliMainList.setAdapter(mAdapter);
|
|
||||||
|
|
||||||
mContext.bindings.elevatedToolbar.setRecyclerView(mContext.bindings.listaColliMainList);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemClick(MtbColt item, int position) {
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
|
|
||||||
try {
|
|
||||||
ColliMagazzinoRESTConsumer.getByTestataStatic(item, mLoadOnlyResiduo, false, mtbColt -> {
|
|
||||||
|
|
||||||
ObservableArrayList<MtbColr> mtbColrObservableArrayList = new ObservableArrayList<>();
|
|
||||||
if(mtbColt != null && mtbColt.getMtbColr() != null) mtbColrObservableArrayList.addAll(mtbColt.getMtbColr());
|
|
||||||
item.setMtbColr(mtbColrObservableArrayList);
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
mContext.startContenutoBancaleActivity(item);
|
|
||||||
|
|
||||||
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
UtilityExceptions.defaultException(mContext, e, progress);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user