diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index e497da99..00000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 30fcbe9b..52cb3ed7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -53,8 +53,9 @@ android {
android.buildFeatures.dataBinding true
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
+
}
productFlavors {
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7da50e84..245da2b4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,7 +34,7 @@
android:screenOrientation="portrait"
android:theme="@style/Light" />
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
index 00bfc562..b7ea2ff2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java
@@ -4,6 +4,8 @@ import android.app.Application;
import android.content.res.Configuration;
import android.content.res.Resources;
+import javax.inject.Inject;
+
import it.integry.integrywmsnative.core.context.AppContext;
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
@@ -17,7 +19,8 @@ public class MainApplication extends Application {
public static MainApplicationModule appModule;
public static RoomModule roomModule;
- private AppContext appContext = new AppContext(this);
+ @Inject
+ AppContext appContext;
@@ -27,16 +30,15 @@ public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
- appModule = new MainApplicationModule(MainApplication.this, this);
+ appModule = new MainApplicationModule(this);
roomModule = new RoomModule(this);
appComponent = DaggerMainApplicationComponent.builder()
.mainApplicationModule(appModule)
.roomModule(roomModule)
.build();
- appComponent.inject(appContext);
+ appComponent.inject(this);
- 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 32d0c3ca..2b66ce0c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java
@@ -7,6 +7,10 @@ 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;
+import it.integry.integrywmsnative.gest.main.MainActivityComponent;
+import it.integry.integrywmsnative.gest.main.MainActivityModule;
+import it.integry.integrywmsnative.gest.main.MainFragmentComponent;
+import it.integry.integrywmsnative.gest.main.MainFragmentModule;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoComponent;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoModule;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
@@ -49,7 +53,9 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
// Definition of the Application graph
@Singleton
@Component(modules = {
+ SplashActivityModule.class,
MainApplicationModule.class,
+ MainFragmentModule.class,
RoomModule.class,
MainActivityModule.class,
PVOrdineAcquistoGrigliaModule.class,
@@ -70,10 +76,13 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
VersamentoMerceModule.class,
DialogAskMagazzinoProssimitaModule.class,
DialogChooseBatchLotModule.class,
- DialogRowInfoProdFabbisognoLineeProdModule.class})
+ DialogRowInfoProdFabbisognoLineeProdModule.class
+})
public interface MainApplicationComponent {
+ SplashActivityComponent.Factory splashActivityComponent();
MainActivityComponent.Factory mainActivityComponent();
+ MainFragmentComponent.Factory mainFragmentComponent();
PVOrdineAcquistoGrigliaComponent.Factory pvOrdineAcquistoGrigliaComponent();
PVOrdineAcquistoEditComponent.Factory pvOrdineAcquistoEditComponent();
PickingLiberoComponent.Factory pickingLiberoComponent();
@@ -97,6 +106,7 @@ public interface MainApplicationComponent {
ProdRientroMerceOrderDetailComponent.Factory prodRientroMerceOrderDetailComponent();
- void inject(AppContext appContext);
+ void inject(MainApplication mainApplication);
+ void inject(AppContext mainApplication);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
index 1bfcc0c1..c7f743f8 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java
@@ -1,13 +1,16 @@
package it.integry.integrywmsnative;
import android.app.Application;
-import android.content.Context;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
+import it.integry.integrywmsnative.core.context.AppContext;
+import it.integry.integrywmsnative.core.context.MainContext;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
+import it.integry.integrywmsnative.core.menu.MenuRESTConsumer;
+import it.integry.integrywmsnative.core.menu.MenuService;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
@@ -23,11 +26,9 @@ import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabb
@Module
public class MainApplicationModule {
- private final Context mContext;
private final Application mApplication;
- public MainApplicationModule(Context context, Application application) {
- this.mContext = context;
+ public MainApplicationModule(Application application) {
this.mApplication = application;
}
@@ -37,10 +38,30 @@ public class MainApplicationModule {
return mApplication;
}
+ @Provides
+ @Singleton
+ AppContext providesAppContext() {
+ return new AppContext(mApplication);
+ }
+
+ @Provides
+ @Singleton
+ MainContext providesMainContextNew(MenuService menuService) {
+ return new MainContext(mApplication.getApplicationContext(), menuService);
+ }
+
@Provides
@Singleton
ColliDataRecoverService provideColliDataRecoverService() {
- return new ColliDataRecoverService();
+ ColliDataRecoverService colliDataRecoverService = new ColliDataRecoverService(mApplication.getApplicationContext());
+ colliDataRecoverService.init();
+ return colliDataRecoverService;
+ }
+
+ @Provides
+ @Singleton
+ MenuService provideMenuService(MenuRESTConsumer menuRESTConsumer) {
+ return new MenuService(menuRESTConsumer);
}
@Provides
@@ -61,6 +82,12 @@ public class MainApplicationModule {
return new ArticoloRESTConsumer();
}
+ @Provides
+ @Singleton
+ MenuRESTConsumer provideMenuRESTConsumer() {
+ return new MenuRESTConsumer();
+ }
+
@Provides
@Singleton
MagazzinoRESTConsumer provideMagazzinoRESTConsumer() {
@@ -110,5 +137,4 @@ public class MainApplicationModule {
}
-
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
index 7397d141..e9b0cec3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java
@@ -5,6 +5,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.SpannableString;
+import android.text.Spanned;
import android.view.LayoutInflater;
import androidx.databinding.DataBindingUtil;
@@ -12,22 +13,29 @@ import androidx.databinding.DataBindingUtil;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
+
import it.integry.integrywmsnative.core.context.MainContext;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.PermissionsHelper;
import it.integry.integrywmsnative.core.utility.UtilityContext;
+import it.integry.integrywmsnative.core.utility.UtilitySettings;
import it.integry.integrywmsnative.databinding.ActivitySplashBinding;
import it.integry.integrywmsnative.gest.login.LoginActivity;
+import it.integry.integrywmsnative.gest.main.MainActivity;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
-public class SplashActivity extends BaseActivity {
+public class SplashActivity extends BaseActivity implements MainContext.Listener {
private ActivitySplashBinding mBinding;
- private MainContext mainContext = new MainContext(this);
+// private MainContext mainContext = new MainContext(this);
+
+ @Inject
+ MainContext mainContext;
private RunnableArgsss> onRequestPermissionResult;
@@ -35,32 +43,23 @@ public class SplashActivity extends BaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ MainApplication.appComponent
+ .splashActivityComponent()
+ .create()
+ .inject(this);
+
+ mainContext.setListener(this);
+
mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_splash, null, false);
setContentView(mBinding.getRoot());
UtilityContext.initMainActivity(this);
- initAppVersion();
+ initAppVersion();
initPermissions(this::init);
}
- private void initPermissions(Runnable onComplete) {
- PermissionsHelper.askPermissions(this, () -> {
- onComplete.run();
- }, permanentlyDenied -> {
- if(permanentlyDenied) {
- DialogSimpleMessageView.makeErrorDialog(new SpannableString(getText(R.string.permissions_permanently_denied)), null, () -> {
- this.finish();
- })
- .show(getSupportFragmentManager(), "tag");
- } else {
- initPermissions(onComplete);
- }
- });
- }
-
-
private void initAppVersion() {
try {
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
@@ -68,7 +67,7 @@ public class SplashActivity extends BaseActivity {
String debugText = "";
- if(BuildConfig.DEBUG) debugText += "\n[DEBUG VERSION]";
+ if (BuildConfig.DEBUG) debugText += "\n[DEBUG VERSION]";
mBinding.appVersionTextview.setText("v" + version + debugText);
} catch (PackageManager.NameNotFoundException e) {
@@ -76,15 +75,39 @@ public class SplashActivity extends BaseActivity {
}
}
+ private void initPermissions(Runnable onComplete) {
+ PermissionsHelper.askPermissions(this, onComplete, permanentlyDenied -> {
+ if (permanentlyDenied) {
+ onError(new SpannableString(getText(R.string.permissions_permanently_denied)));
+
+ } else {
+ initPermissions(onComplete);
+ }
+ });
+ }
+
private void init() {
- if(!SettingsManager.i().isUserLoggedIn()){
+ if (!SettingsManager.i().isUserLoggedIn()) {
startLoginActivity();
} else {
- mainContext.init(this::startMainActivity);
+ mainContext.init();
}
}
+ @Override
+ public void onDBDataLoading(String item) {
+ mBinding.loadingInfoTextview.setText("Caricamento " + item);
+ }
+ @Override
+ public void onMenuLoading() {
+ mBinding.loadingInfoTextview.setText("Caricamento menĂ¹");
+ }
+
+ @Override
+ public void onContextInitialized() {
+ startMainActivity();
+ }
public void setOnRequestPermissionsResult(RunnableArgsss> onRequestPermissionResult) {
@@ -95,9 +118,9 @@ public class SplashActivity extends BaseActivity {
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- if(this.onRequestPermissionResult != null) {
+ if (this.onRequestPermissionResult != null) {
List grantResultsList = new ArrayList<>();
- for(int i = 0; i < grantResults.length; i++) {
+ for (int i = 0; i < grantResults.length; i++) {
grantResultsList.add(grantResults[i]);
}
@@ -106,20 +129,28 @@ public class SplashActivity extends BaseActivity {
}
-
-
-
- private void startLoginActivity(){
+ private void startLoginActivity() {
this.finish();
Intent myIntent = new Intent(this, LoginActivity.class);
startActivity(myIntent);
}
- private void startMainActivity(){
+ private void startMainActivity() {
this.finish();
Intent myIntent = new Intent(this, MainActivity.class);
startActivity(myIntent);
}
+ @Override
+ public void onError(Spanned message) {
+
+ DialogSimpleMessageView.makeErrorDialog(
+ message, null, this::finish, R.string.logout, () -> {
+ UtilitySettings.logout(() -> {
+ MainApplication.exit();
+ });
+ })
+ .show(this.getSupportFragmentManager(), "tag");
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivityComponent.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivityComponent.java
new file mode 100644
index 00000000..a5d85b45
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivityComponent.java
@@ -0,0 +1,15 @@
+package it.integry.integrywmsnative;
+
+import dagger.Subcomponent;
+
+@Subcomponent
+public interface SplashActivityComponent {
+
+ @Subcomponent.Factory
+ interface Factory {
+
+ SplashActivityComponent create();
+ }
+
+ void inject(SplashActivity mainActivity);
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivityModule.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivityModule.java
new file mode 100644
index 00000000..923dabb8
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivityModule.java
@@ -0,0 +1,7 @@
+package it.integry.integrywmsnative;
+
+import dagger.Module;
+
+@Module(subcomponents = SplashActivityComponent.class)
+public class SplashActivityModule {
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java
index cb83f66f..85924b83 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/barcode_reader/BarcodeManager.java
@@ -1,33 +1,27 @@
package it.integry.integrywmsnative.core.barcode_reader;
+import android.content.Context;
import android.view.KeyEvent;
-import androidx.appcompat.app.AppCompatActivity;
-
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
-import it.integry.barcode_base_android_library.exception.BarcodeAdapterNotFoundException;
import it.integry.barcode_base_android_library.interfaces.BarcodeReaderInterface;
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
-import it.integry.integrywmsnative.core.utility.UtilityExceptions;
-import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.keyobardemulatorscannerlibrary.KeyboardEmulatorBarcodeReader;
import it.integry.pointmobilescannerlibrary.PointMobileBarcodeReader;
import it.integry.zebrascannerlibrary.ZebraBarcodeReader;
public class BarcodeManager {
- private static AppCompatActivity context;
-
private static BarcodeReaderInterface mCurrentBarcodeInterface;
- private static List mBarcodeCallbacksStacktrace = new ArrayList<>();
+ private static final List mBarcodeCallbacksStacktrace = new ArrayList<>();
private static boolean mEnabled = true;
- private static Class extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{
+ private static final Class extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{
PointMobileBarcodeReader.class,
ZebraBarcodeReader.class,
HoneyWellBarcodeReader.class,
@@ -35,73 +29,60 @@ public class BarcodeManager {
};
- public static void init(AppCompatActivity context) {
- BarcodeManager.context = context;
+ public static void init(Context applicationContext) throws Exception {
- initBarcodeReader();
+ initBarcodeReader(applicationContext);
}
- private static void initBarcodeReader() {
+ private static void initBarcodeReader(Context applicationContext) throws Exception {
- for (Class extends BarcodeReaderInterface> readerInterface : registeredBarcodeReaderInterfaces){
+ for (Class extends BarcodeReaderInterface> readerInterface : registeredBarcodeReaderInterfaces) {
- Constructor> cons = null;
- try {
- cons = Class.forName(readerInterface.getName()).getConstructors()[0];
- BarcodeReaderInterface object = (BarcodeReaderInterface) cons.newInstance(context);
+ Constructor> cons = Class.forName(readerInterface.getName()).getConstructors()[0];
+ BarcodeReaderInterface object = (BarcodeReaderInterface) cons.newInstance(applicationContext);
- if(object.isRightAdapter()) {
- mCurrentBarcodeInterface = object;
- break;
- }
-
-
- } catch (Exception e) {
- UtilityExceptions.defaultException(context,e);
+ if (object.isRightAdapter()) {
+ mCurrentBarcodeInterface = object;
+ break;
}
+
+
}
- if(mCurrentBarcodeInterface != null) {
+ if (mCurrentBarcodeInterface != null) {
- try {
- mCurrentBarcodeInterface.init(() -> {
-
- mCurrentBarcodeInterface.register(data -> {
- BarcodeCallbackDTO callback = getValidCallback();
- if(callback != null && mEnabled) {
- callback.getOnScanSuccessfull().run(data);
- }
- }, ex -> {
- BarcodeCallbackDTO callback = getValidCallback();
- if(callback != null && mEnabled) {
- callback.getOnScanFailed().run(ex);
- }
- });
+ mCurrentBarcodeInterface.init(() -> {
+ mCurrentBarcodeInterface.register(data -> {
+ BarcodeCallbackDTO callback = getValidCallback();
+ if (callback != null && mEnabled) {
+ callback.getOnScanSuccessfull().run(data);
+ }
+ }, ex -> {
+ BarcodeCallbackDTO callback = getValidCallback();
+ if (callback != null && mEnabled) {
+ callback.getOnScanFailed().run(ex);
+ }
});
- } catch (BarcodeAdapterNotFoundException ex) {
- UtilityExceptions.defaultException(context, ex);
- }
-
+ });
}
-
}
private static BarcodeCallbackDTO getValidCallback() {
- if(mBarcodeCallbacksStacktrace.size() > 0) {
- return mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() -1);
+ if (mBarcodeCallbacksStacktrace.size() > 0) {
+ return mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() - 1);
} else {
return null;
}
}
- public static boolean onKeyDown(int keyCode, KeyEvent keyEvent){
+ public static boolean onKeyDown(int keyCode, KeyEvent keyEvent) {
if (mCurrentBarcodeInterface != null)
- mCurrentBarcodeInterface.onKeyEvent(keyEvent);
+ mCurrentBarcodeInterface.onKeyEvent(keyEvent);
return true;
}
@@ -113,8 +94,8 @@ public class BarcodeManager {
int newID = -1;
- if(mBarcodeCallbacksStacktrace.size() > 0) {
- newID = mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() -1).getID() + 1;
+ if (mBarcodeCallbacksStacktrace.size() > 0) {
+ newID = mBarcodeCallbacksStacktrace.get(mBarcodeCallbacksStacktrace.size() - 1).getID() + 1;
} else {
newID = 1;
}
@@ -131,7 +112,7 @@ public class BarcodeManager {
//Rimuovo la callback con l'ID trovato e tutte quelle con >ID in modo che rimuovo tutte le call aggiunte successivamente
for (int i = 0; i < mBarcodeCallbacksStacktrace.size(); i++) {
- if(mBarcodeCallbacksStacktrace.get(i).getID() == ID || callbackObjFound) {
+ if (mBarcodeCallbacksStacktrace.get(i).getID() == ID || callbackObjFound) {
mBarcodeCallbacksStacktrace.remove(i);
callbackObjFound = true;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java
index bf917c1f..969920f7 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java
@@ -7,6 +7,7 @@ import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.class_router.exceptions.MethodPathNotRegisteredException;
+import it.integry.integrywmsnative.core.utility.UtilityExceptions;
public class ClassRouter {
@@ -21,8 +22,8 @@ public class ClassRouter {
private static List> mRouteClasses = new ArrayList<>();
- public static void init(Context context) {
- ClassRouter.context = context;
+ public static void init() {
+// ClassRouter.context = context;
}
private static boolean checkIClassExists(PATH path) {
@@ -51,9 +52,7 @@ public class ClassRouter {
try {
mRouteClasses.add(new Pair<>(path, clazz.newInstance()));
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InstantiationException e) {
+ } catch (IllegalAccessException | InstantiationException e) {
e.printStackTrace();
}
}
@@ -77,7 +76,7 @@ public class ClassRouter {
return (T)instance;
} catch (MethodPathNotRegisteredException ex) {
- // UtilityExceptions.defaultException(null, ex, true);
+ UtilityExceptions.defaultException(null, ex, true);
}
return null;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java
index d082f900..b4bace12 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java
@@ -32,6 +32,8 @@ public class BaseMenuConfiguration {
@IdRes
private int mGroupId;
+ private String codMenu;
+
private List