diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index f6a14768..47aa599c 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index ef9da381..945ef389 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,153 +1,153 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } +buildscript { + repositories { + maven { url 'https://maven.fabric.io/public' } + } - dependencies { - classpath 'io.fabric.tools:gradle:1.27.0' - } -} -apply plugin: 'com.android.application' -apply plugin: 'com.google.firebase.firebase-perf' -apply plugin: 'io.fabric' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' + dependencies { + classpath 'io.fabric.tools:gradle:1.27.0' + } +} +apply plugin: 'com.android.application' +apply plugin: 'com.google.firebase.firebase-perf' +apply plugin: 'io.fabric' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' apply plugin: 'com.google.gms.google-services' -android { +android { - def appVersionCode = 38 - def appVersionName = '1.0.35' + def appVersionCode = 39 + def appVersionName = '1.0.36' - signingConfigs { - release { - keyAlias 'wms key' - keyPassword 'inpmiy' - storeFile file('Integry.jks') - storePassword 'inpmiy' - } - } + signingConfigs { + release { + keyAlias 'wms key' + keyPassword 'inpmiy' + storeFile file('Integry.jks') + storePassword 'inpmiy' + } + } - applicationVariants.all { variant -> - variant.outputs.all { output -> - output.outputFileName = "android-release_v2.apk" - } - } + applicationVariants.all { variant -> + variant.outputs.all { output -> + output.outputFileName = "android-release_v2.apk" + } + } - compileSdkVersion 28 - buildToolsVersion '28.0.3' + compileSdkVersion 28 + buildToolsVersion '28.0.3' - defaultConfig { - applicationId "it.integry.integrywmsnative" - minSdkVersion 21 - targetSdkVersion 28 - versionCode appVersionCode - versionName appVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - signingConfig signingConfigs.release - } + defaultConfig { + applicationId "it.integry.integrywmsnative" + minSdkVersion 21 + targetSdkVersion 28 + versionCode appVersionCode + versionName appVersionName + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + signingConfig signingConfigs.release + } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - signingConfig signingConfigs.release - } - } - dataBinding { - enabled = true - } - compileOptions { - targetCompatibility 1.8 - sourceCompatibility 1.8 - } - productFlavors { - } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release + } + } + dataBinding { + enabled = true + } + compileOptions { + targetCompatibility 1.8 + sourceCompatibility 1.8 + } + productFlavors { + } - build { - doLast { - delete "$projectDir/build/outputs/apk/release/version_v2.txt" - file("$projectDir/build/outputs/apk/release/version_v2.txt").text = appVersionCode + '\n' + appVersionName - } - } + build { + doLast { + delete "$projectDir/build/outputs/apk/release/version_v2.txt" + file("$projectDir/build/outputs/apk/release/version_v2.txt").text = appVersionCode + '\n' + appVersionName + } + } - gradle.projectsEvaluated { - tasks.withType(JavaCompile.class) { - options.compilerArgs << "-Xmaxerrs" << "10000" - } - } + gradle.projectsEvaluated { + tasks.withType(JavaCompile.class) { + options.compilerArgs << "-Xmaxerrs" << "10000" + } + } - lintOptions { - abortOnError false - } + lintOptions { + abortOnError false + } - dynamicFeatures = [":dynamic__base"] + dynamicFeatures = [":dynamic__base"] -} +} -dependencies { - implementation fileTree(include: ['*.jar'], dir: 'libs') - androidTestImplementation('androidx.test.espresso:espresso-core:3.1.1', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'com.orhanobut:logger:2.2.0' - implementation 'com.google.firebase:firebase-core:16.0.7' - implementation 'com.google.firebase:firebase-crash:16.2.1' - implementation 'com.google.firebase:firebase-perf:16.2.3' +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + androidTestImplementation('androidx.test.espresso:espresso-core:3.1.1', { + exclude group: 'com.android.support', module: 'support-annotations' + }) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'com.orhanobut:logger:2.2.0' + implementation 'com.google.firebase:firebase-core:16.0.7' + implementation 'com.google.firebase:firebase-crash:16.2.1' + implementation 'com.google.firebase:firebase-perf:16.2.3' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' implementation 'androidx.appcompat:appcompat:1.1.0-alpha02' - implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'com.google.android.material:material:1.1.0-alpha03' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' - implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation 'com.google.android.material:material:1.1.0-alpha03' + implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' + implementation 'androidx.cardview:cardview:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02' implementation 'androidx.preference:preference:1.1.0-alpha03' - implementation 'com.squareup.okhttp3:okhttp:3.12.1' - implementation 'com.squareup.retrofit2:retrofit:2.3.0' - implementation 'com.squareup.retrofit2:converter-gson:2.0.0' - implementation 'com.annimon:stream:1.2.1' - implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0' - implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' - implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0' - kapt "androidx.lifecycle:lifecycle-compiler:2.0.0" - implementation 'com.danielpuiu:ghostfish:2.0.0' - annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0" - //MVVM - implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' - annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0" - implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1' - implementation 'com.jakewharton.rxbinding2:rxbinding-support-v4:2.1.1' - implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.1.1' - implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1' - implementation 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.1.1' - implementation 'com.jakewharton:butterknife:10.0.0' - annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' - implementation 'br.com.zbra:android-linq:1.1.0' - //FAB - implementation 'com.github.clans:fab:1.6.4' - //CUSTOM VIEWS - implementation 'com.github.NaimishTrivedi:FBToast:1.0' - implementation 'de.hdodenhof:circleimageview:2.2.0' - implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2' - implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar' - implementation 'com.github.andrefrsousa:SuperBottomSheet:1.2.1@aar' - implementation 'com.fede987:status-bar-alert:1.0.1' - implementation 'com.fxn769:stash:1.2' - testImplementation 'junit:junit:4.12' - implementation project(':waterfall_toolbar') - implementation 'com.mikhaellopez:lazydatepicker:1.0.0' - implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2' - //AppUpdate - implementation 'com.github.javiersantos:AppUpdater:2.7' - //Barcode - implementation project(':pointmobilescannerlibrary') - implementation project(path: ':barcode_base_library') -} -repositories { - mavenCentral() - maven { url 'https://maven.fabric.io/public' } -} + implementation 'com.squareup.okhttp3:okhttp:3.12.1' + implementation 'com.squareup.retrofit2:retrofit:2.3.0' + implementation 'com.squareup.retrofit2:converter-gson:2.0.0' + implementation 'com.annimon:stream:1.2.1' + implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0' + implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' + implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0' + kapt "androidx.lifecycle:lifecycle-compiler:2.0.0" + implementation 'com.danielpuiu:ghostfish:2.0.0' + annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0" + //MVVM + implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' + annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0" + implementation 'com.jakewharton.rxbinding2:rxbinding:2.1.1' + implementation 'com.jakewharton.rxbinding2:rxbinding-support-v4:2.1.1' + implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.1.1' + implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1' + implementation 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.1.1' + implementation 'com.jakewharton:butterknife:10.0.0' + annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' + implementation 'br.com.zbra:android-linq:1.1.0' + //FAB + implementation 'com.github.clans:fab:1.6.4' + //CUSTOM VIEWS + implementation 'com.github.NaimishTrivedi:FBToast:1.0' + implementation 'de.hdodenhof:circleimageview:2.2.0' + implementation 'net.cachapa.expandablelayout:expandablelayout:2.9.2' + implementation 'com.github.frankiesardo:linearlistview:1.0.1@aar' + implementation 'com.github.andrefrsousa:SuperBottomSheet:1.2.1@aar' + implementation 'com.fede987:status-bar-alert:1.0.1' + implementation 'com.fxn769:stash:1.2' + testImplementation 'junit:junit:4.12' + implementation project(':waterfall_toolbar') + implementation 'com.mikhaellopez:lazydatepicker:1.0.0' + implementation 'com.github.demoNo:AutoScrollViewPager:v1.0.2' + //AppUpdate + implementation 'com.github.javiersantos:AppUpdater:2.7' + //Barcode + implementation project(':pointmobilescannerlibrary') + implementation project(path: ':barcode_base_library') +} +repositories { + mavenCentral() + maven { url 'https://maven.fabric.io/public' } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index 1e8ed346..0cf64998 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -153,6 +153,8 @@ public class MainActivity extends AppCompatActivity else if(id == R.id.nav_logout){ UtilitySettings.logout(); + ServerStatusChecker.dispose(); + startLoginActivity(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java index ba5048c4..79df7b92 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/context/AppContext.java @@ -35,8 +35,6 @@ public class AppContext { this.initCrashlytics(); - this.initServerStatusChecker(); - this.initBarcode(); this.initUtilities(); @@ -67,10 +65,6 @@ public class AppContext { } } - private void initServerStatusChecker() { - ServerStatusChecker.init(); - } - private void initBarcode() { BarcodeManager.init(mContext); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java index 092790c2..7aa4148c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/context/MainContext.java @@ -6,6 +6,7 @@ import android.text.SpannableString; import java.lang.reflect.Method; import androidx.appcompat.app.AppCompatActivity; +import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.class_router.ClassRouter; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; @@ -26,9 +27,15 @@ public class MainContext { }); this.initReflections(); + + this.initServerStatusChecker(); } + private void initServerStatusChecker() { + ServerStatusChecker.init(); + } + private void initDBData(Runnable onComplete) { SettingsManager.loadDBVariables(onComplete, ex -> { DialogSimpleMessageHelper.makeErrorDialog(mContext, diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java index d6277819..99cdda0a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java @@ -4,6 +4,9 @@ import androidx.databinding.ObservableArrayList; import android.os.Parcel; import android.os.Parcelable; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -471,7 +474,7 @@ public class MtbColt extends EntityBase implements Parcelable { return posizione; } - public MtbColt setPosizione(String posizione) { + public MtbColt setPosizione(@Nullable String posizione) { this.posizione = posizione; return this; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityFirebase.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityFirebase.java index fa7c6552..6593b960 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityFirebase.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityFirebase.java @@ -8,7 +8,9 @@ import it.integry.integrywmsnative.core.settings.SettingsManager; public class UtilityFirebase { public static Trace getNewPerformanceTrace(String traceName) { - String username = SettingsManager.i().user.fullname ; + String username = SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname) ? + SettingsManager.i().user.fullname : + "N / A"; Trace newTrace = FirebasePerformance.getInstance().newTrace(traceName); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java index 3fdc3507..2180a140 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineAccettazioneInevasoViewModel.java @@ -528,18 +528,20 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl } @Override - public void onColloClosed() { + public void onColloClosed(Runnable onComplete) { if(thereIsAnOpenedUL()) { final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mActivity); progress.show(); if(thereIsAnyRowInUL()) { - updateDataFine(progress, () -> printCollo(progress)); + updateDataFine(progress, () -> printCollo(progress, onComplete)); } else { - deleteCollo(progress); + deleteCollo(progress, onComplete); } + } else { + if(onComplete != null) onComplete.run(); } } @@ -565,11 +567,11 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl } - private void printCollo(ProgressDialog progress) { + private void printCollo(ProgressDialog progress, Runnable onComplete) { MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); if(currentMtbColt.getDisablePrint() != null && currentMtbColt.getDisablePrint()){ - postCloseOperations(); + postCloseOperations(onComplete); progress.dismiss(); return; } @@ -589,7 +591,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl currentMtbColt, 1, reportName, () -> { - postCloseOperations(); + postCloseOperations(onComplete); progress.dismiss(); }, ex -> { @@ -602,7 +604,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl null, null, R.string.button_ignore_print, - () -> postCloseOperations()).show(); + () -> postCloseOperations(onComplete)).show(); }); }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress) @@ -629,7 +631,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl } - private void deleteCollo(ProgressDialog progress) { + private void deleteCollo(ProgressDialog progress, Runnable onComplete) { ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> { mArticoliInColloBottomSheetViewModel.mtbColt.set(null); @@ -637,8 +639,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl isFabVisible.set(true); progress.dismiss(); - }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress) - ); + if(onComplete != null) onComplete.run(); + }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)); } @@ -653,7 +655,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl - private void postCloseOperations() { + private void postCloseOperations(Runnable onComplete) { MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); @@ -682,6 +684,8 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl removeListFilter(); refreshOrderBy(true); + if(onComplete != null) onComplete.run(); + } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index bde8cda1..fc05b3ee 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -22,6 +22,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; import it.integry.integrywmsnative.MainActivity; import it.integry.integrywmsnative.R; @@ -469,8 +470,8 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked private void posizionaCollo(Runnable onComplete, Runnable onAbort, RunnableArgs onFailed) { DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> { - if(mtbDepoPosizione != null) { - mtbColt.get().setPosizione(mtbDepoPosizione.getPosizione()); + if(mtbDepoPosizione != null && mtbColt.get() != null) { + Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione()); onComplete.run(); } else { onAbort.run(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index afb3324a..35186e42 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -118,7 +118,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS ButterKnife.bind(this, mBinding.getRoot()); - mWaterfallToolbar.setRecyclerView(mBinding.venditaMainList); + if(mWaterfallToolbar != null) mWaterfallToolbar.setRecyclerView(mBinding.venditaMainList); return mBinding.getRoot(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java index 6eb0277c..665e5718 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/VenditaOrdineInevasoActivity.java @@ -72,10 +72,11 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity { if(mArticoliInColloBottomSheetViewModel.isExpanded()){ mArticoliInColloBottomSheetViewModel.collapse(); } else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) { - mArticoliInColloBottomSheetViewModel.closeCurrentUL(); + mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> { + BarcodeManager.removeCallback(barcodeScannerIstanceID); + super.onBackPressed(); + }); - BarcodeManager.removeCallback(barcodeScannerIstanceID); - super.onBackPressed(); } else { BarcodeManager.removeCallback(barcodeScannerIstanceID); super.onBackPressed(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index 45f92313..44588839 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -800,21 +800,21 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } @Override - public void onColloClosed() { + public void onColloClosed(Runnable onComplete) { if(thereIsAnOpenedUL()) { - final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting), - mActivity.getText(R.string.loading) + " ...", true); + final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mActivity); progress.show(); if(thereIsAnyRowInUL()) { - updateDataFine(progress, () -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress, generatedMtbColts))); + updateDataFine(progress, () -> distribuisciCollo(progress, (generatedMtbColts) -> printCollo(progress, generatedMtbColts, onComplete))); } else { if(mtbColtSessionID != null) ColliDataRecover.closeSession(mtbColtSessionID); - deleteCollo(progress); - + deleteCollo(progress, onComplete); } + } else { + if(onComplete != null) onComplete.run(); } } @@ -853,7 +853,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO }); } - private void printCollo(ProgressDialog progress, List mtbColtsToPrint) { + private void printCollo(ProgressDialog progress, List mtbColtsToPrint, Runnable onComplete) { DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> { if(shouldPrint) { @@ -864,7 +864,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO if (value.size() > 0) { try { cyclicPrint(mtbColtsToPrint.iterator(), value.get(0), () -> { - postCloseOperations(mtbColtsToPrint); + postCloseOperations(mtbColtsToPrint, onComplete); progress.dismiss(); }, ex -> { progress.dismiss(); @@ -875,17 +875,17 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO null, null, R.string.button_ignore_print, - () -> postCloseOperations(mtbColtsToPrint)).show(); + () -> postCloseOperations(mtbColtsToPrint, onComplete)).show(); }); } catch (Exception ex) { UtilityExceptions.defaultException(mActivity, ex, progress); - postCloseOperations(mtbColtsToPrint); + postCloseOperations(mtbColtsToPrint, onComplete); } } else { progress.dismiss(); String errorMessage = "Nessuna stampante configurata"; - DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtsToPrint)).show(); + DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtsToPrint, onComplete)).show(); } } @@ -895,7 +895,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } }); } else { - postCloseOperations(mtbColtsToPrint); + postCloseOperations(mtbColtsToPrint, onComplete); progress.dismiss(); } }).show(); @@ -925,7 +925,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } - private void deleteCollo(ProgressDialog progress) { + private void deleteCollo(ProgressDialog progress, Runnable onComplete) { ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> { mArticoliInColloBottomSheetViewModel.mtbColt.set(null); @@ -933,6 +933,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO isFabVisible.set(true); progress.dismiss(); + + + if(onComplete != null) onComplete.run(); }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress) ); } @@ -948,7 +951,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } - private void postCloseOperations(List generatedMtbColt) { + private void postCloseOperations(List generatedMtbColt, Runnable onComplete) { MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); @@ -983,6 +986,8 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO removeListFilter(); refreshOrderBy(true); + + if(onComplete != null) onComplete.run(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java index 9a0fc23e..161d4707 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/interfaces/IOnColloClosedCallback.java @@ -2,6 +2,6 @@ package it.integry.integrywmsnative.view.bottomsheet.interfaces; public interface IOnColloClosedCallback { - void onColloClosed(); + void onColloClosed(Runnable onComplete); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java index af0b9a1e..c7f3e85e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/viewmodel/ArticoliInColloBottomSheetViewModel.java @@ -121,7 +121,11 @@ public class ArticoliInColloBottomSheetViewModel { public void closeCurrentUL(){ - if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed(); + closeCurrentUL(null); + } + + public void closeCurrentUL(Runnable onComplete){ + if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed(onComplete); } public boolean isExpanded() { diff --git a/app/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java b/app/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java deleted file mode 100644 index 8fdc1a32..00000000 --- a/app/src/main/java/it/integry/wms/dynamic_customization/DynamicContext.java +++ /dev/null @@ -1,27 +0,0 @@ -package it.integry.wms.dynamic_customization; - -import android.content.Context; -import android.util.Log; - -import it.integry.integrywmsnative.core.class_router.ClassRouter; -import it.integry.integrywmsnative.core.utility.UtilityExceptions; -import it.integry.wms.dynamic_customization.extensions.FiltroOrdiniVendita; -import it.integry.wms.dynamic_customization.extensions.OrdiniVendita; - -public class DynamicContext { - - public void init(Context context) { - Log.d("DynamicContext", "Caricamento personalizzazioni per VGAlimenti"); - - try { - ClassRouter.registerPath(ClassRouter.PATH.FILTRO_ORDINI_VENDITA, FiltroOrdiniVendita.class); - ClassRouter.registerPath(ClassRouter.PATH.ORDINI_VENDITA, OrdiniVendita.class); - } catch (Exception ex) { - UtilityExceptions.defaultException(context, ex); - } - - Log.d("DynamicContext", "Caricamento personalizzazioni per VGAlimenti COMPLETATO"); - - } - -} diff --git a/app/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java b/app/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java deleted file mode 100644 index abd5256a..00000000 --- a/app/src/main/java/it/integry/wms/dynamic_customization/extensions/FiltroOrdiniVendita.java +++ /dev/null @@ -1,12 +0,0 @@ -package it.integry.wms.dynamic_customization.extensions; - -import it.integry.integrywmsnative.core.class_router.interfaces.IFiltroOrdiniVendita; - -public class FiltroOrdiniVendita implements IFiltroOrdiniVendita { - - - @Override - public boolean shoudShowCodMdepFilter() { - return true; - } -} diff --git a/app/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/app/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java deleted file mode 100644 index 2ef1e817..00000000 --- a/app/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java +++ /dev/null @@ -1,45 +0,0 @@ -package it.integry.wms.dynamic_customization.extensions; - -import android.app.ProgressDialog; - -import java.util.List; - -import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; -import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO; -import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.model.MtbColt; -import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.core.utility.UtilityString; -import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO; - -public class OrdiniVendita implements IOrdiniVendita { - - @Override - public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) { - - - - String codMdepOrder = testateOrdini.get(0).ordini.get(0).getCodMdep(); - - //Se il deposito del collo รจ diverso dal deposito dell'utente allora sto "evadendo" la merce per una vendita presente - //su un altro deposito - if(!UtilityString.isNullOrEmpty(codMdepOrder) && - !codMdepOrder.equalsIgnoreCase(SettingsManager.i().userSession.depo.getCodMdep())) { - - ColliMagazzinoRESTConsumer.distribuisciCollo(mtbColt, - DistribuzioneColloDTO.CriterioDistribuzione.UPDATE, - onComplete, - onFailed); - - } else { - - ColliMagazzinoRESTConsumer.distribuisciCollo(mtbColt, - SettingsManager.iDB().getDefaultCriterioDistribuzione(), - onComplete, - onFailed); - } - - - } -} diff --git a/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java b/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java index 4343d544..0e21237a 100644 --- a/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java +++ b/pointmobilescannerlibrary/src/main/java/it/integry/pointmobilescannerlibrary/PointMobileBarcodeReader.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.Intent; import android.util.Log; +import java.nio.charset.StandardCharsets; + import device.common.DecodeResult; import device.common.ScanConst; import device.sdk.ScanManager; @@ -91,9 +93,15 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface { } if(mDecodeResult != null) { + String stringValue = null; + + if(mDecodeResult.decodeValue != null && mDecodeResult.decodeValue.length > 0) { + stringValue = new String(mDecodeResult.decodeValue, StandardCharsets.UTF_8); + } + BarcodeScanDTO barcodeScanDTO = new BarcodeScanDTO() .setByteValue(mDecodeResult.decodeValue) - .setStringValue(mDecodeResult.toString().replaceAll("\n", "").replaceAll("\r", "").trim()) + .setStringValue(stringValue) .setType(BarcodeType.fromInt(mDecodeResult.symType)) .setName(mDecodeResult.symName) .setDecodingTime(mDecodeResult.decodeTimeMillisecond);