Implementato switch deposito in home page

This commit is contained in:
2025-01-13 15:54:23 +01:00
parent b3641534c9
commit cb77c21656
15 changed files with 307 additions and 11 deletions

View File

@@ -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);

View File

@@ -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));

View File

@@ -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<MenuConfiguration.MenuGroup> 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();
}
}

View File

@@ -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);
}

View File

@@ -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();
}
}

View File

@@ -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<AvailableCodMdepsDTO> availableCodMdeps;
private final RunnableArgs<AvailableCodMdepsDTO> onComplete;
//Pass here all external parameters
public static DialogSwitchUserDepoView newInstance(List<AvailableCodMdepsDTO> availableCodMdeps, RunnableArgs<AvailableCodMdepsDTO> onComplete) {
return new DialogSwitchUserDepoView(availableCodMdeps, onComplete);
}
private DialogSwitchUserDepoView(List<AvailableCodMdepsDTO> availableCodMdeps, RunnableArgs<AvailableCodMdepsDTO> 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<AvailableCodMdepsDTO> itemBinder = new ItemBinderBase<>(BR.item, R.layout.dialog_switch_user_depo__list_item);
BindingRecyclerViewAdapter<AvailableCodMdepsDTO> adapter = new BindingRecyclerViewAdapter<>(itemBinder, availableCodMdeps);
adapter.setClickHandler(data -> {
onComplete.run(data);
dismiss();
});
mBindings.availableDepoList.setAdapter(adapter);
}
}

View File

@@ -0,0 +1,5 @@
package it.integry.integrywmsnative.view.dialogs.switch_user_depo;
public class DialogSwitchUserDepoViewModel {
}