Implementate diverse utility

This commit is contained in:
Giuseppe Scorrano 2018-10-23 19:20:37 +02:00
parent 08c99aaac0
commit 45acf00660
15 changed files with 415 additions and 84 deletions

View File

@ -12,6 +12,7 @@ import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.settings.Stash; import it.integry.integrywmsnative.core.settings.Stash;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
public class MainApplication extends Application { public class MainApplication extends Application {
@ -29,6 +30,8 @@ public class MainApplication extends Application {
SettingsManager.init(this); SettingsManager.init(this);
ServerStatusChecker.init(); ServerStatusChecker.init();
UtilityResources.init(this);
Logger.addLogAdapter(new AndroidLogAdapter()); Logger.addLogAdapter(new AndroidLogAdapter());
res = getResources(); res = getResources();

View File

@ -14,4 +14,14 @@ public class CommonConst {
} }
public static class Mail {
public static String[] forErrors = {
// "syslogs@integry.it",
"g.scorrano@integry.it"
};
}
} }

View File

@ -1,14 +1,21 @@
package it.integry.integrywmsnative.core.REST.consumers; package it.integry.integrywmsnative.core.REST.consumers;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.widget.Toast;
import java.util.List; import java.util.List;
import java.util.logging.Logger;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.RESTBuilder; import it.integry.integrywmsnative.core.REST.RESTBuilder;
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO; import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.EsitoType; import it.integry.integrywmsnative.core.REST.model.MailDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityResources;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
@ -57,4 +64,40 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
} }
public static void sendErrorLogMail(String message) {
MailDTO mailDTO = new MailDTO()
.setFrom("sender@integry.it")
.setFromName("WMS Android")
.setTo(TextUtils.join(";", CommonConst.Mail.forErrors))
.setSubject("Bug notification")
.setMsgText(message)
.setHtml(true);
sendMail(mailDTO, null, ex -> {
Log.e(SystemRESTConsumer.class.getName(), "", ex);
});
}
public static void sendMail(MailDTO mailDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
SystemRESTConsumerService service = RESTBuilder.getService(SystemRESTConsumerService.class);
service.sendMail(mailDTO).enqueue(new Callback<ServiceRESTResponse<String>>() {
@Override
public void onResponse(Call<ServiceRESTResponse<String>> call, Response<ServiceRESTResponse<String>> response) {
if(onComplete != null) onComplete.run();
}
@Override
public void onFailure(Call<ServiceRESTResponse<String>> call, Throwable t) {
if(onFailed != null) {
onFailed.run(new Exception(t));
}
}
});
}
} }

View File

