Implementazione del DataCache per gestire lo spostamento dati da un'activity all'altra.

Iniziata implementazione del recover del collo di Vendita.
This commit is contained in:
Giuseppe Scorrano 2019-01-23 16:59:30 +01:00
parent d7915e187f
commit 38f7be5076
17 changed files with 593 additions and 367 deletions

View File

@ -13,21 +13,17 @@ import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.SearchView;
import androidx.appcompat.widget.Toolbar;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
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;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment; import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
@ -207,8 +203,8 @@ public class MainActivity extends AppCompatActivity
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE); mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
} }
if(fragment instanceof IRecyclerFragment) { if(fragment instanceof IScrollableFragment) {
((IRecyclerFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar); ((IScrollableFragment) fragment).setWaterfallToolbar(mBinding.appBarMain.waterfallToolbar);
} }
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) { if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {

View File

@ -8,12 +8,16 @@ import com.orhanobut.logger.Logger;
import io.fabric.sdk.android.Fabric; import io.fabric.sdk.android.Fabric;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.REST.model.DistribuzioneColloDTO;
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.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover; import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.settings.Stash; import it.integry.integrywmsnative.core.settings.Stash;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityResources;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.core.utility.UtilityToast;
@ -85,11 +89,19 @@ public class AppContext {
private void initRecoverColli() { private void initRecoverColli() {
ColliDataRecover.init(mContext); ColliDataRecover.init(mContext);
// if(ColliDataRecover.thereIsAnExistantSession()){ if(ColliDataRecover.thereIsAnExistantSession()){
// MtbColt recoveredMtbColt = ColliDataRecover.getFirstSession(); Integer recoveredMtbColtID = ColliDataRecover.getFirstSessionID();
// MtbColt recoveredMtbColt = ColliDataRecover.getSession(recoveredMtbColtID);
//
// } if(recoveredMtbColt != null && recoveredMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && !UtilityString.isNullOrEmpty(recoveredMtbColt.getFiltroOrdini())) {
ColliMagazzinoRESTConsumer.distribuisciCollo(recoveredMtbColt, DistribuzioneColloDTO.CriterioDistribuzione.UPDATE,
mtbColts -> {
ColliDataRecover.closeSession(recoveredMtbColtID);
},
ex -> UtilityExceptions.defaultException(mContext, ex));
}
}
} }
} }

View File

@ -0,0 +1,43 @@
package it.integry.integrywmsnative.core.data_cache;
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class DataCache {
private static List<DataCacheDTO> dataCacheList = new ArrayList<>();
public static String addItem(Object item) {
String uniqueID = UUID.randomUUID().toString();
DataCacheDTO dataCacheDTO = new DataCacheDTO()
.setItem(item)
.setUUID(uniqueID);
dataCacheList.add(dataCacheDTO);
return uniqueID;
}
public static <T>T retrieveItem(String uuid) {
List<DataCacheDTO> dataCacheTemp = Stream.of(dataCacheList)
.filter(x -> x.getUUID().equals(uuid)).toList();
Object foundDataCache = null;
if(dataCacheTemp != null && dataCacheTemp.size() > 0) {
foundDataCache = dataCacheTemp.get(0).getItem();
dataCacheList.remove(dataCacheTemp.get(0));
}
return (T)foundDataCache;
}
}

View File

@ -0,0 +1,25 @@
package it.integry.integrywmsnative.core.data_cache;
public class DataCacheDTO {
private String UUID;
private Object item;
public String getUUID() {
return UUID;
}
public DataCacheDTO setUUID(String UUID) {
this.UUID = UUID;
return this;
}
public Object getItem() {
return item;
}
public DataCacheDTO setItem(Object item) {
this.item = item;
return this;
}
}

View File

