diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 86593ed0..ca2abbe3 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 6623a91a..4ddfd5b6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,8 +21,8 @@ android { applicationId "it.integry.integrywmsnative" minSdkVersion 21 targetSdkVersion 28 - versionCode 10 - versionName "1.0.7" + versionCode 11 + versionName "1.0.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index d7237c3e..2acaab81 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -7,6 +7,8 @@ import android.content.res.Resources; import android.text.SpannableString; import com.crashlytics.android.Crashlytics; +import com.google.firebase.perf.FirebasePerformance; +import com.google.firebase.perf.metrics.Trace; import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.Logger; @@ -33,9 +35,11 @@ public class MainApplication extends Application { @Override public void onCreate() { super.onCreate(); + if(!BuildConfig.DEBUG) { Fabric.with(this, new Crashlytics()); } + Stash.init(this); SettingsManager.init(this); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java index 4d65da82..a79f5168 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java @@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.settings; import android.content.Context; +import com.google.firebase.perf.metrics.Trace; + import java.util.List; import it.integry.integrywmsnative.R; @@ -11,6 +13,7 @@ import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.utility.UtilityFirebase; public class SettingsManager { @@ -68,11 +71,24 @@ public class SettingsManager { public static void reloadDBVariables(Runnable onComplete, RunnableArgs onFailed){ dbSettingsModelIstance = new DBSettingsModel(); + Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("_db_reload_vars"); + perfTrace.start(); + + Runnable tmpOnComplete = () -> { + perfTrace.stop(); + onComplete.run(); + }; + + RunnableArgs tmpOnFailed = ex -> { + perfTrace.putAttribute("failed", "true"); + onFailed.run(ex); + }; + loadDatiAzienda(() -> loadAvailableProfiles(() -> loadAvailableCodMdeps(() -> loadAvailablePosizioni(() -> - loadGestSetupValues(onComplete, onFailed) ,onFailed), onFailed), onFailed), onFailed); + loadGestSetupValues(tmpOnComplete, tmpOnFailed) ,tmpOnFailed), tmpOnFailed), tmpOnFailed), tmpOnFailed); } private static void loadDatiAzienda(Runnable onComplete, RunnableArgs onFailed) { 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 new file mode 100644 index 00000000..747a5a47 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityFirebase.java @@ -0,0 +1,30 @@ +package it.integry.integrywmsnative.core.utility; + +import com.google.firebase.perf.FirebasePerformance; +import com.google.firebase.perf.metrics.Trace; + +import it.integry.integrywmsnative.core.settings.SettingsManager; + +public class UtilityFirebase { + + public static Trace getNewPerformanceTrace(String traceName) { + String username = SettingsManager.i().user.fullname; + + Trace newTrace = FirebasePerformance.getInstance().newTrace(traceName); + + newTrace.putAttribute("user_fullame", username); + newTrace.putAttribute("profile_db", SettingsManager.i().userSession.profileDB); + + return newTrace; + } + + + public static void stopPerformanceTrace(Trace traceToStop, boolean withError) { + if(withError) { + traceToStop.putAttribute("failed", "true"); + } + + traceToStop.stop(); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java index 2e80691a..ac29c5c9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/core/VenditaHelper.java @@ -4,6 +4,7 @@ import android.content.Context; import android.text.TextUtils; import android.util.Log; +import com.google.firebase.perf.metrics.Trace; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; @@ -23,6 +24,7 @@ import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityFirebase; import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO; import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO; @@ -43,6 +45,9 @@ public class VenditaHelper { public void loadOrdini(final ILoadOrdiniCallback callback){ String codMdep = SettingsManager.i().userSession.depo.getCodMdep(); + Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("_db_load_ords_v"); + perfTrace.start(); + OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); service.listOrdiniInevasi(codMdep).enqueue(new Callback>>() { @Override @@ -52,16 +57,20 @@ public class VenditaHelper { if(response.body() != null) { if(response.body().getEsito() == EsitoType.OK) { + UtilityFirebase.stopPerformanceTrace(perfTrace, false); callback.onLoadSuccess(response.body().getDto()); } else { + UtilityFirebase.stopPerformanceTrace(perfTrace, true); Log.e("Vendita", response.body().getErrorMessage()); callback.onLoadFail(new Exception(response.body().getErrorMessage())); } } else { + UtilityFirebase.stopPerformanceTrace(perfTrace, true); Log.e("Vendita", response.message()); callback.onLoadFail(new Exception(response.message())); } } else { + UtilityFirebase.stopPerformanceTrace(perfTrace, true); Log.e("Vendita", "Status " + response.code() + ": " + response.message()); callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message())); } @@ -69,6 +78,7 @@ public class VenditaHelper { @Override public void onFailure(Call>> call, Throwable t) { + UtilityFirebase.stopPerformanceTrace(perfTrace, true); Log.e("Vendita", t.toString()); UtilityLogger.errorMe(new Exception(t)); callback.onLoadFail(new Exception(t)); @@ -85,6 +95,9 @@ public class VenditaHelper { OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class); + Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("_db_load_pick_v"); + perfTrace.start(); + service.getPickingList(codMdep, dateCons, joinedBarcodes).enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { @@ -92,16 +105,21 @@ public class VenditaHelper { if(response.body() != null) { if(response.body().getEsito() == EsitoType.OK) { + UtilityFirebase.stopPerformanceTrace(perfTrace, false); callback.onLoadSuccess(response.body().getDto()); + } else { Log.e("Vendita", response.body().getErrorMessage()); + UtilityFirebase.stopPerformanceTrace(perfTrace, true); callback.onLoadFail(new Exception(response.message())); } } else { Log.e("Vendita", response.message()); + UtilityFirebase.stopPerformanceTrace(perfTrace, true); callback.onLoadFail(new Exception(response.message())); } } else { + UtilityFirebase.stopPerformanceTrace(perfTrace, true); Log.e("Vendita", "Status " + response.code() + ": " + response.message()); callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message())); } @@ -109,6 +127,7 @@ public class VenditaHelper { @Override public void onFailure(Call>> call, Throwable t) { + UtilityFirebase.stopPerformanceTrace(perfTrace, true); Log.e("Vendita", t.toString()); UtilityLogger.errorMe(new Exception(t)); callback.onLoadFail(new Exception(t));