diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 85e8be7f..2dc95449 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 15cbf8d7..fe0901fe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 32 - def appVersionName = '1.0.29' + def appVersionCode = 33 + def appVersionName = '1.0.30' signingConfigs { release { @@ -95,11 +95,12 @@ dependencies { implementation 'com.crashlytics.sdk.android:crashlytics:2.9.8' implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'com.google.android.material:material:1.1.0-alpha02' + 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-alpha01' + implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02' implementation 'androidx.preference:preference:1.1.0-alpha02' + 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' diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java index 4001ba3e..b974b8c6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java @@ -6,6 +6,7 @@ import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityServer; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -14,11 +15,11 @@ public class ServerStatusChecker { private static ServerStatusChecker istance = new ServerStatusChecker(); - private List> mCallback = new ArrayList<>(); + private List> mCallback = new ArrayList<>(); - private ISingleValueOperationCallback mInternalCallback = value -> { - for (ISingleValueOperationCallback callback : mCallback) { - callback.onResult(value); + private RunnableArgs mInternalCallback = value -> { + for (RunnableArgs callback : mCallback) { + callback.run(value); } }; @@ -31,18 +32,18 @@ public class ServerStatusChecker { @Override public void run() { if(shouldExecute && !UtilityString.isNullOrEmpty(SettingsManager.i().server.host)) { - UtilityServer.isHostReachable(SettingsManager.i().server.host, SettingsManager.i().server.port, mInternalCallback); + UtilityServer.isEmsApiAvailable(SettingsManager.i().server.host, SettingsManager.i().server.port, mInternalCallback); handler.postDelayed(this, MILLIS_DELAY); } } }; - public void addCallback(ISingleValueOperationCallback callback){ + public void addCallback(RunnableArgs callback){ this.mCallback.add(callback); } - public void removeCallback(ISingleValueOperationCallback callback){ + public void removeCallback(RunnableArgs callback){ this.mCallback.remove(callback); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java index a57129c8..740afc6c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityServer.java @@ -6,6 +6,10 @@ import java.net.Socket; import java.net.SocketAddress; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; public class UtilityServer { @@ -31,8 +35,26 @@ public class UtilityServer { callback.onResult(connected); }).start(); + } + public static void isEmsApiAvailable(final String serverAddress, final int serverTCPport, final RunnableArgs callback) { + new Thread(() -> { + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder() + .url(String.format("http://%s:%d/ems-api/retail/status", serverAddress, serverTCPport)) + .build(); + + try { + Response response = client.newCall(request).execute(); + boolean status = response.isSuccessful(); + response.close(); + callback.run(status); + } catch (IOException e) { + callback.run(false); + } + + }).start(); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java index 74327678..027e28d4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java @@ -110,7 +110,7 @@ public class LoginViewModel { final String host = u.getHost(); final int port = u.getPort(); - UtilityServer.isHostReachable(host, port, value1 -> { + UtilityServer.isEmsApiAvailable(host, port, value1 -> { if(value1){ //Is online loginHelper.doLogin(host, port, new ISimpleOperationCallback() { 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 057d6b37..ed0ded79 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 @@ -9,6 +9,8 @@ import android.text.SpannableString; import com.annimon.stream.Stream; import com.tfb.fbtoast.FBToast; +import org.jetbrains.annotations.NotNull; + import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; @@ -807,7 +809,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO } - private void cyclicPrint(Iterator sourceMtbColts, String printerName, Runnable onComplete, RunnableArgs onAbort) { + private void cyclicPrint(@NotNull Iterator sourceMtbColts, String printerName, Runnable onComplete, RunnableArgs onAbort) { if(sourceMtbColts.hasNext()){ singlePrint(sourceMtbColts.next(), printerName, () -> { cyclicPrint(sourceMtbColts, printerName, onComplete, onAbort); @@ -899,7 +901,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO List filteredMtbColrs = Stream.of(currentMtbColrs).filter( x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()) && - (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag()))) + (!SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() || (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() && ((x.getPartitaMag() == null && item.getPartitaMag() == null) || (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag())))))) .toList(); float qtaEvasaTotaleInMtbColr = 0; diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java index 858cbe39..ef9449a3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java @@ -22,6 +22,8 @@ import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; +import org.jetbrains.annotations.NotNull; + import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; @@ -218,7 +220,7 @@ public class DialogInputQuantity { return new DialogInputQuantity(context, dto, canOverflowQuantity, dialogCallback, onAbort).currentAlert; } - public DialogInputQuantity(Context context, final DTO dto, boolean canOverflowQuantity, final ISingleValueOperationCallback dialogCallback, final Runnable onAbort) { + public DialogInputQuantity(@NotNull Context context, @NotNull final DTO dto, boolean canOverflowQuantity, final ISingleValueOperationCallback dialogCallback, final Runnable onAbort) { currentContext = context; currentMtbAart = dto.getMtbAart(); currentDTO = dto; @@ -288,7 +290,7 @@ public class DialogInputQuantity { setupBarcode(context); } - private void setupQuantities(DTO dto, QuantityDTO quantityDTO){ + private void setupQuantities(@NotNull DTO dto, QuantityDTO quantityDTO){ if(dto.getQtaTot() != null) quantityDTO.qtaTot.set(dto.getQtaTot().floatValue()); if(dto.getMaxQta() != null) quantityDTO.maxQta.set(dto.getMaxQta().floatValue()); diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 2ea257ff..dda9c56a 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -19,6 +19,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/gray_detail_background" + android:padding="0dp" app:el_duration="400" app:el_expanded="false"> @@ -27,7 +28,8 @@ android:layout_height="wrap_content" android:background="@color/red_600" android:orientation="vertical" - android:paddingLeft="8dp" + android:paddingStart="8dp" + android:paddingEnd="8dp" android:paddingTop="12dp" android:paddingBottom="12dp">