From 79cf00fe2f1175aba488857523d4d0b60d5ee9c6 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 7 Jul 2020 17:47:13 +0200 Subject: [PATCH] Fix su bottom sheet fragment mtb_colr --- .../integrywmsnative/MainApplication.java | 13 --- .../viewmodel/ListaBancaliViewModel.java | 1 - .../PickingLiberoComponent.java | 11 ++ .../picking_libero/PickingLiberoModule.java | 19 ++++ .../PickingLiberoViewModelNEW.java | 24 ++++ ...ttomSheetFragmentLUContentListAdapter.java | 104 +++++++++++------- .../BottomSheetFragmentLUContentView.java | 19 +++- .../layout/bottom_sheet__mtb_colr_edit.xml | 4 +- .../bottom_sheet_fragment__lu_content.xml | 9 +- 9 files changed, 139 insertions(+), 65 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModelNEW.java diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index 9c1036f9..b9fb6eed 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -31,19 +31,6 @@ public class MainApplication extends Application { private static AppDatabase appDb; private static Context context; - public static void exit() { - System.exit(0); - } - - public static void restart() { - Intent mStartActivity = new Intent(context, MainActivity.class); - int mPendingIntentId = 123456; - PendingIntent mPendingIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT); - AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); - mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent); - System.exit(0); - } - // Called when the application is starting, before any other application objects have been created. // Overriding this method is totally optional! diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java index 1a2ed724..adb0fb3f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java @@ -36,7 +36,6 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked { public void initRecyclerView() { mContext.bindings.listaColliMainList.setHasFixedSize(true); - mContext.bindings.listaColliMainList.setLayoutManager(new LinearLayoutManager(mContext)); DividerItemDecoration itemDecorator = new DividerItemDecoration(mContext, DividerItemDecoration.VERTICAL); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java new file mode 100644 index 00000000..6d7847e7 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java @@ -0,0 +1,11 @@ +package it.integry.integrywmsnative.gest.picking_libero; + +import javax.inject.Singleton; + +import dagger.Component; +import it.integry.integrywmsnative.MainApplicationComponent; + +@Singleton +@Component(modules = {PickingLiberoModule.class}, dependencies = {MainApplicationComponent.class}) +public interface PickingLiberoComponent { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java new file mode 100644 index 00000000..e60a2e4f --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.gest.picking_libero; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; +import it.integry.integrywmsnative.MainApplicationModule; +import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; + +@Module(includes = {MainApplicationModule.class}) +public class PickingLiberoModule { + + @Provides + @Singleton + PickingLiberoViewModelNEW providesPickingLiberoViewModel(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer) { + return new PickingLiberoViewModelNEW(colliMagazzinoRESTConsumer, printerRESTConsumer); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModelNEW.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModelNEW.java new file mode 100644 index 00000000..eb37bd39 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModelNEW.java @@ -0,0 +1,24 @@ +package it.integry.integrywmsnative.gest.picking_libero; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; + +public class PickingLiberoViewModelNEW { + + + private MtbColt mCurrentMtbColt = null; + + private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; + private final PrinterRESTConsumer mPrinterRESTConsumer; + + @Inject + public PickingLiberoViewModelNEW(ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, + PrinterRESTConsumer printerRESTConsumer) { + this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; + this.mPrinterRESTConsumer = printerRESTConsumer; + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentListAdapter.java index f637c95e..f723ec4e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentListAdapter.java @@ -8,9 +8,17 @@ import android.widget.BaseAdapter; import androidx.databinding.DataBindingUtil; import androidx.databinding.Observable; +import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableField; +import androidx.databinding.ObservableList; +import androidx.recyclerview.widget.RecyclerView; + +import java.math.BigDecimal; +import java.util.ArrayList; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; +import it.integry.integrywmsnative.core.expansion.OnSingleClickListener; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.WeakReferenceOnListChangedCallback; import it.integry.integrywmsnative.core.model.MtbColr; @@ -20,82 +28,98 @@ import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.BottomSheetFragmentLuContentListItemBinding; +import it.integry.integrywmsnative.databinding.ListaRettificaGiacenzeModelBinding; +import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.RettificaGiacenzeMainListAdapter; -public class BottomSheetFragmentLUContentListAdapter extends BaseAdapter { +public class BottomSheetFragmentLUContentListAdapter extends RecyclerView.Adapter { - private final WeakReferenceOnListChangedCallback onListChangedCallback; private Context mContext; - private ObservableField mtbColt; + private ArrayList mDataset; + private OnItemClickListener mOnItemClickListener; - public BottomSheetFragmentLUContentListAdapter(Context context, ObservableField mtbColt) { + + public static class ViewHolder extends RecyclerView.ViewHolder { + protected BottomSheetFragmentLuContentListItemBinding mViewDataBinding; + + + public ViewHolder(BottomSheetFragmentLuContentListItemBinding v) { + super(v.getRoot()); + mViewDataBinding = v; + } + + public void bind(MtbColr mtbColr) { + mViewDataBinding.setMtbColr(mtbColr); + mViewDataBinding.executePendingBindings(); + } + } + + public BottomSheetFragmentLUContentListAdapter(Context context, ObservableArrayList mtbColrs) { super(); this.mContext = context; - this.mtbColt = mtbColt; - this.onListChangedCallback = new WeakReferenceOnListChangedCallback(this); + this.mDataset = mtbColrs != null ? mtbColrs : new ArrayList<>(); - this.mtbColt.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + mtbColrs.addOnListChangedCallback(new OnListGeneralChangedCallback() { @Override - public void onPropertyChanged(Observable sender, int propertyId) { - onLUChangedCallback(); + public void onChanged(ObservableList sender) { + notifyDataSetChanged(); } }); } - private void onLUChangedCallback() { - if(this.mtbColt.get() != null) { - this.mtbColt.get().getMtbColr().addOnListChangedCallback(onListChangedCallback); - } + @Override + public BottomSheetFragmentLUContentListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + // create a new view + BottomSheetFragmentLuContentListItemBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.bottom_sheet_fragment__lu_content__list_item, parent, false); + + return new BottomSheetFragmentLUContentListAdapter.ViewHolder(viewDataBinding); } - @Override - public View getView(int position, View convertView, ViewGroup parent) { - - LayoutInflater inflater = LayoutInflater.from(parent.getContext()); - - BottomSheetFragmentLuContentListItemBinding binding = DataBindingUtil.inflate(inflater, R.layout.bottom_sheet_fragment__lu_content__list_item, parent, false); - - final MtbColr mtbColr = mtbColt.get().getMtbColr().get(position); - binding.setMtbColr(mtbColr); + public void onBindViewHolder(BottomSheetFragmentLUContentListAdapter.ViewHolder holder, int position) { + MtbColr mtbColr = mDataset.get(position); + holder.bind(mtbColr); //Setting qty with unt_mis - if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){ + if (!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())) { String text = UtilityNumber.decimalToString(mtbColr.getQtaCol()); - if(mtbColr.getMtbAart() != null) { + if (mtbColr.getMtbAart() != null) { text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""; } - binding.qtaTextview.setText(text); + holder.mViewDataBinding.qtaTextview.setText(text); } else { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); + holder.mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); } - binding.executePendingBindings(); + holder.mViewDataBinding.executePendingBindings(); - if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG)); + if (position % 2 == 1) + holder.mViewDataBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG)); - return binding.getRoot(); + holder.mViewDataBinding.getRoot().setOnClickListener(new OnSingleClickListener() { + @Override + public void onSingleClick(View v) { + if(mOnItemClickListener != null) mOnItemClickListener.onItemClick(holder.mViewDataBinding.getMtbColr()); + } + }); } @Override - public long getItemId(int position) { - return position; + public int getItemCount() { + return mDataset.size(); } - @Override - public Object getItem(int position) { - return position; + + public BottomSheetFragmentLUContentListAdapter setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.mOnItemClickListener = onItemClickListener; + return this; } - @Override - public int getCount() { - if(mtbColt.get() != null && mtbColt.get().getMtbColr() != null) { - - return mtbColt.get().getMtbColr().size(); - } else return 0; + interface OnItemClickListener { + void onItemClick(MtbColr item); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java index 6da4fd35..9b4c1e7d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottom_sheet__lu_content/BottomSheetFragmentLUContentView.java @@ -8,6 +8,7 @@ import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; import androidx.databinding.Observable; import androidx.databinding.ObservableList; +import androidx.recyclerview.widget.LinearLayoutManager; import java.util.List; @@ -41,7 +42,6 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie mBinding.bottomSheetMtbColrEdit.setListener(this); mBinding.bottomSheetMtbColrEdit.init(mBinding.bottomSheetMtbColrEdit, mBinding.bottomSheetMtbColrEditBackground); - this.initAdapter(); this.initCallbacks(); } @@ -51,11 +51,15 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie private void initAdapter() { - this.mAdapter = new BottomSheetFragmentLUContentListAdapter(this.mContext, this.mViewModel.getObservableMtbColt()); - this.mBinding.linearListview.setAdapter(this.mAdapter); - this.mBinding.linearListview.setOnItemClickListener((parent, view, position, id) -> { - this.mBinding.bottomSheetMtbColrEdit.setMtbColr(this.mViewModel.getObservableMtbColt().get().getMtbColr().get(position)); + this.mBinding.mtbColrRecyclerView.setHasFixedSize(true); + this.mBinding.mtbColrRecyclerView.setLayoutManager(new LinearLayoutManager(mContext)); + + this.mAdapter = new BottomSheetFragmentLUContentListAdapter(this.mContext, this.mViewModel.getObservableMtbColt().get().getMtbColr()); + this.mBinding.mtbColrRecyclerView.setAdapter(this.mAdapter); + + this.mAdapter.setOnItemClickListener(clickedMtbColr -> { + this.mBinding.bottomSheetMtbColrEdit.setMtbColr(clickedMtbColr); this.mBinding.bottomSheetMtbColrEdit.expand(); }); } @@ -64,8 +68,9 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie this.mViewModel.getObservableMtbColt().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { @Override public void onPropertyChanged(Observable sender, int propertyId) { - initAdapter(); if(mViewModel.getObservableMtbColt().get() != null) { + initAdapter(); + onMtbColrItemChanged(); mViewModel.getObservableMtbColt().get().getMtbColr().addOnListChangedCallback(new OnListGeneralChangedCallback() { @@ -74,6 +79,8 @@ public class BottomSheetFragmentLUContentView extends BottomSheetFragmentBaseVie onMtbColrItemChanged(); } }); + } else { + mBinding.mtbColrRecyclerView.setAdapter(null); } } }); diff --git a/app/src/main/res/layout/bottom_sheet__mtb_colr_edit.xml b/app/src/main/res/layout/bottom_sheet__mtb_colr_edit.xml index b3542995..96db7da1 100644 --- a/app/src/main/res/layout/bottom_sheet__mtb_colr_edit.xml +++ b/app/src/main/res/layout/bottom_sheet__mtb_colr_edit.xml @@ -52,7 +52,8 @@ android:layout_marginBottom="8dp" android:orientation="vertical" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toStartOf="@id/qta_layout"> + android:background="@color/full_white" + android:clickable="true" + android:focusable="true"> -