@ -3,9 +3,12 @@ package it.integry.integrywmsnative.core.REST.consumers;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO; import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.REST.model.MailDTO;
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query; import retrofit2.http.Query;
public interface SystemRESTConsumerService { public interface SystemRESTConsumerService {
@ -16,4 +19,7 @@ public interface SystemRESTConsumerService {
@GET("getAvailableCodMdepsForUser") @GET("getAvailableCodMdepsForUser")
Call<ServiceRESTResponse<List<AvailableCodMdepsDTO>>> getAvailableCodMdeps(); Call<ServiceRESTResponse<List<AvailableCodMdepsDTO>>> getAvailableCodMdeps();
@POST("sendEmail")
Call<ServiceRESTResponse<String>> sendMail(@Body MailDTO mailDto);
} }

View File

@ -0,0 +1,115 @@
package it.integry.integrywmsnative.core.REST.model;
public class MailDTO {
private String from;
private String fromName;
private String to;
private String replyTo;
private String replyToName;
private String cc;
private String ccn;
private String subject;
private String msgText;
private boolean isHtml = false;
private boolean isDebug = false;
public String getFrom() {
return from;
}
public MailDTO setFrom(String from) {
this.from = from;
return this;
}
public String getFromName() {
return fromName;
}
public MailDTO setFromName(String fromName) {
this.fromName = fromName;
return this;
}
public String getTo() {
return to;
}
public MailDTO setTo(String to) {
this.to = to;
return this;
}
public String getReplyTo() {
return replyTo;
}
public MailDTO setReplyTo(String replyTo) {
this.replyTo = replyTo;
return this;
}
public String getReplyToName() {
return replyToName;
}
public MailDTO setReplyToName(String replyToName) {
this.replyToName = replyToName;
return this;
}
public String getCc() {
return cc;
}
public MailDTO setCc(String cc) {
this.cc = cc;
return this;
}
public String getCcn() {
return ccn;
}
public MailDTO setCcn(String ccn) {
this.ccn = ccn;
return this;
}
public String getSubject() {
return subject;
}
public MailDTO setSubject(String subject) {
this.subject = subject;
return this;
}
public String getMsgText() {
return msgText;
}
public MailDTO setMsgText(String msgText) {
this.msgText = msgText;
return this;
}
public boolean isHtml() {
return isHtml;
}
public MailDTO setHtml(boolean html) {
isHtml = html;
return this;
}
public boolean isDebug() {
return isDebug;
}
public MailDTO setDebug(boolean debug) {
isDebug = debug;
return this;
}
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.expansion;
public interface RunnableArgs<T> {
void run(T data);
}

View File

@ -0,0 +1,33 @@
package it.integry.integrywmsnative.core.utility;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import okhttp3.internal.Util;
public class UtilityLogger {
public static void logMe(String message){
}
public static void errorMe(Exception ex) {
String message = UtilityResources.readRawTextFile(R.raw.error_mail);
message = message.replace("#exception_name#", ex.getMessage());
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
message = message.replace("#stacktrace#", sw.toString());
SystemRESTConsumer.sendErrorLogMail(message);
}
}

View File

@ -0,0 +1,38 @@
package it.integry.integrywmsnative.core.utility;
import android.content.Context;
import android.support.annotation.RawRes;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class UtilityResources {
private static Context mContext;
public static void init(Context context) {
mContext = context;
}
public static String readRawTextFile(@RawRes int resId) {
InputStream inputStream = mContext.getResources().openRawResource(resId);
InputStreamReader inputreader = new InputStreamReader(inputStream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
StringBuilder text = new StringBuilder();
try {
while (( line = buffreader.readLine()) != null) {
text.append(line);
text.append('\n');
}
} catch (IOException e) {
return null;
}
return text.toString();
}
}

View File

@ -20,6 +20,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
public ActivityAccettazioneOrdineInevasoBinding bindings; public ActivityAccettazioneOrdineInevasoBinding bindings;
private AccettazioneOnOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel; private AccettazioneOnOrdineInevasoViewModel mAccettazioneOrdineInevasoViewModel;
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
@Override @Override
@ -28,7 +29,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
bindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso); bindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude; FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings); mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key"); List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key");
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineInevasoViewModel( mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineInevasoViewModel(
@ -47,6 +48,13 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
return true; return true;
} }
@Override
public void onBackPressed() {
if(mArticoliInColloBottomSheetViewModel.isExpanded()){
mArticoliInColloBottomSheetViewModel.collapse();
} else super.onBackPressed();
}
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present. // Inflate the menu; this adds items to the action bar if it is present.

View File

