diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
new file mode 100644
index 00000000..381aae33
--- /dev/null
+++ b/.idea/assetWizardSettings.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index b4164631..0c52a498 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 25e0d4c9..096280d9 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -10,6 +10,7 @@
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 6f56623a..75da5c86 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -5,6 +5,7 @@
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c0ba07b8..f429e6dc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -29,16 +29,12 @@ android {
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
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.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:design:27.1.1'
@@ -46,46 +42,34 @@ dependencies {
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.support:preference-v7:27.1.1'
-
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.0'
-
implementation 'org.parceler:parceler-api:1.1.10'
annotationProcessor 'org.parceler:parceler:1.1.10'
-
implementation 'com.annimon:stream:1.2.1'
-
//MVVM
- implementation "android.arch.lifecycle:extensions:1.1.1"
+ implementation 'android.arch.lifecycle:extensions:1.1.1'
annotationProcessor "android.arch.lifecycle:compiler:1.1.1"
-
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:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
-
implementation 'br.com.zbra:android-linq:1.1.0'
-
//FAB
//implementation 'com.getbase:floatingactionbutton:1.10.1'
implementation 'com.github.clans:fab:1.6.4'
-
+ //CUSTOM VIEWS
implementation 'de.hdodenhof:circleimageview:2.2.0'
-
- implementation 'com.fxn769:stash:1.2'
-
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')
}
repositories {
mavenCentral()
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 25005f02..d70e7d87 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,9 +26,19 @@
-
+ android:theme="@style/AppTheme.NoActionBar"
+ android:windowSoftInputMode="adjustNothing" />
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
index 2faa6da6..f9480c22 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
@@ -12,6 +12,7 @@ import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.settings.Stash;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
@@ -30,6 +31,7 @@ public class MainApplication extends Application {
SettingsManager.init(this);
ServerStatusChecker.init();
+// UtilityExceptions.init(this);
UtilityResources.init(this);
Logger.addLogAdapter(new AndroidLogAdapter());
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java
index 3f527d11..2fe01208 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java
@@ -25,6 +25,8 @@ public class CommonRESTException {
return "Errore di comunicazione con il server remoto. Riprova.";
} else if(ex instanceof SocketTimeoutException){
return "Errore di timeout durante la comunicazione con il server remoto. Riprova.";
+ } else if(ex.getMessage().startsWith("Printer not found")){
+ return "Stampante non configurata";
} else {
return null;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java
index 4b4ec1b1..68fdd481 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/RESTBuilder.java
@@ -1,5 +1,7 @@
package it.integry.integrywmsnative.core.REST;
+import java.util.concurrent.TimeUnit;
+
import it.integry.integrywmsnative.core.settings.SettingsManager;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
@@ -15,11 +17,20 @@ public class RESTBuilder {
// return getService(service, "192.168.2.13", 8080);
return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true);
+ }
+ public static T getService(final Class service, long timeout) {
+// return getService(service, "192.168.2.13", 8080);
+ return getService(service, SettingsManager.i().server.host, SettingsManager.i().server.port, true);
+
}
public static T getService(final Class service, String host, int port, boolean addInterceptors){
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
+ clientBuilder.connectTimeout(30, TimeUnit.SECONDS);
+ clientBuilder.readTimeout(30, TimeUnit.SECONDS);
+ clientBuilder.writeTimeout(30, TimeUnit.SECONDS);
+
if(addInterceptors) clientBuilder.addInterceptor(new HttpInterceptor());
OkHttpClient client = clientBuilder.build();
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/DepositoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/DepositoRESTConsumer.java
new file mode 100644
index 00000000..7e69f23a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/DepositoRESTConsumer.java
@@ -0,0 +1,35 @@
+package it.integry.integrywmsnative.core.REST.consumers;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.model.CommonModelConsts;
+import it.integry.integrywmsnative.core.model.MtbDepo;
+import it.integry.integrywmsnative.core.utility.UtilityLogger;
+import it.integry.integrywmsnative.generated.callback.Runnable;
+
+public class DepositoRESTConsumer {
+
+ public static void getDepoByCodMdep(String codMdep, RunnableArgs onComplete) {
+
+ MtbDepo mtbDepo = new MtbDepo();
+ mtbDepo.setCodMdep(codMdep);
+ mtbDepo.setOperation(CommonModelConsts.OPERATION.SELECT);
+ mtbDepo.setOnlyPkMaster(false);
+
+ EntityRESTConsumer.selectEntity(mtbDepo, new ISimpleOperationCallback>() {
+ @Override
+ public void onSuccess(List value) {
+ if(value != null && value.size() > 0) {
+ onComplete.run(value.get(0));
+ }
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ UtilityLogger.errorMe(ex);
+ }
+ }, MtbDepo.class);
+ }
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java
index 76b025f1..cbb496df 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java
@@ -6,6 +6,8 @@ import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.List;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.EsitoType;
@@ -18,7 +20,7 @@ import retrofit2.Response;
public class EntityRESTConsumer {
- public static void processEntity(T entityToSave, final ISimpleOperationCallback callback, final Type clazzType){
+ public static void processEntity(T entityToSave, final ISimpleOperationCallback callback, Class type){
EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
Call> request = service.processEntity(entityToSave);
@@ -30,9 +32,66 @@ public class EntityRESTConsumer {
if(response.body() != null) {
if(response.body().getEsito() == EsitoType.OK) {
Gson gson = new Gson();
- //Type fooType = new TypeToken() {}.getType();
String json = gson.toJson(response.body().getEntity());
- callback.onSuccess(gson.fromJson(json, clazzType));
+
+ callback.onSuccess(gson.fromJson(json, type));
+ } else {
+ Log.e("EntityRESTConsumer", response.body().getErrorMessage());
+ callback.onFailed(new Exception(response.body().getErrorMessage()));
+ }
+ } else {
+ Log.e("EntityRESTConsumer", response.message());
+ callback.onFailed(new Exception(response.message()));
+ }
+ } else {
+ Log.e("EntityRESTConsumer", "Status " + response.code() + ": " + response.message());
+ callback.onFailed(new Exception("Status " + response.code() + ": " + response.message()));
+ }
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ Log.e("EntityRESTConsumer", t.toString());
+ callback.onFailed(new Exception(t));
+ }
+ });
+
+ }
+
+
+
+
+ public static void selectEntity(T entityToSave, final ISimpleOperationCallback> callback, Class type){
+
+ EntityRESTConsumerService service = RESTBuilder.getService(EntityRESTConsumerService.class);
+ Call> request = service.processEntity(entityToSave);
+ request.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ if(response.isSuccessful()) {
+
+ if(response.body() != null) {
+ if(response.body().getEsito() == EsitoType.OK) {
+ Gson gson = new Gson();
+ String json = gson.toJson(response.body().getEntityList());
+
+ List newList = new ArrayList();
+
+ Type fooType = new TypeToken>() {}.getType();
+ List oldList = gson.fromJson(json, fooType);
+
+
+
+ if(oldList != null) {
+ for (int i = 0; i < oldList.size(); i ++){
+ String jsonTmp = gson.toJson(oldList.get(i));
+
+ newList.add((T) gson.fromJson(jsonTmp, type));
+ }
+ }
+
+
+ callback.onSuccess(newList);
} else {
Log.e("EntityRESTConsumer", response.body().getErrorMessage());
callback.onFailed(new Exception(response.body().getErrorMessage()));
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/GestSetupRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/GestSetupRESTConsumer.java
new file mode 100644
index 00000000..dc0c96a7
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/GestSetupRESTConsumer.java
@@ -0,0 +1,72 @@
+package it.integry.integrywmsnative.core.REST.consumers;
+
+import android.util.Log;
+
+import it.integry.integrywmsnative.core.REST.RESTBuilder;
+import it.integry.integrywmsnative.core.REST.model.GestSetupDTO;
+import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
+import it.integry.integrywmsnative.core.utility.UtilityLogger;
+import it.integry.integrywmsnative.generated.callback.Runnable;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class GestSetupRESTConsumer extends _BaseRESTConsumer {
+
+ public static void getValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
+ GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
+ service.getGestSetupValue(gestName, sectionName, keySection).enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "GestSetup", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ Log.e("PrintCollo", t.toString());
+ UtilityLogger.errorMe(new Exception(t));
+ if(onFailed != null) onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+ public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs onComplete, RunnableArgs onFailed) {
+ getValue(gestName, sectionName, keySection, value -> {
+ if(value != null){
+ onComplete.run("S".equalsIgnoreCase(value.value));
+ } else onComplete.run(false);
+ }, ex -> {
+ if(onFailed != null) onFailed.run(ex);
+ });
+ }
+
+ public static void getValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
+ GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
+ service.getGestSetupValue(gestName, sectionName, keySection, codMdep).enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "GestSetup", onComplete, onFailed);
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ Log.e("PrintCollo", t.toString());
+ UtilityLogger.errorMe(new Exception(t));
+ if(onFailed != null) onFailed.run(new Exception(t));
+ }
+ });
+ }
+
+ public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs onComplete, RunnableArgs onFailed) {
+ getValue(gestName, sectionName, keySection, codMdep, value -> {
+ if(value != null){
+ onComplete.run("S".equalsIgnoreCase(value.value));
+ } else onComplete.run(false);
+ }, ex -> {
+ if(onFailed != null) onFailed.run(ex);
+ });
+ }
+
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/GestSetupRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/GestSetupRESTConsumerService.java
new file mode 100644
index 00000000..3ae911c7
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/GestSetupRESTConsumerService.java
@@ -0,0 +1,27 @@
+package it.integry.integrywmsnative.core.REST.consumers;
+
+import java.util.List;
+
+import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
+import it.integry.integrywmsnative.core.REST.model.GestSetupDTO;
+import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
+import retrofit2.Call;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+public interface GestSetupRESTConsumerService {
+
+ @GET("gestSetup")
+ Call> getGestSetupValue(
+ @Query("gestName") String gestName,
+ @Query("section") String section,
+ @Query("keySection") String keySection);
+
+ @GET("gestSetup")
+ Call> getGestSetupValue(
+ @Query("gestName") String gestName,
+ @Query("section") String section,
+ @Query("keySection") String keySection,
+ @Query("codMdep") String codMdep);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java
index 3ab579b6..8b498f50 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java
@@ -3,17 +3,22 @@ package it.integry.integrywmsnative.core.REST.consumers;
import android.util.Log;
import java.util.List;
+import java.util.stream.Stream;
import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.EsitoType;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
+import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityString;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
+import static br.com.zbra.androidlinq.Linq.stream;
+
public class PrinterRESTConsumer extends _BaseRESTConsumer {
public enum Type {
@@ -44,12 +49,24 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
printerService.getAvailablePrinters(codMdep).enqueue(new Callback>>() {
@Override
public void onResponse(Call>> call, Response>> response) {
- analyzeAnswer(response, "GetAvailablePrinters", callback);
+ analyzeAnswer(response, "GetAvailablePrinters", new ISimpleOperationCallback>() {
+ @Override
+ public void onSuccess(List value) {
+ callback.onSuccess(value != null ? stream(value).where(x -> x != null).toList() : null);
+ }
+
+ @Override
+ public void onFailed(Exception ex) {
+ callback.onFailed(ex);
+ }
+ });
}
@Override
public void onFailure(Call>> call, Throwable t) {
-
+ Log.e("GetAvailablePrinters", t.toString());
+ UtilityLogger.errorMe(new Exception(t));
+ callback.onFailed(new Exception(t));
}
});
}
@@ -66,12 +83,14 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
@Override
public void onFailure(Call>> call, Throwable t) {
-
+ Log.e("GetAvailablePrinters", t.toString());
+ UtilityLogger.errorMe(new Exception(t));
+ callback.onFailed(new Exception(t));
}
});
}
- public static void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, final ISimpleOperationCallback