From b0bbea7caa493b28a0d683d3ac68cd527e28f2df Mon Sep 17 00:00:00 2001 From: ValerioC Date: Mon, 18 Nov 2019 18:49:03 +0100 Subject: [PATCH 1/2] =?UTF-8?q?[SAPORI=20VERI]=20-=20Implementata=20ricerc?= =?UTF-8?q?a=20testuale=20dei=20codici=20in=20griglia=20-=20bug=20fix=20ag?= =?UTF-8?q?giornamento=20errato=20articoli=20in=20update=20da=20griglia=20?= =?UTF-8?q?-=20bug=20fix=20i=20terminali=20in=20emulazione=20di=20tastiera?= =?UTF-8?q?=20non=20funzionano=20perch=C3=A8=20il=20deviceId=20=3D=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/runConfigurations/app_base.xml | 55 +++++++ .idea/runConfigurations/app_frudis.xml | 55 +++++++ .idea/runConfigurations/app_ime.xml | 55 +++++++ .idea/runConfigurations/app_vglimenti.xml | 55 +++++++ .../core/barcode_reader/BarcodeManager.java | 6 +- .../data_store/db/dao/ArticoloGrigliaDao.java | 3 + .../repository/ArticoliGrigliaRepository.java | 2 +- .../core/expansion/BaseActivity.java | 5 +- .../core/expansion/BaseDialog.java | 30 +++- .../gest/login/LoginActivity.java | 1 + .../PVOrdineAcquistoEditActivity.java | 20 +++ .../dialogs/DialogScanLisA.java | 7 +- .../dialogs/base/DialogSimpleInputHelper.java | 80 ++++++++++ .../base/DialogSimpleInputViewModel.java | 49 ++++++ .../activity_pv_ordine_acquisto_edit.xml | 15 +- .../main/res/layout/dialog_input_general.xml | 142 ++++++++++++++++++ .../KeyboardEmulatorBarcodeReader.java | 4 +- 17 files changed, 563 insertions(+), 21 deletions(-) create mode 100644 .idea/runConfigurations/app_base.xml create mode 100644 .idea/runConfigurations/app_frudis.xml create mode 100644 .idea/runConfigurations/app_ime.xml create mode 100644 .idea/runConfigurations/app_vglimenti.xml create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputHelper.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputViewModel.java create mode 100644 app/src/main/res/layout/dialog_input_general.xml diff --git a/.idea/runConfigurations/app_base.xml b/.idea/runConfigurations/app_base.xml new file mode 100644 index 00000000..cb6b1f97 --- /dev/null +++ b/.idea/runConfigurations/app_base.xml @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/app_frudis.xml b/.idea/runConfigurations/app_frudis.xml new file mode 100644 index 00000000..b1e25bb1 --- /dev/null +++ b/.idea/runConfigurations/app_frudis.xml @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/app_ime.xml b/.idea/runConfigurations/app_ime.xml new file mode 100644 index 00000000..d8aca230 --- /dev/null +++ b/.idea/runConfigurations/app_ime.xml @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/app_vglimenti.xml b/.idea/runConfigurations/app_vglimenti.xml new file mode 100644 index 00000000..e0f97c85 --- /dev/null +++ b/.idea/runConfigurations/app_vglimenti.xml @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java index a66082b7..cb83f66f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java @@ -100,6 +100,7 @@ public class BarcodeManager { } public static boolean onKeyDown(int keyCode, KeyEvent keyEvent){ + if (mCurrentBarcodeInterface != null) mCurrentBarcodeInterface.onKeyEvent(keyEvent); return true; } @@ -152,6 +153,7 @@ public class BarcodeManager { } - - + public static boolean isKeyboardEmulator() { + return mCurrentBarcodeInterface instanceof KeyboardEmulatorBarcodeReader; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java index 0a83e2df..f250a0f3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java @@ -33,4 +33,7 @@ public interface ArticoloGrigliaDao { @Query("SELECT * FROM articoli_griglia WHERE (cod_mart = :scan OR bar_code =:scan )AND id_griglia = :idGriglia LIMIT 1") ArticoloGriglia findArticoloByScanAndGriglia(String scan, int idGriglia); + + @Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE (cod_mart = :codMart AND bar_code =:barCode )AND id_griglia = :idGriglia LIMIT 1") + Integer getIdArticoloByGrigliaAndBarcodeAndCodMart(int idGriglia, String barCode, String codMart); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java index 7929014a..32b13095 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java @@ -24,7 +24,7 @@ public class ArticoliGrigliaRepository extends Repository{ List toUpdate = new ArrayList<>(); List toInsert = new ArrayList<>(); for (ArticoloGriglia art : articoli){ - Integer id = mRepository.getIdArticoloByGrigliaAndCodMart(art.getIdGriglia(),art.getCodMart()); + Integer id = mRepository.getIdArticoloByGrigliaAndBarcodeAndCodMart(art.getIdGriglia(),art.getBarCode(),art.getCodMart()); if (id != null){ art.setArticoloGrigliaId(id); toUpdate.add(art); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java index e4ae0100..f73e4cb1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java @@ -11,11 +11,10 @@ public class BaseActivity extends AppCompatActivity { @Override public boolean dispatchKeyEvent(KeyEvent event) { - if (event.getDeviceId() != -1 && event.getDeviceId() != 0) { + if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()) { if (event.getAction() == KeyEvent.ACTION_DOWN) { - BarcodeManager.onKeyDown(event.getKeyCode(), event); + return BarcodeManager.onKeyDown(event.getKeyCode(), event); } - return false; } return super.dispatchKeyEvent(event); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialog.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialog.java index 11bfe361..2ce56ac8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialog.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseDialog.java @@ -2,26 +2,42 @@ package it.integry.integrywmsnative.core.expansion; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.view.KeyEvent; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; +import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader; public class BaseDialog extends Dialog { + private boolean mBarcodeListener = false; public BaseDialog(@NonNull Context context) { super(context); + if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()){ + setOnKeyListener((dialog, keyCode, event) -> { + if (mBarcodeListener && event.getAction() == KeyEvent.ACTION_DOWN && !isControlKey(event)) { + return BarcodeManager.onKeyDown(event.getKeyCode(), event); + } + return false; + }); + } } - @Override - public boolean dispatchKeyEvent(KeyEvent event) { - if (event.getDeviceId() != -1 && event.getDeviceId() != 0 && event.getAction() == KeyEvent.ACTION_DOWN){ - BarcodeManager.onKeyDown(event.getKeyCode(),event); - return false; - } - return super.dispatchKeyEvent(event); + private boolean isControlKey(KeyEvent keyEvent) { + int keyCode = keyEvent.getKeyCode(); + return ( + keyCode == KeyEvent.KEYCODE_BACK || + keyCode == KeyEvent.KEYCODE_SHIFT_LEFT + + ); + } + + public void setBarcodeListener(boolean listen) { + this.mBarcodeListener = listen; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java index 4f4f53e9..c40cc742 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/LoginActivity.java @@ -5,6 +5,7 @@ import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.context.MainContext; import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.utility.UtilityWindow; 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 907b6b08..78da5e19 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 @@ -34,6 +34,7 @@ import it.integry.integrywmsnative.view.dialogs.DialogAskAction; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper; import it.integry.integrywmsnative.ui.FabMenuCustomAnimations; +import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; public class PVOrdineAcquistoEditActivity extends BaseActivity { @@ -219,4 +220,23 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity { } + public void manualSearch(){ + BarcodeManager.disable(); + DialogSimpleInputHelper.makeInputDialog(this,"Inserisci il codice a barre/codice articolo da cercare",codice->{ + final Dialog progress = UtilityProgress.createDefaultProgressDialog(this); + mhelper.checkArticolo( + mOrdine, + codice, + articoloOrdine -> { + progress.dismiss(); + addArticolo(articoloOrdine); + }, + e -> { + progress.dismiss(); + handleException(e); + } + ); + }, BarcodeManager::enable).show(); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java index 691e1b73..122b63dc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java @@ -3,8 +3,10 @@ package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs; import android.app.Activity; import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.view.KeyEvent; import android.view.LayoutInflater; import androidx.databinding.DataBindingUtil; @@ -26,7 +28,7 @@ public class DialogScanLisA { private Activity mContext; - private Dialog mDialog; + private BaseDialog mDialog; private DialogScanCodiceGrigliaBinding mBinding; @@ -55,12 +57,15 @@ public class DialogScanLisA { return new DialogScanLisA(context, onDialogDismiss).mDialog; } + + private void initBarcode() { int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() .setOnScanSuccessfull(onScanSuccessfull) .setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false))); + mDialog.setBarcodeListener(true); mDialog.setOnDismissListener(dialog -> { BarcodeManager.removeCallback(barcodeIstanceID); BarcodeManager.enable(); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputHelper.java new file mode 100644 index 00000000..19901d73 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputHelper.java @@ -0,0 +1,80 @@ +package it.integry.integrywmsnative.view.dialogs.base; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.content.res.ColorStateList; +import android.graphics.Color; +import android.graphics.Rect; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.text.SpannableString; +import android.text.Spanned; +import android.view.LayoutInflater; +import android.view.Window; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.StringRes; +import androidx.core.content.ContextCompat; +import androidx.databinding.DataBindingUtil; + +import java.util.HashMap; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.utility.UtilityDialog; +import it.integry.integrywmsnative.databinding.DialogBaseBinding; +import it.integry.integrywmsnative.databinding.DialogInputGeneralBinding; + +/** + * Created by GiuseppeS on 22/03/2018. + */ + +public class DialogSimpleInputHelper { + + + private static Dialog makeBase(Context mContext, String titleText, RunnableArgs onPositiveClick, Runnable onNegativeClick){ + Dialog dialog = new Dialog(mContext); + DialogSimpleInputViewModel viewModel = new DialogSimpleInputViewModel(dialog); + + + + DialogInputGeneralBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_input_general, null, false); + viewModel + .setOnPositive(()->{ + + onPositiveClick.run(mBinding.generalInput.getText().toString()); + }) + .setOnNegative(onNegativeClick); + + mBinding.setViewmodel(viewModel); + + //Title VIEW + mBinding.titleText.setText(titleText); + ColorStateList colorStateList = ColorStateList.valueOf(Color.WHITE); + + //Content View + dialog.setCancelable(true); + dialog.setCanceledOnTouchOutside(false); + dialog.setContentView(mBinding.getRoot()); + dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + UtilityDialog.setTo90PercentSize(mContext,dialog); + + return dialog; + } + + + public static Dialog makeInputDialog(Context mContext, String title, RunnableArgs onPositiveClick, Runnable onNegativeClick){ + + return makeBase(mContext, + title, + onPositiveClick, + onNegativeClick); + + } + + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputViewModel.java new file mode 100644 index 00000000..d57a3c63 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleInputViewModel.java @@ -0,0 +1,49 @@ +package it.integry.integrywmsnative.view.dialogs.base; + +import android.app.Dialog; + +public class DialogSimpleInputViewModel { + + + private Dialog mDialog; + private Runnable onPositive; + private Runnable onNegative; + + + public DialogSimpleInputViewModel(Dialog dialog) { + mDialog = dialog; + } + + public DialogSimpleInputViewModel setOnPositive(Runnable onPositive) { + this.onPositive = onPositive; + return this; + } + + + + public DialogSimpleInputViewModel setOnNegative(Runnable onNegative) { + this.onNegative = onNegative; + return this; + } + + + + public boolean isPositiveVisible() { + return onPositive != null; + } + + + public boolean isNegativeVisible() { + return onNegative != null; + } + + + public void onPositiveClick() { + mDialog.dismiss(); + if(onPositive != null) onPositive.run(); + } + public void onNegativeClick() { + mDialog.dismiss(); + if(onNegative != null) onNegative.run(); + } +} diff --git a/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml b/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml index d3ccc757..b893d79e 100644 --- a/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml +++ b/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml @@ -52,13 +52,16 @@ style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" android:layout_gravity="start" /> - + android:layout_height="50dp" + android:layout_gravity="end" + android:background="@drawable/ripple_effect" + android:adjustViewBounds="true" + android:src="@drawable/ic_search_black_24dp" + android:onClick="@{()->viewModel.manualSearch()}" + android:tint="@color/colorPrimaryGray"/> diff --git a/app/src/main/res/layout/dialog_input_general.xml b/app/src/main/res/layout/dialog_input_general.xml new file mode 100644 index 00000000..70a5a1c3 --- /dev/null +++ b/app/src/main/res/layout/dialog_input_general.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java index e98db0ec..6bc32e4c 100644 --- a/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java +++ b/keyobardemulatorscannerlibrary/src/main/java/it/integry/keyobardemulatorscannerlibrary/KeyboardEmulatorBarcodeReader.java @@ -62,7 +62,9 @@ public class KeyboardEmulatorBarcodeReader implements BarcodeReaderInterface { if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_ENTER){ if (keyEvent.getKeyCode() != KeyEvent.KEYCODE_SHIFT_LEFT){ mLastCharInsertTime =keyEvent.getEventTime(); - mTextBarcode+= (char) keyEvent.getUnicodeChar(); + if (keyEvent.getUnicodeChar() > 0){ + mTextBarcode+= (char) keyEvent.getUnicodeChar(); + } } }else{ if (mTextBarcode.length() > 0){ From eb5e6cc30e6a045d42a78466d19f2ded4c2a5a49 Mon Sep 17 00:00:00 2001 From: ValerioC Date: Mon, 18 Nov 2019 18:51:26 +0100 Subject: [PATCH 2/2] Finish v1_9_3(97) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 12eb46b8..1a03dc00 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 96 - def appVersionName = '1.9.2' + def appVersionCode = 97 + def appVersionName = '1.9.3' signingConfigs { release {