@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core;
import android.content.Context; import android.content.Context;
import android.databinding.ObservableArrayList; import android.databinding.ObservableArrayList;
import com.annimon.stream.Stream;
import com.orhanobut.logger.Logger; import com.orhanobut.logger.Logger;
import java.text.DecimalFormat; import java.text.DecimalFormat;
@ -67,13 +68,11 @@ public class AccettazioneOrdineInevasoHelper {
} }
} }
Collections.sort(codArtForns, new Comparator<String>() { Collections.sort(codArtForns, (str1, str2) -> {
public int compare(String str1, String str2) {
if(str1 != null && str2 != null) { if(str1 != null && str2 != null) {
return str1.compareToIgnoreCase(str2); return str1.compareToIgnoreCase(str2);
} }
return 0; return 0;
}
}); });
List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>(); List<List<OrdineAccettazioneDTO.Riga>> groupedRighe = new ArrayList<>();
@ -252,7 +251,7 @@ public class AccettazioneOrdineInevasoHelper {
} }
if(groupedRighe.get(i).get(0).ragSocCom != null && groupedRighe.get(i).get(0).ragSocCom.trim().length() > 0){ if(groupedRighe.get(i).get(0).ragSocCom != null && groupedRighe.get(i).get(0).ragSocCom.trim().length() > 0){
itemModel.descrizioneGroup += " - " + groupedRighe.get(i).get(0).ragSocCom; itemModel.descrizioneGroup += " - " + groupedRighe.get(i).get(0).descrizioneCommessa;
} }
itemModel.rows = new ArrayList<>(); itemModel.rows = new ArrayList<>();
@ -268,7 +267,7 @@ public class AccettazioneOrdineInevasoHelper {
rowModel.qtaRiservata = decimalFormat.format(getRigaQuantityEvasa(rowItem, mtbColrs)); rowModel.qtaRiservata = decimalFormat.format(getRigaQuantityEvasa(rowItem, mtbColrs));
// rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate); // rowModel.qtaRiservata = decimalFormat.format(rowItem.qtaRiservate);
rowModel.qtaOrdinata = decimalFormat.format(rowItem.qtaOrd); rowModel.qtaOrdinata = decimalFormat.format(rowItem.qtaDaEvadere);
rowModel.originalModel = rowItem; rowModel.originalModel = rowItem;
@ -288,13 +287,12 @@ public class AccettazioneOrdineInevasoHelper {
if(mtbColrs != null) { if(mtbColrs != null) {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
List<MtbColr> filteredMtbColrs = Coollection.from(mtbColrs) List<MtbColr> filteredMtbColrs = Stream.of(mtbColrs).filter(
.where("codMart", Coollection.eqIgnoreCase(item.mtbAart.codMart)) x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.codMart) &&
.and("codJcom", Coollection.eqIgnoreCase(item.codJcom)) (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.codJcom)) &&
.and("rigaOrd", Coollection.eq(item.rigaOrd)) x.getRigaOrd() == item.rigaOrd &&
.and("numOrd", Coollection.eq(item.numOrd)) x.getNumOrd() == item.numOrd &&
.and("dataOrd", Coollection.eq(sdf.format(item.getDataOrd()))) x.getDataOrdS().equals(sdf.format(item.getDataOrd()))).toList();
.all();
for (MtbColr mtbColr : filteredMtbColrs) { for (MtbColr mtbColr : filteredMtbColrs) {

View File

@ -9,6 +9,8 @@ import android.support.v7.widget.LinearLayoutManager;
import android.text.SpannableString; import android.text.SpannableString;
import android.widget.Toast; import android.widget.Toast;
import com.annimon.stream.Stream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -28,6 +30,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper; import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core.AccettazioneOrdineInevasoHelper;
@ -131,7 +134,9 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
helper.updateListModel(currentOrderBy, groupedRighe, mtbColrs); helper.updateListModel(currentOrderBy, groupedRighe, mtbColrs);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
Toast.makeText(mActivity, e.getMessage().toString(), Toast.LENGTH_LONG).show(); Toast.makeText(mActivity, e.getMessage(), Toast.LENGTH_LONG).show();
UtilityLogger.errorMe(e);
} }
} }
@ -140,18 +145,8 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
AlertDialog dialog = new AlertDialog.Builder(mActivity) AlertDialog dialog = new AlertDialog.Builder(mActivity)
.setTitle(mActivity.getText(R.string.action_orderBy)) .setTitle(mActivity.getText(R.string.action_orderBy))
.setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, currentOrderBy.getVal(), new DialogInterface.OnClickListener() { .setSingleChoiceItems(AccettazioneOrdineInevasoOrderBy.descriptions, currentOrderBy.getVal(), (dialog12, which) -> currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which))
@Override .setPositiveButton("Ok", (dialog1, which) -> refreshOrderBy())
public void onClick(DialogInterface dialog, int which) {
currentOrderBy = AccettazioneOrdineInevasoOrderBy.Enum.fromInt(which);
}
})
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
refreshOrderBy();
}
})
.create(); .create();
dialog.show(); dialog.show();
} }
@ -316,12 +311,19 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr(); List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr();
List<MtbColr> filteredMtbColrs = Coollection.from(currentMtbColrs) List<MtbColr> filteredMtbColrs = Stream.of(currentMtbColrs).filter(
.where("codMart", Coollection.eqIgnoreCase(item.mtbAart.codMart)) x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.codMart) &&
.and("numOrd", Coollection.eq(item.numOrd)) x.getNumOrd() == item.numOrd &&
.and("codJcom", Coollection.eq(item.codJcom)) (x.getCodJcom() != null && x.getCodJcom().equalsIgnoreCase(item.codJcom)) &&
.and("rigaOrd", Coollection.eq(item.rigaOrd)) x.getRigaOrd() == item.rigaOrd
.all(); ).toList();
// List<MtbColr> filteredMtbColrs = Coollection.from(currentMtbColrs)
// .where("codMart", Coollection.eqIgnoreCase(item.mtbAart.codMart))
// .and("numOrd", Coollection.eq(item.numOrd))
// .and("codJcom", Coollection.eq(item.codJcom))
// .and("rigaOrd", Coollection.eq(item.rigaOrd))
// .all();
float qtaEvasaInMtbColr = 0; float qtaEvasaInMtbColr = 0;
for (MtbColr mtbColr : filteredMtbColrs) { for (MtbColr mtbColr : filteredMtbColrs) {
@ -330,12 +332,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
float qtaEvasa = item.qtaRiservate + qtaEvasaInMtbColr; float qtaEvasa = item.qtaRiservate + qtaEvasaInMtbColr;
DialogInputQuantity.makeBase(mActivity, item, qtaEvasa, new ISingleValueOperationCallback<QuantityDTO>() { DialogInputQuantity.makeBase(mActivity, item, qtaEvasa, value -> onOrdineRowDispatched(item, value)).show();
@Override
public void onResult(QuantityDTO value) {
onOrdineRowDispatched(item, value);
}
}).show();
// Toast.makeText(mActivity, item.descrizioneEstesa, Toast.LENGTH_LONG).show(); // Toast.makeText(mActivity, item.descrizioneEstesa, Toast.LENGTH_LONG).show();
} }
@ -361,7 +358,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone(); MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
cloneMtbColt.setMtbColr(new ObservableArrayList<MtbColr>()); cloneMtbColt.setMtbColr(new ObservableArrayList());
cloneMtbColt.getMtbColr().add(mtbColr); cloneMtbColt.getMtbColr().add(mtbColr);
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() { ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {

View File

@ -47,37 +47,28 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
appBarLayoutBottomSheet.setVisibility(View.INVISIBLE); appBarLayoutBottomSheet.setVisibility(View.INVISIBLE);
toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp); toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp);
toolbarBottomSheet.setNavigationOnClickListener(new View.OnClickListener() { toolbarBottomSheet.setNavigationOnClickListener(view -> {
@Override
public void onClick(View view) {
if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED) { if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED) {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
} }
}
}); });
tapActionLayout.setOnClickListener(new View.OnClickListener() { tapActionLayout.setOnClickListener(v -> {
@Override
public void onClick(View v) {
if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED) { if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED) {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
} }
}
}); });
mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul)); mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul));
updateRigheNumber(0); updateRigheNumber(0);
mBinding.articoliInColloSheetButton.setOnClickListener(new View.OnClickListener() { mBinding.articoliInColloSheetButton.setOnClickListener(view -> {
@Override
public void onClick(View view) {
if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) { if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
} else { } else {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
} }
}
}); });
} }
@ -133,6 +124,18 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
} }
} }
public boolean isExpanded() {
return mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED;
}
public void expand() {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
public void collapse() {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
@Override @Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) { public void onSlide(@NonNull View bottomSheet, float slideOffset) {
appBarLayoutBottomSheet.setAlpha(slideOffset); appBarLayoutBottomSheet.setAlpha(slideOffset);

View File

@ -69,6 +69,17 @@ public class ArticoliInColloBottomSheetViewModel {
if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed(); if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed();
} }
public boolean isExpanded() {
return mArticoliInColloBottomSheetHelper.isExpanded();
}
public void expand() {
mArticoliInColloBottomSheetHelper.expand();
}
public void collapse() {
mArticoliInColloBottomSheetHelper.collapse();
}
public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter { public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {

View File

@ -67,9 +67,7 @@ public class DialogInputQuantity {
final AlertDialog alert = alertDialog.create(); final AlertDialog alert = alertDialog.create();
alert.setCanceledOnTouchOutside(false); alert.setCanceledOnTouchOutside(false);
alert.setOnShowListener(new DialogInterface.OnShowListener() { alert.setOnShowListener(dialogInterface -> {
@Override
public void onShow(DialogInterface dialogInterface) {
txlInputNumDiCnf.getEditText().requestFocus(); txlInputNumDiCnf.getEditText().requestFocus();
//txlInputNumDiCnf.getEditText().dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0)); //txlInputNumDiCnf.getEditText().dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0));
@ -80,18 +78,14 @@ public class DialogInputQuantity {
Button positiveButton = alert.getButton(AlertDialog.BUTTON_POSITIVE); Button positiveButton = alert.getButton(AlertDialog.BUTTON_POSITIVE);
positiveButton.setOnClickListener(new View.OnClickListener() { positiveButton.setOnClickListener(view -> {
@Override
public void onClick(View view) {
if(quantityDTO.qtaCnf.get() <= 0 || quantityDTO.numCnf.get() <= 0 || quantityDTO.qtaTot.get() <= 0) { if(quantityDTO.qtaCnf.get() <= 0 || quantityDTO.numCnf.get() <= 0 || quantityDTO.qtaTot.get() <= 0) {
showQuantityErrorDialog(context); showQuantityErrorDialog(context);
} else { } else {
dialogCallback.onResult(quantityDTO); dialogCallback.onResult(quantityDTO);
alert.dismiss(); alert.dismiss();
} }
}
}); });
}
}); });

View File

@ -0,0 +1,65 @@
<html>
<head>
<style>
@import url('https://fonts.googleapis.com/css?family=Open+Sans');
body {
/*background-color: red;*/
font-family: 'Open Sans','Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
body > div{
/*display: table;*/
width: 100%;
height: 100%;
}
</style>
</head>
<body style="background-color:#FF5252; font-family: 'Open Sans','Segoe UI', Tahoma, Geneva, Verdana, sans-serif;">
<!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="width:900px; height: 800px;" arcsize="2%" stroke="f" fillcolor="#FFFFFF">
<w:anchorlock/>
<![endif]-->
<div href="http://"
style="background-color:#FFFFFF;border-radius:4px;display:inline-block;-webkit-text-size-adjust:none;">
<div id="card" style="margin-left: auto; margin-right: auto; margin: 16px;" >
<img style="margin-left: 8px;" src="http://www.integry.it/integry-resources/images/Image/immagini-struttura/integry.png" style="margin-top: 8px;" />
<hr style="color: #95a5a6; margin-top: 14px; margin-bottom: 14px; width: 96%;" size="1" noshade />
<p style="margin-left: 24px;font-size: 2em;">
Attenzione!
</p>
<p style="margin-left: 24px;">
Si &egrave; verificato un errore con eccezione <b>#exception_name#</b>.<br />
<br /><br />
Di seguito lo stacktrace dell'eccezione:<br />
<br />
<small>#stacktrace#</small>
</p><br />
<p style="margin-left: 24px;">
(#azienda_nome#)
</p>
<p style="margin-left: 24px; font-size: .75em; color: #7f8c8d;">
#current_date#
</p>
</div>
</div>
<!--[if mso]>
</v:roundrect>
<![endif]-->
</body>
</html>