Migliorata gestione del popToMain

This commit is contained in:
Giuseppe Scorrano 2019-01-16 10:02:28 +01:00
parent 7009f32878
commit 4c5e885a6c
13 changed files with 114 additions and 109 deletions

View File

@ -76,12 +76,6 @@
android:resource="@xml/provider_paths" />
</provider>
<activity
android:name=".gest.picking_libero.PickingLiberoActivity"
android:label="@string/free_picking"
android:screenOrientation="portrait"
android:theme="@style/Light"
android:windowSoftInputMode="adjustNothing" ></activity>
</application>
</manifest>

View File

@ -26,6 +26,7 @@ import android.widget.TextView;
import androidx.fragment.app.FragmentTransaction;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager;
@ -43,7 +44,7 @@ import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity {
private ActivityMainBinding mBinding;
@ -74,7 +75,7 @@ public class MainActivity extends AppCompatActivity
mBinding.navView.setNavigationItemSelectedListener(this);
mBinding.appBarMain.mainSearch.setVisibility(View.GONE);
popToMain();
pop();
init();
}
@ -99,7 +100,7 @@ public class MainActivity extends AppCompatActivity
if (count == 0) {
super.onBackPressed();
} else {
getSupportFragmentManager().popBackStack();
pop();
}
}
}
@ -131,7 +132,7 @@ public class MainActivity extends AppCompatActivity
int id = item.getItemId();
if (id == R.id.nav_home) {
this.popToMain();
this.pop();
} else if (id == R.id.nav_accettazione) {
fragment = MainAccettazioneFragment.newInstance();
this.adaptViewToFragment(fragment);
@ -166,12 +167,14 @@ public class MainActivity extends AppCompatActivity
return true;
}
public void popToMain() {
@Override
public void pop() {
MainFragment mainFragment = MainFragment.newInstance();
adaptViewToFragment(mainFragment);
changeContentFragment(mainFragment, false);
mBinding.navView.setCheckedItem(R.id.nav_home);
}
private void adaptViewToFragment(Fragment fragment){

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.interfaces;
public interface IPoppableActivity {
void pop();
}

View File

@ -1,66 +0,0 @@
package it.integry.integrywmsnative.gest.picking_libero;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel;
import android.os.Bundle;
public class PickingLiberoActivity extends AppCompatActivity {
private ActivityPickingLiberoBinding mBindings;
private PickingLiberoHelper mHelper;
private PickingLiberoViewModel mViewModel;
private int barcodeScannerIstanceID = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_libero);
mHelper = new PickingLiberoHelper(this);
/*
mViewModel = new PickingLiberoViewModel();
mViewModel.init(this, mBindings, mHelper, getSupportActionBar());
mBindings.setViewmodel(mViewModel);
setSupportActionBar(this.mBindings.layout.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(mViewModel.onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
mBindings.layout.waterfallToolbar.setNestedScrollView(mBindings.layout.scrollView);
*/
}
public void setTitle(String title) {
mBindings.layout.toolbarTitle.setText(title);
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onBackPressed() {
mViewModel.onBackPressed();
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
}
}

View File

@ -80,4 +80,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment {
return mBindings.getRoot();
}
@Override
public void onDetach() {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onDetach();
}
}

View File

@ -25,19 +25,14 @@ import androidx.databinding.ObservableList;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.model.Ean128Model;
import it.integry.integrywmsnative.core.REST.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
@ -46,17 +41,13 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoActivity;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.ui.StatusBarAlert;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {

View File

@ -32,6 +32,7 @@ import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbAart;
@ -379,7 +380,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
public void openLU() {
DialogScanOrCreateLU.make(mContext, mtbColt -> {
if(mtbColt == null) {
((MainActivity)mContext).popToMain();
((IPoppableActivity)mContext).pop();
} else {
setMtbColt(mtbColt);
}

View File

@ -39,7 +39,6 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoActivity;
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzato;

View File

@ -10,9 +10,11 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding;
@ -69,7 +71,9 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
private void init() {
mHelper = new VersamentoMerceHelper(getActivity());
mVersamentoMerceViewModel.init(getActivity(), mBinding, mHelper);
mVersamentoMerceViewModel.init(getActivity(), mBinding, mHelper, () -> {
((IPoppableActivity) getActivity()).pop();
});

View File

@ -23,6 +23,7 @@ import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsume
import it.integry.integrywmsnative.core.REST.consumers.PosizioneRESTonsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
@ -53,16 +54,20 @@ public class VersamentoMerceViewModel {
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
public void init(Activity context, FragmentMainVersamentoMerceBinding binding, VersamentoMerceHelper helper) {
private Runnable mOnVersamentoCompleted;
public void init(Activity context, FragmentMainVersamentoMerceBinding binding, VersamentoMerceHelper helper, Runnable onVersamentoCompleted) {
mContext = context;
mBinding = binding;
mHelper = helper;
mOnVersamentoCompleted = onVersamentoCompleted;
}
public void openLU() {
DialogScanOrCreateLU.make(mContext, true, mtbColt -> {
if(mtbColt == null) {
((MainActivity)mContext).popToMain();
((IPoppableActivity)mContext).pop();
} else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){
setMtbColt(mtbColt);
} else {
@ -227,7 +232,7 @@ public class VersamentoMerceViewModel {
progressDialog.dismiss();
BarcodeManager.enable();
showDataSavedDialog();
showDataSavedDialog(mOnVersamentoCompleted);
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
@ -361,7 +366,9 @@ public class VersamentoMerceViewModel {
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
showDataSavedDialog();
showDataSavedDialog(() -> {
mOnVersamentoCompleted.run();
});
}, ex -> {
UtilityExceptions.defaultException(mContext, ex);
});
@ -369,14 +376,15 @@ public class VersamentoMerceViewModel {
}
private void showDataSavedDialog() {
private void showDataSavedDialog(Runnable onComplete) {
DialogSimpleMessageHelper.makeSuccessDialog(
mContext,
mContext.getResources().getString(R.string.completed),
new SpannableString(mContext.getResources().getString(R.string.data_saved)),
null, () -> {
resetMtbColt();
onComplete.run();
//resetMtbColt();
}).show();
}

View File

@ -8,6 +8,7 @@ import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import java.util.List;
@ -48,6 +49,7 @@ public class DialogChooseArtsFromListaArts {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
DialogChooseArtsFromListaArtsLayoutBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_arts_from_lista_arts_layout, null, false);
binding.emptyView.setVisibility(listaMtbColr != null && listaMtbColr.size() > 0 ? View.GONE : View.VISIBLE);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
.setView(binding.getRoot())

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>
@ -15,15 +14,42 @@
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
android:id="@+id/waterfall_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:gravity="center_horizontal"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Picking Libero"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_gravity="center" />
</androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
<fragment
android:id="@+id/top_fragment"
android:name="it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<include
android:id="@+id/layout"
layout="@layout/fragment_picking_libero" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
</layout>

View File

@ -2,6 +2,10 @@
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
@ -24,11 +28,37 @@
android:layout_marginBottom="12dp"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dialog_choose_arts_from_lista_art__main_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/no_item_to_pick_text"
android:textSize="20sp"
android:gravity="center"
android:textColor="@color/empty_view_gray"/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dialog_choose_arts_from_lista_art__main_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>