@ -2,9 +2,18 @@ package it.integry.integrywmsnative.core.data_recover;
import android.content.Context; import android.content.Context;
import com.google.android.gms.common.util.IOUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Type;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -19,6 +28,7 @@ public class ColliDataRecover {
private String serCollo; private String serCollo;
private String dataCollo; private String dataCollo;
private String gestioneCollo; private String gestioneCollo;
private String filtro;
public int getNumCollo() { public int getNumCollo() {
return numCollo; return numCollo;
@ -55,6 +65,15 @@ public class ColliDataRecover {
this.gestioneCollo = gestioneCollo; this.gestioneCollo = gestioneCollo;
return this; return this;
} }
public String getFiltro() {
return filtro;
}
public RecoverDTO setFiltro(String filtro) {
this.filtro = filtro;
return this;
}
} }
private static Context mContext; private static Context mContext;
@ -63,36 +82,48 @@ public class ColliDataRecover {
public static void init(Context context) { public static void init(Context context) {
mContext = context; mContext = context;
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
loadLocalFile();
}
} }
public static boolean thereIsAnExistantSession() { public static boolean thereIsAnExistantSession() {
return mtbColtsSessions.size() > 0; return mtbColtsSessions.size() > 0;
} }
public static MtbColt getFirstSession() { public static Integer getFirstSessionID() {
if(thereIsAnExistantSession()){ if(thereIsAnExistantSession()){
RecoverDTO dto = mtbColtsSessions.get(0); return 0;
mtbColtsSessions.remove(dto);
return new MtbColt()
.setNumCollo(dto.getNumCollo())
.setSerCollo(dto.getSerCollo())
.setGestione(dto.getGestioneCollo())
.setDataCollo(dto.getDataCollo());
} else return null; } else return null;
} }
public static MtbColt getSession(Integer sessionID) {
if(sessionID == null) return null;
RecoverDTO dto = mtbColtsSessions.get(sessionID);
return new MtbColt()
.setNumCollo(dto.getNumCollo())
.setSerCollo(dto.getSerCollo())
.setGestione(dto.getGestioneCollo())
.setDataCollo(dto.getDataCollo())
.setFiltroOrdini(dto.getFiltro());
}
public static int startNewSession(MtbColt mtbColtSession) { public static int startNewSession(MtbColt mtbColtSession) {
RecoverDTO recoverDTO = new RecoverDTO() RecoverDTO recoverDTO = new RecoverDTO()
.setDataCollo(mtbColtSession.getDataColloS()) .setDataCollo(mtbColtSession.getDataColloS())
.setNumCollo(mtbColtSession.getNumCollo()) .setNumCollo(mtbColtSession.getNumCollo())
.setSerCollo(mtbColtSession.getSerCollo()) .setSerCollo(mtbColtSession.getSerCollo())
.setGestioneCollo(mtbColtSession.getGestione()); .setGestioneCollo(mtbColtSession.getGestione())
.setFiltro(mtbColtSession.getFiltroOrdini());
mtbColtsSessions.add(recoverDTO); mtbColtsSessions.add(recoverDTO);
updateLocalFile(); updateLocalFile();
@ -105,6 +136,28 @@ public class ColliDataRecover {
} }
private static void loadLocalFile() {
InputStream inputStream;
Gson gson = new Gson();
try {
inputStream = mContext.openFileInput(CommonConst.Files.RECOVER_COLLO_FILE);
byte[] bytes = IOUtils.readInputStreamFully(inputStream);
String jsonString = new String(bytes);
Type listType = new TypeToken<ArrayList<RecoverDTO>>(){}.getType();
mtbColtsSessions = gson.fromJson(jsonString, listType);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
UtilityExceptions.defaultException(mContext, e);
}
}
private static void updateLocalFile() { private static void updateLocalFile() {
FileOutputStream outputStream; FileOutputStream outputStream;
@ -119,7 +172,13 @@ public class ColliDataRecover {
e.printStackTrace(); e.printStackTrace();
UtilityExceptions.defaultException(mContext, e); UtilityExceptions.defaultException(mContext, e);
} }
} }
private static boolean isFilePresent(String fileName) {
String path = mContext.getFilesDir().getAbsolutePath() + "/" + fileName;
File file = new File(path);
return file.exists();
}
} }

View File

