From a2b53f94c6896891fdfd965ae6d406017816a15b Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 23 Sep 2025 18:01:42 +0200 Subject: [PATCH] Fix di remove di callback del barcode manager nel caso di onBackPressed. Fix UI dialog_input_quantity_v2.xml sui large display. --- app/src/main/AndroidManifest.xml | 4 +- .../picking_resi/PickingResiActivity.java | 47 ++++++++--------- .../PVOrdineAcquistoEditActivity.java | 18 ++++--- .../gest/spedizione/SpedizioneActivity.java | 51 ++++++++++--------- .../dialog_input_quantity_v2.xml | 5 +- .../HoneyWellBarcodeReader.java | 32 ++++++++++-- 6 files changed, 95 insertions(+), 62 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e4dc2938..08a7f6d9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,6 +2,9 @@ + + @@ -56,7 +59,6 @@ android:exported="true"> - diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java index 7ebb3098..d2419a1e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java @@ -9,6 +9,7 @@ import android.text.SpannableString; import android.util.Pair; import android.view.Gravity; +import androidx.activity.OnBackPressedCallback; import androidx.appcompat.widget.PopupMenu; import androidx.databinding.DataBindingUtil; import androidx.databinding.ObservableArrayList; @@ -138,12 +139,34 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag mBindings.bottomSheetLuContent.setListener(this); mBottomSheetFragmentLUContentViewModel.setListener(this); - this.initVars(); this.initBarcodeReader(); this.initRecyclerView(); this.initFab(); + // Registra il callback per la gestione del pulsante back + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (mBindings.bottomSheetLuContent.isExpanded()) { + mBindings.bottomSheetLuContent.collapse(); + } else if (!noLUPresent.get()) { + mShouldCloseActivity = true; + BarcodeManager.removeCallback(mBarcodeScannerInstanceID); + executorService.execute(() -> { + try { + mViewmodel.closeLU(true); + } catch (Exception e) { + onError(e); + } + }); + } else { + BarcodeManager.removeCallback(mBarcodeScannerInstanceID); + setEnabled(false); + getOnBackPressedDispatcher().onBackPressed(); + } + } + }); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); @@ -166,28 +189,6 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag return true; } - @Override - public void onBackPressed() { - - if (this.mBindings.bottomSheetLuContent.isExpanded()) { - this.mBindings.bottomSheetLuContent.collapse(); - } else if (!noLUPresent.get()) { - this.mShouldCloseActivity = true; - BarcodeManager.removeCallback(mBarcodeScannerInstanceID); - - executorService.execute(() -> { - try { - this.mViewmodel.closeLU(true); - } catch (Exception e) { - this.onError(e); - } - }); - } else { - BarcodeManager.removeCallback(mBarcodeScannerInstanceID); - getOnBackPressedDispatcher().onBackPressed(); - } - } - private void initVars() { this.noLUPresent.addOnPropertyChangedCallback(() -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index d9dafe1f..96590388 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -8,6 +8,7 @@ import android.text.SpannableString; import android.view.View; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; import androidx.appcompat.app.ActionBar; import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; @@ -75,7 +76,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi .create() .inject(this); - mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pv_ordine_acquisto_edit); mBinding.setViewModel(this); Ordine ordine = DataCache.retrieveItem(getIntent().getStringExtra(DATA_KEY_ORDER)); @@ -86,6 +86,16 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi actionBar.setDisplayHomeAsUpEnabled(true); } + // Registra il callback per la gestione del pulsante back + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + BarcodeManager.removeCallback(mBarcodeScannerInstanceID); + setEnabled(false); + getOnBackPressedDispatcher().onBackPressed(); + } + }); + if (ordine == null) { Toast.makeText(this, "Impossibile modificare ordine esportato", Toast.LENGTH_SHORT).show(); close(); @@ -242,12 +252,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi getOnBackPressedDispatcher().onBackPressed(); } - @Override - public void onBackPressed() { - BarcodeManager.removeCallback(mBarcodeScannerInstanceID); - getOnBackPressedDispatcher().onBackPressed(); - } - public void manualSearch() { BarcodeManager.disable(mBarcodeScannerInstanceID); DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", barcode -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index ad771c94..bdfb7b92 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -11,6 +11,7 @@ import android.text.SpannableString; import android.view.Gravity; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; import androidx.appcompat.widget.PopupMenu; import androidx.databinding.DataBindingUtil; import androidx.databinding.ObservableArrayList; @@ -47,12 +48,10 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.expansion.RunnableArgsss; import it.integry.integrywmsnative.core.expansion.RunnableArgssss; -import it.integry.integrywmsnative.core.model.DtbOrdt; 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.MtbDepoPosizione; -import it.integry.integrywmsnative.core.model.MtbPartitaMag; import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUlDTO; import it.integry.integrywmsnative.core.model.dto.PartitaCommessaDTO; import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol; @@ -61,13 +60,13 @@ import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO; import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO; import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.core.utility.data.UntMisUtils; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityToast; +import it.integry.integrywmsnative.core.utility.data.UntMisUtils; import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding; import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity; import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListView; @@ -213,6 +212,31 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo this.initFab(); this.initRecyclerView(); + // Registra il callback per la gestione del pulsante back + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + if (mBindings.bottomSheetLuContent.isExpanded()) { + mBindings.bottomSheetLuContent.collapse(); + } else if (!noLUPresent.getValue()) { + mShouldCloseActivity = true; + BarcodeManager.removeCallback(mBarcodeScannerInstanceID); + executorService.execute(() -> { + try { + mViewmodel.requestCloseLU(true); + } catch (Exception e) { + onError(e); + } + }); + } else { + BarcodeManager.removeCallback(mBarcodeScannerInstanceID); + handler.post(() -> { + setEnabled(false); + getOnBackPressedDispatcher().onBackPressed(); + }); + } + } + }); String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); mEnableFakeGiacenza = SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza(); @@ -243,27 +267,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo return true; } - @Override - public void onBackPressed() { - if (this.mBindings.bottomSheetLuContent.isExpanded()) { - this.mBindings.bottomSheetLuContent.collapse(); - } else if (!noLUPresent.getValue()) { - this.mShouldCloseActivity = true; - BarcodeManager.removeCallback(mBarcodeScannerInstanceID); - executorService.execute(() -> { - try { - this.mViewmodel.requestCloseLU(true); - } catch (Exception e) { - onError(e); - } - }); - } else { - BarcodeManager.removeCallback(mBarcodeScannerInstanceID); - handler.post(() -> { - getOnBackPressedDispatcher().onBackPressed(); - }); - } - } private void initVars() { this.noLUPresent.observeForever(newValue -> { diff --git a/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml b/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml index 3e5c1b7c..38bfeaa8 100644 --- a/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml +++ b/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml @@ -968,7 +968,7 @@ android:text="@string/action_close_ul" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:strokeColor="@color/colorPrimary" + app:strokeColor="?colorPrimary" app:visibility="@{view.enabledLUCloseButton}" /> @@ -981,7 +981,7 @@ android:layout_marginEnd="4dp" android:layout_weight="1" android:onClick="@{() -> view.dismiss()}" - android:paddingEnd="3dp" + android:text="@string/abort" android:textColor="@color/red_400" app:strokeColor="@color/red_400" app:layout_constraintTop_toTopOf="parent" /> @@ -996,6 +996,7 @@ android:layout_marginEnd="0dp" android:layout_weight="1" android:onClick="@{() -> view.save()}" + android:text="@string/action_save" app:icon="@drawable/ic_save_24dp" app:iconGravity="textStart" app:layout_constraintTop_toTopOf="parent" /> diff --git a/honeywellscannerlibrary/src/main/java/it/integry/honeywellscannerlibrary/HoneyWellBarcodeReader.java b/honeywellscannerlibrary/src/main/java/it/integry/honeywellscannerlibrary/HoneyWellBarcodeReader.java index 8c482b60..b75a853b 100644 --- a/honeywellscannerlibrary/src/main/java/it/integry/honeywellscannerlibrary/HoneyWellBarcodeReader.java +++ b/honeywellscannerlibrary/src/main/java/it/integry/honeywellscannerlibrary/HoneyWellBarcodeReader.java @@ -1,6 +1,7 @@ package it.integry.honeywellscannerlibrary; import android.content.Context; +import android.hardware.usb.UsbDevice; import android.os.Build; import android.util.Pair; import android.view.KeyEvent; @@ -28,6 +29,8 @@ public class HoneyWellBarcodeReader implements BarcodeReaderInterface { private AidcManager manager; private BarcodeReader barcodeReader; + private UsbDevice externalUsbScanner; + private static RunnableArgs mOnScanSuccessfull; private static RunnableArgs mOnScanFailed; @@ -40,11 +43,30 @@ public class HoneyWellBarcodeReader implements BarcodeReaderInterface { @Override public boolean isRightAdapter() { String model = Build.MODEL; - List compatibleModels = new ArrayList<>(); - compatibleModels.add("EDA50"); - compatibleModels.add("EDA51"); - compatibleModels.add("EDA52"); - compatibleModels.add("CT60"); + List compatibleModels = new ArrayList<>() {{ + add("EDA50"); + add("EDA51"); + add("EDA52"); + add("CT60"); + }}; + +// UsbManager manager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE); +// HashMap deviceList = manager.getDeviceList(); +// +// if(!deviceList.isEmpty()) { +// +// List externalCompatibleUsbScanners = new ArrayList<>() {{ +// add("1980i"); +// }}; +// +// for (UsbDevice device : deviceList.values()) { +// String deviceName = device.getProductName(); +// if (deviceName != null && externalCompatibleUsbScanners.contains(deviceName.toLowerCase())) { +// externalUsbScanner = device; +// return true; +// } +// } +// } return compatibleModels.contains(model); }