From 077cff30c129bc234ed340509bef170616cc6b3d Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Tue, 8 Sep 2020 12:01:24 +0200 Subject: [PATCH] Implementato databinding nelle componenti Room --- app/build.gradle | 6 +- .../integrywmsnative/MainActivity.java | 40 +++--- .../MainActivityComponent.java | 15 +++ .../integrywmsnative/MainActivityModule.java | 7 ++ .../integrywmsnative/MainApplication.java | 45 ++----- .../MainApplicationComponent.java | 31 ++++- .../MainApplicationModule.java | 11 +- .../core/data_store/db/AppDatabase.java | 38 +++--- .../core/data_store/db/RoomComponent.java | 10 ++ .../data_store/db/RoomComponentProvider.java | 7 ++ .../core/data_store/db/RoomModule.java | 99 +++++++++++++++ .../repository/ArticoliGrigliaRepository.java | 88 -------------- .../repository/ArticoliOrdineRepository.java | 99 ++------------- .../repository/ArticoloGrigliaRepository.java | 19 +++ .../db/repository/GrigliaRepository.java | 59 +-------- .../db/repository/OrdineRepository.java | 75 ++---------- .../ArticoliGrigliaDataSource.java | 92 ++++++++++++++ .../ArticoliOrdineDataSource.java | 114 ++++++++++++++++++ .../implementations/GrigliaDataSource.java | 69 +++++++++++ .../implementations/OrdineDataSource.java | 90 ++++++++++++++ .../{ => implementations}/Repository.java | 2 +- .../PVOrdiniAcquistoRESTConsumer.java | 43 ++++--- .../core/utility/UtilitySettings.java | 7 +- .../core/utility/UtilityThread.java | 9 ++ .../PickingLiberoComponent.java | 14 ++- .../picking_libero/PickingLiberoFragment.java | 10 +- .../picking_libero/PickingLiberoModule.java | 3 +- .../PVOrdineAcquistoEditActivity.java | 46 +++++-- .../PVOrdineAcquistoEditComponent.java | 15 +++ .../PVOrdineAcquistoEditModule.java | 7 ++ .../dialog/EditArticoloDialog.java | 53 ++++---- .../helper/PVEditOrderHelper.java | 21 ++-- .../PVOrdineAcquistoGrigliaComponent.java | 16 +++ .../PVOrdineAcquistoGrigliaModule.java | 7 ++ .../PVOrdiniAcquistoGrigliaFragment.java | 40 ++++-- ...OrdiniAcquistoTransmittedListFragment.java | 6 +- .../dialogs/DialogScanLisA.java | 17 +-- .../helper/OrdineAcquistoPvHelper.java | 42 +++---- .../RettificaGiacenzeComponent.java | 14 ++- .../RettificaGiacenzeFragment.java | 10 +- .../RettificaGiacenzeModule.java | 3 +- .../gest/spedizione/SpedizioneActivity.java | 10 +- .../gest/spedizione/SpedizioneComponent.java | 14 ++- .../gest/spedizione/SpedizioneModule.java | 3 +- 44 files changed, 893 insertions(+), 533 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/MainActivityComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/MainActivityModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponentProvider.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java delete mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoloGrigliaRepository.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java rename app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/{ => implementations}/Repository.java (90%) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityThread.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaComponent.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaModule.java diff --git a/app/build.gradle b/app/build.gradle index ab4dfd70..2981f2f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,9 +47,9 @@ android { signingConfig signingConfigs.release } } - dataBinding { - enabled = true - } + + android.buildFeatures.dataBinding true + compileOptions { targetCompatibility 1.8 sourceCompatibility 1.8 diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index 2aed548d..7607174f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -1,47 +1,47 @@ package it.integry.integrywmsnative; import android.content.Intent; - -import androidx.annotation.IdRes; -import androidx.databinding.DataBindingUtil; - import android.os.Bundle; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import com.google.android.material.navigation.NavigationView; -import androidx.core.view.GravityCompat; -import androidx.drawerlayout.widget.DrawerLayout; -import androidx.appcompat.app.ActionBarDrawerToggle; -import androidx.appcompat.widget.SearchView; - import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; +import androidx.annotation.IdRes; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.widget.SearchView; +import androidx.core.view.GravityCompat; +import androidx.databinding.DataBindingUtil; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; +import com.google.android.material.navigation.NavigationView; + import java.util.List; +import javax.inject.Inject; + import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration; import it.integry.integrywmsnative.core.class_router.ClassRouter; import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration; import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration; import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration; +import it.integry.integrywmsnative.core.data_store.db.AppDatabase; import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.expansion.OnSingleClickListener; -import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ISearcableFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; -import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.interfaces.ITitledFragment; +import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.update.UpdatesManager; import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.databinding.ActivityMainBinding; -import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.gest.login.LoginActivity; import it.integry.integrywmsnative.gest.main.MainFragment; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; @@ -54,11 +54,17 @@ public class MainActivity extends BaseActivity private boolean firstCheckExecution = true; private boolean mIsOnline = false; + @Inject + AppDatabase mAppDatabase; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + MainApplication.appComponent + .mainActivityComponent() + .create() + .inject(this); mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false); setContentView(mBinding.getRoot()); @@ -148,7 +154,7 @@ public class MainActivity extends BaseActivity break; case R.id.nav_logout: - UtilitySettings.logout(); + UtilitySettings.logout(this.mAppDatabase); ServerStatusChecker.dispose(); startLoginActivity(); diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivityComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainActivityComponent.java new file mode 100644 index 00000000..6e616fe3 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivityComponent.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative; + +import dagger.Subcomponent; + +@Subcomponent +public interface MainActivityComponent { + + @Subcomponent.Factory + interface Factory { + + MainActivityComponent create(); + } + + void inject(MainActivity mainActivity); +} diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivityModule.java b/app/src/main/java/it/integry/integrywmsnative/MainActivityModule.java new file mode 100644 index 00000000..3cb0f046 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivityModule.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative; + +import dagger.Module; + +@Module(subcomponents = MainActivityComponent.class) +public class MainActivityModule { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index a48085de..0551bc52 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -1,21 +1,11 @@ package it.integry.integrywmsnative; -import android.app.AlarmManager; import android.app.Application; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; -import dagger.Component; -import dagger.android.DaggerApplication; import it.integry.integrywmsnative.core.context.AppContext; -import it.integry.integrywmsnative.core.data_store.db.AppDatabase; -import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao; -import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao; -import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao; -import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao; +import it.integry.integrywmsnative.core.data_store.db.RoomModule; public class MainApplication extends Application { @@ -25,10 +15,10 @@ public class MainApplication extends Application { // Reference to the application graph that is used across the whole app public static MainApplicationComponent appComponent; public static MainApplicationModule appModule; + public static RoomModule roomModule; private AppContext appContext = new AppContext(this); - private static AppDatabase appDb; // Called when the application is starting, before any other application objects have been created. @@ -37,12 +27,14 @@ public class MainApplication extends Application { public void onCreate() { super.onCreate(); - appModule = new MainApplicationModule(MainApplication.this); - appComponent = DaggerMainApplicationComponent.create(); + appModule = new MainApplicationModule(MainApplication.this, this); + roomModule = new RoomModule(this); + appComponent = DaggerMainApplicationComponent.builder() + .mainApplicationModule(appModule) + .roomModule(roomModule) + .build(); appContext.init(); - appDb = AppDatabase.getDatabase(this); - //Stash.init(this); res = getResources(); } @@ -61,25 +53,4 @@ public class MainApplication extends Application { super.onLowMemory(); } - - // DATABASE REPOSITORY FUNCTIONS - public static GrigliaDao getGrigliaRepository() { - return appDb.grigliaDao(); - } - - public static ArticoloGrigliaDao getArticoliGrigliaRepository() { - return appDb.articoloGrigliaDao(); - } - - public static OrdineDao getOrdiniRepository() { - return appDb.ordineDao(); - } - - public static ArticoloOrdineDao getArticoliOrdineRepository() { - return appDb.articoloOrdineDao(); - } - - public static void clearDB() { - new Thread(() -> appDb.clearAllTables()).start(); - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index 343ec3af..421ca4f6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -1,9 +1,38 @@ package it.integry.integrywmsnative; +import javax.inject.Singleton; + import dagger.Component; +import it.integry.integrywmsnative.core.data_store.db.RoomModule; +import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent; +import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule; +import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent; +import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule; +import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent; +import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaModule; +import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComponent; +import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule; +import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent; +import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule; // Definition of the Application graph -@Component(modules = {MainApplicationModule.class}) +@Singleton +@Component(modules = { + MainApplicationModule.class, + RoomModule.class, + MainActivityModule.class, + PVOrdineAcquistoGrigliaModule.class, + PVOrdineAcquistoEditModule.class, + PickingLiberoModule.class, + RettificaGiacenzeModule.class, + SpedizioneModule.class}) public interface MainApplicationComponent { + MainActivityComponent.Factory mainActivityComponent(); + PVOrdineAcquistoGrigliaComponent.Factory pvOrdineAcquistoGrigliaComponent(); + PVOrdineAcquistoEditComponent.Factory pvOrdineAcquistoEditComponent(); + PickingLiberoComponent.Factory pickingLiberoComponent(); + RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent(); + SpedizioneComponent.Factory spedizioneComponent(); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java index 1cb59934..95adc821 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java @@ -1,5 +1,6 @@ package it.integry.integrywmsnative; +import android.app.Application; import android.content.Context; import javax.inject.Singleton; @@ -18,9 +19,17 @@ import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; public class MainApplicationModule { private final Context mContext; + private final Application mApplication; - public MainApplicationModule(Context context) { + public MainApplicationModule(Context context, Application application) { this.mContext = context; + this.mApplication = application; + } + + @Provides + @Singleton + Application providesApplication() { + return mApplication; } @Provides diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java index 39dd708d..f4910e97 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java @@ -1,9 +1,6 @@ package it.integry.integrywmsnative.core.data_store.db; -import android.content.Context; - import androidx.room.Database; -import androidx.room.Room; import androidx.room.RoomDatabase; import androidx.room.TypeConverters; @@ -23,7 +20,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; }) public abstract class AppDatabase extends RoomDatabase { - private static volatile AppDatabase INSTANCE; +// private AppDatabase mRoomInstance; public abstract ArticoloGrigliaDao articoloGrigliaDao(); @@ -33,19 +30,26 @@ public abstract class AppDatabase extends RoomDatabase { public abstract ArticoloOrdineDao articoloOrdineDao(); - public static AppDatabase getDatabase(final Context context) { - if (INSTANCE == null) { - synchronized (AppDatabase.class) { - if (INSTANCE == null) { - INSTANCE = Room.databaseBuilder(context.getApplicationContext(), - AppDatabase.class, "integry_wms") - .fallbackToDestructiveMigration() - .build(); - } - } - } - return INSTANCE; - } +// public static AppDatabase getDatabase(final Context context) { +// if (INSTANCE == null) { +// synchronized (AppDatabase.class) { +// if (INSTANCE == null) { +// INSTANCE = Room.databaseBuilder(context.getApplicationContext(), +// AppDatabase.class, "integry_wms") +// .fallbackToDestructiveMigration() +// .build(); +// } +// } +// } +// return INSTANCE; +// } + +// public AppDatabase(Application application) { +// mRoomInstance = Room.databaseBuilder(application, +// AppDatabase.class, "integry_wms") +// .fallbackToDestructiveMigration() +// .build(); +// } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponent.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponent.java new file mode 100644 index 00000000..d53e9a1a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponent.java @@ -0,0 +1,10 @@ +package it.integry.integrywmsnative.core.data_store.db; + +import javax.inject.Singleton; + +import dagger.Component; + +@Singleton +@Component(modules = {RoomModule.class}) +public interface RoomComponent { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponentProvider.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponentProvider.java new file mode 100644 index 00000000..416bdde9 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomComponentProvider.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative.core.data_store.db; + +public interface RoomComponentProvider { + + RoomComponent provideRoomComponent(); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java new file mode 100644 index 00000000..fef5a424 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java @@ -0,0 +1,99 @@ +package it.integry.integrywmsnative.core.data_store.db; + +import android.app.Application; + +import androidx.room.Room; + +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; +import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao; +import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao; +import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao; +import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliGrigliaDataSource; +import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliOrdineDataSource; +import it.integry.integrywmsnative.core.data_store.db.repository.implementations.GrigliaDataSource; +import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource; + +@Module +public class RoomModule { + + private AppDatabase appDatabase; + + public RoomModule(Application application) { + appDatabase = Room.databaseBuilder(application, + AppDatabase.class, "integry_wms") + .fallbackToDestructiveMigration() + .build(); + } + + @Singleton + @Provides + AppDatabase providesRoomDatabase() { + return appDatabase; + } + + + + + @Singleton + @Provides + ArticoloGrigliaDao providesArticoloGrigliaDao(AppDatabase appDatabase) { + return appDatabase.articoloGrigliaDao(); + } + + @Singleton + @Provides + GrigliaDao providesGrigliaDao(AppDatabase appDatabase) { + return appDatabase.grigliaDao(); + } + + @Singleton + @Provides + OrdineDao providesOrdineDao(AppDatabase appDatabase) { + return appDatabase.ordineDao(); + } + + @Singleton + @Provides + ArticoloOrdineDao providesArticoloOrdineDao(AppDatabase appDatabase) { + return appDatabase.articoloOrdineDao(); + } + + + + + + + + @Singleton + @Provides + ArticoloGrigliaRepository providesArticoloGrigliaRepository(ArticoloGrigliaDao articoloGrigliaDao) { + return new ArticoliGrigliaDataSource(articoloGrigliaDao); + } + + @Singleton + @Provides + ArticoliOrdineRepository providesArticoliOrdineRepository(ArticoloOrdineDao articoloOrdineDao) { + return new ArticoliOrdineDataSource(articoloOrdineDao); + } + + @Singleton + @Provides + GrigliaRepository providesGrigliaRepository(GrigliaDao grigliaDao) { + return new GrigliaDataSource(grigliaDao); + } + + @Singleton + @Provides + OrdineRepository providesOrdineRepository(OrdineDao ordineDao) { + return new OrdineDataSource(ordineDao); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java deleted file mode 100644 index 593515bf..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliGrigliaRepository.java +++ /dev/null @@ -1,88 +0,0 @@ -package it.integry.integrywmsnative.core.data_store.db.repository; - -import com.annimon.stream.Collectors; -import com.annimon.stream.Stream; - -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; -import java.util.List; - -import it.integry.integrywmsnative.MainApplication; -import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao; -import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia; -import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; - -public class ArticoliGrigliaRepository extends Repository{ - - ArticoloGrigliaDao mRepository; - - public ArticoliGrigliaRepository() { - this.mRepository = MainApplication.getArticoliGrigliaRepository(); - } - - public void saveArticoliToGriglia(List articoli, Griglia griglia, Runnable onSuccess, RunnableArgs onFail) { - execute(()->{ - try{ - List toUpdate = new ArrayList<>(); - List toInsert = new ArrayList<>(); - List codMarts = new ArrayList<>(); - for (ArticoloGriglia art : articoli){ - Integer id = mRepository.getIdArticoloByGrigliaAndBarcodeAndCodMart(griglia.getGrigliaId(),art.getBarCode(),art.getCodMart()); - codMarts.add(art.getCodMart()); - if (id != null){ - art.setArticoloGrigliaId(id); - toUpdate.add(art); - }else{ - toInsert.add(art); - } - } - mRepository.insertAll(toInsert); - mRepository.updateAll(toUpdate); - List articoliGriglia = mRepository.getArticoliFromGriglia(griglia.getGrigliaId()); - List toDelete =Stream.of(articoliGriglia).filter(articolo-> !codMarts.contains(articolo.getCodMart())).toList(); - mRepository.deleteList(toDelete); - onSuccess.run(); - }catch (Exception e){ - onFail.run(e); - } - }); - } - - public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia,RunnableArgs onSuccess, RunnableArgs onFail ){ - execute(()->{ - try{ - onSuccess.run(mRepository.findArticoloByBarcodeAndGriglia(barcode, idGriglia)); - }catch (Exception e){ - onFail.run(e); - } - }); - } - public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia,RunnableArgs onSuccess, RunnableArgs onFail ){ - execute(()->{ - try{ - onSuccess.run(mRepository.findArticoloByCodMartAndGriglia(codMart, idGriglia)); - }catch (Exception e){ - onFail.run(e); - } - }); - } - public void findArticoloByScanAndGriglia(String scan, int idGriglia,RunnableArgs onSuccess, RunnableArgs onFail ){ - execute(()->{ - try{ - ArticoloGriglia articolo = mRepository.findArticoloByCodMartAndGriglia(scan, idGriglia); - if (articolo == null){ - articolo = mRepository.findArticoloByBarcodeAndGriglia(scan,idGriglia); - if (articolo==null){ - String barcode= StringUtils.leftPad(scan,13,"0"); - articolo = mRepository.findArticoloByBarcodeAndGriglia(barcode,idGriglia); - } - } - onSuccess.run(articolo); - }catch (Exception e){ - onFail.run(e); - } - }); - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliOrdineRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliOrdineRepository.java index bf5287ca..861364cd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliOrdineRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoliOrdineRepository.java @@ -1,109 +1,24 @@ package it.integry.integrywmsnative.core.data_store.db.repository; -import org.apache.commons.lang3.StringUtils; - -import java.util.ArrayList; import java.util.List; -import it.integry.integrywmsnative.MainApplication; -import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class ArticoliOrdineRepository extends Repository { +public interface ArticoliOrdineRepository { - ArticoloOrdineDao mRepository; + void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onFail); - public ArticoliOrdineRepository() { - this.mRepository = MainApplication.getArticoliOrdineRepository(); - } + void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onFail); - public void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - List toUpdate = new ArrayList<>(); - List toInsert = new ArrayList<>(); - for (ArticoloOrdine art : articoli) { - if (art.getArticoloOrdineId() > 0) { - toUpdate.add(art); - } else { - toInsert.add(art); - } - } - mRepository.insertAll(toInsert); - mRepository.updateAll(toUpdate); - onSuccess.run(); + void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail); + void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail); - } catch (Exception e) { - onFail.run(e); - } - }); - } - public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - if (articolo.getArticoloOrdineId() > 0) { - mRepository.update(articolo); - } else { - mRepository.insert(articolo); - } - onSuccess.run(); - } catch (Exception e) { - onFail.run(e); - } - }); - } + void findArticoliByOrdine(Ordine ordine, RunnableArgs> onLoad, RunnableArgs onError); - public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - ArticoloOrdine articolo = mRepository.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode); - onSuccess.run(articolo); - } catch (Exception e) { - onFail.run(e); - } - }); - } -public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - String scannedCode = barcode; - ArticoloOrdine articolo = mRepository.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode); - if (articolo == null){ - articolo = mRepository.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); - if (articolo == null){ - scannedCode= StringUtils.leftPad(scannedCode,13,'0'); - articolo = mRepository.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); - } - } - onSuccess.run(articolo); - } catch (Exception e) { - onFail.run(e); - } - }); - } + void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs onError); - public void findArticoliByOrdine(Ordine ordine, RunnableArgs> onLoad, RunnableArgs onError) { - execute(() -> { - try { - onLoad.run(mRepository.findArticoliByOrdine(ordine.getOrdineId())); - } catch (Exception e) { - onError.run(e); - } - }); - } - - public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs onError) { - execute(()->{ - try{ - mRepository.delete(articolo); - onSave.run(); - }catch (Exception e){ - onError.run(e); - } - }); - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoloGrigliaRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoloGrigliaRepository.java new file mode 100644 index 00000000..cbcfc259 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/ArticoloGrigliaRepository.java @@ -0,0 +1,19 @@ +package it.integry.integrywmsnative.core.data_store.db.repository; + +import java.util.List; + +import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia; +import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; + +public interface ArticoloGrigliaRepository { + + void saveArticoliToGriglia(List articoli, Griglia griglia, Runnable onSuccess, RunnableArgs onFail); + + void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail); + + void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail); + + void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java index 437d9e65..707a1272 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/GrigliaRepository.java @@ -2,66 +2,17 @@ package it.integry.integrywmsnative.core.data_store.db.repository; import java.util.List; -import it.integry.integrywmsnative.MainApplication; -import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper; -import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class GrigliaRepository extends Repository{ +public interface GrigliaRepository { - private GrigliaDao mRepository; + void selectAll(RunnableArgs> onSuccess, RunnableArgs onError); - public GrigliaRepository() { - this.mRepository = MainApplication.getGrigliaRepository(); - } + void findByCodAlis(String codAlis , RunnableArgs onSuccess, RunnableArgs onError); - public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError){ - Runnable query = ()->{ - try{ - onSuccess.run(mRepository.getAll()); - }catch (Exception e){ - onError.run(e); - } - }; - execute(query); - } + void saveGriglia(Griglia griglia, RunnableArgs onSuccess,RunnableArgs onFail); - public void findByCodAlis(String codAlis , RunnableArgs onSuccess, RunnableArgs onError){ - Runnable query = ()->{ - try{ - onSuccess.run(mRepository.findByCodAlis(codAlis)); - }catch (Exception e){ - onError.run(e); - } - }; - execute(query); - } - - - public void saveGriglia(Griglia griglia, RunnableArgs onSuccess,RunnableArgs onFail) { - execute(()->{ - try{ - if (griglia.getGrigliaId() <= 0){ - griglia.setGrigliaId((int) mRepository.insert(griglia)); - }else{ - mRepository.update(griglia); - } - onSuccess.run(griglia.getGrigliaId()); - }catch (Exception e){ - onFail.run(e); - } - }); - } - - public void findGrigliaById(int idGriglia, RunnableArgs onLoad, RunnableArgs onFail) { - execute(()->{ - try{ - onLoad.run(mRepository.findGrigliaById(idGriglia)); - }catch (Exception e){ - onFail.run(e); - } - }); - } + void findGrigliaById(int idGriglia, RunnableArgs onLoad, RunnableArgs onFail); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java index 67f3c4cc..e42ae623 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/OrdineRepository.java @@ -2,86 +2,25 @@ package it.integry.integrywmsnative.core.data_store.db.repository; import java.util.List; -import it.integry.integrywmsnative.MainApplication; -import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia; import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class OrdineRepository extends Repository { +public interface OrdineRepository { - private OrdineDao mRepository; + void selectAll(RunnableArgs> onSuccess, RunnableArgs onError); - public OrdineRepository() { - this.mRepository = MainApplication.getOrdiniRepository(); - } + void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError); - public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mRepository.getAll()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); - } + void selectAllOpenOrders(Griglia griglia, RunnableArgs> onSuccess, RunnableArgs onError); - public void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mRepository.getAllTrasnmitted()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); - } + void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError); - public void selectAllOpenOrders(Griglia griglia, RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mRepository.getAllOpenOrdersByGriglia(griglia.getGrigliaId())); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); - } + void updateOrder(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError); - public void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - Long id = mRepository.insert(ordine); - onSuccess.run(id.intValue()); - } catch (Exception e) { - onError.run(e); - } - }); - } + void delete(Ordine ordine, Runnable onSuccess, RunnableArgs onError); - public void updateOrder(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mRepository.update(ordine); - onSuccess.run(ordine); - } catch (Exception e) { - onError.run(e); - } - }); - } - - public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mRepository.delete(ordine); - onSuccess.run(); - } catch (Exception e) { - onError.run(e); - } - }); - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java new file mode 100644 index 00000000..51f16d58 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java @@ -0,0 +1,92 @@ +package it.integry.integrywmsnative.core.data_store.db.repository.implementations; + +import com.annimon.stream.Stream; + +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao; +import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia; +import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; + +public class ArticoliGrigliaDataSource extends Repository implements ArticoloGrigliaRepository { + + private final ArticoloGrigliaDao mArticoloGrigliaDao; + + @Inject + public ArticoliGrigliaDataSource(ArticoloGrigliaDao articoloGrigliaDao) { + this.mArticoloGrigliaDao = articoloGrigliaDao; + } + + public void saveArticoliToGriglia(List articoli, Griglia griglia, Runnable onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + List toUpdate = new ArrayList<>(); + List toInsert = new ArrayList<>(); + List codMarts = new ArrayList<>(); + for (ArticoloGriglia art : articoli) { + Integer id = mArticoloGrigliaDao.getIdArticoloByGrigliaAndBarcodeAndCodMart(griglia.getGrigliaId(), art.getBarCode(), art.getCodMart()); + codMarts.add(art.getCodMart()); + if (id != null) { + art.setArticoloGrigliaId(id); + toUpdate.add(art); + } else { + toInsert.add(art); + } + } + mArticoloGrigliaDao.insertAll(toInsert); + mArticoloGrigliaDao.updateAll(toUpdate); + List articoliGriglia = mArticoloGrigliaDao.getArticoliFromGriglia(griglia.getGrigliaId()); + List toDelete = Stream.of(articoliGriglia).filter(articolo -> !codMarts.contains(articolo.getCodMart())).toList(); + mArticoloGrigliaDao.deleteList(toDelete); + onSuccess.run(); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + onSuccess.run(mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia)); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + onSuccess.run(mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(codMart, idGriglia)); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + ArticoloGriglia articolo = mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(scan, idGriglia); + if (articolo == null) { + articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(scan, idGriglia); + if (articolo == null) { + String barcode = StringUtils.leftPad(scan, 13, "0"); + articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia); + } + } + onSuccess.run(articolo); + } catch (Exception e) { + onFail.run(e); + } + }); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java new file mode 100644 index 00000000..d3ec82e8 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java @@ -0,0 +1,114 @@ +package it.integry.integrywmsnative.core.data_store.db.repository.implementations; + +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao; +import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; +import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; + +public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository { + + private final ArticoloOrdineDao mArticoloOrdineDao; + + @Inject + public ArticoliOrdineDataSource(ArticoloOrdineDao articoloOrdineDao) { + this.mArticoloOrdineDao = articoloOrdineDao; + } + + public void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + List toUpdate = new ArrayList<>(); + List toInsert = new ArrayList<>(); + for (ArticoloOrdine art : articoli) { + if (art.getArticoloOrdineId() > 0) { + toUpdate.add(art); + } else { + toInsert.add(art); + } + } + mArticoloOrdineDao.insertAll(toInsert); + mArticoloOrdineDao.updateAll(toUpdate); + onSuccess.run(); + + + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + if (articolo.getArticoloOrdineId() > 0) { + mArticoloOrdineDao.update(articolo); + } else { + mArticoloOrdineDao.insert(articolo); + } + onSuccess.run(); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode); + onSuccess.run(articolo); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + String scannedCode = barcode; + ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode); + if (articolo == null) { + articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); + if (articolo == null) { + scannedCode = StringUtils.leftPad(scannedCode, 13, '0'); + articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); + } + } + onSuccess.run(articolo); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findArticoliByOrdine(Ordine ordine, RunnableArgs> onLoad, RunnableArgs onError) { + execute(() -> { + try { + onLoad.run(mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId())); + } catch (Exception e) { + onError.run(e); + } + }); + } + + public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs onError) { + execute(() -> { + try { + mArticoloOrdineDao.delete(articolo); + onSave.run(); + } catch (Exception e) { + onError.run(e); + } + }); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java new file mode 100644 index 00000000..b73a9105 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java @@ -0,0 +1,69 @@ +package it.integry.integrywmsnative.core.data_store.db.repository.implementations; + +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao; +import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; +import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; + +public class GrigliaDataSource extends Repository implements GrigliaRepository { + + private final GrigliaDao mGrigliaDao; + + @Inject + public GrigliaDataSource(GrigliaDao grigliaDao) { + this.mGrigliaDao = grigliaDao; + } + + public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { + Runnable query = () -> { + try { + onSuccess.run(mGrigliaDao.getAll()); + } catch (Exception e) { + onError.run(e); + } + }; + execute(query); + } + + public void findByCodAlis(String codAlis, RunnableArgs onSuccess, RunnableArgs onError) { + Runnable query = () -> { + try { + onSuccess.run(mGrigliaDao.findByCodAlis(codAlis)); + } catch (Exception e) { + onError.run(e); + } + }; + execute(query); + } + + + public void saveGriglia(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onFail) { + execute(() -> { + try { + if (griglia.getGrigliaId() <= 0) { + griglia.setGrigliaId((int) mGrigliaDao.insert(griglia)); + } else { + mGrigliaDao.update(griglia); + } + onSuccess.run(griglia.getGrigliaId()); + } catch (Exception e) { + onFail.run(e); + } + }); + } + + public void findGrigliaById(int idGriglia, RunnableArgs onLoad, RunnableArgs onFail) { + execute(() -> { + try { + onLoad.run(mGrigliaDao.findGrigliaById(idGriglia)); + } catch (Exception e) { + onFail.run(e); + } + }); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java new file mode 100644 index 00000000..93edfaee --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java @@ -0,0 +1,90 @@ +package it.integry.integrywmsnative.core.data_store.db.repository.implementations; + +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao; +import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; +import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; +import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia; +import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; + +public class OrdineDataSource extends Repository implements OrdineRepository { + + private OrdineDao mOrdineDao; + + @Inject + public OrdineDataSource(OrdineDao ordineDao) { + this.mOrdineDao = ordineDao; + } + + public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { + Runnable query = () -> { + try { + onSuccess.run(mOrdineDao.getAll()); + } catch (Exception e) { + onError.run(e); + } + }; + execute(query); + } + + public void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError) { + Runnable query = () -> { + try { + onSuccess.run(mOrdineDao.getAllTrasnmitted()); + } catch (Exception e) { + onError.run(e); + } + }; + execute(query); + } + + public void selectAllOpenOrders(Griglia griglia, RunnableArgs> onSuccess, RunnableArgs onError) { + Runnable query = () -> { + try { + onSuccess.run(mOrdineDao.getAllOpenOrdersByGriglia(griglia.getGrigliaId())); + } catch (Exception e) { + onError.run(e); + } + }; + execute(query); + } + + public void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) { + execute(() -> { + try { + Long id = mOrdineDao.insert(ordine); + onSuccess.run(id.intValue()); + } catch (Exception e) { + onError.run(e); + } + }); + } + + + public void updateOrder(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) { + execute(() -> { + try { + mOrdineDao.update(ordine); + onSuccess.run(ordine); + } catch (Exception e) { + onError.run(e); + } + }); + } + + public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs onError) { + execute(() -> { + try { + mOrdineDao.delete(ordine); + onSuccess.run(); + } catch (Exception e) { + onError.run(e); + } + }); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/Repository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java similarity index 90% rename from app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/Repository.java rename to app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java index 7e8ec7ee..0637fde2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/Repository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java @@ -1,4 +1,4 @@ -package it.integry.integrywmsnative.core.data_store.db.repository; +package it.integry.integrywmsnative.core.data_store.db.repository.implementations; public class Repository { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java index 1e52ec0c..16dcb743 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java @@ -8,20 +8,18 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.Map; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; -import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO; import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.rest.RESTBuilder; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; -import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityLogger; +import it.integry.integrywmsnative.core.utility.UtilityThread; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.ArtDTO; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.OrdineDTO; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.SaveDTO; @@ -41,25 +39,27 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { public void onResponse(Call> call, Response> response) { analyzeAnswer(response, "getArticoliListino", griglia -> { - List listaArticoli = new ArrayList<>(); - Stream.of(griglia.getGrigliaAcquistiChild()) - .map(ArticoloDTO::getCodMart) - .distinct() - .withoutNulls() - .forEach(art -> { - List inList = Stream.of(griglia.getGrigliaAcquistiChild()).filter(x -> x.getCodMart().equalsIgnoreCase(art)).toList(); - if (inList.size() > 1) { - for (ArticoloDTO articolo : inList) { - if (!articolo.getBarCode().endsWith(articolo.getCodMart())) { - listaArticoli.add(articolo); + UtilityThread.executeParallel(() -> { + List listaArticoli = new ArrayList<>(); + Stream.of(griglia.getGrigliaAcquistiChild()) + .map(ArticoloDTO::getCodMart) + .distinct() + .withoutNulls() + .forEach(art -> { + List inList = Stream.of(griglia.getGrigliaAcquistiChild()).filter(x -> x.getCodMart().equalsIgnoreCase(art)).toList(); + if (inList.size() > 1) { + for (ArticoloDTO articolo : inList) { + if (!articolo.getBarCode().endsWith(articolo.getCodMart())) { + listaArticoli.add(articolo); + } } + } else { + listaArticoli.add(inList.get(0)); } - } else { - listaArticoli.add(inList.get(0)); - } - }); - griglia.setGrigliaAcquistiChild(listaArticoli); - onSuccess.run(griglia); + }); + griglia.setGrigliaAcquistiChild(listaArticoli); + onSuccess.run(griglia); + }); }, onFailed); } @@ -106,8 +106,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { ordine.setDataOrdS(dto.getDataOrd()); ordine.setCodMdep(dto.getCodMdep()); ordine.setNumOrd(dto.getNumOrd()); - OrdineRepository repository = new OrdineRepository(); - repository.updateOrder(ordine,onSuccess,onFailed); + onSuccess.run(ordine); }else{ onFailed.run(new Exception("Nessun ordine generato")); } 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 4d111d95..0f5a9ec4 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 @@ -1,16 +1,15 @@ package it.integry.integrywmsnative.core.utility; -import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.core.data_store.db.AppDatabase; import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.core.settings.SettingsModel; public class UtilitySettings { - public static void logout(){ + public static void logout(AppDatabase appDatabase){ SettingsManager.i().user = null; SettingsManager.i().userSession = null; - MainApplication.clearDB(); + UtilityThread.executeParallel(appDatabase::clearAllTables); SettingsManager.update(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityThread.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityThread.java new file mode 100644 index 00000000..e04b0ff3 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityThread.java @@ -0,0 +1,9 @@ +package it.integry.integrywmsnative.core.utility; + +public class UtilityThread { + + public static void executeParallel(Runnable runnable) { + new Thread(runnable).start(); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java index 4ef7fc62..b4284d8d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoComponent.java @@ -1,13 +1,15 @@ package it.integry.integrywmsnative.gest.picking_libero; -import javax.inject.Singleton; +import dagger.Subcomponent; -import dagger.Component; -import it.integry.integrywmsnative.MainApplicationComponent; - -@Singleton -@Component(modules = {PickingLiberoModule.class}, dependencies = {MainApplicationComponent.class}) +@Subcomponent public interface PickingLiberoComponent { + @Subcomponent.Factory + interface Factory { + + PickingLiberoComponent create(); + } + void inject(PickingLiberoFragment pickingLiberoFragment); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java index e2b3b69e..15c70d10 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java @@ -112,12 +112,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment, // Inflate the layout for this fragment mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_picking_libero, container, false); - PickingLiberoComponent pickingLiberoComponent = DaggerPickingLiberoComponent.builder() - .mainApplicationModule(MainApplication.appModule) - .mainApplicationComponent(MainApplication.appComponent) - .build(); - - pickingLiberoComponent.inject(this); + MainApplication.appComponent + .pickingLiberoComponent() + .create() + .inject(this); mViewModel.setListener(this); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java index 6fb5df8f..c994a493 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoModule.java @@ -4,13 +4,12 @@ import javax.inject.Singleton; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.MainApplicationModule; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; -@Module(includes = {MainApplicationModule.class}) +@Module(subcomponents = {PickingLiberoComponent.class}) public class PickingLiberoModule { @Provides diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index e2589d5e..913f46dc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -15,7 +15,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + import it.integry.barcode_base_android_library.model.BarcodeScanDTO; +import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; @@ -23,6 +26,10 @@ import it.integry.integrywmsnative.core.data_cache.DataCache; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; import it.integry.integrywmsnative.core.utility.UtilityDate; @@ -30,10 +37,10 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.adapter.OrdineAcquistoArtListAdapter; -import it.integry.integrywmsnative.view.dialogs.DialogAskAction; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper; import it.integry.integrywmsnative.ui.FabMenuCustomAnimations; +import it.integry.integrywmsnative.view.dialogs.DialogAskAction; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; @@ -47,11 +54,27 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity { private int mBarcodeScannerIstanceID; private OrdineAcquistoArtListAdapter mAdapter; + @Inject + OrdineRepository mOrdineRepository; + @Inject + GrigliaRepository mGrigliaRepository; + @Inject + ArticoliOrdineRepository mArticoliOrdineRepository; + @Inject + ArticoloGrigliaRepository mArticoloGrigliaRepository; + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mhelper = new PVEditOrderHelper(this); + MainApplication.appComponent + .pvOrdineAcquistoEditComponent() + .create() + .inject(this); + + mhelper = new PVEditOrderHelper(mGrigliaRepository, mArticoliOrdineRepository, mArticoloGrigliaRepository); + mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pv_ordine_acquisto_edit); mBinding.setViewModel(this); mOrdine = DataCache.retrieveItem(getIntent().getStringExtra("keyOrdine")); @@ -152,7 +175,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity { } private void addArticolo(ArticoloOrdine articoloOrdine) { - runOnUiThread(() -> EditArticoloDialog.make(this, articoloOrdine, articolo -> { + runOnUiThread(() -> EditArticoloDialog.make(this, mhelper, articoloOrdine, articolo -> { BarcodeManager.enable(); if (articolo != null) { Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show(); @@ -197,11 +220,18 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity { public void exportOrdine() { final Dialog progress = UtilityProgress.createDefaultProgressDialog(this); PVOrdiniAcquistoRESTConsumer.saveOrdine(mOrdine, mArticoli, mGriglia, (ordine) -> { - progress.dismiss(); - runOnUiThread(() -> { - Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show(); - onBackPressed(); - }); + + mOrdineRepository.updateOrder(ordine, ord -> { + progress.dismiss(); + runOnUiThread(() -> { + Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show(); + onBackPressed(); + }); + }, e -> runOnUiThread(() -> { + progress.dismiss(); + UtilityExceptions.defaultException(this, e); + })); + }, e -> runOnUiThread(() -> { progress.dismiss(); UtilityExceptions.defaultException(this, e); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditComponent.java new file mode 100644 index 00000000..beb80eee --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditComponent.java @@ -0,0 +1,15 @@ +package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit; + +import dagger.Subcomponent; + +@Subcomponent +public interface PVOrdineAcquistoEditComponent { + + @Subcomponent.Factory + interface Factory { + + PVOrdineAcquistoEditComponent create(); + } + + void inject(PVOrdineAcquistoEditActivity pvOrdineAcquistoEditActivity); +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java new file mode 100644 index 00000000..455e4dde --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit; + +import dagger.Module; + +@Module(subcomponents = PVOrdineAcquistoEditComponent.class) +public class PVOrdineAcquistoEditModule { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dialog/EditArticoloDialog.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dialog/EditArticoloDialog.java index 84dc5b19..e655d498 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dialog/EditArticoloDialog.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dialog/EditArticoloDialog.java @@ -37,10 +37,17 @@ public class EditArticoloDialog { private boolean mLockedInput = false; - private EditArticoloDialog(Activity context, ArticoloOrdine articolo, RunnableArgs onDialogDismiss) { + + public static Dialog make(Activity context, PVEditOrderHelper helper, ArticoloOrdine articolo, RunnableArgs onDialogDismiss) { + return new EditArticoloDialog(context, helper, articolo, onDialogDismiss).mDialog; + } + + + private EditArticoloDialog(Activity context, PVEditOrderHelper helper, ArticoloOrdine articolo, RunnableArgs onDialogDismiss) { mContext = context; mArticolo = articolo; - mHelper = new PVEditOrderHelper(context); + mHelper = helper; + mSavedArt = null; LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); @@ -52,11 +59,11 @@ public class EditArticoloDialog { UtilityDialog.setTo90PercentWidth(mContext, mDialog); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - int qtaCnf = (int)Math.ceil(mArticolo.getQtaOrd() / mArticolo.getQtaCnf()); + int qtaCnf = (int) Math.ceil(mArticolo.getQtaOrd() / mArticolo.getQtaCnf()); mBinding.qtaTot.setText(String.valueOf(mArticolo.getQtaOrd())); mBinding.qtaCnf.setText(String.valueOf(qtaCnf)); mDialog.setOnShowListener(dialog -> { - UtilityFocus.focusTextBox(mContext,mBinding.qtaTot); + UtilityFocus.focusTextBox(mContext, mBinding.qtaTot); }); mDialog.setOnDismissListener(dialog -> { @@ -74,7 +81,7 @@ public class EditArticoloDialog { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - setQtaOrd(s.toString().length() >0 ? Float.parseFloat(s.toString()) : 0); + setQtaOrd(s.toString().length() > 0 ? Float.parseFloat(s.toString()) : 0); } @Override @@ -89,7 +96,7 @@ public class EditArticoloDialog { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - setQtaCnf(s.toString().length() >0 ? Integer.parseInt(s.toString()) : 0); + setQtaCnf(s.toString().length() > 0 ? Integer.parseInt(s.toString()) : 0); } @Override @@ -98,49 +105,47 @@ public class EditArticoloDialog { } }); } - public void setQtaCnf(int qtaCnf){ - if (mLockedInput){ + + public void setQtaCnf(int qtaCnf) { + if (mLockedInput) { mLockedInput = false; - }else{ + } else { mLockedInput = true; float qtaTot = qtaCnf * mArticolo.getQtaCnf(); mBinding.qtaTot.setText(String.valueOf(qtaTot)); } } - public void setQtaOrd(float qtaOrd){ + + public void setQtaOrd(float qtaOrd) { mArticolo.setQtaOrd(qtaOrd); - if (mLockedInput){ + if (mLockedInput) { mLockedInput = false; - }else{ + } else { mLockedInput = true; - mBinding.qtaCnf.setText(String.valueOf((int)Math.ceil(qtaOrd / mArticolo.getQtaCnf()))); + mBinding.qtaCnf.setText(String.valueOf((int) Math.ceil(qtaOrd / mArticolo.getQtaCnf()))); } } - public static Dialog make(Activity context, ArticoloOrdine articolo, RunnableArgs onDialogDismiss) { - return new EditArticoloDialog(context, articolo, onDialogDismiss).mDialog; - } - - public void saveAndExit(){ + public void saveAndExit() { final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext); - try{ + try { float qtaOrd = Float.parseFloat(mBinding.qtaTot.getText().toString()); - if (qtaOrd <= 0){ + if (qtaOrd <= 0) { throw new Exception("La quantità ordinata deve essere maggiore di 0"); } mArticolo.setQtaOrd(qtaOrd); - }catch (Exception e){ - mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e)); + } catch (Exception e) { + mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e)); progress.dismiss(); return; } - mHelper.saveArticoloToOrdine(mArticolo, ()->{ + mHelper.saveArticoloToOrdine(mArticolo, () -> { mSavedArt = mArticolo; progress.dismiss(); mDialog.dismiss(); - },e-> mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e))); + }, e -> mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e))); } public ArticoloOrdine getArticolo() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/helper/PVEditOrderHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/helper/PVEditOrderHelper.java index a778db12..da003f81 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/helper/PVEditOrderHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/helper/PVEditOrderHelper.java @@ -1,29 +1,24 @@ package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper; -import android.content.Context; - import java.util.List; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; -import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; public class PVEditOrderHelper { - private Context mContext; - private GrigliaRepository mGrigliaRepository; - private ArticoliOrdineRepository mArticoliOrdineRepository; - private ArticoliGrigliaRepository mArticoliGrigliaRepository; + private final GrigliaRepository mGrigliaRepository; + private final ArticoliOrdineRepository mArticoliOrdineRepository; + private final ArticoloGrigliaRepository mArticoliGrigliaRepository; - public PVEditOrderHelper(Context mContext) { - this.mContext = mContext; - mGrigliaRepository = new GrigliaRepository(); - mArticoliOrdineRepository = new ArticoliOrdineRepository(); - mArticoliGrigliaRepository = new ArticoliGrigliaRepository(); + public PVEditOrderHelper(GrigliaRepository grigliaRepository, ArticoliOrdineRepository articoliOrdineRepository, ArticoloGrigliaRepository articoloGrigliaRepository) { + mGrigliaRepository = grigliaRepository; + mArticoliOrdineRepository = articoliOrdineRepository; + mArticoliGrigliaRepository = articoloGrigliaRepository; } public void checkArticolo(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaComponent.java new file mode 100644 index 00000000..5da928e4 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaComponent.java @@ -0,0 +1,16 @@ +package it.integry.integrywmsnative.gest.pv_ordini_acquisto; + +import dagger.Subcomponent; + +@Subcomponent +public interface PVOrdineAcquistoGrigliaComponent { + + @Subcomponent.Factory + interface Factory { + + PVOrdineAcquistoGrigliaComponent create(); + } + + void inject(PVOrdiniAcquistoGrigliaFragment pvOrdiniAcquistoGrigliaFragment); + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaModule.java new file mode 100644 index 00000000..7e49f63c --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdineAcquistoGrigliaModule.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative.gest.pv_ordini_acquisto; + +import dagger.Module; + +@Module(subcomponents = PVOrdineAcquistoGrigliaComponent.class) +public class PVOrdineAcquistoGrigliaModule { +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java index 9cce5f01..39899842 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java @@ -21,15 +21,19 @@ import androidx.recyclerview.widget.LinearLayoutManager; import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + +import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.data_cache.DataCache; -import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; @@ -37,10 +41,10 @@ import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding; +import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.core.OrdineAcquistoPvOpenListAdapter; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisA; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper; -import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity; import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.view.dialogs.DialogAskAction; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; @@ -54,9 +58,24 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled private List mRenderedOrderList = new ArrayList<>(); private boolean mRedirectToNewOrder = true; + @Inject + GrigliaRepository mGrigliaRepository; + @Inject + ArticoliOrdineRepository mArticoliOrdineRepository; + @Inject + ArticoloGrigliaRepository mArticoloGrigliaRepository; + @Inject + OrdineRepository mOrdineRepository; public PVOrdiniAcquistoGrigliaFragment() { - mHelper = new OrdineAcquistoPvHelper(getActivity()); + // Gets appComponent from MyApplication available in the base Gradle module + MainApplication.appComponent + .pvOrdineAcquistoGrigliaComponent() + .create() + .inject(this); + + + } public static PVOrdiniAcquistoGrigliaFragment newInstance() { @@ -73,6 +92,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_acquisto, container, false); mBinding.setViewmodel(this); + mHelper = new OrdineAcquistoPvHelper(getActivity(), mGrigliaRepository, mArticoloGrigliaRepository, mArticoliOrdineRepository, mOrdineRepository); + init(); initRecyclerView(); return mBinding.getRoot(); @@ -81,9 +102,9 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled private void init() { BarcodeManager.enable(); - DialogScanLisA.make(getActivity(), griglia -> { + DialogScanLisA.make(getActivity(), mGrigliaRepository, mHelper, griglia -> { if (griglia == null) { - ((IPoppableActivity) getActivity()).pop(); + if (getActivity() != null) ((IPoppableActivity) getActivity()).pop(); } else { setGriglia(griglia); } @@ -109,8 +130,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled private void fetchOrders() { final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress)); - OrdineRepository repository = new OrdineRepository(); - repository.selectAllOpenOrders(mGriglia, (ordini) -> getActivity().runOnUiThread(() -> { + + mOrdineRepository.selectAllOpenOrders(mGriglia, (ordini) -> getActivity().runOnUiThread(() -> { progress.dismiss(); setOrdini(ordini); }), (e) -> { @@ -127,7 +148,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled mAdapter.updateItems(mRenderedOrderList); if (mRenderedOrderList.size() <= 0 && mRedirectToNewOrder) { createNewOrder(); - }else{ + } else { mRedirectToNewOrder = false; } } @@ -160,7 +181,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled } - private void selectAction(Ordine ordine) { getActivity().runOnUiThread(() -> DialogAskAction.make(getActivity(), Html.fromHtml(String.format(this.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))).toString(), diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoTransmittedListFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoTransmittedListFragment.java index 93a9d429..f4cb2837 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoTransmittedListFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoTransmittedListFragment.java @@ -16,7 +16,7 @@ import java.util.ArrayList; import java.util.List; import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource; import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; @@ -84,7 +84,9 @@ public class PVOrdiniAcquistoTransmittedListFragment extends Fragment implements private void init(){ final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity()); - OrdineRepository repository = new OrdineRepository(); + + //TODO: resolve databinding + OrdineDataSource repository = null; //new OrdineDataSource(); repository.selectAllTransmitted((ordini)->{ mOriginalOrderList = ordini; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java index 1f9268da..e10d66bf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java @@ -3,10 +3,8 @@ package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs; import android.app.Activity; import android.app.Dialog; import android.content.Context; -import android.content.DialogInterface; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; -import android.view.KeyEvent; import android.view.LayoutInflater; import androidx.databinding.DataBindingUtil; @@ -35,12 +33,16 @@ public class DialogScanLisA { private RunnableArgs mOnDialogDismiss; private OrdineAcquistoPvHelper mHelper; + + private GrigliaRepository mGrigliaRepository; private Griglia mGriglia; - private DialogScanLisA(Activity context, RunnableArgs onDialogDismiss) { + private DialogScanLisA(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs onDialogDismiss) { mOnDialogDismiss = null; mContext = context; - mHelper = new OrdineAcquistoPvHelper(context); + mGrigliaRepository = grigliaRepository; + mHelper = helper; + LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mGriglia = null; mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_codice_griglia, null, false); @@ -53,8 +55,8 @@ public class DialogScanLisA { initBarcode(); } - public static Dialog make(Activity context, RunnableArgs onDialogDismiss) { - return new DialogScanLisA(context, onDialogDismiss).mDialog; + public static Dialog make(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs onDialogDismiss) { + return new DialogScanLisA(context, grigliaRepository, helper, onDialogDismiss).mDialog; } @@ -94,9 +96,8 @@ public class DialogScanLisA { }); }; - GrigliaRepository repository = new GrigliaRepository(); - repository.findByCodAlis(data.getStringValue(), griglia -> { + mGrigliaRepository.findByCodAlis(data.getStringValue(), griglia -> { if (griglia != null) { griglia.getGriglia().setCountArticoli(griglia.getCountArticoli()); mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvailable, mOnError); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java index 0b953e1c..7f401c84 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java @@ -1,6 +1,6 @@ package it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper; -import android.content.Context; +import android.app.Activity; import java.util.ArrayList; import java.util.Date; @@ -9,8 +9,8 @@ import java.util.List; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; -import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository; import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository; import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO; @@ -19,18 +19,18 @@ import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsu public class OrdineAcquistoPvHelper { - private Context mContext; + private Activity mContext; private GrigliaRepository mGrigliaRepository; - private ArticoliGrigliaRepository mArticoliGrigliaRepository; + private ArticoloGrigliaRepository mArticoliGrigliaRepository; private ArticoliOrdineRepository mArticoliOrdineRepository; private OrdineRepository mOrdineRepository; - public OrdineAcquistoPvHelper(Context mContext) { - this.mContext = mContext; - this.mGrigliaRepository = new GrigliaRepository(); - this.mArticoliGrigliaRepository = new ArticoliGrigliaRepository(); - this.mArticoliOrdineRepository = new ArticoliOrdineRepository(); - this.mOrdineRepository = new OrdineRepository(); + public OrdineAcquistoPvHelper(Activity context, GrigliaRepository grigliaRepository, ArticoloGrigliaRepository articoloGrigliaRepository, ArticoliOrdineRepository articoliOrdineRepository, OrdineRepository ordineRepository) { + this.mContext = context; + this.mGrigliaRepository = grigliaRepository; + this.mArticoliGrigliaRepository = articoloGrigliaRepository; + this.mArticoliOrdineRepository = articoliOrdineRepository; + this.mOrdineRepository = ordineRepository; } @@ -42,16 +42,16 @@ public class OrdineAcquistoPvHelper { public void updateGriglia(Griglia griglia, RunnableArgs onSave, RunnableArgs onFail) { PVOrdiniAcquistoRESTConsumer.getArticoliListino(griglia.getCodAlis(), dto -> { - if (dto.getGrigliaAcquistiChild().size() <= 0) { - Exception e = new Exception("La griglia selezionata (" + griglia.getCodAlis() + ") non esiste o non presenta articoli"); - onFail.run(e); - return; - } - griglia.setDescrLisa(dto.getDescrLisa()); - griglia.setDescrDepo(dto.getDescrDepo()); - griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size()); - mGrigliaRepository.saveGriglia(griglia, id -> saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail), onFail); - + mContext.runOnUiThread(() -> { + if (dto.getGrigliaAcquistiChild().size() <= 0) { + onFail.run(new Exception("La griglia selezionata (" + griglia.getCodAlis() + ") non esiste o non presenta articoli")); + return; + } + griglia.setDescrLisa(dto.getDescrLisa()); + griglia.setDescrDepo(dto.getDescrDepo()); + griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size()); + mGrigliaRepository.saveGriglia(griglia, id -> saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail), onFail); + }); }, onFail); } @@ -62,7 +62,7 @@ public class OrdineAcquistoPvHelper { toSave.setIdGriglia(griglia.getGrigliaId()); articoliGriglia.add(toSave); } - mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia,griglia, () -> onSave.run(griglia), onFail); + mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia, griglia, () -> onSave.run(griglia), onFail); } public void createNewOrder(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onError) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeComponent.java index 65ac76fd..eddf0f40 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeComponent.java @@ -1,14 +1,16 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze; -import javax.inject.Singleton; +import dagger.Subcomponent; -import dagger.Component; -import it.integry.integrywmsnative.MainApplicationComponent; - -@Singleton -@Component(modules = {RettificaGiacenzeModule.class}, dependencies = {MainApplicationComponent.class}) +@Subcomponent public interface RettificaGiacenzeComponent { + @Subcomponent.Factory + interface Factory { + + RettificaGiacenzeComponent create(); + } + void inject(RettificaGiacenzeFragment rettificaGiacenzeFragment); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java index b1862e44..cfbf7f07 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java @@ -103,12 +103,10 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_rettifica_giacenze, container, false); - RettificaGiacenzeComponent rettificaGiacenzeComponent = DaggerRettificaGiacenzeComponent.builder() - .mainApplicationModule(MainApplication.appModule) - .mainApplicationComponent(MainApplication.appComponent) - .build(); - - rettificaGiacenzeComponent.inject(this); + MainApplication.appComponent + .rettificaGiacenzeComponent() + .create() + .inject(this); mViewModel.setListener(this); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeModule.java index 8fa159c8..d4d5f481 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeModule.java @@ -4,7 +4,6 @@ import javax.inject.Singleton; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.MainApplicationModule; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; @@ -12,7 +11,7 @@ import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer; -@Module(includes = {MainApplicationModule.class}) +@Module(subcomponents = RettificaGiacenzeComponent.class) public class RettificaGiacenzeModule { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java index 71e33e6d..c384c564 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java @@ -109,12 +109,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione); - SpedizioneComponent spedizioneComponent = DaggerSpedizioneComponent.builder() - .mainApplicationModule(MainApplication.appModule) - .mainApplicationComponent(MainApplication.appComponent) - .build(); - - spedizioneComponent.inject(this); + MainApplication.appComponent + .spedizioneComponent() + .create() + .inject(this); mViewmodel.setListeners(this); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java index 918f981f..2183034c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneComponent.java @@ -1,14 +1,16 @@ package it.integry.integrywmsnative.gest.spedizione; -import javax.inject.Singleton; +import dagger.Subcomponent; -import dagger.Component; -import it.integry.integrywmsnative.MainApplicationComponent; - -@Singleton -@Component(modules = {SpedizioneModule.class}, dependencies = {MainApplicationComponent.class}) +@Subcomponent public interface SpedizioneComponent { + @Subcomponent.Factory + interface Factory { + + SpedizioneComponent create(); + } + void inject(SpedizioneActivity spedizioneActivity); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java index 9075fd05..100a3a9b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneModule.java @@ -4,7 +4,6 @@ import javax.inject.Singleton; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.MainApplicationModule; import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; @@ -13,7 +12,7 @@ import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel; -@Module(includes = {MainApplicationModule.class}) +@Module(subcomponents = SpedizioneComponent.class) public class SpedizioneModule { @Provides