@ -2,7 +2,7 @@ package it.integry.integrywmsnative.core.interfaces;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar; import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
public interface IRecyclerFragment { public interface IScrollableFragment {
void setWaterfallToolbar(WaterfallToolbar waterfallToolbar); void setWaterfallToolbar(WaterfallToolbar waterfallToolbar);

View File

@ -5,13 +5,12 @@ import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.appcompat.widget.SearchView;
import android.text.Html; import android.text.Html;
import android.text.SpannableString; import android.text.SpannableString;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -31,6 +30,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.CommonRESTException;
import it.integry.integrywmsnative.core.coollection.Coollection; import it.integry.integrywmsnative.core.coollection.Coollection;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment; import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
@ -39,7 +39,7 @@ import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter; import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback; import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadPickingListCallback; import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadPickingListCallback;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
@ -48,7 +48,7 @@ import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.Accettazione
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar; import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IRecyclerFragment { public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
private static WaterfallToolbar mWaterfallToolbar; private static WaterfallToolbar mWaterfallToolbar;
@ -239,9 +239,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
} }
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged); mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
// mAdapter.setHasStableIds(true);
mBinding.accettazioneMainList.setAdapter(mAdapter); mBinding.accettazioneMainList.setAdapter(mAdapter);
//mRecyclerView.setAdapter(mAdapter);
} }
@OnClick(R.id.accettazione_main_fab) @OnClick(R.id.accettazione_main_fab)
@ -286,8 +284,10 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
null, null,
() -> { () -> {
String cacheItemID = DataCache.addItem(ordini);
Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class); Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
myIntent.putExtra("key", (ArrayList<OrdineAccettazioneDTO>) ordini); //Optional parameters myIntent.putExtra("key", cacheItemID); //Optional parameters
getActivity().startActivity(myIntent); getActivity().startActivity(myIntent);
}).show(); }).show();

View File

@ -14,6 +14,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
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.data_cache.DataCache;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding; import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
@ -41,7 +42,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude; FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings); mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
List<OrdineAccettazioneDTO> orders = (ArrayList<OrdineAccettazioneDTO>)getIntent().getSerializableExtra("key"); List<OrdineAccettazioneDTO> orders = DataCache.retrieveItem(getIntent().getStringExtra("key"));
mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineAccettazioneInevasoViewModel( mAccettazioneOrdineInevasoViewModel = new AccettazioneOnOrdineAccettazioneInevasoViewModel(
this, mArticoliInColloBottomSheetViewModel, orders); this, mArticoliInColloBottomSheetViewModel, orders);

View File

