Migliorie login page

This commit is contained in:
2025-06-24 16:48:27 +02:00
parent 4d81b24fd4
commit 01b91adc61
4 changed files with 29 additions and 4 deletions

View File

@@ -6,6 +6,8 @@ import android.text.Html;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@@ -91,7 +93,9 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
public void login() { public void login() {
if (validate(username.get(), codAzienda.get())) { if (validate(username.get(), codAzienda.get())) {
loginButtonEnabled.set(false); loginButtonEnabled.set(false);
mViewmodel.login(codAzienda.get(), username.get(), password.get()); mViewmodel.login(codAzienda.get(), username.get(), password.get(), () -> {
loginButtonEnabled.set(true);
});
} }
} }
@@ -118,7 +122,7 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
@Override @Override
public void requestProfileSelection(List<String> availableProfiles, RunnableArgs<String> onComplete) { public void requestProfileSelection(List<String> availableProfiles, RunnableArgs<String> onComplete) {
// setup the alert builder // setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new MaterialAlertDialogBuilder(this);
builder.setTitle(R.string.action_choose_profile_db); builder.setTitle(R.string.action_choose_profile_db);
// add a list // add a list
@@ -131,6 +135,10 @@ public class LoginActivity extends BaseActivity implements LoginViewModel.Listen
onComplete.run(availableProfiles.get(which)); onComplete.run(availableProfiles.get(which));
}); });
builder.setOnCancelListener(dialog -> {
onComplete.run(null);
});
// create and show the alert dialog // create and show the alert dialog
AlertDialog dialog = builder.create(); AlertDialog dialog = builder.create();
dialog.show(); dialog.show();

View File

@@ -40,7 +40,7 @@ public class LoginViewModel {
} }
public void login(String codAzienda, String username, String password) { public void login(String codAzienda, String username, String password, Runnable onComplete) {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
retrieveServerData(codAzienda, (protocol, host, port) -> { retrieveServerData(codAzienda, (protocol, host, port) -> {
@@ -50,6 +50,12 @@ public class LoginViewModel {
FirebaseInstallations.getInstance().getId().addOnCompleteListener(fid -> { FirebaseInstallations.getInstance().getId().addOnCompleteListener(fid -> {
retrieveAvailableProfiles(protocol, host, port, username, password, selectedProfile -> { retrieveAvailableProfiles(protocol, host, port, username, password, selectedProfile -> {
if(selectedProfile == null) {
this.sendOnLoadingEnded();
onComplete.run();
return;
}
SettingsManager.i().createUserSession(); SettingsManager.i().createUserSession();
authenticate(protocol, host, port, username, password, selectedProfile, fid.getResult(), fullName -> { authenticate(protocol, host, port, username, password, selectedProfile, fid.getResult(), fullName -> {
@@ -66,6 +72,7 @@ public class LoginViewModel {
loadDepo(() -> { loadDepo(() -> {
SettingsManager.update(); SettingsManager.update();
this.sendOnLoginCompleted(fullName); this.sendOnLoginCompleted(fullName);
onComplete.run();
}); });
}); });

View File

@@ -2,11 +2,14 @@ package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import javax.inject.Inject; import javax.inject.Inject;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO; import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.rest.ProdOrdineProduzioneRESTConsumer; import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.rest.ProdOrdineProduzioneRESTConsumer;
@@ -47,6 +50,12 @@ public class ProdOrdineProduzioneElencoViewModel {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
this.mProdOrdineProduzioneRESTConsumer.retrievePickingListNew(selectedOrders, sitArtOrds -> { this.mProdOrdineProduzioneRESTConsumer.retrievePickingListNew(selectedOrders, sitArtOrds -> {
sitArtOrds = sitArtOrds.stream()
.filter(x ->
UtilityBigDecimal.greaterThan(x.getNumCnfDaEvadere(), BigDecimal.ZERO) &&
UtilityBigDecimal.greaterThan(x.getQtaDaEvadere(), BigDecimal.ZERO))
.collect(Collectors.toList());
this.sendOnOrdersDispatched(selectedOrders, sitArtOrds); this.sendOnOrdersDispatched(selectedOrders, sitArtOrds);
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();

View File

@@ -4,6 +4,7 @@ import androidx.annotation.NonNull;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Singleton; import javax.inject.Singleton;
@@ -57,7 +58,7 @@ public class ProdOrdineProduzioneRESTConsumer extends _BaseRESTConsumer {
service.getArticoliFromOrdiniAccettazione(getPickingListDTOs).enqueue(new ManagedErrorCallback<>() { service.getArticoliFromOrdiniAccettazione(getPickingListDTOs).enqueue(new ManagedErrorCallback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) { public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
analyzeAnswer(response, "retrieveListaArticoliFromOrdiniProduzione", onComplete, onFailed); analyzeAnswer(response, "retrieveListaArticoliFromOrdiniProduzione", data ->onComplete.run(data == null ? new ArrayList<>() : data), onFailed);
} }
@Override @Override