Finish v1_3_0(56)

This commit is contained in:
Giuseppe Scorrano 2019-06-04 12:16:36 +02:00
commit 15992e269e
89 changed files with 2010 additions and 195 deletions

View File

@ -147,8 +147,8 @@
<option name="values"> <option name="values">
<map> <map>
<entry key="assetSourceType" value="FILE" /> <entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="app_round_icon" /> <entry key="outputName" value="ic_black_latest_delivery" />
<entry key="sourceFile" value="C:\Work\Prod_Android\WMS_Native\ext_sources\RoundLogoWithText.svg" /> <entry key="sourceFile" value="C:\Users\GiuseppeS\Desktop\icons8-deliver-food (1).svg" />
</map> </map>
</option> </option>
</PersistentState> </PersistentState>

Binary file not shown.

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 55 def appVersionCode = 56
def appVersionName = '1.2.2' def appVersionName = '1.3.0'
signingConfigs { signingConfigs {
release { release {

View File

@ -22,7 +22,14 @@
android:name=".MainActivity" android:name=".MainActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Light" android:theme="@style/Light"
android:windowSoftInputMode="adjustPan"></activity> android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.CLIENTBARCODEACTIVITY"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity <activity
android:name=".gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity" android:name=".gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

View File

@ -1,9 +1,13 @@
package it.integry.integrywmsnative; package it.integry.integrywmsnative;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import androidx.annotation.IdRes; import androidx.annotation.IdRes;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import android.content.IntentFilter;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
@ -20,6 +24,8 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
@ -42,6 +48,7 @@ import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment; import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment; import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment; import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
public class MainActivity extends AppCompatActivity public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity { implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity {
@ -78,8 +85,8 @@ public class MainActivity extends AppCompatActivity
openMain(); openMain();
init(); init();
}
}
private void startLoginActivity(){ private void startLoginActivity(){
this.finish(); this.finish();

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.barcode_reader;
import android.content.Context; import android.content.Context;
import androidx.appcompat.app.AppCompatActivity;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -16,7 +18,7 @@ import it.integry.zebrascannerlibrary.ZebraBarcodeReader;
public class BarcodeManager { public class BarcodeManager {
private static Context context; private static AppCompatActivity context;
private static BarcodeReaderInterface mCurrentBarcodeInterface; private static BarcodeReaderInterface mCurrentBarcodeInterface;
private static List<BarcodeCallbackDTO> mBarcodeCallbacksStacktrace = new ArrayList<>(); private static List<BarcodeCallbackDTO> mBarcodeCallbacksStacktrace = new ArrayList<>();
@ -27,11 +29,11 @@ public class BarcodeManager {
private static Class<? extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{ private static Class<? extends BarcodeReaderInterface>[] registeredBarcodeReaderInterfaces = new Class[]{
PointMobileBarcodeReader.class, PointMobileBarcodeReader.class,
ZebraBarcodeReader.class, ZebraBarcodeReader.class,
// HoneyWellBarcodeReader.class HoneyWellBarcodeReader.class
}; };
public static void init(Context context) { public static void init(AppCompatActivity context) {
BarcodeManager.context = context; BarcodeManager.context = context;
initBarcodeReader(); initBarcodeReader();
@ -60,22 +62,26 @@ public class BarcodeManager {
if(mCurrentBarcodeInterface != null) { if(mCurrentBarcodeInterface != null) {
try { try {
mCurrentBarcodeInterface.init(); mCurrentBarcodeInterface.init(() -> {
mCurrentBarcodeInterface.register(data -> {
BarcodeCallbackDTO callback = getValidCallback();
if(callback != null && mEnabled) {
callback.getOnScanSuccessfull().run(data);
}
}, ex -> {
BarcodeCallbackDTO callback = getValidCallback();
if(callback != null && mEnabled) {
callback.getOnScanFailed().run(ex);
}
});
});
} catch (BarcodeAdapterNotFoundException ex) { } catch (BarcodeAdapterNotFoundException ex) {
UtilityExceptions.defaultException(context, ex); UtilityExceptions.defaultException(context, ex);
} }
mCurrentBarcodeInterface.register(data -> {
BarcodeCallbackDTO callback = getValidCallback();
if(callback != null && mEnabled) {
callback.getOnScanSuccessfull().run(data);
}
}, ex -> {
BarcodeCallbackDTO callback = getValidCallback();
if(callback != null && mEnabled) {
callback.getOnScanFailed().run(ex);
}
});
} }
} }

View File

@ -31,14 +31,12 @@ public class AppContext {
public void init() { public void init() {
this.initUtilities();
this.initSettings(); this.initSettings();
this.initCrashlytics(); this.initCrashlytics();
this.initBarcode();
this.initUtilities();
this.initLogger(); this.initLogger();
this.initRecoverColli(); this.initRecoverColli();
@ -65,10 +63,6 @@ public class AppContext {
} }
} }
private void initBarcode() {
BarcodeManager.init(mContext);
}
private void initUtilities() { private void initUtilities() {
UtilityResources.init(mContext); UtilityResources.init(mContext);
UtilityToast.init(mContext); UtilityToast.init(mContext);

View File

@ -6,7 +6,9 @@ import android.text.SpannableString;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.class_router.ClassRouter; import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
@ -22,6 +24,9 @@ public class MainContext {
public void init(Runnable onContextInitialized) { public void init(Runnable onContextInitialized) {
BarcodeManager.init(mContext);
this.initDBData(() -> { this.initDBData(() -> {
onContextInitialized.run(); onContextInitialized.run();
}); });

View File

@ -0,0 +1,141 @@
package it.integry.integrywmsnative.core.model;
import android.os.Parcel;
import android.os.Parcelable;
public class VtbDest extends EntityBase implements Parcelable {
public VtbDest() {
type = "vtb_dest";
}
private String codAnag;
private String codVdes;
private String destinatario;
private String indirizzo;
private String cap;
private String citta;
private String prov;
private String nazione;
protected VtbDest(Parcel in) {
codAnag = in.readString();
codVdes = in.readString();
destinatario = in.readString();
indirizzo = in.readString();
cap = in.readString();
citta = in.readString();
prov = in.readString();
nazione = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(codAnag);
dest.writeString(codVdes);
dest.writeString(destinatario);
dest.writeString(indirizzo);
dest.writeString(cap);
dest.writeString(citta);
dest.writeString(prov);
dest.writeString(nazione);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<VtbDest> CREATOR = new Creator<VtbDest>() {
@Override
public VtbDest createFromParcel(Parcel in) {
return new VtbDest(in);
}
@Override
public VtbDest[] newArray(int size) {
return new VtbDest[size];
}
};
public String getCodAnag() {
return codAnag;
}
public VtbDest setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public String getCodVdes() {
return codVdes;
}
public VtbDest setCodVdes(String codVdes) {
this.codVdes = codVdes;
return this;
}
public String getDestinatario() {
return destinatario;
}
public VtbDest setDestinatario(String destinatario) {
this.destinatario = destinatario;
return this;
}
public String getIndirizzo() {
return indirizzo;
}
public VtbDest setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
return this;
}
public String getCap() {
return cap;
}
public VtbDest setCap(String cap) {
this.cap = cap;
return this;
}
public String getCitta() {
return citta;
}
public VtbDest setCitta(String citta) {
this.citta = citta;
return this;
}
public String getProv() {
return prov;
}
public VtbDest setProv(String prov) {
this.prov = prov;
return this;
}
public String getNazione() {
return nazione;
}
public VtbDest setNazione(String nazione) {
this.nazione = nazione;
return this;
}
}

View File

@ -21,6 +21,7 @@ public class DBSettingsModel {
private String defaultCodAnag; private String defaultCodAnag;
private String defaultCausaleRettificaGiacenze; private String defaultCausaleRettificaGiacenze;
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione; private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
private boolean flagAskClienteInPickingLibero;
public List<String> getAvailableProfiles() { public List<String> getAvailableProfiles() {
return availableProfiles; return availableProfiles;
@ -99,4 +100,13 @@ public class DBSettingsModel {
this.defaultCriterioDistribuzione = DistribuzioneColloDTO.CriterioDistribuzione.fromString(defaultCriterioDistribuzione); this.defaultCriterioDistribuzione = DistribuzioneColloDTO.CriterioDistribuzione.fromString(defaultCriterioDistribuzione);
return this; return this;
} }
public boolean isFlagAskClienteInPickingLibero() {
return flagAskClienteInPickingLibero;
}
public DBSettingsModel setFlagAskClienteInPickingLibero(boolean flagAskClienteInPickingLibero) {
this.flagAskClienteInPickingLibero = flagAskClienteInPickingLibero;
return this;
}
} }

View File

@ -189,7 +189,14 @@ public class SettingsManager {
GestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", valueDefaultCriterioDistribuzione -> { GestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", valueDefaultCriterioDistribuzione -> {
dbSettingsModelIstance.setDefaultCriterioDistribuzione(valueDefaultCriterioDistribuzione.value); dbSettingsModelIstance.setDefaultCriterioDistribuzione(valueDefaultCriterioDistribuzione.value);
if(onComplete != null) onComplete.run(); GestSetupRESTConsumer.getBooleanValue("PICKING", "PICKING_LIBERO", "FLAG_ASK_CLIENTE", valueAskClientePickingLibero -> {
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(valueAskClientePickingLibero);
if(onComplete != null) onComplete.run();
}, ex -> {
if(onFailed != null) onFailed.run(ex);
});
}, ex -> { }, ex -> {
if(onFailed != null) onFailed.run(ex); if(onFailed != null) onFailed.run(ex);

View File

@ -0,0 +1,16 @@
package it.integry.integrywmsnative.core.utility;
import android.app.Dialog;
import android.content.Context;
import android.widget.LinearLayout;
public class UtilityDialog {
public static void setTo90PercentSize(Context context, Dialog dialog) {
int width = (int)(context.getResources().getDisplayMetrics().widthPixels*0.90);
//int height = (int)(context.getResources().getDisplayMetrics().heightPixels*0.90);
dialog.getWindow().setLayout(width, LinearLayout.LayoutParams.WRAP_CONTENT);
}
}

View File

@ -1,5 +1,8 @@
package it.integry.integrywmsnative.core.utility; package it.integry.integrywmsnative.core.utility;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* Created by GiuseppeS on 07/03/2018. * Created by GiuseppeS on 07/03/2018.
*/ */
@ -14,4 +17,13 @@ public class UtilityString {
return (stringToCheck != null && stringToCheck.trim().length() == 0 || stringToCheck == null) ? null : stringToCheck.trim(); return (stringToCheck != null && stringToCheck.trim().length() == 0 || stringToCheck == null) ? null : stringToCheck.trim();
} }
public static String capitalizeWords(String capString){
StringBuffer capBuffer = new StringBuffer();
Matcher capMatcher = Pattern.compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher(capString);
while (capMatcher.find()){
capMatcher.appendReplacement(capBuffer, capMatcher.group(1).toUpperCase() + capMatcher.group(2).toLowerCase());
}
return capMatcher.appendTail(capBuffer).toString();
}
} }

View File

@ -130,8 +130,13 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
helper.loadOrdini(new ILoadOrdiniCallback() { helper.loadOrdini(new ILoadOrdiniCallback() {
@Override @Override
public void onLoadSuccess(List<OrdineAccettazioneInevasoDTO> ordini) { public void onLoadSuccess(List<OrdineAccettazioneInevasoDTO> ordini) {
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show(); if(ordini != null) {
groupOrdiniAndMakeRecycler(ordini); Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
groupOrdiniAndMakeRecycler(ordini);
}
mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.VISIBLE : View.GONE);
progress.dismiss(); progress.dismiss();
} }

View File

@ -16,6 +16,7 @@ import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
@ -68,7 +69,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment {
mHelper = new PickingLiberoHelper(getActivity()); mHelper = new PickingLiberoHelper(getActivity());
mViewModel = new PickingLiberoViewModel(); mViewModel = new PickingLiberoViewModel();
mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar); mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar, () -> {
((IPoppableActivity) getActivity()).pop();
});
mBindings.setViewmodel(mViewModel); mBindings.setViewmodel(mViewModel);

View File

@ -35,7 +35,9 @@ import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
import it.integry.integrywmsnative.core.model.CommonModelConsts; import it.integry.integrywmsnative.core.model.CommonModelConsts;
import it.integry.integrywmsnative.core.model.MtbColr; 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.VtbDest;
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.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityNumber;
@ -44,6 +46,8 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
@ -68,7 +72,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
private PickingLiberoListAdapter mAdapter; private PickingLiberoListAdapter mAdapter;
public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, AppCompatTextView titleText) { public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, AppCompatTextView titleText, Runnable onComplete) {
mContext = context; mContext = context;
mBinding = binding; mBinding = binding;
mHelper = helper; mHelper = helper;
@ -460,6 +464,22 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
private void createNewLU(Integer customNumCollo, String customSerCollo, ProgressDialog progressDialog, Runnable onComplete, Runnable onFailed) { private void createNewLU(Integer customNumCollo, String customSerCollo, ProgressDialog progressDialog, Runnable onComplete, Runnable onFailed) {
if(SettingsManager.iDB().isFlagAskClienteInPickingLibero()){
DialogAskCliente.makeBase(mContext, (status, result) -> {
if(status == DialogConsts.Results.YES) {
createNewLUInternal(customNumCollo, customSerCollo, result, progressDialog, onComplete, onFailed);
}
}).show();
} else {
createNewLUInternal(customNumCollo, customSerCollo, null, progressDialog, onComplete, onFailed);
}
}
private void createNewLUInternal(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, ProgressDialog progressDialog, Runnable onComplete, Runnable onFailed) {
boolean shouldCloseProgress = progressDialog == null; boolean shouldCloseProgress = progressDialog == null;
final ProgressDialog progressDialogFinal = progressDialog == null ? UtilityProgress.createDefaultProgressDialog(mContext) : progressDialog; final ProgressDialog progressDialogFinal = progressDialog == null ? UtilityProgress.createDefaultProgressDialog(mContext) : progressDialog;
@ -476,6 +496,11 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
mtbColt.setSerCollo(customSerCollo); mtbColt.setSerCollo(customSerCollo);
} }
if(vtbDest != null) {
mtbColt.setCodAnag(vtbDest.getCodAnag());
mtbColt.setCodVdes(vtbDest.getCodVdes());
}
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, savedMtbColt -> { ColliMagazzinoRESTConsumer.saveCollo(mtbColt, savedMtbColt -> {
savedMtbColt.setMtbColr(new ObservableArrayList<>()); savedMtbColt.setMtbColr(new ObservableArrayList<>());
setULToCurrentContext(savedMtbColt); setULToCurrentContext(savedMtbColt);
@ -484,15 +509,6 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT); FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
// new StatusBarAlert.Builder(mContext)
// .autoHide(true)
// .withDuration(2500)
// .showProgress(false)
// .withText(R.string.data_saved)
// .withAlertColor(R.color.mainGreen)
// .build();
if(onComplete != null) onComplete.run(); if(onComplete != null) onComplete.run();
}, ex -> { }, ex -> {

View File

@ -121,7 +121,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
ButterKnife.bind(this, mBinding.getRoot()); ButterKnife.bind(this, mBinding.getRoot());
// if(mWaterfallToolbar != null) mWaterfallToolbar.setRecyclerView(mBinding.venditaMainList); // if(mWaterfallToolbar != null) mWaterfallToolbar.setRecyclerView(mBinding.venditaMainList);
mToolbar.setRecyclerView(mBinding.venditaMainList); if(mToolbar != null) mToolbar.setRecyclerView(mBinding.venditaMainList);
return mBinding.getRoot(); return mBinding.getRoot();
} }
@ -156,9 +156,14 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
mHelper.loadOrdini(new VenditaHelper.ILoadOrdiniCallback() { mHelper.loadOrdini(new VenditaHelper.ILoadOrdiniCallback() {
@Override @Override
public void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini) { public void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini) {
UtilityToast.showToast("Caricati " + ordini.size() + " ordini"); if(ordini != null) {
mOriginalOrderList = ordini; UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
mViewModel.setListOrder(ordini); mOriginalOrderList = ordini;
mViewModel.setListOrder(ordini);
}
mBinding.ordiniVenditaEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.VISIBLE : View.GONE);
groupOrdini(ordini); groupOrdini(ordini);
initRecyclerView(); initRecyclerView();

View File

@ -0,0 +1,107 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.LinearLayout;
import androidx.databinding.DataBindingUtil;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.VtbDest;
import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.databinding.DialogAskClienteBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page1ViewModel;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page2ViewModel;
public class DialogAskCliente {
private Context mContext;
private Dialog mDialog;
private DialogAskClienteBinding mBinding;
public static Dialog makeBase(final Context context, RunnableArgss<DialogConsts.Results, VtbDest> onComplete) {
return new DialogAskCliente(context, onComplete).mDialog;
}
public DialogAskCliente(Context context, RunnableArgss<DialogConsts.Results, VtbDest> onComplete) {
mContext = context;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_cliente, null, false);
List<Map.Entry<Integer, Class>> views = new ArrayList<>();
views.add(new AbstractMap.SimpleEntry<>(R.layout.dialog_ask_cliente__page1, DialogAskCliente_Page1ViewModel.class));
views.add(new AbstractMap.SimpleEntry<>(R.layout.dialog_ask_cliente__page2, DialogAskCliente_Page2ViewModel.class));
DialogAskClienteAdapter adapter = new DialogAskClienteAdapter(mContext, views);
mBinding.viewpager.setAdapter(adapter);
mBinding.viewpager.beginFakeDrag();
mBinding.viewpager.addOnPageChangeListener(adapter);
mDialog = new Dialog(mContext);
mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
// mDialog.setCancelable(false);
UtilityDialog.setTo90PercentSize(mContext, mDialog);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
mDialog.setOnShowListener(dialog -> {
DialogAskCliente_Page1ViewModel viewModel1 = (DialogAskCliente_Page1ViewModel) adapter.getViewModel(R.layout.dialog_ask_cliente__page1);
DialogAskCliente_Page2ViewModel viewModel2 = (DialogAskCliente_Page2ViewModel) adapter.getViewModel(R.layout.dialog_ask_cliente__page2);
viewModel1
.setOnConfirmClickListener(() -> {
viewModel2.setCodAnag(viewModel1.getCurrentCliente().getCodAnag());
mBinding.viewpager.setCurrentItem(mBinding.viewpager.getCurrentItem() + 1, true);
});
viewModel1.setOnAbortClickListener(() -> {
mDialog.dismiss();
onComplete.run(DialogConsts.Results.ABORT, null);
});
viewModel2.setOnConfirmClickListener(() -> {
onComplete.run(DialogConsts.Results.YES, viewModel2.getCurrentDestinatario().toVtbDestModel());
mDialog.dismiss();
});
viewModel2.setOnAbortClickListener(() -> {
mDialog.dismiss();
onComplete.run(DialogConsts.Results.ABORT, null);
});
});
}
}

View File

@ -0,0 +1,120 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ViewDataBinding;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import it.integry.integrywmsnative.BR;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.ui.DeactivatableViewPager;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.IDialogAskClienteViewModel;
public class DialogAskClienteAdapter extends PagerAdapter implements ViewPager.OnPageChangeListener {
private Context mContext;
private List<Map.Entry<Integer, Class>> mDatasetLayout;
private List<Map.Entry<ViewDataBinding, IDialogAskClienteViewModel>> mDatasetViews;
private DeactivatableViewPager viewPager;
public DialogAskClienteAdapter(Context context, List<Map.Entry<Integer, Class>> datasetLayouts) {
this.mContext = context;
this.mDatasetLayout = datasetLayouts;
this.mDatasetViews = new ArrayList<>();
}
@Override
public View instantiateItem(ViewGroup container, int position) {
viewPager = (DeactivatableViewPager) container;
Integer viewId = mDatasetLayout.get(position).getKey();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
ViewDataBinding mBinding = DataBindingUtil.inflate(inflater, viewId, null, false);
Class viewModelClass = mDatasetLayout.get(position).getValue();
IDialogAskClienteViewModel viewModel = null;
try {
viewModel = (IDialogAskClienteViewModel) viewModelClass.newInstance();
viewModel.setBinding(mBinding);
viewModel.setContext(mContext);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
mBinding.setVariable(BR.viewmodel, viewModel);
container.addView(mBinding.getRoot());
this.mDatasetViews.add(new AbstractMap.SimpleEntry<>(mBinding, viewModel));
return mBinding.getRoot();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout)object);
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
return view == o;
}
@Override
public int getCount() {
return mDatasetLayout.size();
}
public IDialogAskClienteViewModel getViewModel(@NonNull int layoutID) {
for(int i = 0; i < mDatasetLayout.size(); i++) {
if(mDatasetLayout.get(i).getKey() == layoutID) {
return this.mDatasetViews.get(i).getValue();
}
}
return null;
}
private int lastPage = -1;
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if(position != lastPage) {
viewPager.measureCurrentView(mDatasetViews.get(position).getKey().getRoot());
mDatasetViews.get(position).getValue().onShow();
lastPage = position;
}
}
@Override
public void onPageSelected(int position) {
// mDatasetViews.get(position).getValue().onShow();
}
@Override
public void onPageScrollStateChanged(int state) {
}
}

View File

@ -0,0 +1,32 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.dto;
public class DialogAskClienteClienteDTO {
private String codAnag;
private String ragSoc;
public String getCodAnag() {
return codAnag;
}
public DialogAskClienteClienteDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public String getRagSoc() {
return ragSoc;
}
public DialogAskClienteClienteDTO setRagSoc(String ragSoc) {
this.ragSoc = ragSoc;
return this;
}
@Override
public String toString() {
return getRagSoc();
}
}

View File

@ -0,0 +1,111 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.dto;
import it.integry.integrywmsnative.core.model.VtbDest;
public class DialogAskClienteDestinatarioDTO {
private String codAnag;
private String codVdes;
private String destinatario;
private String indirizzo;
private String cap;
private String citta;
private String prov;
private String nazione;
public String getCodAnag() {
return codAnag;
}
public DialogAskClienteDestinatarioDTO setCodAnag(String codAnag) {
this.codAnag = codAnag;
return this;
}
public String getCodVdes() {
return codVdes;
}
public DialogAskClienteDestinatarioDTO setCodVdes(String codVdes) {
this.codVdes = codVdes;
return this;
}
public String getDestinatario() {
return destinatario;
}
public DialogAskClienteDestinatarioDTO setDestinatario(String destinatario) {
this.destinatario = destinatario;
return this;
}
public String getIndirizzo() {
return indirizzo;
}
public DialogAskClienteDestinatarioDTO setIndirizzo(String indirizzo) {
this.indirizzo = indirizzo;
return this;
}
public String getCap() {
return cap;
}
public DialogAskClienteDestinatarioDTO setCap(String cap) {
this.cap = cap;
return this;
}
public String getCitta() {
return citta;
}
public DialogAskClienteDestinatarioDTO setCitta(String citta) {
this.citta = citta;
return this;
}
public String getProv() {
return prov;
}
public DialogAskClienteDestinatarioDTO setProv(String prov) {
this.prov = prov;
return this;
}
public String getNazione() {
return nazione;
}
public DialogAskClienteDestinatarioDTO setNazione(String nazione) {
this.nazione = nazione;
return this;
}
@Override
public String toString() {
return String.format("%s (%s)", getDestinatario(), getCodVdes());
}
public VtbDest toVtbDestModel() {
return new VtbDest()
.setCap(getCap())
.setCitta(getCitta())
.setCodAnag(getCodAnag())
.setCodVdes(getCodVdes())
.setDestinatario(getDestinatario())
.setProv(getProv())
.setIndirizzo(getIndirizzo())
.setNazione(getNazione());
}
}

View File

@ -0,0 +1,120 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
import android.content.Context;
import android.widget.AutoCompleteTextView;
import androidx.databinding.ViewDataBinding;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.databinding.DialogAskClientePage1Binding;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewModel {
private Context mContext;
private DialogAskClientePage1Binding mBinding;
private List<DialogAskClienteClienteDTO> availableClienti;
public DialogAskCliente_Page1ViewModel() {
}
@Override
public void setContext(Context context) {
this.mContext = context;
}
@Override
public void setBinding(ViewDataBinding binding) {
this.mBinding = (DialogAskClientePage1Binding) binding;
}
@Override
public void onShow() {
String sql = "SELECT gtb_anag.cod_anag, rag_soc " +
"FROM gtb_anag " +
"INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag " +
"WHERE vtb_clie.flag_stato = 'A' " +
"ORDER BY rag_soc";
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteClienteDTO>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteClienteDTO>>() {
@Override
public void onSuccess(ArrayList<DialogAskClienteClienteDTO> value) {
availableClienti = value;
initializeAdapter(value);
}
@Override
public void onFailed(Exception ex) {
}
});
}
@Override
public void setOnConfirmClickListener(Runnable onConfirm) {
this.mBinding.buttonYes.setOnClickListener(v -> {
if(validateCliente()) {
this.resetClienteError();
if(onConfirm != null) onConfirm.run();
} else {
this.setClienteError(mContext.getResources().getText(R.string.not_valid_customer_error).toString());
}
});
}
@Override
public void setOnAbortClickListener(Runnable onAbort) {
this.mBinding.buttonNo.setOnClickListener(v -> {
if(onAbort != null) onAbort.run();
});
}
private void initializeAdapter(ArrayList<DialogAskClienteClienteDTO> items) {
DialogAskCliente_Page1_ArrayAdapter adapter = new DialogAskCliente_Page1_ArrayAdapter(mContext, items);
AutoCompleteTextView editTextFilledExposedDropdown = mBinding.filledExposedDropdown;
editTextFilledExposedDropdown.setThreshold(0);
editTextFilledExposedDropdown.setAdapter(adapter);
}
private boolean validateCliente() {
return getCurrentCliente() != null;
}
public DialogAskClienteClienteDTO getCurrentCliente() {
for (DialogAskClienteClienteDTO cliente : availableClienti) {
if(cliente.getRagSoc().equalsIgnoreCase(mBinding.inputCliente.getEditText().getText().toString())) {
return cliente;
}
}
return null;
}
private void setClienteError(String message){
mBinding.inputCliente.setErrorEnabled(true);
mBinding.inputCliente.setError(message);
}
private void resetClienteError() {
mBinding.inputCliente.setError(null);
}
}

View File

@ -0,0 +1,115 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
import android.content.Context;
import android.graphics.Movie;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
public class DialogAskCliente_Page1_ArrayAdapter extends ArrayAdapter<DialogAskClienteClienteDTO> implements Filterable {
private Context mContext;
private List<DialogAskClienteClienteDTO> mDataset;
private List<DialogAskClienteClienteDTO> mDatasetAllItems;
private ListFilter listFilter = new ListFilter();
public DialogAskCliente_Page1_ArrayAdapter(@NonNull Context context, @NonNull ArrayList<DialogAskClienteClienteDTO> list) {
super(context, 0 , list);
mContext = context;
mDataset = list;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View listItem = convertView;
if(listItem == null) {
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item, parent, false);
}
if(position < mDataset.size()) {
AppCompatTextView textView = listItem.findViewById(R.id.text);
textView.setText(mDataset.get(position).getRagSoc());
return listItem;
}
return null;
}
@NonNull
@Override
public Filter getFilter() {
return listFilter;
}
public class ListFilter extends Filter {
private Object lock = new Object();
@Override
protected FilterResults performFiltering(CharSequence prefix) {
FilterResults results = new FilterResults();
if (mDatasetAllItems == null) {
synchronized (lock) {
mDatasetAllItems = new ArrayList<>(mDataset);
}
}
if (prefix == null || prefix.length() == 0) {
synchronized (lock) {
results.values = mDatasetAllItems;
results.count = mDatasetAllItems.size();
}
} else {
final String searchStrLowerCase = prefix.toString().toLowerCase();
ArrayList<DialogAskClienteClienteDTO> matchValues = new ArrayList<>();
for (DialogAskClienteClienteDTO dataItem : mDatasetAllItems) {
if (dataItem.getRagSoc().toLowerCase().startsWith(searchStrLowerCase)) {
matchValues.add(dataItem);
}
}
results.values = matchValues;
results.count = matchValues.size();
}
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results.values != null) {
mDataset.clear();
mDataset.addAll((ArrayList<DialogAskClienteClienteDTO>) results.values);
} else {
mDataset.clear();
}
if (results.count > 0) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
}
}

View File

@ -0,0 +1,125 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
import android.content.Context;
import android.widget.AutoCompleteTextView;
import androidx.databinding.ViewDataBinding;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.databinding.DialogAskClientePage2Binding;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO;
public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewModel {
private DialogAskClientePage2Binding mBinding;
private Context mContext;
private List<DialogAskClienteDestinatarioDTO> availableDestinatari;
private String mCodAnag;
public DialogAskCliente_Page2ViewModel() {
}
@Override
public void setBinding(ViewDataBinding binding) {
this.mBinding = (DialogAskClientePage2Binding) binding;
}
@Override
public void setContext(Context context) {
this.mContext = context;
}
@Override
public void onShow() {
String sql = "SELECT cod_anag, cod_vdes, destinatario, indirizzo, cap, citta, prov, nazione " +
"FROM vtb_dest " +
"WHERE cod_anag = " + UtilityDB.valueToString(mCodAnag);
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteDestinatarioDTO>>() {}.getType();
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteDestinatarioDTO>>() {
@Override
public void onSuccess(ArrayList<DialogAskClienteDestinatarioDTO> value) {
availableDestinatari = value;
initializeAdapter(value);
}
@Override
public void onFailed(Exception ex) {
}
});
}
@Override
public void setOnConfirmClickListener(Runnable onConfirm) {
this.mBinding.buttonYes.setOnClickListener(v -> {
if(validateDestinatario()) {
this.resetClienteError();
if(onConfirm != null) onConfirm.run();
} else {
this.setClienteError(mContext.getResources().getText(R.string.not_valid_recipient_error).toString());
}
});
}
@Override
public void setOnAbortClickListener(Runnable onAbort) {
this.mBinding.buttonNo.setOnClickListener(v -> {
if(onAbort != null) onAbort.run();
});
}
public void setCodAnag(String codAnag) {
this.mCodAnag = codAnag;
}
private void initializeAdapter(ArrayList<DialogAskClienteDestinatarioDTO> items) {
DialogAskCliente_Page2_ArrayAdapter adapter = new DialogAskCliente_Page2_ArrayAdapter(mContext, items);
AutoCompleteTextView editTextFilledExposedDropdown = mBinding.filledExposedDropdown;
editTextFilledExposedDropdown.setThreshold(0);
editTextFilledExposedDropdown.setAdapter(adapter);
}
private boolean validateDestinatario() {
return getCurrentDestinatario() != null;
}
public DialogAskClienteDestinatarioDTO getCurrentDestinatario() {
for (DialogAskClienteDestinatarioDTO destinatarioDTO : availableDestinatari) {
if(destinatarioDTO.toString().equalsIgnoreCase(mBinding.inputDestinatario.getEditText().getText().toString())) {
return destinatarioDTO;
}
}
return null;
}
private void setClienteError(String message){
mBinding.inputDestinatario.setErrorEnabled(true);
mBinding.inputDestinatario.setError(message);
}
private void resetClienteError() {
mBinding.inputDestinatario.setError(null);
}
}

View File

@ -0,0 +1,127 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO;
public class DialogAskCliente_Page2_ArrayAdapter extends ArrayAdapter<DialogAskClienteDestinatarioDTO> implements Filterable {
private Context mContext;
private List<DialogAskClienteDestinatarioDTO> mDataset;
private List<DialogAskClienteDestinatarioDTO> mDatasetAllItems;
private ListFilter listFilter = new ListFilter();
public DialogAskCliente_Page2_ArrayAdapter(@NonNull Context context, @NonNull ArrayList<DialogAskClienteDestinatarioDTO> list) {
super(context, 0 , list);
mContext = context;
mDataset = list;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View listItem = convertView;
if(listItem == null) {
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item_destinatario, parent, false);
}
if(position < mDataset.size()) {
AppCompatTextView destinatario = listItem.findViewById(R.id.destinatario);
destinatario.setText(UtilityString.capitalizeWords(mDataset.get(position).toString()));
AppCompatTextView subtitle = listItem.findViewById(R.id.subtitle);
StringBuilder subtitleStr = new StringBuilder();
if(!UtilityString.isNullOrEmpty(mDataset.get(position).getCitta())) {
subtitleStr.append(UtilityString.capitalizeWords(mDataset.get(position).getCitta()) + " - ");
}
if(!UtilityString.isNullOrEmpty(mDataset.get(position).getIndirizzo())) {
subtitleStr.append(UtilityString.capitalizeWords(mDataset.get(position).getIndirizzo()));
}
subtitle.setText(subtitleStr);
return listItem;
}
return null;
}
@NonNull
@Override
public Filter getFilter() {
return listFilter;
}
public class ListFilter extends Filter {
private Object lock = new Object();
@Override
protected FilterResults performFiltering(CharSequence prefix) {
FilterResults results = new FilterResults();
if (mDatasetAllItems == null) {
synchronized (lock) {
mDatasetAllItems = new ArrayList<>(mDataset);
}
}
if (prefix == null || prefix.length() == 0) {
synchronized (lock) {
results.values = mDatasetAllItems;
results.count = mDatasetAllItems.size();
}
} else {
final String searchStrLowerCase = prefix.toString().toLowerCase();
ArrayList<DialogAskClienteDestinatarioDTO> matchValues = new ArrayList<>();
for (DialogAskClienteDestinatarioDTO dataItem : mDatasetAllItems) {
if (dataItem.toString().toLowerCase().startsWith(searchStrLowerCase)) {
matchValues.add(dataItem);
}
}
results.values = matchValues;
results.count = matchValues.size();
}
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results.values != null) {
mDataset.clear();
mDataset.addAll((ArrayList<DialogAskClienteDestinatarioDTO>) results.values);
} else {
mDataset.clear();
}
if (results.count > 0) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
}
}

View File

@ -0,0 +1,18 @@
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
import android.content.Context;
import androidx.databinding.ViewDataBinding;
public interface IDialogAskClienteViewModel {
void setContext(Context context);
void setBinding(ViewDataBinding binding);
void onShow();
void setOnConfirmClickListener(Runnable onConfirm);
void setOnAbortClickListener(Runnable onAbort);
}

View File

@ -55,7 +55,7 @@ public class DialogAskPositionOfLU {
return new DialogAskPositionOfLU(context, mtbColtToUpdate, onComplete, onFailed).mDialog; return new DialogAskPositionOfLU(context, mtbColtToUpdate, onComplete, onFailed).mDialog;
} }
public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) { private DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
mContext = context; mContext = context;
mtbColt = mtbColtToUpdate; mtbColt = mtbColtToUpdate;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M3,4C2.448,4 2,4.448 2,5L2,19C2,19.552 2.448,20 3,20C3.552,20 4,19.552 4,19L4,5C4,4.448 3.552,4 3,4zM6,4C5.448,4 5,4.448 5,5L5,19C5,19.552 5.448,20 6,20L8,20C8.552,20 9,19.552 9,19L9,5C9,4.448 8.552,4 8,4L6,4zM11,4C10.448,4 10,4.448 10,5L10,19C10,19.552 10.448,20 11,20C11.552,20 12,19.552 12,19L12,5C12,4.448 11.552,4 11,4zM14,4C13.448,4 13,4.448 13,5L13,19C13,19.552 13.448,20 14,20L15,20C15.552,20 16,19.552 16,19L16,5C16,4.448 15.552,4 15,4L14,4zM18,4C17.448,4 17,4.448 17,5L17,19C17,19.552 17.448,20 18,20C18.552,20 19,19.552 19,19L19,5C19,4.448 18.552,4 18,4zM21,4C20.448,4 20,4.448 20,5L20,19C20,19.552 20.448,20 21,20C21.552,20 22,19.552 22,19L22,5C22,4.448 21.552,4 21,4z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M2.5,4C2.224,4 2,4.224 2,4.5L2,9.5C2,9.776 2.224,10 2.5,10L3.5,10C3.776,10 4,9.776 4,9.5L4,4.5C4,4.224 3.776,4 3.5,4L2.5,4zM5.5,4C5.224,4 5,4.224 5,4.5L5,9.5C5,9.776 5.224,10 5.5,10L8.5,10C8.776,10 9,9.776 9,9.5L9,4.5C9,4.224 8.776,4 8.5,4L5.5,4zM10.5,4C10.224,4 10,4.224 10,4.5L10,9.5C10,9.776 10.224,10 10.5,10L11.5,10C11.776,10 12,9.776 12,9.5L12,4.5C12,4.224 11.776,4 11.5,4L10.5,4zM13.5,4C13.224,4 13,4.224 13,4.5L13,9.5C13,9.776 13.224,10 13.5,10L15.5,10C15.776,10 16,9.776 16,9.5L16,4.5C16,4.224 15.776,4 15.5,4L13.5,4zM17.5,4C17.224,4 17,4.224 17,4.5L17,9.5C17,9.776 17.224,10 17.5,10L18.5,10C18.776,10 19,9.776 19,9.5L19,4.5C19,4.224 18.776,4 18.5,4L17.5,4zM20.5,4C20.224,4 20,4.224 20,4.5L20,9.5C20,9.776 20.224,10 20.5,10L21.5,10C21.776,10 22,9.776 22,9.5L22,4.5C22,4.224 21.776,4 21.5,4L20.5,4zM4,12C2.897,12 2,12.897 2,14L2,19C2,20.103 2.897,21 4,21L20,21C21.103,21 22,20.103 22,19L22,14C22,12.897 21.103,12 20,12L4,12zM5.5,14L8.5,14C8.776,14 9,14.224 9,14.5L9,18.5C9,18.776 8.776,19 8.5,19L5.5,19C5.224,19 5,18.776 5,18.5L5,14.5C5,14.224 5.224,14 5.5,14zM10.5,14L11.5,14C11.776,14 12,14.224 12,14.5L12,18.5C12,18.776 11.776,19 11.5,19L10.5,19C10.224,19 10,18.776 10,18.5L10,14.5C10,14.224 10.224,14 10.5,14zM13.5,14L15.5,14C15.776,14 16,14.224 16,14.5L16,18.5C16,18.776 15.776,19 15.5,19L13.5,19C13.224,19 13,18.776 13,18.5L13,14.5C13,14.224 13.224,14 13.5,14zM17.5,14L18.5,14C18.776,14 19,14.224 19,14.5L19,18.5C19,18.776 18.776,19 18.5,19L17.5,19C17.224,19 17,18.776 17,18.5L17,14.5C17,14.224 17.224,14 17.5,14z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M11,2C10.448,2 10,2.448 10,3L10,11L6.5,11A0.5,0.5 0,0 0,6 11.5A0.5,0.5 0,0 0,6.1465 11.8535A0.5,0.5 0,0 0,6.1777 11.8828L11.2832,16.6973L11.3164,16.7285A1,1 0,0 0,12 17A1,1 0,0 0,12.6836 16.7285L12.6973,16.7168A1,1 0,0 0,12.707 16.7051L17.8105,11.8926A0.5,0.5 0,0 0,17.8398 11.8652L17.8477,11.8594A0.5,0.5 0,0 0,17.8535 11.8535A0.5,0.5 0,0 0,18 11.5A0.5,0.5 0,0 0,17.5 11L14,11L14,3C14,2.448 13.552,2 13,2L12,2L11,2zM3,20A1.0001,1.0001 0,1 0,3 22L21,22A1.0001,1.0001 0,1 0,21 20L3,20z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M5.75,3A1.0001,1.0001 0,0 0,4.8867 3.4961L3.1367,6.4961L0.1426,11.4863A1.0001,1.0001 0,1 0,1.8574 12.5137L3,10.6094L3,19C3,20.0931 3.9069,21 5,21L19,21C20.0931,21 21,20.0931 21,19L21,10.6094L22.1426,12.5137A1.0001,1.0001 0,1 0,23.8574 11.4863L20.877,6.5215A1.0001,1.0001 0,0 0,20.8633 6.4961L19.1133,3.4961A1.0001,1.0001 0,0 0,18.25 3L5.75,3zM6.3242,5L17.6758,5L18.8418,7L5.1582,7L6.3242,5zM10,9L14,9C14.552,9 15,9.448 15,10C15,10.552 14.552,11 14,11L10,11C9.448,11 9,10.552 9,10C9,9.448 9.448,9 10,9z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M6.9785,3.5098A1.0001,1.0001 0,0 0,6.4434 3.6875C3.7651,5.4804 2,8.5405 2,12C2,17.5113 6.4887,22 12,22C17.5113,22 22,17.5113 22,12C22,8.5405 20.2349,5.4804 17.5566,3.6875A1.0003,1.0003 0,1 0,16.4434 5.3496C18.5871,6.7847 20,9.2195 20,12C20,16.4307 16.4307,20 12,20C7.5693,20 4,16.4307 4,12C4,9.2195 5.4129,6.7847 7.5566,5.3496A1.0001,1.0001 0,0 0,6.9785 3.5098zM12,4C11.448,4 11,4.448 11,5L11,11L8.7676,11C8.3146,11 8.0852,11.5481 8.4063,11.8691L11.2109,14.6738C11.6469,15.1098 12.3531,15.1098 12.7891,14.6738L15.5938,11.8691C15.9148,11.5481 15.6854,11 15.2324,11L13,11L13,5C13,4.448 12.552,4 12,4z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12,2A1,1 0,0 0,11.2891 2.2969L1.2031,11.0977A0.5,0.5 0,0 0,1 11.5A0.5,0.5 0,0 0,1.5 12L4,12L4,20C4,20.552 4.448,21 5,21L8,21C8.552,21 9,20.552 9,20L9,14L15,14L15,20C15,20.552 15.448,21 16,21L19,21C19.552,21 20,20.552 20,20L20,12L22.5,12A0.5,0.5 0,0 0,23 11.5A0.5,0.5 0,0 0,22.7969 11.0977L19,7.7852L19,5C19,4.448 18.552,4 18,4C17.448,4 17,4.448 17,5L17,6.0391L12.7168,2.3027A1,1 0,0 0,12.7109 2.2969A1,1 0,0 0,12 2z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M6.9785,3.5098A1.0001,1.0001 0,0 0,6.4434 3.6875C3.7651,5.4804 2,8.5405 2,12C2,17.5113 6.4887,22 12,22C17.5113,22 22,17.5113 22,12C22,8.5405 20.2349,5.4804 17.5566,3.6875A1.0003,1.0003 0,1 0,16.4434 5.3496C18.5871,6.7847 20,9.2195 20,12C20,16.4307 16.4307,20 12,20C7.5693,20 4,16.4307 4,12C4,9.2195 5.4129,6.7847 7.5566,5.3496A1.0001,1.0001 0,0 0,6.9785 3.5098zM12,4C11.7145,4 11.4289,4.1082 11.2109,4.3262L8.4063,7.1309C8.0852,7.4519 8.3146,8 8.7676,8L11,8L11,14C11,14.552 11.448,15 12,15C12.552,15 13,14.552 13,14L13,8L15.2324,8C15.6854,8 15.9148,7.4519 15.5938,7.1309L12.7891,4.3262C12.5711,4.1082 12.2855,4 12,4z"/>
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M6,1C2.691,1 0,3.691 0,7C0,8.771 0.776,10.3609 2,11.4609L2,18C2,18.552 2.448,19 3,19L3.0508,19C3.2958,20.692 4.742,22 6.5,22C8.258,22 9.7042,20.692 9.9492,19L14.0508,19C14.2958,20.692 15.74,22 17.498,22C19.256,22 20.7023,20.692 20.9473,19L22,19C22.552,19 23,18.552 23,18L23,15.3066C23,14.7496 22.8467,14.2064 22.5547,13.7324L20.5176,10.4277C19.9676,9.5337 19.0119,9 17.9629,9L16,9L16,7C16,6.448 15.552,6 15,6L11.9102,6C11.4312,3.167 8.967,1 6,1zM6,3C8.206,3 10,4.794 10,7C10,9.206 8.206,11 6,11C3.794,11 2,9.206 2,7C2,4.794 3.794,3 6,3zM6,5C5.448,5 5,5.448 5,6L5,8.207C5,8.34 5.0535,8.4675 5.1465,8.5605L5.998,9.4121C6.389,9.8031 7.0221,9.8031 7.4121,9.4121C7.8021,9.0211 7.8031,8.389 7.4121,7.998L7,7.5859L7,6C7,5.448 6.552,5 6,5zM16,11L17.9629,11C18.3129,11 18.6315,11.1786 18.8145,11.4766L20.8516,14.7813C20.9496,14.9392 21,15.1206 21,15.3066L21,17L20.6484,17C20.0844,15.822 18.891,15 17.5,15C16.961,15 16.456,15.1336 16,15.3516L16,11zM6.5,17C7.327,17 8,17.673 8,18.5C8,19.327 7.327,20 6.5,20C5.673,20 5,19.327 5,18.5C5,17.673 5.673,17 6.5,17zM17.5,17C18.327,17 19,17.673 19,18.5C19,19.327 18.327,20 17.5,20C16.673,20 16,19.327 16,18.5C16,17.673 16.673,17 17.5,17z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M6,2C4.895,2 4,2.895 4,4L4,6C4,6.552 4.448,7 5,7L19,7C19.552,7 20,6.552 20,6L20,4C20,2.895 19.105,2 18,2L6,2zM5,9C4.448,9 4,9.448 4,10L4,14C4,14.552 4.448,15 5,15L15.1719,15L17.4023,12.7695C17.8953,12.2765 18.5637,12 19.2617,12L20,12L20,10C20,9.448 19.552,9 19,9L5,9zM19,14C18.7798,14 18.5606,14.084 18.3926,14.252L15.7344,16.9102C15.3314,17.3132 15.6156,18 16.1836,18L18,18L18,23A1.0001,1.0001 0,1 0,20 23L20,18L21.8145,18C22.3835,18 22.6696,17.3132 22.2676,16.9102L19.6094,14.252C19.4414,14.084 19.2202,14 19,14zM5,17.002C4.448,17.002 4,17.45 4,18.002L4,20.002C4,21.107 4.895,22.002 6,22.002L16,22.002L16,20.002C15.937,20.002 15.8832,19.9826 15.8242,19.9746L15.752,19.9629C15.682,19.9499 15.6109,19.939 15.5469,19.916C14.7469,19.718 14.0721,19.1571 13.7461,18.3711C13.5621,17.9261 13.5132,17.456 13.5762,17.002L5,17.002z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M3.5,2C3.372,2 3.2445,2.0495 3.1465,2.1465C2.9515,2.3415 2.9515,2.6585 3.1465,2.8535L5.0938,4.8008C3.195,6.6199 2,9.1685 2,12C2,17.5113 6.4887,22 12,22C17.5113,22 22,17.5113 22,12C22,6.8641 18.1065,2.6176 13.1094,2.0645A1.0001,1.0001 0,0 0,13.0098 2.0586A1.0001,1.0001 0,0 0,12.8906 4.0527C16.8915,4.4956 20,7.8719 20,12C20,16.4307 16.4307,20 12,20C7.5693,20 4,16.4307 4,12C4,9.7105 4.9675,7.6644 6.5039,6.2109L8.1465,7.8535C8.3415,8.0485 8.6585,8.0485 8.8535,7.8535C8.9515,7.7565 9,7.628 9,7.5L9,3A1,1 0,0 0,8 2L3.5,2z"/>
</vector>

View File

@ -0,0 +1,4 @@
<vector android:height="24dp" android:viewportHeight="24"
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12,2A1,1 0,0 0,11.293 2.2949L6.1602,7.1348A0.5,0.5 0,0 0,6.1484 7.1445L6.1465,7.1465A0.5,0.5 0,0 0,6 7.5A0.5,0.5 0,0 0,6.5 8L10,8L10,16C10,16.552 10.448,17 11,17L12,17L13,17C13.552,17 14,16.552 14,16L14,8L17.5,8A0.5,0.5 0,0 0,18 7.5A0.5,0.5 0,0 0,17.8535 7.1465L17.8223,7.1172L12.7168,2.3027A1,1 0,0 0,12.6836 2.2715A1,1 0,0 0,12 2zM3,20A1.0001,1.0001 0,1 0,3 22L21,22A1.0001,1.0001 0,1 0,21 20L3,20z"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>

View File

@ -0,0 +1,16 @@
<vector android:height="24dp" android:viewportHeight="48"
android:viewportWidth="48" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#388E3C" android:pathData="M29,38L7,38C5.8945,38 5,37.1055 5,36L5,15C5,13.8945 5.8945,13 7,13L27,13C28.1055,13 29,13.8945 29,15Z"/>
<path android:fillColor="#8BC34A" android:pathData="M43,38L29,38L29,18L39.5586,18C40.418,18 41.1836,18.5508 41.457,19.3672L45,30L45,36C45,37.1055 44.1055,38 43,38"/>
<path android:fillColor="#37474F" android:pathData="M41,37.5C41,39.9844 38.9844,42 36.5,42C34.0156,42 32,39.9844 32,37.5C32,35.0156 34.0156,33 36.5,33C38.9844,33 41,35.0156 41,37.5"/>
<path android:fillColor="#37474F" android:pathData="M19,37.5C19,39.9844 16.9844,42 14.5,42C12.0156,42 10,39.9844 10,37.5C10,35.0156 12.0156,33 14.5,33C16.9844,33 19,35.0156 19,37.5"/>
<path android:fillColor="#78909C" android:pathData="M38,37.5C38,38.3281 37.3281,39 36.5,39C35.6719,39 35,38.3281 35,37.5C35,36.6719 35.6719,36 36.5,36C37.3281,36 38,36.6719 38,37.5"/>
<path android:fillColor="#78909C" android:pathData="M16,37.5C16,38.3281 15.3281,39 14.5,39C13.6719,39 13,38.3281 13,37.5C13,36.6719 13.6719,36 14.5,36C15.3281,36 16,36.6719 16,37.5"/>
<path android:fillColor="#37474F" android:pathData="M40,28L33,28C32.4492,28 32,27.5508 32,27L32,21C32,20.4492 32.4492,20 33,20L38.2773,20C38.7109,20 39.0938,20.2734 39.2266,20.6836L40.9492,25.8477C40.9805,25.9492 41,26.0547 41,26.1602L41,27C41,27.5508 40.5508,28 40,28"/>
<path android:fillColor="#1B5E20" android:pathData="M12.5,27C18.8516,27 24,21.8516 24,15.5C24,14.6406 23.8984,13.8047 23.7188,13L7,13C5.8945,13 5,13.8945 5,15L5,24.207C7.0156,25.9414 9.6328,27 12.5,27Z"/>
<path android:fillColor="#00ACC1" android:pathData="M22,15.5C22,20.7461 17.7461,25 12.5,25C7.2539,25 3,20.7461 3,15.5C3,10.2539 7.2539,6 12.5,6C17.7461,6 22,10.2539 22,15.5"/>
<path android:fillColor="#EEEEEE" android:pathData="M12.5,8.5C8.6328,8.5 5.5,11.6328 5.5,15.5C5.5,19.3672 8.6328,22.5 12.5,22.5C16.3672,22.5 19.5,19.3672 19.5,15.5C19.5,11.6328 16.3672,8.5 12.5,8.5ZM12.5,16C12.2266,16 12,15.7773 12,15.5C12,15.2227 12.2266,15 12.5,15C12.7734,15 13,15.2227 13,15.5C13,15.7773 12.7734,16 12.5,16Z"/>
<path android:fillColor="#FF000000" android:pathData="M12,10L13,10L13,14.5625L12,14.5625Z"/>
<path android:fillColor="#FF000000" android:pathData="M16.3438,18.1719L15.168,19.3438L12.3984,16.5703L13.5703,15.3984Z"/>
<path android:fillColor="#FF000000" android:pathData="M12.5,14C11.6719,14 11,14.6719 11,15.5C11,16.3281 11.6719,17 12.5,17C13.3281,17 14,16.3281 14,15.5C14,14.6719 13.3281,14 12.5,14ZM12.5,16C12.2266,16 12,15.7773 12,15.5C12,15.2227 12.2266,15 12.5,15C12.7734,15 13,15.2227 13,15.5C13,15.7773 12.7734,16 12.5,16Z"/>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M9,16h6v-6h4l-7,-7 -7,7h4zM5,18h14v2L5,20z"/>
</vector>

View File

@ -102,48 +102,23 @@
app:binding="@{loginViewModel.codAzienda}"/> app:binding="@{loginViewModel.codAzienda}"/>
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<!-- Host Label -->
<!--<android.support.design.widget.TextInputLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="8dp"-->
<!--app:hintTextAppearance="@style/hint_text">-->
<!--<android.support.design.widget.TextInputEditText-->
<!--android:id="@+id/iput_server_host"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="text"-->
<!--android:hint="Host" />-->
<!--</android.support.design.widget.TextInputLayout>-->
<!--&lt;!&ndash; Port Label &ndash;&gt;-->
<!--<android.support.design.widget.TextInputLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_marginTop="8dp"-->
<!--app:hintTextAppearance="@style/hint_text">-->
<!--<android.support.design.widget.TextInputEditText-->
<!--android:id="@+id/iput_server_port"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:inputType="number|none"-->
<!--android:hint="Port" />-->
<!--</android.support.design.widget.TextInputLayout>-->
</LinearLayout> </LinearLayout>
</net.cachapa.expandablelayout.ExpandableLayout> </net.cachapa.expandablelayout.ExpandableLayout>
<androidx.appcompat.widget.AppCompatButton
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_login" android:id="@+id/btn_login"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="24dp" style="@style/Button.PrimaryFull"
android:layout_marginBottom="24dp" android:text="@string/login"
android:padding="12dp"
android:enabled="@{loginViewModel.loginButtonEnabled}" android:enabled="@{loginViewModel.loginButtonEnabled}"
app:onClick="@{() -> loginViewModel.login(loginViewModel.validate())}" app:onClick="@{() -> loginViewModel.login(loginViewModel.validate())}"
android:text="Login"/> android:layout_marginTop="24dp"
android:layout_marginBottom="24dp"/>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.text.Html" />
<import type="it.integry.integrywmsnative.R" />
<variable
name="mContext"
type="android.content.Context" />
</data>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!--<RelativeLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"-->
<!--android:background="@color/light_blue_300"-->
<!--android:gravity="center_horizontal">-->
<!--<ImageView-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:src="@drawable/ic_error_white_24dp"-->
<!--android:layout_margin="24dp"/>-->
<!--</RelativeLayout>-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<it.integry.integrywmsnative.ui.DeactivatableViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</it.integry.integrywmsnative.ui.DeactivatableViewPager>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -0,0 +1,9 @@
<androidx.appcompat.widget.AppCompatTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="?attr/textAppearanceSubtitle1"
style="@style/AppTheme.NewMaterial.Text"/>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingTop="8dp"
android:paddingBottom="8dp">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/destinatario"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="?attr/textAppearanceSubtitle1"
tools:text="Destinatario"
style="@style/AppTheme.NewMaterial.Text"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:textAppearance="?attr/textAppearanceSubtitle1"
tools:text="Città"
style="@style/AppTheme.NewMaterial.Text.Small"/>
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page1ViewModel" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_margin="16dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/customer"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial"
android:text="@string/select_a_customer_message"
android:gravity="left"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_cliente"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/customer">
<AutoCompleteTextView
android:id="@+id/filled_exposed_dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"/>
</com.google.android.material.textfield.TextInputLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/center_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_no"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:strokeColor="@color/colorPrimary"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline"
android:text="@string/abort"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_yes"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/center_buttons_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/confirm"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</layout>

View File

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page2ViewModel" />
</data>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_margin="16dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/recipient"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/description_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial"
android:text="@string/select_a_recipient_message"
android:gravity="left"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_destinatario"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/recipient">
<AutoCompleteTextView
android:id="@+id/filled_exposed_dropdown"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"/>
</com.google.android.material.textfield.TextInputLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/center_buttons_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_no"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:strokeColor="@color/colorPrimary"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline"
android:text="@string/abort"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_yes"
android:layout_width="0dp"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="@id/center_buttons_guideline"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/confirm"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</layout>

View File

@ -55,7 +55,6 @@
android:gravity="center_horizontal"/> android:gravity="center_horizontal"/>
<it.integry.integrywmsnative.ui.DeactivatableViewPager <it.integry.integrywmsnative.ui.DeactivatableViewPager
android:id="@+id/viewpager" android:id="@+id/viewpager"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -138,7 +138,7 @@
android:layout_height="30dp" android:layout_height="30dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:src="@drawable/ic_recover_96" android:src="@drawable/ic_black_recover"
android:tint="@android:color/white" /> android:tint="@android:color/white" />
<LinearLayout <LinearLayout
@ -243,7 +243,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/accettazione_title_fragment" android:text="@string/accettazione_title_fragment"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@ -286,7 +286,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:text="@string/vendita_title_fragment" android:text="@string/vendita_title_fragment"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@ -330,7 +330,7 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="@string/rettifica_giacenze_fragment_title" android:text="@string/rettifica_giacenze_fragment_title"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@ -375,7 +375,7 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="@string/versamento_merce_fragment_title" android:text="@string/versamento_merce_fragment_title"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@ -421,53 +421,59 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="@string/free_picking" android:text="@string/free_picking"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
</RelativeLayout> </RelativeLayout>
<!--<com.google.android.material.card.MaterialCardView-->
<!--android:id="@+id/fast_button_resi_clienti"--> <RelativeLayout
<!--style="@style/Widget.MaterialComponents.CardView"--> android:id="@+id/fast_button_resi_clienti"
<!--android:layout_width="0dp"--> android:layout_width="0dp"
<!--android:layout_height="wrap_content"--> android:layout_height="wrap_content"
<!--android:layout_margin="8dp"--> app:layout_constraintTop_toBottomOf="@id/fast_button_versamento"
<!--app:layout_constraintTop_toBottomOf="@id/fast_button_versamento"--> app:layout_constraintStart_toEndOf="@id/guide_1"
<!--app:layout_constraintStart_toEndOf="@id/guide_1"--> app:layout_constraintEnd_toEndOf="parent">
<!--app:layout_constraintEnd_toEndOf="parent"-->
<!--app:cardBackgroundColor="@android:color/white"--> <com.google.android.material.card.MaterialCardView
<!--app:cardCornerRadius="4dp">--> style="@style/Widget.MaterialComponents.CardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp">
<!--<LinearLayout--> <LinearLayout
<!--android:layout_width="match_parent"--> android:layout_width="match_parent"
<!--android:layout_height="wrap_content"--> android:layout_height="wrap_content"
<!--android:gravity="center_horizontal"--> android:gravity="center_horizontal"
<!--android:orientation="vertical"--> android:orientation="vertical"
<!--android:padding="8dp">--> android:padding="8dp">
<!--<ImageView--> <ImageView
<!--android:layout_width="64sp"--> android:layout_width="64sp"
<!--android:layout_height="wrap_content"--> android:layout_height="wrap_content"
<!--android:adjustViewBounds="true"--> android:adjustViewBounds="true"
<!--android:src="@drawable/ic_versamento_merce_96" />--> android:src="@drawable/ic_latest_delivery" />
<!--<androidx.appcompat.widget.AppCompatTextView--> <androidx.appcompat.widget.AppCompatTextView
<!--android:layout_width="wrap_content"--> android:layout_width="wrap_content"
<!--android:layout_height="wrap_content"--> android:layout_height="wrap_content"
<!--android:layout_marginTop="16dp"--> android:layout_marginTop="16dp"
<!--android:gravity="center_horizontal"--> android:gravity="center_horizontal"
<!--android:text="@string/fragment_ultime_consegne_cliente_title"--> android:text="@string/fragment_ultime_consegne_cliente_title"
<!--android:textAllCaps="true"--> android:textAllCaps="true"
<!--android:textColor="@color/grey_700"--> android:textColor="@color/gray_700"
<!--android:textStyle="bold" />--> android:textStyle="bold" />
<!--</LinearLayout>--> </LinearLayout>
<!--</com.google.android.material.card.MaterialCardView>--> </com.google.android.material.card.MaterialCardView>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@ -532,7 +538,7 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="@string/prod_versamento_materiale_title_fragment" android:text="@string/prod_versamento_materiale_title_fragment"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>
@ -577,7 +583,7 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:text="@string/prod_recupero_materiale_title_fragment" android:text="@string/prod_recupero_materiale_title_fragment"
android:textAllCaps="true" android:textAllCaps="true"
android:textColor="@color/grey_700" android:textColor="@color/gray_700"
android:textStyle="bold" /> android:textStyle="bold" />
</LinearLayout> </LinearLayout>

View File

@ -25,6 +25,60 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ordini_accettazione_empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="72dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_playlist_add_check_24dp"
android:adjustViewBounds="true"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="@android:color/black"
android:textSize="18sp"
android:text="@string/no_orders_found_message"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton

View File

@ -25,6 +25,59 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ordini_vendita_empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="72dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_playlist_add_check_24dp"
android:adjustViewBounds="true"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="@android:color/black"
android:textSize="18sp"
android:text="@string/no_orders_found_message"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton

View File

@ -4,32 +4,32 @@
<group android:checkableBehavior="single"> <group android:checkableBehavior="single">
<item <item
android:id="@+id/nav_home" android:id="@+id/nav_home"
android:icon="@drawable/ic_home_black_24dp" android:icon="@drawable/ic_black_home"
android:title="Home" /> android:title="Home" />
<item <item
android:id="@+id/nav_accettazione" android:id="@+id/nav_accettazione"
android:icon="@drawable/ic_download_black_24dp" android:icon="@drawable/ic_black_download"
android:title="@string/accettazione_title_fragment" /> android:title="@string/accettazione_title_fragment" />
<item <item
android:id="@+id/nav_spedizione" android:id="@+id/nav_spedizione"
android:icon="@drawable/ic_upload_black_24dp" android:icon="@drawable/ic_black_upload"
android:title="@string/vendita_title_fragment" /> android:title="@string/vendita_title_fragment" />
<item <item
android:id="@+id/nav_rettifica_giacenze" android:id="@+id/nav_rettifica_giacenze"
android:icon="@drawable/ic_empty_box_96" android:icon="@drawable/ic_black_empty_box"
android:title="@string/rettifica_giacenze_fragment_title" /> android:title="@string/rettifica_giacenze_fragment_title" />
<item <item
android:id="@+id/nav_versamento_merce" android:id="@+id/nav_versamento_merce"
android:icon="@drawable/ic_load_shelf_96" android:icon="@drawable/ic_black_load_shelf"
android:title="@string/versamento_merce_fragment_title" /> android:title="@string/versamento_merce_fragment_title" />
<item <item
android:id="@+id/nav_free_picking" android:id="@+id/nav_free_picking"
android:icon="@drawable/ic_barcode_96" android:icon="@drawable/ic_black_barcode_scanner"
android:title="@string/free_picking" /> android:title="@string/free_picking" />
<!--<item--> <item
<!--android:id="@+id/nav_resi_cliente"--> android:id="@+id/nav_resi_cliente"
<!--android:icon="@drawable/ic_barcode_96"--> android:icon="@drawable/ic_black_latest_delivery"
<!--android:title="@string/fragment_ultime_consegne_cliente_title" />--> android:title="@string/fragment_ultime_consegne_cliente_title" />
</group> </group>
@ -38,11 +38,11 @@
<menu> <menu>
<item <item
android:id="@+id/nav_prod_versamento_materiale" android:id="@+id/nav_prod_versamento_materiale"
android:icon="@drawable/ic_settings_24dp" android:icon="@drawable/ic_black_external"
android:title="@string/prod_versamento_materiale_title_fragment" /> android:title="@string/prod_versamento_materiale_title_fragment" />
<item <item
android:id="@+id/nav_prod_recupero_materiale" android:id="@+id/nav_prod_recupero_materiale"
android:icon="@drawable/ic_settings_24dp" android:icon="@drawable/ic_black_internal"
android:title="@string/prod_recupero_materiale_title_fragment" /> android:title="@string/prod_recupero_materiale_title_fragment" />
</menu> </menu>
</item> </item>

View File

@ -12,6 +12,7 @@
<string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string> <string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
<string name="ord_ven_testata_data_cons"><![CDATA[Cons <b>%s</b>]]></string> <string name="ord_ven_testata_data_cons"><![CDATA[Cons <b>%s</b>]]></string>
<string name="search">Cerca...</string> <string name="search">Cerca...</string>
<string name="login">Login</string>
<string name="accettazione_title_fragment">Accettazione</string> <string name="accettazione_title_fragment">Accettazione</string>
<string name="accettazione_ordine_inevaso_title_empty">Ordine di accettazione</string> <string name="accettazione_ordine_inevaso_title_empty">Ordine di accettazione</string>
<string name="accettazione_ordine_inevaso_title_multiple_order">Ordini di accettazione</string> <string name="accettazione_ordine_inevaso_title_multiple_order">Ordini di accettazione</string>
@ -136,6 +137,7 @@
<string name="no_lu_already_registered_text">Nessuna UL registrata a magazzino</string> <string name="no_lu_already_registered_text">Nessuna UL registrata a magazzino</string>
<string name="no_item_to_pick_text">Nessun articolo da prelevare</string> <string name="no_item_to_pick_text">Nessun articolo da prelevare</string>
<string name="no_orders_to_pick_text">Nessun ordine da evadere</string>
<string name="no_item_text">Nessun articolo</string> <string name="no_item_text">Nessun articolo</string>
<string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string> <string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string>
@ -156,6 +158,7 @@
<string name="num_ords">Numero ordine</string> <string name="num_ords">Numero ordine</string>
<string name="customer">Cliente</string> <string name="customer">Cliente</string>
<string name="recipient">Destinatario</string>
<string name="ship_date">Data consegna</string> <string name="ship_date">Data consegna</string>
<string name="terms_of_delivery">Termini di consegna</string> <string name="terms_of_delivery">Termini di consegna</string>
<string name="vehicle">Automezzo</string> <string name="vehicle">Automezzo</string>
@ -208,4 +211,9 @@
<string name="production">Produzione</string> <string name="production">Produzione</string>
<string name="prod_versamento_materiale_title_fragment">Versamento materiale</string> <string name="prod_versamento_materiale_title_fragment">Versamento materiale</string>
<string name="prod_recupero_materiale_title_fragment">Recupero materiale</string> <string name="prod_recupero_materiale_title_fragment">Recupero materiale</string>
<string name="select_a_customer_message">Prima di procedere seleziona un <b>cliente</b></string>
<string name="select_a_recipient_message">Prima di procedere seleziona un <b>destinatario</b></string>
<string name="not_valid_customer_error">Cliente non valido</string>
<string name="not_valid_recipient_error">Destinatario non valido</string>
</resources> </resources>

View File

@ -42,8 +42,11 @@
<color name="green_700">#388E3C</color> <color name="green_700">#388E3C</color>
<color name="grey_700">#616161</color> <color name="gray_400">#BDBDBD</color>
<color name="grey_800">#424242</color> <color name="gray_500">#9E9E9E</color>
<color name="gray_600">#757575</color>
<color name="gray_700">#616161</color>
<color name="gray_800">#424242</color>
<color name="alpha_indigo_500">#813f51b5</color> <color name="alpha_indigo_500">#813f51b5</color>

View File

@ -13,6 +13,7 @@
<string name="loading">Loading</string> <string name="loading">Loading</string>
<string name="completed">Completed</string> <string name="completed">Completed</string>
<string name="search">Search...</string> <string name="search">Search...</string>
<string name="login">Login</string>
<string name="permission_request_message">Permissions are required for app to work properly</string> <string name="permission_request_message">Permissions are required for app to work properly</string>
@ -141,6 +142,7 @@
<string name="no_lu_already_registered_text">No LU already registered</string> <string name="no_lu_already_registered_text">No LU already registered</string>
<string name="no_item_to_pick_text">No items to pick</string> <string name="no_item_to_pick_text">No items to pick</string>
<string name="no_orders_to_pick_text">No orders to dispatch</string>
<string name="no_item_text">No items</string> <string name="no_item_text">No items</string>
<string name="already_used_anonymous_barcode">The scanned label has already been used</string> <string name="already_used_anonymous_barcode">The scanned label has already been used</string>
@ -162,6 +164,7 @@
<string name="num_ords">Orders number</string> <string name="num_ords">Orders number</string>
<string name="customer">Customer</string> <string name="customer">Customer</string>
<string name="recipient">Recipient</string>
<string name="ship_date">Ship date</string> <string name="ship_date">Ship date</string>
<string name="terms_of_delivery">Terms of delivery</string> <string name="terms_of_delivery">Terms of delivery</string>
<string name="vehicle">Vehicle</string> <string name="vehicle">Vehicle</string>
@ -214,4 +217,10 @@
<string name="prod_recupero_materiale_title_fragment">Recover raw material</string> <string name="prod_recupero_materiale_title_fragment">Recover raw material</string>
<string name="select_a_customer_message">Please, select a <b>customer</b> before proceeding</string>
<string name="select_a_recipient_message">Please, select a <b>recipient</b> before proceeding</string>
<string name="not_valid_customer_error">Invalid customer</string>
<string name="not_valid_recipient_error">Invalid recipient</string>
</resources> </resources>

View File

@ -24,6 +24,10 @@
<item name="android:fontFamily">@font/product_sans_regular</item> <item name="android:fontFamily">@font/product_sans_regular</item>
<item name="android:textStyle">normal</item> <item name="android:textStyle">normal</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text.Small" parent = "AppTheme.NewMaterial.Text">
<item name="android:textColor">@color/gray_600</item>
<item name="android:textSize">14sp</item>
</style>
<style name="AppTheme.NewMaterial.Text.Badge" parent = "AppTheme.NewMaterial"> <style name="AppTheme.NewMaterial.Text.Badge" parent = "AppTheme.NewMaterial">
<item name="android:fontFamily">@font/product_sans_regular</item> <item name="android:fontFamily">@font/product_sans_regular</item>
<item name="android:textStyle">normal</item> <item name="android:textStyle">normal</item>
@ -64,6 +68,13 @@
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
</style> </style>
<style name="AppTheme.NewMaterial.Dialog" parent="android:Theme.Holo.Dialog">
<item name="android:windowMinWidthMajor">90%</item>
<item name="android:windowMinWidthMinor">80%</item>
</style>
<style name="SplashTheme" parent="AppTheme.NoActionBar"> <style name="SplashTheme" parent="AppTheme.NoActionBar">
<item name="android:windowBackground">@drawable/splash_background</item> <item name="android:windowBackground">@drawable/splash_background</item>
</style> </style>
@ -127,5 +138,4 @@
</resources> </resources>

View File

@ -8,7 +8,7 @@ public interface BarcodeReaderInterface {
boolean isRightAdapter(); boolean isRightAdapter();
void init() throws BarcodeAdapterNotFoundException; void init(Runnable onDeviceReady) throws BarcodeAdapterNotFoundException;
void deinit(); void deinit();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path d="M 2.5 4 C 2.224 4 2 4.224 2 4.5 L 2 9.5 C 2 9.776 2.224 10 2.5 10 L 3.5 10 C 3.776 10 4 9.776 4 9.5 L 4 4.5 C 4 4.224 3.776 4 3.5 4 L 2.5 4 z M 5.5 4 C 5.224 4 5 4.224 5 4.5 L 5 9.5 C 5 9.776 5.224 10 5.5 10 L 8.5 10 C 8.776 10 9 9.776 9 9.5 L 9 4.5 C 9 4.224 8.776 4 8.5 4 L 5.5 4 z M 10.5 4 C 10.224 4 10 4.224 10 4.5 L 10 9.5 C 10 9.776 10.224 10 10.5 10 L 11.5 10 C 11.776 10 12 9.776 12 9.5 L 12 4.5 C 12 4.224 11.776 4 11.5 4 L 10.5 4 z M 13.5 4 C 13.224 4 13 4.224 13 4.5 L 13 9.5 C 13 9.776 13.224 10 13.5 10 L 15.5 10 C 15.776 10 16 9.776 16 9.5 L 16 4.5 C 16 4.224 15.776 4 15.5 4 L 13.5 4 z M 17.5 4 C 17.224 4 17 4.224 17 4.5 L 17 9.5 C 17 9.776 17.224 10 17.5 10 L 18.5 10 C 18.776 10 19 9.776 19 9.5 L 19 4.5 C 19 4.224 18.776 4 18.5 4 L 17.5 4 z M 20.5 4 C 20.224 4 20 4.224 20 4.5 L 20 9.5 C 20 9.776 20.224 10 20.5 10 L 21.5 10 C 21.776 10 22 9.776 22 9.5 L 22 4.5 C 22 4.224 21.776 4 21.5 4 L 20.5 4 z M 4 12 C 2.897 12 2 12.897 2 14 L 2 19 C 2 20.103 2.897 21 4 21 L 20 21 C 21.103 21 22 20.103 22 19 L 22 14 C 22 12.897 21.103 12 20 12 L 4 12 z M 5.5 14 L 8.5 14 C 8.776 14 9 14.224 9 14.5 L 9 18.5 C 9 18.776 8.776 19 8.5 19 L 5.5 19 C 5.224 19 5 18.776 5 18.5 L 5 14.5 C 5 14.224 5.224 14 5.5 14 z M 10.5 14 L 11.5 14 C 11.776 14 12 14.224 12 14.5 L 12 18.5 C 12 18.776 11.776 19 11.5 19 L 10.5 19 C 10.224 19 10 18.776 10 18.5 L 10 14.5 C 10 14.224 10.224 14 10.5 14 z M 13.5 14 L 15.5 14 C 15.776 14 16 14.224 16 14.5 L 16 18.5 C 16 18.776 15.776 19 15.5 19 L 13.5 19 C 13.224 19 13 18.776 13 18.5 L 13 14.5 C 13 14.224 13.224 14 13.5 14 z M 17.5 14 L 18.5 14 C 18.776 14 19 14.224 19 14.5 L 19 18.5 C 19 18.776 18.776 19 18.5 19 L 17.5 19 C 17.224 19 17 18.776 17 18.5 L 17 14.5 C 17 14.224 17.224 14 17.5 14 z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path d="M 3 4 C 2.448 4 2 4.448 2 5 L 2 19 C 2 19.552 2.448 20 3 20 C 3.552 20 4 19.552 4 19 L 4 5 C 4 4.448 3.552 4 3 4 z M 6 4 C 5.448 4 5 4.448 5 5 L 5 19 C 5 19.552 5.448 20 6 20 L 8 20 C 8.552 20 9 19.552 9 19 L 9 5 C 9 4.448 8.552 4 8 4 L 6 4 z M 11 4 C 10.448 4 10 4.448 10 5 L 10 19 C 10 19.552 10.448 20 11 20 C 11.552 20 12 19.552 12 19 L 12 5 C 12 4.448 11.552 4 11 4 z M 14 4 C 13.448 4 13 4.448 13 5 L 13 19 C 13 19.552 13.448 20 14 20 L 15 20 C 15.552 20 16 19.552 16 19 L 16 5 C 16 4.448 15.552 4 15 4 L 14 4 z M 18 4 C 17.448 4 17 4.448 17 5 L 17 19 C 17 19.552 17.448 20 18 20 C 18.552 20 19 19.552 19 19 L 19 5 C 19 4.448 18.552 4 18 4 z M 21 4 C 20.448 4 20 4.448 20 5 L 20 19 C 20 19.552 20.448 20 21 20 C 21.552 20 22 19.552 22 19 L 22 5 C 22 4.448 21.552 4 21 4 z"/>
</svg>

After

Width:  |  Height:  |  Size: 913 B

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 6 2 C 4.895 2 4 2.895 4 4 L 4 6 C 4 6.552 4.448 7 5 7 L 19 7 C 19.552 7 20 6.552 20 6 L 20 4 C 20 2.895 19.105 2 18 2 L 6 2 z M 5 9 C 4.448 9 4 9.448 4 10 L 4 14 C 4 14.552 4.448 15 5 15 L 15.171875 15 L 17.402344 12.769531 C 17.895344 12.276531 18.563719 12 19.261719 12 L 20 12 L 20 10 C 20 9.448 19.552 9 19 9 L 5 9 z M 19 14 C 18.77975 14 18.560578 14.083953 18.392578 14.251953 L 15.734375 16.910156 C 15.331375 17.313156 15.615594 18 16.183594 18 L 18 18 L 18 23 A 1.0001 1.0001 0 1 0 20 23 L 20 18 L 21.814453 18 C 22.383453 18 22.669578 17.313156 22.267578 16.910156 L 19.609375 14.251953 C 19.441375 14.083953 19.22025 14 19 14 z M 5 17.001953 C 4.448 17.001953 4 17.449953 4 18.001953 L 4 20.001953 C 4 21.106953 4.895 22.001953 6 22.001953 L 16 22.001953 L 16 20.001953 C 15.937 20.001953 15.883219 19.982609 15.824219 19.974609 L 15.751953 19.962891 C 15.681953 19.949891 15.610875 19.939016 15.546875 19.916016 C 14.746875 19.718016 14.072094 19.157094 13.746094 18.371094 C 13.562094 17.926094 13.513172 17.455953 13.576172 17.001953 L 5 17.001953 z" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px">
<path d="M 6 1 C 2.691 1 0 3.691 0 7 C 0 8.771 0.776 10.360937 2 11.460938 L 2 18 C 2 18.552 2.448 19 3 19 L 3.0507812 19 C 3.2957813 20.692 4.742 22 6.5 22 C 8.258 22 9.7042188 20.692 9.9492188 19 L 14.050781 19 C 14.295781 20.692 15.740047 22 17.498047 22 C 19.256047 22 20.702266 20.692 20.947266 19 L 22 19 C 22.552 19 23 18.552 23 18 L 23 15.306641 C 23 14.749641 22.846688 14.206422 22.554688 13.732422 L 20.517578 10.427734 C 19.967578 9.5337344 19.011891 9 17.962891 9 L 16 9 L 16 7 C 16 6.448 15.552 6 15 6 L 11.910156 6 C 11.431156 3.167 8.967 1 6 1 z M 6 3 C 8.206 3 10 4.794 10 7 C 10 9.206 8.206 11 6 11 C 3.794 11 2 9.206 2 7 C 2 4.794 3.794 3 6 3 z M 6 5 C 5.448 5 5 5.448 5 6 L 5 8.2070312 C 5 8.3400312 5.0534844 8.4675469 5.1464844 8.5605469 L 5.9980469 9.4121094 C 6.3890469 9.8031094 7.0221094 9.8031094 7.4121094 9.4121094 C 7.8021094 9.0211094 7.8031094 8.3890469 7.4121094 7.9980469 L 7 7.5859375 L 7 6 C 7 5.448 6.552 5 6 5 z M 16 11 L 17.962891 11 C 18.312891 11 18.631453 11.178562 18.814453 11.476562 L 20.851562 14.78125 C 20.949563 14.93925 21 15.120641 21 15.306641 L 21 17 L 20.648438 17 C 20.084437 15.822 18.891 15 17.5 15 C 16.961 15 16.456 15.133562 16 15.351562 L 16 11 z M 6.5 17 C 7.327 17 8 17.673 8 18.5 C 8 19.327 7.327 20 6.5 20 C 5.673 20 5 19.327 5 18.5 C 5 17.673 5.673 17 6.5 17 z M 17.5 17 C 18.327 17 19 17.673 19 18.5 C 19 19.327 18.327 20 17.5 20 C 16.673 20 16 19.327 16 18.5 C 16 17.673 16.673 17 17.5 17 z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" version="1.1" width="512px" height="512px">
<g id="surface1">
<path style=" fill:#388E3C;" d="M 29 38 L 7 38 C 5.894531 38 5 37.105469 5 36 L 5 15 C 5 13.894531 5.894531 13 7 13 L 27 13 C 28.105469 13 29 13.894531 29 15 Z "/>
<path style=" fill:#8BC34A;" d="M 43 38 L 29 38 L 29 18 L 39.558594 18 C 40.417969 18 41.183594 18.550781 41.457031 19.367188 L 45 30 L 45 36 C 45 37.105469 44.105469 38 43 38 "/>
<path style=" fill:#37474F;" d="M 41 37.5 C 41 39.984375 38.984375 42 36.5 42 C 34.015625 42 32 39.984375 32 37.5 C 32 35.015625 34.015625 33 36.5 33 C 38.984375 33 41 35.015625 41 37.5 "/>
<path style=" fill:#37474F;" d="M 19 37.5 C 19 39.984375 16.984375 42 14.5 42 C 12.015625 42 10 39.984375 10 37.5 C 10 35.015625 12.015625 33 14.5 33 C 16.984375 33 19 35.015625 19 37.5 "/>
<path style=" fill:#78909C;" d="M 38 37.5 C 38 38.328125 37.328125 39 36.5 39 C 35.671875 39 35 38.328125 35 37.5 C 35 36.671875 35.671875 36 36.5 36 C 37.328125 36 38 36.671875 38 37.5 "/>
<path style=" fill:#78909C;" d="M 16 37.5 C 16 38.328125 15.328125 39 14.5 39 C 13.671875 39 13 38.328125 13 37.5 C 13 36.671875 13.671875 36 14.5 36 C 15.328125 36 16 36.671875 16 37.5 "/>
<path style=" fill:#37474F;" d="M 40 28 L 33 28 C 32.449219 28 32 27.550781 32 27 L 32 21 C 32 20.449219 32.449219 20 33 20 L 38.277344 20 C 38.710938 20 39.09375 20.273438 39.226563 20.683594 L 40.949219 25.847656 C 40.980469 25.949219 41 26.054688 41 26.160156 L 41 27 C 41 27.550781 40.550781 28 40 28 "/>
<path style=" fill:#1B5E20;" d="M 12.5 27 C 18.851563 27 24 21.851563 24 15.5 C 24 14.640625 23.898438 13.804688 23.71875 13 L 7 13 C 5.894531 13 5 13.894531 5 15 L 5 24.207031 C 7.015625 25.941406 9.632813 27 12.5 27 Z "/>
<path style=" fill:#00ACC1;" d="M 22 15.5 C 22 20.746094 17.746094 25 12.5 25 C 7.253906 25 3 20.746094 3 15.5 C 3 10.253906 7.253906 6 12.5 6 C 17.746094 6 22 10.253906 22 15.5 "/>
<path style=" fill:#EEEEEE;" d="M 12.5 8.5 C 8.632813 8.5 5.5 11.632813 5.5 15.5 C 5.5 19.367188 8.632813 22.5 12.5 22.5 C 16.367188 22.5 19.5 19.367188 19.5 15.5 C 19.5 11.632813 16.367188 8.5 12.5 8.5 Z M 12.5 16 C 12.226563 16 12 15.777344 12 15.5 C 12 15.222656 12.226563 15 12.5 15 C 12.773438 15 13 15.222656 13 15.5 C 13 15.777344 12.773438 16 12.5 16 Z "/>
<path style=" " d="M 12 10 L 13 10 L 13 14.5625 L 12 14.5625 Z "/>
<path style=" " d="M 16.34375 18.171875 L 15.167969 19.34375 L 12.398438 16.570313 L 13.570313 15.398438 Z "/>
<path style=" " d="M 12.5 14 C 11.671875 14 11 14.671875 11 15.5 C 11 16.328125 11.671875 17 12.5 17 C 13.328125 17 14 16.328125 14 15.5 C 14 14.671875 13.328125 14 12.5 14 Z M 12.5 16 C 12.226563 16 12 15.777344 12 15.5 C 12 15.222656 12.226563 15 12.5 15 C 12.773438 15 13 15.222656 13 15.5 C 13 15.777344 12.773438 16 12.5 16 Z "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 11 2 C 10.448 2 10 2.448 10 3 L 10 11 L 6.5 11 A 0.5 0.5 0 0 0 6 11.5 A 0.5 0.5 0 0 0 6.1464844 11.853516 A 0.5 0.5 0 0 0 6.1777344 11.882812 L 11.283203 16.697266 L 11.316406 16.728516 A 1 1 0 0 0 12 17 A 1 1 0 0 0 12.683594 16.728516 L 12.697266 16.716797 A 1 1 0 0 0 12.707031 16.705078 L 17.810547 11.892578 A 0.5 0.5 0 0 0 17.839844 11.865234 L 17.847656 11.859375 A 0.5 0.5 0 0 0 17.853516 11.853516 A 0.5 0.5 0 0 0 18 11.5 A 0.5 0.5 0 0 0 17.5 11 L 14 11 L 14 3 C 14 2.448 13.552 2 13 2 L 12 2 L 11 2 z M 3 20 A 1.0001 1.0001 0 1 0 3 22 L 21 22 A 1.0001 1.0001 0 1 0 21 20 L 3 20 z" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 5.75 3 A 1.0001 1.0001 0 0 0 4.8867188 3.4960938 L 3.1367188 6.4960938 L 0.14257812 11.486328 A 1.0001 1.0001 0 1 0 1.8574219 12.513672 L 3 10.609375 L 3 19 C 3 20.093063 3.9069372 21 5 21 L 19 21 C 20.093063 21 21 20.093063 21 19 L 21 10.609375 L 22.142578 12.513672 A 1.0001 1.0001 0 1 0 23.857422 11.486328 L 20.876953 6.5214844 A 1.0001 1.0001 0 0 0 20.863281 6.4960938 L 19.113281 3.4960938 A 1.0001 1.0001 0 0 0 18.25 3 L 5.75 3 z M 6.3242188 5 L 17.675781 5 L 18.841797 7 L 5.1582031 7 L 6.3242188 5 z M 10 9 L 14 9 C 14.552 9 15 9.448 15 10 C 15 10.552 14.552 11 14 11 L 10 11 C 9.448 11 9 10.552 9 10 C 9 9.448 9.448 9 10 9 z" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path d="M 6.9785156 3.5097656 A 1.0001 1.0001 0 0 0 6.4433594 3.6875 C 3.7651149 5.4804019 2 8.5404701 2 12 C 2 17.511334 6.4886661 22 12 22 C 17.511334 22 22 17.511334 22 12 C 22 8.5404701 20.234885 5.4804019 17.556641 3.6875 A 1.0002505 1.0002505 0 1 0 16.443359 5.3496094 C 18.587115 6.7847075 20 9.2195299 20 12 C 20 16.430666 16.430666 20 12 20 C 7.5693339 20 4 16.430666 4 12 C 4 9.2195299 5.4128851 6.7847075 7.5566406 5.3496094 A 1.0001 1.0001 0 0 0 6.9785156 3.5097656 z M 12 4 C 11.448 4 11 4.448 11 5 L 11 11 L 8.7675781 11 C 8.3145781 11 8.08525 11.548141 8.40625 11.869141 L 11.210938 14.673828 C 11.646937 15.109828 12.353063 15.109828 12.789062 14.673828 L 15.59375 11.869141 C 15.91475 11.548141 15.685422 11 15.232422 11 L 13 11 L 13 5 C 13 4.448 12.552 4 12 4 z"/>
</svg>

After

Width:  |  Height:  |  Size: 907 B

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path d="M 12 2 A 1 1 0 0 0 11.289062 2.296875 L 1.203125 11.097656 A 0.5 0.5 0 0 0 1 11.5 A 0.5 0.5 0 0 0 1.5 12 L 4 12 L 4 20 C 4 20.552 4.448 21 5 21 L 8 21 C 8.552 21 9 20.552 9 20 L 9 14 L 15 14 L 15 20 C 15 20.552 15.448 21 16 21 L 19 21 C 19.552 21 20 20.552 20 20 L 20 12 L 22.5 12 A 0.5 0.5 0 0 0 23 11.5 A 0.5 0.5 0 0 0 22.796875 11.097656 L 19 7.7851562 L 19 5 C 19 4.448 18.552 4 18 4 C 17.448 4 17 4.448 17 5 L 17 6.0390625 L 12.716797 2.3027344 A 1 1 0 0 0 12.710938 2.296875 A 1 1 0 0 0 12 2 z"/>
</svg>

After

Width:  |  Height:  |  Size: 635 B

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path d="M 6.9785156 3.5097656 A 1.0001 1.0001 0 0 0 6.4433594 3.6875 C 3.7651149 5.4804019 2 8.5404701 2 12 C 2 17.511334 6.4886661 22 12 22 C 17.511334 22 22 17.511334 22 12 C 22 8.5404701 20.234885 5.4804019 17.556641 3.6875 A 1.0002505 1.0002505 0 1 0 16.443359 5.3496094 C 18.587115 6.7847075 20 9.2195299 20 12 C 20 16.430666 16.430666 20 12 20 C 7.5693339 20 4 16.430666 4 12 C 4 9.2195299 5.4128851 6.7847075 7.5566406 5.3496094 A 1.0001 1.0001 0 0 0 6.9785156 3.5097656 z M 12 4 C 11.7145 4 11.428937 4.1081719 11.210938 4.3261719 L 8.40625 7.1308594 C 8.08525 7.4518594 8.3145781 8 8.7675781 8 L 11 8 L 11 14 C 11 14.552 11.448 15 12 15 C 12.552 15 13 14.552 13 14 L 13 8 L 15.232422 8 C 15.685422 8 15.91475 7.4518594 15.59375 7.1308594 L 12.789062 4.3261719 C 12.571063 4.1081719 12.2855 4 12 4 z"/>
</svg>

After

Width:  |  Height:  |  Size: 935 B

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 3.5 2 C 3.372 2 3.2444844 2.0494844 3.1464844 2.1464844 C 2.9514844 2.3414844 2.9514844 2.6585156 3.1464844 2.8535156 L 5.09375 4.8007812 C 3.1950225 6.6199194 2 9.1685121 2 12 C 2 17.511334 6.4886661 22 12 22 C 17.511334 22 22 17.511334 22 12 C 22 6.864114 18.106486 2.6175896 13.109375 2.0644531 A 1.0001 1.0001 0 0 0 13.009766 2.0585938 A 1.0001 1.0001 0 0 0 12.890625 4.0527344 C 16.891514 4.4955979 20 7.871886 20 12 C 20 16.430666 16.430666 20 12 20 C 7.5693339 20 4 16.430666 4 12 C 4 9.7105359 4.967513 7.6643975 6.5039062 6.2109375 L 8.1464844 7.8535156 C 8.3414844 8.0485156 8.6585156 8.0485156 8.8535156 7.8535156 C 8.9515156 7.7565156 9 7.628 9 7.5 L 9 3 A 1 1 0 0 0 8 2 L 3.5 2 z" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,4 @@
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="512px" height="512px">
<path style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal" d="M 12 2 A 1 1 0 0 0 11.292969 2.2949219 L 6.1601562 7.1347656 A 0.5 0.5 0 0 0 6.1484375 7.1445312 L 6.1464844 7.1464844 A 0.5 0.5 0 0 0 6 7.5 A 0.5 0.5 0 0 0 6.5 8 L 10 8 L 10 16 C 10 16.552 10.448 17 11 17 L 12 17 L 13 17 C 13.552 17 14 16.552 14 16 L 14 8 L 17.5 8 A 0.5 0.5 0 0 0 18 7.5 A 0.5 0.5 0 0 0 17.853516 7.1464844 L 17.822266 7.1171875 L 12.716797 2.3027344 A 1 1 0 0 0 12.683594 2.2714844 A 1 1 0 0 0 12 2 z M 3 20 A 1.0001 1.0001 0 1 0 3 22 L 21 22 A 1.0001 1.0001 0 1 0 21 20 L 3 20 z" font-weight="400" font-family="sans-serif" white-space="normal" overflow="visible"/>
</svg>

After

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"/></svg>

Before

Width:  |  Height:  |  Size: 306 B

View File

@ -20,6 +20,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
}
} }

View File

@ -1,8 +1,24 @@
package it.integry.honeywellscannerlibrary; package it.integry.honeywellscannerlibrary;
import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.honeywell.aidc.AidcManager; import com.honeywell.aidc.AidcManager;
import com.honeywell.aidc.BarcodeFailureEvent;
import com.honeywell.aidc.BarcodeReadEvent;
import com.honeywell.aidc.BarcodeReader;
import com.honeywell.aidc.InvalidScannerNameException;
import com.honeywell.aidc.ScannerUnavailableException;
import com.honeywell.aidc.UnsupportedPropertyException;
import java.util.HashMap;
import java.util.Map;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException; import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
import it.integry.plugins.barcode_base_library.extension.RunnableArgs; import it.integry.plugins.barcode_base_library.extension.RunnableArgs;
@ -11,51 +27,156 @@ import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class HoneyWellBarcodeReader implements BarcodeReaderInterface { public class HoneyWellBarcodeReader implements BarcodeReaderInterface {
private Context mContext; private final AppCompatActivity mContext;
private AidcManager manager;
private BarcodeReader barcodeReader;
private boolean canGoOn = false; private static RunnableArgs<BarcodeScanDTO> mOnScanSuccessfull;
private static RunnableArgs<Exception> mOnScanFailed;
public HoneyWellBarcodeReader(Context context) { private static final String TAG = HoneyWellBarcodeReader.class.getName();
public HoneyWellBarcodeReader(final AppCompatActivity context) {
this.mContext = context; this.mContext = context;
AidcManager.create(context, new AidcManager.CreatedCallback() {
@Override
public void onCreated(AidcManager aidcManager) {
canGoOn = true;
}
});
while(!canGoOn) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} }
@Override @Override
public boolean isRightAdapter() { public boolean isRightAdapter() {
return false; String model = Build.MODEL;
if(model.equalsIgnoreCase("EDA50")) {
return true;
} else return false;
} }
@Override @Override
public void init() throws BarcodeAdapterNotFoundException { public void init(final Runnable onDeviceReady) throws BarcodeAdapterNotFoundException {
if(isRightAdapter()) {
AidcManager.create(mContext, new AidcManager.CreatedCallback() {
@Override
public void onCreated(AidcManager aidcManager) {
manager = aidcManager;
try{
barcodeReader = manager.createBarcodeReader();
registerListenersInternal();
}
catch (InvalidScannerNameException e){
Toast.makeText(mContext, "Invalid Scanner Name Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
catch (Exception e){
Toast.makeText(mContext, "Exception: " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
onDeviceReady.run();
}
});
} else {
throw new BarcodeAdapterNotFoundException(getAdapterName());
}
} }
@Override @Override
public void deinit() { public void deinit() {
if (barcodeReader != null) {
// close BarcodeReader to clean up resources.
barcodeReader.close();
barcodeReader = null;
}
if (manager != null) {
// close AidcManager to disconnect from the scanner service.
// once closed, the object can no longer be used.
manager.close();
}
} }
@Override @Override
public void register(RunnableArgs<BarcodeScanDTO> onScanSuccessfull, RunnableArgs<Exception> onScanFailed) { public void register(RunnableArgs<BarcodeScanDTO> onScanSuccessfull, RunnableArgs<Exception> onScanFailed) {
mOnScanSuccessfull = onScanSuccessfull;
mOnScanFailed = onScanFailed;
} }
@Override @Override
public String getAdapterName() { public String getAdapterName() {
return null; return "Honeywell";
}
private void registerListenersInternal() {
// register bar code event listener
barcodeReader.addBarcodeListener(new BarcodeReader.BarcodeListener() {
@Override
public void onBarcodeEvent(BarcodeReadEvent barcodeReadEvent) {
dispatchEvent(barcodeReadEvent);
}
@Override
public void onFailureEvent(BarcodeFailureEvent barcodeFailureEvent) {
}
});
// set the trigger mode to client control
try {
barcodeReader.setProperty(BarcodeReader.PROPERTY_TRIGGER_CONTROL_MODE,
BarcodeReader.TRIGGER_CONTROL_MODE_CLIENT_CONTROL);
} catch (UnsupportedPropertyException e) {
Toast.makeText(mContext, "Failed to apply properties", Toast.LENGTH_SHORT).show();
}
Map<String, Object> properties = new HashMap<>();
// Set Symbologies On/Off
properties.put(BarcodeReader.PROPERTY_EAN_8_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_EAN_13_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_CODE_39_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_CODE_128_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_GS1_128_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_UPC_A_ENABLE, true);
properties.put(BarcodeReader.PROPERTY_EAN_8_CHECK_DIGIT_TRANSMIT_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_EAN_13_CHECK_DIGIT_TRANSMIT_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_UPC_A_CHECK_DIGIT_TRANSMIT_ENABLED, true);
properties.put(BarcodeReader.PROPERTY_TRIGGER_CONTROL_MODE, BarcodeReader.TRIGGER_CONTROL_MODE_AUTO_CONTROL);
// Apply the settings
barcodeReader.setProperties(properties);
try {
barcodeReader.claim();
} catch (ScannerUnavailableException e) {
e.printStackTrace();
}
}
private void dispatchEvent(BarcodeReadEvent barcodeReadEvent)
{
mContext.runOnUiThread(() -> {
BarcodeScanDTO barcodeScanDTO = new BarcodeScanDTO()
.setByteValue(barcodeReadEvent.getBarcodeData().getBytes())
.setStringValue(barcodeReadEvent.getBarcodeData())
.setType(HoneywellBarcodeTypeMapper.map(barcodeReadEvent.getCodeId()))
.setName(HoneywellBarcodeTypeMapper.map(barcodeReadEvent.getCodeId()).toString());
mOnScanSuccessfull.run(barcodeScanDTO);
});
} }
} }

View File

@ -0,0 +1,35 @@
package it.integry.honeywellscannerlibrary;
import android.util.Log;
import it.integry.plugins.barcode_base_library.model.BarcodeType;
public class HoneywellBarcodeTypeMapper {
public static BarcodeType map(String inputType) {
switch (inputType) {
case "h":
return BarcodeType.CODE11;
case "j":
return BarcodeType.CODE128;
case "b":
return BarcodeType.CODE39;
case "d":
return BarcodeType.EAN13;
case "D":
return BarcodeType.EAN8;
case "c":
return BarcodeType.UPCA;
case "E":
return BarcodeType.UPCE;
default:
Log.d("SCAN TYPE", inputType);
return null;
}
}
}

View File

@ -5,6 +5,8 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import device.common.DecodeResult; import device.common.DecodeResult;
@ -18,7 +20,7 @@ import it.integry.plugins.barcode_base_library.model.BarcodeType;
public class PointMobileBarcodeReader implements BarcodeReaderInterface { public class PointMobileBarcodeReader implements BarcodeReaderInterface {
private Context mContext; private AppCompatActivity mContext;
private static ScanManager mScanManager; private static ScanManager mScanManager;
private static DecodeResult mDecodeResult; private static DecodeResult mDecodeResult;
@ -27,7 +29,7 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface {
private static String TAG = PointMobileBarcodeReader.class.getName(); private static String TAG = PointMobileBarcodeReader.class.getName();
public PointMobileBarcodeReader(Context context) { public PointMobileBarcodeReader(AppCompatActivity context) {
this.mContext = context; this.mContext = context;
mScanManager = new ScanManager(); mScanManager = new ScanManager();
@ -45,11 +47,13 @@ public class PointMobileBarcodeReader implements BarcodeReaderInterface {
} }
@Override @Override
public void init() throws BarcodeAdapterNotFoundException { public void init(Runnable onDeviceReady) throws BarcodeAdapterNotFoundException {
if(isRightAdapter()){ if(isRightAdapter()){
try{ try{
mScanManager.aDecodeSetTerminator(ScanConst.Terminator.DCD_TERMINATOR_NONE); mScanManager.aDecodeSetTerminator(ScanConst.Terminator.DCD_TERMINATOR_NONE);
mScanManager.aDecodeSetResultType(ScanConst.ResultType.DCD_RESULT_USERMSG); mScanManager.aDecodeSetResultType(ScanConst.ResultType.DCD_RESULT_USERMSG);
onDeviceReady.run();
} catch (Exception ex) { } catch (Exception ex) {
throw new BarcodeAdapterNotFoundException(getAdapterName()); throw new BarcodeAdapterNotFoundException(getAdapterName());
} }

View File

@ -6,6 +6,8 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.os.Build; import android.os.Build;
import androidx.appcompat.app.AppCompatActivity;
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException; import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
import it.integry.plugins.barcode_base_library.extension.RunnableArgs; import it.integry.plugins.barcode_base_library.extension.RunnableArgs;
import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface; import it.integry.plugins.barcode_base_library.interfaces.BarcodeReaderInterface;
@ -13,7 +15,7 @@ import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
public class ZebraBarcodeReader implements BarcodeReaderInterface { public class ZebraBarcodeReader implements BarcodeReaderInterface {
private final Context mContext; private final AppCompatActivity mContext;
private static RunnableArgs<BarcodeScanDTO> mOnScanSuccessfull; private static RunnableArgs<BarcodeScanDTO> mOnScanSuccessfull;
private static RunnableArgs<Exception> mOnScanFailed; private static RunnableArgs<Exception> mOnScanFailed;
@ -21,7 +23,7 @@ public class ZebraBarcodeReader implements BarcodeReaderInterface {
private static final String TAG = ZebraBarcodeReader.class.getName(); private static final String TAG = ZebraBarcodeReader.class.getName();
private static final String INTENT_FILTER_STRING = "it.integry.scan_filter"; private static final String INTENT_FILTER_STRING = "it.integry.scan_filter";
public ZebraBarcodeReader(Context context) { public ZebraBarcodeReader(AppCompatActivity context) {
this.mContext = context; this.mContext = context;
} }
@ -34,12 +36,14 @@ public class ZebraBarcodeReader implements BarcodeReaderInterface {
} }
@Override @Override
public void init() throws BarcodeAdapterNotFoundException { public void init(Runnable onDeviceReady) throws BarcodeAdapterNotFoundException {
if(isRightAdapter()) { if(isRightAdapter()) {
IntentFilter filter = new IntentFilter(); IntentFilter filter = new IntentFilter();
filter.addCategory(Intent.CATEGORY_DEFAULT); filter.addCategory(Intent.CATEGORY_DEFAULT);
filter.addAction(INTENT_FILTER_STRING); filter.addAction(INTENT_FILTER_STRING);
mContext.registerReceiver(myBroadcastReceiver, filter); mContext.registerReceiver(myBroadcastReceiver, filter);
onDeviceReady.run();
} else { } else {
throw new BarcodeAdapterNotFoundException(getAdapterName()); throw new BarcodeAdapterNotFoundException(getAdapterName());
} }