@ -6,6 +6,7 @@ import android.os.Bundle;
import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -23,24 +24,23 @@ import de.hdodenhof.circleimageview.CircleImageView;
import it.integry.integrywmsnative.MainActivity; import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.wifi.WiFiCheckerViewHolder; import it.integry.integrywmsnative.core.wifi.WiFiCheckerViewHolder;
import it.integry.integrywmsnative.databinding.FragmentMainBinding;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
/** /**
* A simple {@link Fragment} subclass. * A simple {@link Fragment} subclass.
* Use the {@link MainFragment#newInstance} factory method to * Use the {@link MainFragment#newInstance} factory method to
* create an instance of this fragment. * create an instance of this fragment.
*/ */
public class MainFragment extends Fragment implements ITitledFragment { public class MainFragment extends Fragment implements ITitledFragment, IScrollableFragment {
private FragmentMainBinding mBindings;
@BindView(R.id.no_connection_top_layout) ExpandableLayout mNoConnectionLayout; private WaterfallToolbar mWaterfallToolbar;
@BindView(R.id.current_user_name) TextView currentUsername;
@BindView(R.id.current_deposito) TextView currentDeposito;
// @BindView(R.id.drawer_logoAzienda) CircleImageView currentLogoAzienda;
private View mView;
public MainFragment() { public MainFragment() {
} }
@ -61,24 +61,26 @@ public class MainFragment extends Fragment implements ITitledFragment {
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
// Inflate the layout for this fragment
mView = inflater.inflate(R.layout.fragment_main, container, false);
ButterKnife.bind(this, mView); mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main, container, false);
ButterKnife.bind(this, mBindings.getRoot());
mWaterfallToolbar.setNestedScrollView(mBindings.fragmentMainScrollview);
init(); init();
return mView; return mBindings.getRoot();
} }
private void init(){ private void init(){
ServerStatusChecker.getIstance().addCallback(value -> { ServerStatusChecker.getIstance().addCallback(value -> {
if(value && mNoConnectionLayout.isExpanded()){ if(value && mBindings.noConnectionTopLayout.isExpanded()){
collapseNoConnectionLayout(); collapseNoConnectionLayout();
} else if(!value && !mNoConnectionLayout.isExpanded()){ } else if(!value && !mBindings.noConnectionTopLayout.isExpanded()){
expandNoConnectionLayout(); expandNoConnectionLayout();
} }
}); });
@ -91,8 +93,8 @@ public class MainFragment extends Fragment implements ITitledFragment {
} }
private void initSessionData() { private void initSessionData() {
currentUsername.setText(SettingsManager.i().user.fullname); mBindings.currentUserName.setText(SettingsManager.i().user.fullname);
currentDeposito.setText(String.format("%s - %s", SettingsManager.i().userSession.depo.getCodMdep(), SettingsManager.i().userSession.depo.getDescrizione())); mBindings.currentDeposito.setText(String.format("Deposito: %s • %s", SettingsManager.i().userSession.depo.getCodMdep(), SettingsManager.i().userSession.depo.getDescrizione()));
if(SettingsManager.iDB().getDatiAzienda() != null && SettingsManager.iDB().getDatiAzienda().isLogoAvailable()) { if(SettingsManager.iDB().getDatiAzienda() != null && SettingsManager.iDB().getDatiAzienda().isLogoAvailable()) {
// currentLogoAzienda.setImageBitmap(SettingsManager.iDB().getDatiAzienda().getLogo()); // currentLogoAzienda.setImageBitmap(SettingsManager.iDB().getDatiAzienda().getLogo());
@ -100,14 +102,20 @@ public class MainFragment extends Fragment implements ITitledFragment {
} }
private void collapseNoConnectionLayout(){ private void collapseNoConnectionLayout(){
if(getActivity() != null) getActivity().runOnUiThread(() -> mNoConnectionLayout.collapse(true)); if(getActivity() != null) getActivity().runOnUiThread(() -> mBindings.noConnectionTopLayout.collapse(true));
} }
private void expandNoConnectionLayout(){ private void expandNoConnectionLayout(){
if(getActivity() != null) getActivity().runOnUiThread(() -> mNoConnectionLayout.expand(true)); if(getActivity() != null) getActivity().runOnUiThread(() -> mBindings.noConnectionTopLayout.expand(true));
} }
private void startRecoverMode() {
mBindings.recoverDataExpandableLayout.expand(true);
}
private void endRecoverMode() {
mBindings.recoverDataExpandableLayout.collapse(true);
}
@Override @Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) { public void onCreateActionBar(AppCompatTextView titleText, Context context) {
@ -139,4 +147,8 @@ public class MainFragment extends Fragment implements ITitledFragment {
((MainActivity) getActivity()).setItem(R.id.nav_free_picking); ((MainActivity) getActivity()).setItem(R.id.nav_free_picking);
} }
@Override
public void setWaterfallToolbar(WaterfallToolbar waterfallToolbar) {
mWaterfallToolbar = waterfallToolbar;
}
} }

View File

@ -4,7 +4,6 @@ import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import android.os.Bundle; import android.os.Bundle;
@ -30,9 +29,10 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.CommonRESTException;
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.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
@ -52,7 +52,7 @@ import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInev
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.plugins.waterfalltoolbar.WaterfallToolbar; import it.integry.plugins.waterfalltoolbar.WaterfallToolbar;
public class MainVenditaFragment extends Fragment implements ITitledFragment, IRecyclerFragment, ISelectAllFragment, IFilterableFragment { public class MainVenditaFragment extends Fragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment {
private static WaterfallToolbar mWaterfallToolbar; private static WaterfallToolbar mWaterfallToolbar;
@ -190,7 +190,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
.forEach(anagOrd -> { .forEach(anagOrd -> {
String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#")); String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3, anagOrd.length()); String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3);
OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO(); OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO();
@ -354,11 +354,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
null, null,
() -> { () -> {
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class); startVenditaActivity(ordini, selectedOrders, mtbColtList);
myIntent.putExtra("keyPickingList", (ArrayList<PickingObjectDTO>) ordini); //Optional parameters
myIntent.putExtra("keyTestateOrdini", (ArrayList<OrdineVenditaGroupedInevasoDTO>)selectedOrders);
myIntent.putExtra("keyColliRegistrati", (ArrayList<MtbColt>)mtbColtList);
getActivity().startActivity(myIntent);
}).show(); }).show();
@ -404,7 +400,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
public void onFilterClick() { public void onFilterClick() {
DialogVenditaFiltroAvanzato.make(getActivity(), mOriginalOrderList, mAppliedFilterViewModel, (filteredOrderList, filter) -> { DialogVenditaFiltroAvanzato.make(getActivity(), mOriginalOrderList, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
mAppliedFilterViewModel = filter; mAppliedFilterViewModel = filter;
if(filteredOrderList != null){ if(filteredOrderList != null){
@ -414,6 +409,25 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
} }
}).show(); }).show();
}
private void startVenditaActivity(List<PickingObjectDTO> ordini, List<OrdineVenditaGroupedInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
String keyPickingList = DataCache.addItem(ordini);
myIntent.putExtra("keyPickingList", keyPickingList);
String keyTestateOrdini = DataCache.addItem(selectedOrders);
myIntent.putExtra("keyTestateOrdini", keyTestateOrdini);
String keyColliRegistrati = DataCache.addItem(mtbColtList);
myIntent.putExtra("keyColliRegistrati", keyColliRegistrati);
getActivity().startActivity(myIntent);
} }
} }

View File

@ -14,6 +14,7 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
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.data_cache.DataCache;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding; import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
@ -44,9 +45,9 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude; FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings); mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
List<PickingObjectDTO> pickingList = (ArrayList<PickingObjectDTO>)getIntent().getSerializableExtra("keyPickingList"); List<PickingObjectDTO> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
List<OrdineVenditaGroupedInevasoDTO> testateOrdini = (ArrayList<OrdineVenditaGroupedInevasoDTO>)getIntent().getSerializableExtra("keyTestateOrdini"); List<OrdineVenditaGroupedInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
List<MtbColt> colliRegistrati = (ArrayList<MtbColt>) getIntent().getSerializableExtra("keyColliRegistrati"); List<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel( mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
this, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati); this, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="16dp" />
<solid android:color="@color/colorPrimaryDark" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="16dp" />
<solid android:color="@color/white" />
</shape>
</clip>
</item>
</layer-list>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="6.5dp" />
<solid android:color="@android:color/white" />
<stroke
android:width="1dp"
android:color="@android:color/darker_gray" />
</shape>
</item>
</layer-list>

View File

@ -52,10 +52,10 @@
android:id="@+id/progressBar2" android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleHorizontal" style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="8dp"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:indeterminate="true" android:indeterminate="true"
android:indeterminateTint="@android:color/white" android:indeterminateDrawable="@drawable/curved_progress_bar"
app:layout_constraintLeft_toRightOf="@+id/guideline_left_progress" app:layout_constraintLeft_toRightOf="@+id/guideline_left_progress"
app:layout_constraintRight_toLeftOf="@+id/guideline_right_progress" app:layout_constraintRight_toLeftOf="@+id/guideline_right_progress"
app:layout_constraintTop_toBottomOf="@id/imageView" /> app:layout_constraintTop_toBottomOf="@id/imageView" />

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
@ -40,345 +41,373 @@
</net.cachapa.expandablelayout.ExpandableLayout> </net.cachapa.expandablelayout.ExpandableLayout>
<RelativeLayout <androidx.core.widget.NestedScrollView
android:id="@+id/fragment_main__scrollview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<LinearLayout
<RelativeLayout android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp" android:orientation="vertical">
android:background="@color/colorPrimary">
<RelativeLayout
<LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:layout_gravity="center_horizontal"
android:gravity="center_horizontal">
<LinearLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:background="@color/colorPrimary"
android:gravity="center_vertical"> android:paddingTop="16dp"
android:paddingBottom="24dp"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_outline_account_circle_48px"
android:tint="@android:color/white"
android:layout_marginEnd="16dp"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<TextView
android:id="@+id/current_user_name" <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@android:color/white" android:gravity="center_vertical"
tools:text="Android Studio" android:orientation="horizontal">
style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard" />
<TextView
android:id="@+id/current_deposito" <androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content" android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginEnd="16dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_outline_account_circle_48px"
android:tint="@android:color/white" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/current_user_name"
style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
tools:text="Android Studio" />
<TextView
android:id="@+id/current_deposito"
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
tools:text="android.studio@android.com" />
</LinearLayout>
</LinearLayout>
<net.cachapa.expandablelayout.ExpandableLayout
android:id="@+id/recover_data_expandable_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="2dp" app:el_duration="400"
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard" app:el_expanded="false">
tools:text="android.studio@android.com" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginEnd="16dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_recover_96"
android:tint="@android:color/white" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Recovering data"
android:textColor="@android:color/white" />
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_marginTop="4dp"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/curved_progress_bar" />
<TextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="Attendi qualche istante" />
</LinearLayout>
</LinearLayout>
</net.cachapa.expandablelayout.ExpandableLayout>
</LinearLayout> </LinearLayout>
</RelativeLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:padding="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/central_guideline_dashboard"
android:layout_width="1dp"
android:layout_height="1dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@id/central_guideline_dashboard"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_accettazione"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_accettazione_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/accettazione_title_fragment"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_rettifica_giacenze"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_rettifica_giacenze_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/rettifica_giacenze_fragment_title"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/fast_button_picking_libero"
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
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_picking_libero_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/free_picking"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout> </LinearLayout>
</LinearLayout>
</RelativeLayout> <LinearLayout
android:layout_width="0dp"
<!--<RelativeLayout-->
<!--android:id="@+id/layout_logo_azienda"-->
<!--android:layout_width="100dp"-->
<!--android:layout_height="100dp"-->
<!--android:background="@drawable/circular_background_alpha_7"-->
<!--android:layout_gravity="center_horizontal"-->
<!--android:gravity="center_horizontal"-->
<!--android:layout_centerHorizontal="true"-->
<!--android:padding="8dp">-->
<!--<RelativeLayout-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent"-->
<!--android:background="@drawable/circular_background">-->
<!--<de.hdodenhof.circleimageview.CircleImageView-->
<!--android:id="@+id/drawer_logoAzienda"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent" />-->
<!--</RelativeLayout>-->
<!--</RelativeLayout>-->
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:padding="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/central_guideline_dashboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<com.google.android.material.card.MaterialCardView
style="@style/Widget.MaterialComponents.CardView"
android:id="@+id/fast_button_accettazione"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/central_guideline_dashboard">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:orientation="vertical"
android:src="@drawable/ic_accettazione_96"/> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/central_guideline_dashboard"
<androidx.appcompat.widget.AppCompatTextView app:layout_constraintTop_toTopOf="parent">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold"
android:text="@string/accettazione_title_fragment"
android:layout_marginTop="16dp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<androidx.cardview.widget.CardView
style="@style/Widget.MaterialComponents.CardView"
android:id="@+id/fast_button_spedizione"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="@id/central_guideline_dashboard"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<LinearLayout <com.google.android.material.card.MaterialCardView
android:orientation="vertical" android:id="@+id/fast_button_spedizione"
android:layout_width="match_parent" style="@style/Widget.MaterialComponents.CardView"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:gravity="center_horizontal" android:layout_height="wrap_content"
android:padding="8dp"> android:layout_margin="8dp"
app:cardBackgroundColor="@android:color/white"
<ImageView app:cardCornerRadius="4dp">
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_spedizione_96"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold"
android:text="@string/vendita_title_fragment"
android:layout_marginTop="16dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:padding="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/central_guideline_dashboard__line2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<com.google.android.material.card.MaterialCardView
style="@style/Widget.MaterialComponents.CardView"
android:id="@+id/fast_button_rettifica_giacenze"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/central_guideline_dashboard__line2">
<LinearLayout <LinearLayout
android:orientation="vertical" 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: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_rettifica_giacenze_96"/> android:src="@drawable/ic_spedizione_96" />
<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:textAllCaps="true" android:layout_marginTop="16dp"
android:textColor="@color/grey_700" android:text="@string/vendita_title_fragment"
android:textStyle="bold" android:textAllCaps="true"
android:text="@string/rettifica_giacenze_fragment_title" android:textColor="@color/grey_700"
android:gravity="center_horizontal" android:textStyle="bold" />
android:layout_marginTop="16dp"/>
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<androidx.cardview.widget.CardView <com.google.android.material.card.MaterialCardView
style="@style/Widget.MaterialComponents.CardView" android:id="@+id/fast_button_versamento"
android:id="@+id/fast_button_versamento" style="@style/Widget.MaterialComponents.CardView"
android:layout_width="0dp" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="8dp" android:layout_margin="8dp"
android:layout_marginRight="8dp" app:cardBackgroundColor="@android:color/white"
app:cardBackgroundColor="@android:color/white" app:cardCornerRadius="4dp">
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="@id/central_guideline_dashboard__line2"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<LinearLayout <LinearLayout
android:orientation="vertical" 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: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_versamento_merce_96" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center_horizontal"
android:text="@string/versamento_merce_fragment_title"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView </LinearLayout>
android:layout_width="wrap_content" </com.google.android.material.card.MaterialCardView>
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold"
android:text="@string/versamento_merce_fragment_title"
android:gravity="center_horizontal"
android:layout_marginTop="16dp"/>
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout </androidx.constraintlayout.widget.ConstraintLayout>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:padding="8dp">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/central_guideline_dashboard__line3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<androidx.cardview.widget.CardView
style="@style/Widget.MaterialComponents.CardView"
android:id="@+id/fast_button_picking_libero"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/central_guideline_dashboard__line3">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:padding="8dp">
<ImageView
android:layout_width="64sp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_picking_libero_96"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="@color/grey_700"
android:textStyle="bold"
android:text="@string/free_picking"
android:gravity="center_horizontal"
android:layout_marginTop="16dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<!----> <!---->
<!--<androidx.cardview.widget.CardView--> <!--<androidx.cardview.widget.CardView-->
<!--app:cardBackgroundColor="@android:color/white"--> <!--app:cardBackgroundColor="@android:color/white"-->
@ -643,3 +672,4 @@
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>
</layout>

View File

@ -21,26 +21,24 @@
<item name="android:fontFamily">@font/open_sans_regular</item> <item name="android:fontFamily">@font/open_sans_regular</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text" parent = "AppTheme.NewMaterial"> <style name="AppTheme.NewMaterial.Text" parent = "AppTheme.NewMaterial">
<item name="android:fontFamily">@font/open_sans_regular</item>
<item name="android:textStyle">normal</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text.ToolbarTitle" parent="AppTheme.NewMaterial.Text"> <style name="AppTheme.NewMaterial.Text.ToolbarTitle" parent="AppTheme.NewMaterial.Text">
<item name="android:textSize">20sp</item>
<item name="android:textColor">#5F6368</item> <item name="android:textColor">#5F6368</item>
<item name="android:textStyle">normal</item>
<item name="android:textSize">20sp</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text.TextBoxDashboard" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> <style name="AppTheme.NewMaterial.Text.TextBoxDashboard" parent="AppTheme.NewMaterial.Text">
<item name="android:textColor">@android:color/white</item> <item name="android:textColor">@android:color/white</item>
<item name="android:textStyle">normal</item> <item name="android:textSize">18sp</item>
<item name="android:textSize">20sp</item>
</style> </style>
<style name="AppTheme.NewMaterial.Text.TextBoxLittleDashboard" parent="TextAppearance.AppCompat.Widget.ActionBar.Title"> <style name="AppTheme.NewMaterial.Text.TextBoxLittleDashboard" parent="AppTheme.NewMaterial.Text">
<item name="android:textColor">@android:color/white</item> <item name="android:textColor">@android:color/white</item>
<item name="android:fontFamily">@font/open_sans_regular</item> <item name="android:textSize">14sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textSize">16sp</item>
</style> </style>
<style name="SplashTheme" parent="AppTheme.NoActionBar"> <style name="SplashTheme" parent="AppTheme.NoActionBar">