From b1941d5c348ae6d303ec5eeff027fbda97beb2a3 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 11 Nov 2020 10:48:08 +0100 Subject: [PATCH] Aggiornato Gradle. Sistemati i testi dei bottoni in dialog base. Implementato logout nel dialog di errore all'avvio dell'app. --- .../integrywmsnative/MainActivity.java | 2 +- .../integrywmsnative/MainApplication.java | 2 + .../MainApplicationComponent.java | 5 ++ .../core/context/AppContext.java | 8 +++ .../core/context/MainContext.java | 14 +++-- .../consumers/MesRESTConsumerService.java | 2 +- .../core/utility/UtilitySettings.java | 10 +++- .../base/DialogSimpleMessageHelper.java | 54 +++++++++--------- .../base/DialogSimpleMessageViewModel.java | 30 ++++++++++ app/src/main/res/layout/dialog_base.xml | 57 ++++++++++++++++--- build.gradle | 2 +- 11 files changed, 144 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index f4c51d0c..c3e6981c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -175,8 +175,8 @@ public class MainActivity extends BaseActivity break; case R.id.nav_logout: - UtilitySettings.logout(this.mAppDatabase); ServerStatusChecker.dispose(); + UtilitySettings.logout(); startLoginActivity(); break; diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index 4bb36e80..00bfc562 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -34,6 +34,8 @@ public class MainApplication extends Application { .roomModule(roomModule) .build(); + appComponent.inject(appContext); + appContext.init(); res = getResources(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index 4e2d206f..f5200838 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -3,6 +3,7 @@ package it.integry.integrywmsnative; import javax.inject.Singleton; import dagger.Component; +import it.integry.integrywmsnative.core.context.AppContext; import it.integry.integrywmsnative.core.data_store.db.RoomModule; import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent; import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule; @@ -47,4 +48,8 @@ public interface MainApplicationComponent { PickingResiComponent.Factory pickingResiComponent(); DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component(); + + + void inject(AppContext appContext); + } 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 b00b35f3..8f752c4d 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 @@ -6,12 +6,16 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.orhanobut.logger.AndroidLogAdapter; import com.orhanobut.logger.Logger; +import javax.inject.Inject; + import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.core.data_recover.ColliDataRecover; +import it.integry.integrywmsnative.core.data_store.db.AppDatabase; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.Stash; import it.integry.integrywmsnative.core.utility.UtilityContext; import it.integry.integrywmsnative.core.utility.UtilityResources; +import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityToast; @@ -20,6 +24,9 @@ public class AppContext { //Note: this is the Application Context NOT the Activity Context private final Context mContext; + @Inject + AppDatabase mAppDatabase; + public AppContext(Context context) { this.mContext = context; } @@ -63,6 +70,7 @@ public class AppContext { UtilityContext.initApplicationContext(mContext); UtilityResources.init(mContext); UtilityToast.init(mContext); + UtilitySettings.init(mAppDatabase); } private void initLogger() { 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 16ccf091..8d425f15 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 @@ -3,15 +3,18 @@ package it.integry.integrywmsnative.core.context; import android.content.Context; import android.text.SpannableString; -import java.lang.reflect.Method; - import androidx.appcompat.app.AppCompatActivity; -import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; +import java.lang.reflect.Method; + +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.class_router.ClassRouter; +import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; public class MainContext { @@ -44,7 +47,10 @@ public class MainContext { private void initDBData(Runnable onComplete) { SettingsManager.loadDBVariables(onComplete, ex -> { DialogSimpleMessageHelper.makeErrorDialog(mContext, - new SpannableString(ex.getMessage()), null, mContext::finish).show(); + new SpannableString(ex.getMessage()), null, mContext::finish, R.string.logout, () -> { + UtilitySettings.logout(); + MainApplication.exit(); + }).show(); } ); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java index 09a058fd..ae48d79b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MesRESTConsumerService.java @@ -11,7 +11,7 @@ import retrofit2.http.Query; public interface MesRESTConsumerService { - @GET("mes/getOrdiniLavorazioneMateriale") + @GET("mes_v2/getOrdiniLavorazioneMateriale") Call>> getOrdiniLavorazioneMateriale(@Query("codJfas") String codJfas, @Query("idMateriale") String idMateriale); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java index 1c12f951..1574c6f9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilitySettings.java @@ -6,10 +6,16 @@ import it.integry.integrywmsnative.core.settings.SettingsManager; public class UtilitySettings { - public static void logout(AppDatabase appDatabase){ + private static AppDatabase mAppDatabase; + + public static void init(AppDatabase appDatabase) { + mAppDatabase = appDatabase; + } + + public static void logout(){ SettingsManager.i().setUser(null); SettingsManager.i().setUserSession(null); - UtilityThread.executeParallel(appDatabase::clearAllTables); + UtilityThread.executeParallel(mAppDatabase::clearAllTables); SettingsManager.update(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java index 964ac72e..dbbe9aa5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageHelper.java @@ -1,7 +1,6 @@ package it.integry.integrywmsnative.view.dialogs.base; import android.app.Activity; -import androidx.appcompat.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.res.ColorStateList; @@ -9,22 +8,20 @@ import android.graphics.Color; import android.graphics.Rect; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; -import androidx.annotation.StringRes; -import androidx.core.content.ContextCompat; -import androidx.appcompat.widget.AppCompatImageView; - import android.text.SpannableString; import android.text.Spanned; import android.view.LayoutInflater; -import android.view.View; 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 androidx.databinding.DataBindingUtil; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.databinding.DialogBaseBinding; @@ -41,9 +38,11 @@ public class DialogSimpleMessageHelper { ERROR(4); private int value; + TYPE(int value) { this.value = value; } + public int getValue() { return this.value; } @@ -56,15 +55,15 @@ public class DialogSimpleMessageHelper { } } - private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){ - LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + private static Dialog makeBase(TYPE type, Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick, @StringRes Integer rNeutralButtonString, Runnable onNeutralClick) { + LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); int colorBackgroundTitle = -1; Drawable titleIconRes = null; Dialog dialog = new Dialog(mContext); - switch (type){ + switch (type) { case INFO: colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300); titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp); @@ -91,7 +90,11 @@ public class DialogSimpleMessageHelper { viewModel .setOnPositive(onPositiveClick) .setOnNeutral(onNeutralClick) - .setOnNegative(onNegativeClick); + .setOnNegative(onNegativeClick) + + .setPositiveButtonText(mContext.getText(R.string.ok).toString()) + .setNeutralButtonText(rNeutralButtonString != null && rNeutralButtonString != -1 ? mContext.getText(rNeutralButtonString).toString() : null) + .setNegativeButtonText(mContext.getText(R.string.no).toString()); DialogBaseBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_base, null, false); @@ -99,12 +102,10 @@ public class DialogSimpleMessageHelper { mBinding.setViewmodel(viewModel); - Rect displayRectangle = new Rect(); Window window = ((Activity) mContext).getWindow(); window.getDecorView().getWindowVisibleDisplayFrame(displayRectangle); - mBinding.titleContainer.setMinimumWidth((int)(displayRectangle.width() * 0.8f)); - + mBinding.titleContainer.setMinimumWidth((int) (displayRectangle.width() * 0.8f)); //Title VIEW @@ -120,7 +121,7 @@ public class DialogSimpleMessageHelper { LinearLayout hashMapContainer = mBinding.dialogContentHashmap; - if(hashmapContent != null) { + if (hashmapContent != null) { for (int i = 0; i < hashmapContent.keySet().size(); i++) { String currentKey = hashmapContent.keySet().toArray()[i].toString(); String currentValue = hashmapContent.get(currentKey); @@ -142,7 +143,7 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.INFO, mContext, titleText, @@ -153,7 +154,7 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){ + public static Dialog makeInfoDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) { return makeBase(TYPE.INFO, mContext, titleText, @@ -164,7 +165,7 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeSuccessDialog(Context mContext, String titleText, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.SUCCESS, mContext, titleText, @@ -175,18 +176,20 @@ public class DialogSimpleMessageHelper { } - public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick){ + public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, Runnable onNegativeClick) { return makeBase(TYPE.WARNING, mContext, mContext.getText(R.string.warning).toString(), messageText, hashmapContent, onPositiveClick, - () -> { if(onNegativeClick != null) onNegativeClick.run(); }, -1, null); + () -> { + if (onNegativeClick != null) onNegativeClick.run(); + }, -1, null); } - public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeWarningDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.WARNING, mContext, mContext.getText(R.string.warning).toString(), @@ -196,7 +199,7 @@ public class DialogSimpleMessageHelper { null, -1, null); } - public static void showSimpleWarningDialog(Context context, String message){ + public static void showSimpleWarningDialog(Context context, String message) { makeErrorDialog( context, new SpannableString(message), @@ -204,7 +207,7 @@ public class DialogSimpleMessageHelper { null).show(); } - public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick){ + public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick) { return makeBase(TYPE.ERROR, mContext, @@ -215,7 +218,7 @@ public class DialogSimpleMessageHelper { null, -1, null); } - public static void showSimpleErrorDialog(Context context, String message){ + public static void showSimpleErrorDialog(Context context, String message) { makeErrorDialog( context, new SpannableString(message), @@ -223,7 +226,7 @@ public class DialogSimpleMessageHelper { null).show(); } - public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick){ + public static Dialog makeErrorDialog(Context mContext, Spanned messageText, HashMap hashmapContent, Runnable onPositiveClick, @StringRes int rNeutralButtonString, Runnable onNeutralClick) { return makeBase(TYPE.ERROR, mContext, @@ -236,5 +239,4 @@ public class DialogSimpleMessageHelper { } - } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java index 2d3ed9e4..3a217b53 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/base/DialogSimpleMessageViewModel.java @@ -11,6 +11,9 @@ public class DialogSimpleMessageViewModel { private Runnable onNeutral; private Runnable onNegative; + private String positiveButtonText; + private String neutralButtonText; + private String negativeButtonText; public DialogSimpleMessageViewModel(Dialog dialog) { mDialog = dialog; @@ -46,6 +49,33 @@ public class DialogSimpleMessageViewModel { } + public String getPositiveButtonText() { + return positiveButtonText; + } + + public DialogSimpleMessageViewModel setPositiveButtonText(String positiveButtonText) { + this.positiveButtonText = positiveButtonText; + return this; + } + + public String getNeutralButtonText() { + return neutralButtonText; + } + + public DialogSimpleMessageViewModel setNeutralButtonText(String neutralButtonText) { + this.neutralButtonText = neutralButtonText; + return this; + } + + public String getNegativeButtonText() { + return negativeButtonText; + } + + public DialogSimpleMessageViewModel setNegativeButtonText(String negativeButtonText) { + this.negativeButtonText = negativeButtonText; + return this; + } + public void onPositiveClick() { mDialog.dismiss(); if(onPositive != null) onPositive.run(); diff --git a/app/src/main/res/layout/dialog_base.xml b/app/src/main/res/layout/dialog_base.xml index 1aa04bfa..6b7ddd31 100644 --- a/app/src/main/res/layout/dialog_base.xml +++ b/app/src/main/res/layout/dialog_base.xml @@ -123,7 +123,7 @@ app:layout_constraintEnd_toStartOf="@id/center_guideline" app:strokeColor="@color/colorPrimary" android:onClick="@{() -> viewmodel.onNegativeClick()}" - android:text="@string/no"/> + android:text="@{viewmodel.negativeButtonText}"/> + android:text="@{viewmodel.positiveButtonText}"/> @@ -173,7 +173,7 @@ app:layout_constraintStart_toStartOf="@id/ok_left_buttons_guideline" app:layout_constraintEnd_toEndOf="@id/ok_right_buttons_guideline" android:onClick="@{() -> viewmodel.onPositiveClick()}" - android:text="@string/ok"/> + android:text="@{viewmodel.positiveButtonText}"/> @@ -184,7 +184,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" - android:visibility="@{viewmodel.neutralVisible ? View.VISIBLE : View.GONE}"> + android:visibility="@{viewmodel.negativeVisible && viewmodel.neutralVisible ? View.VISIBLE : View.GONE}"> + android:text="@{viewmodel.negativeButtonText}"/> + android:text="@{viewmodel.neutralButtonText}"/> + android:text="@{viewmodel.positiveButtonText}"/> + + + + + + + + + + + + + diff --git a/build.gradle b/build.gradle index ac4a0e5d..ca743e40 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:4.1.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.firebase:perf-plugin:1.3.3'