diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml index e9268407..bc0e1560 100644 --- a/.idea/appInsightsSettings.xml +++ b/.idea/appInsightsSettings.xml @@ -4,6 +4,20 @@ + + + + + + + + + + + + + + diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index f23a4811..1d0d251a 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -4,10 +4,10 @@ - + - + diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index 214f6815..8f5d1df8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -144,6 +144,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUModule; +import it.integry.integrywmsnative.view.dialogs.switch_user_depo.DialogSwitchUserDepoComponent; +import it.integry.integrywmsnative.view.dialogs.switch_user_depo.DialogSwitchUserDepoModule; import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiComponent; import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracciamentoImballiModule; @@ -221,7 +223,8 @@ import it.integry.integrywmsnative.view.dialogs.tracciamento_imballi.DialogTracc ArticoliInGiacenzaModule.class, DialogTracciamentoImballiModule.class, DialogAskVettoreModule.class, - DialogCreateNewArtModule.class + DialogCreateNewArtModule.class, + DialogSwitchUserDepoModule.class }) public interface MainApplicationComponent { @@ -370,6 +373,8 @@ public interface MainApplicationComponent { DialogCreateNewArtComponent.Factory dialogCreateNewArtComponent(); + DialogSwitchUserDepoComponent.Factory dialogSwitchUserDepoComponent(); + void inject(MainApplication mainApplication); void inject(AppContext mainApplication); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java index 0b3909e3..22835d2e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java @@ -88,6 +88,7 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi .create() .inject(this); + mViewModel.setListener(this); mCanRecoverUl = DataCache.retrieveItem(getIntent().getStringExtra(Key.CanRecoverUL)); mReportName = DataCache.retrieveItem(getIntent().getStringExtra(Key.ReportName)); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java index 2686d2b0..1873e18b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java @@ -41,6 +41,7 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer; +import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO; import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSResponseDTO; import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker; @@ -51,6 +52,7 @@ import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.databinding.FragmentMainBinding; import it.integry.integrywmsnative.databinding.FragmentMainMenuGroupLayoutBinding; import it.integry.integrywmsnative.ui.ElevatedToolbar; +import it.integry.integrywmsnative.view.dialogs.switch_user_depo.DialogSwitchUserDepoView; /** * A simple {@link Fragment} subclass. @@ -153,6 +155,8 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab initSessionData(); initRecuperoCollo(); + + mBindings.switchDepoButton.setVisibility(SettingsManager.iDB().getAvailableCodMdep().size() > 1 ? View.VISIBLE : View.GONE); } private void initSessionData() { @@ -278,8 +282,8 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab private void initGestMenu() { int menuSpanCount = 2; - if (UtilityDimension.getDisplayInchs(this.getActivity()) > 8) menuSpanCount = 4; - else if (UtilityDimension.getDisplayInchs(this.getActivity()) > 6.5) menuSpanCount = 3; + if (UtilityDimension.getDisplayInchs(this.requireActivity()) > 8) menuSpanCount = 4; + else if (UtilityDimension.getDisplayInchs(this.requireActivity()) > 6.5) menuSpanCount = 3; MenuConfiguration baseMenuConfiguration = new MenuConfiguration(); List menuGroups = baseMenuConfiguration.getGroups(); @@ -319,7 +323,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab } catch (Exception exception) { - exception.printStackTrace(); + UtilityExceptions.defaultException(requireActivity(), exception); } } @@ -421,4 +425,14 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab colorFadeTitleTextColor.setDuration(animationTimeMillis); colorFadeTitleTextColor.start(); } + + public void changeUserDepo() { + DialogSwitchUserDepoView.newInstance(SettingsManager.iDB().getAvailableCodMdep(), this::onUserDepoChanged) + .show(getParentFragmentManager(), "switch-user-depo"); + } + + private void onUserDepoChanged(AvailableCodMdepsDTO newDepo) { + SettingsManager.i().getUserSession().setDepo(newDepo); + initSessionData(); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoComponent.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoComponent.java new file mode 100644 index 00000000..fb3dedcb --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoComponent.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.view.dialogs.switch_user_depo; + +import dagger.Subcomponent; + +@Subcomponent +public interface DialogSwitchUserDepoComponent { + + @Subcomponent.Factory + interface Factory { + DialogSwitchUserDepoComponent create(); + } + + void inject(DialogSwitchUserDepoView dialogSwitchUserDepoView); +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoModule.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoModule.java new file mode 100644 index 00000000..7f05d9e5 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoModule.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.view.dialogs.switch_user_depo; + +import dagger.Module; +import dagger.Provides; + +@Module(subcomponents = DialogSwitchUserDepoComponent.class) +public class DialogSwitchUserDepoModule { + + @Provides + DialogSwitchUserDepoViewModel providesDialogSwitchUserDepoViewModel() { + return new DialogSwitchUserDepoViewModel(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoView.java new file mode 100644 index 00000000..1026465e --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoView.java @@ -0,0 +1,93 @@ +package it.integry.integrywmsnative.view.dialogs.switch_user_depo; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.LayoutInflater; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + +import java.util.List; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.BR; +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.di.binders.recyclerview.BindingRecyclerViewAdapter; +import it.integry.integrywmsnative.core.di.binders.recyclerview.ItemBinder; +import it.integry.integrywmsnative.core.di.binders.recyclerview.ItemBinderBase; +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO; +import it.integry.integrywmsnative.databinding.DialogSwitchUserDepoBinding; + +public class DialogSwitchUserDepoView extends BaseDialogFragment { + + @Inject + DialogSwitchUserDepoViewModel mViewModel; + + private DialogSwitchUserDepoBinding mBindings; + private Context mContext; + + private final List availableCodMdeps; + private final RunnableArgs onComplete; + + //Pass here all external parameters + public static DialogSwitchUserDepoView newInstance(List availableCodMdeps, RunnableArgs onComplete) { + return new DialogSwitchUserDepoView(availableCodMdeps, onComplete); + } + + private DialogSwitchUserDepoView(List availableCodMdeps, RunnableArgs onComplete) { + super(); + + this.availableCodMdeps = availableCodMdeps; + this.onComplete = onComplete; + + MainApplication.appComponent + .dialogSwitchUserDepoComponent() + .create() + .inject(this); + } + + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.mContext = requireContext(); + + mBindings = DialogSwitchUserDepoBinding.inflate(LayoutInflater.from(this.mContext), null, false); + mBindings.setLifecycleOwner(this); + + setCancelable(true); + + var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + .setView(mBindings.getRoot()) + .setCancelable(isCancelable()) + .create(); + + alertDialog.setCanceledOnTouchOutside(isCancelable()); + alertDialog.setOnShowListener(this); + + return alertDialog; + } + + @Override + public void onInit(DialogInterface dialogInterface) { + super.onInit(dialogInterface); + + ItemBinder itemBinder = new ItemBinderBase<>(BR.item, R.layout.dialog_switch_user_depo__list_item); + + BindingRecyclerViewAdapter adapter = new BindingRecyclerViewAdapter<>(itemBinder, availableCodMdeps); + adapter.setClickHandler(data -> { + onComplete.run(data); + dismiss(); + }); + + mBindings.availableDepoList.setAdapter(adapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoViewModel.java new file mode 100644 index 00000000..97cfeaca --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/switch_user_depo/DialogSwitchUserDepoViewModel.java @@ -0,0 +1,5 @@ +package it.integry.integrywmsnative.view.dialogs.switch_user_depo; + +public class DialogSwitchUserDepoViewModel { + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_rounded_change_circle_24.xml b/app/src/main/res/drawable/ic_rounded_change_circle_24.xml new file mode 100644 index 00000000..ed34fc5d --- /dev/null +++ b/app/src/main/res/drawable/ic_rounded_change_circle_24.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/layout/dialog_switch_user_depo.xml b/app/src/main/res/layout/dialog_switch_user_depo.xml new file mode 100644 index 00000000..93813766 --- /dev/null +++ b/app/src/main/res/layout/dialog_switch_user_depo.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_switch_user_depo__list_item.xml b/app/src/main/res/layout/dialog_switch_user_depo__list_item.xml new file mode 100644 index 00000000..a5734899 --- /dev/null +++ b/app/src/main/res/layout/dialog_switch_user_depo__list_item.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 113a1ee6..bc792173 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -79,7 +79,7 @@ android:padding="16dp"> - + android:orientation="vertical" + android:layout_marginEnd="16dp" + android:layout_toEndOf="@id/user_icon" + android:layout_toStartOf="@id/switch_depo_button"> + tools:text="MARIO ROSSI" /> + tools:text="Deposito: 01 - Centrale" /> - + + + + + Griglie disponibili Cerca + + Cambia deposito + Cambia il deposito principale su cui stai lavorando tra quelli a te disponibili \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bcf8bed7..696bed5e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -488,4 +488,7 @@ Available grids Search + + Change deposit + Change the main deposit you are working on among those available to you