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..04024801 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityFirebase.java @@ -0,0 +1,20 @@ +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); + + return newTrace; + } + +}