Implementato picking e home nel menu laterale.

Modificate le stampanti delle gestioni.
Creato layout con shortcut in HomePage.
This commit is contained in:
Giuseppe Scorrano 2019-01-15 17:47:26 +01:00
parent d8171f3f74
commit 7814dff1eb
26 changed files with 610 additions and 351 deletions

View File

@ -23,6 +23,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.fragment.app.FragmentTransaction;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment;
@ -35,6 +36,7 @@ import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.main.MainFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
@ -72,7 +74,7 @@ public class MainActivity extends AppCompatActivity
mBinding.navView.setNavigationItemSelectedListener(this);
mBinding.appBarMain.mainSearch.setVisibility(View.GONE);
changeContentFragment(MainFragment.newInstance());
popToMain();
init();
}
@ -92,9 +94,16 @@ public class MainActivity extends AppCompatActivity
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
} else {
getSupportFragmentManager().popBackStack();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
@ -132,9 +141,12 @@ public class MainActivity extends AppCompatActivity
} else if (id == R.id.nav_rettifica_giacenze) {
fragment = RettificaGiacenzeFragment.newInstance();
this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_versamento_merce) {
fragment = VersamentoMerceFragment.newInstance();
this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_free_picking) {
fragment = PickingLiberoFragment.newInstance();
this.adaptViewToFragment(fragment);
}
else if(id == R.id.nav_settings){
@ -147,7 +159,7 @@ public class MainActivity extends AppCompatActivity
startLoginActivity();
}
changeContentFragment(fragment);
changeContentFragment(fragment, true);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
@ -159,7 +171,7 @@ public class MainActivity extends AppCompatActivity
adaptViewToFragment(mainFragment);
changeContentFragment(mainFragment);
changeContentFragment(mainFragment, false);
}
private void adaptViewToFragment(Fragment fragment){
@ -173,7 +185,7 @@ public class MainActivity extends AppCompatActivity
if(fragment instanceof ITitledFragment) {
getSupportActionBar().setTitle(((ITitledFragment) fragment).getTitle(this));
((ITitledFragment) fragment).onCreateActionBar(getSupportActionBar(), this);
} else {
getSupportActionBar().setTitle(R.string.app_name);
}
@ -199,11 +211,16 @@ public class MainActivity extends AppCompatActivity
}
}
private void changeContentFragment(Fragment fragment){
private void changeContentFragment(Fragment fragment, boolean addToBackStack){
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
FragmentTransaction ft = fragmentManager
.beginTransaction()
.replace(R.id.frame_container, fragment);
if(addToBackStack) ft.addToBackStack(fragment.getTag());
ft.commit();
}
}

View File

@ -19,12 +19,9 @@ public class ExpandableLayoutBinders {
view.setOnExpansionUpdateListener(null);
}
ExpandableLayout.OnExpansionUpdateListener watcher = new ExpandableLayout.OnExpansionUpdateListener() {
@Override
public void onExpansionUpdate(float expansionFraction, int state) {
ExpandableLayout.OnExpansionUpdateListener watcher = (expansionFraction, state) -> {
if(view.isExpanded() == bindableBoolean.get()) return;
bindableBoolean.set(state == 1);
}
};
view.setTag(R.id.bound_observable, new Pair<>(bindableBoolean, watcher));

View File

@ -2,12 +2,14 @@ package it.integry.integrywmsnative.core.interfaces;
import android.content.Context;
import androidx.appcompat.app.ActionBar;
/**
* Created by GiuseppeS on 07/03/2018.
*/
public interface ITitledFragment {
String getTitle(Context context);
void onCreateActionBar(ActionBar actionBar, Context context);
}

View File

@ -4,6 +4,8 @@ package it.integry.integrywmsnative.gest.accettazione;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -69,9 +71,12 @@ public class MainAccettazioneFragment extends Fragment implements SearchView.OnQ
return fragment;
}
@Override
public String getTitle(Context context){
return context.getText(R.string.accettazione_title_fragment).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.accettazione_title_fragment).toString());
}
@Override

View File

@ -571,7 +571,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
return;
}
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {

View File

@ -3,6 +3,8 @@ package it.integry.integrywmsnative.gest.main;
import android.content.Context;
import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
@ -95,9 +97,10 @@ public class MainFragment extends Fragment implements ITitledFragment {
}
@Override
public String getTitle(Context context) {
return context.getString(R.string.app_name);
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.app_name).toString());
}
@OnClick(R.id.fast_button_accettazione)
@ -110,4 +113,19 @@ public class MainFragment extends Fragment implements ITitledFragment {
((MainActivity) getActivity()).setItem(R.id.nav_spedizione);
}
@OnClick(R.id.fast_button_rettifica_giacenze)
public void onClickRettificaGiacenze(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_rettifica_giacenze);
}
@OnClick(R.id.fast_button_versamento)
public void onClickVersamento(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_versamento_merce);
}
@OnClick(R.id.fast_button_picking_libero)
public void onClickPickingLibero(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_free_picking);
}
}

View File

@ -27,13 +27,13 @@ public class PickingLiberoActivity extends AppCompatActivity {
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_libero);
mHelper = new PickingLiberoHelper(this);
/*
mViewModel = new PickingLiberoViewModel();
mViewModel.init(this, mBindings, mHelper);
mViewModel.init(this, mBindings, mHelper, getSupportActionBar());
mBindings.setViewmodel(mViewModel);
setSupportActionBar(this.mBindings.toolbar);
setSupportActionBar(this.mBindings.layout.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
@ -42,11 +42,12 @@ public class PickingLiberoActivity extends AppCompatActivity {
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView);
mBindings.layout.waterfallToolbar.setNestedScrollView(mBindings.layout.scrollView);
*/
}
public void setTitle(String title) {
mBindings.toolbarTitle.setText(title);
mBindings.layout.toolbarTitle.setText(title);
}
@Override

View File

@ -0,0 +1,83 @@
package it.integry.integrywmsnative.gest.picking_libero;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel;
/**
* A simple {@link Fragment} subclass.
*/
public class PickingLiberoFragment extends Fragment implements ITitledFragment {
private FragmentPickingLiberoBinding mBindings;
private PickingLiberoHelper mHelper;
private PickingLiberoViewModel mViewModel;
private ActionBar mAppCompatActionBar;
private int barcodeScannerIstanceID = -1;
public PickingLiberoFragment() {
// Required empty public constructor
}
public static PickingLiberoFragment newInstance() {
PickingLiberoFragment fragment = new PickingLiberoFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreateActionBar(ActionBar actionBar, Context context) {
mAppCompatActionBar = actionBar;
mAppCompatActionBar.setTitle(context.getText(R.string.free_picking_title_fragment).toString());
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_picking_libero, container, false);
mHelper = new PickingLiberoHelper(getActivity());
mViewModel = new PickingLiberoViewModel();
mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar);
mBindings.setViewmodel(mViewModel);
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(mViewModel.onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView);
return mBindings.getRoot();
}
}

View File

@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.SpannableString;
import android.view.View;
@ -15,6 +16,7 @@ import java.util.Iterator;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.core.content.ContextCompat;
import androidx.databinding.Observable;
import androidx.databinding.ObservableArrayList;
@ -45,6 +47,7 @@ import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoActivity;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
@ -67,16 +70,19 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
private BottomSheetBehavior mBottomSheetBehavior;
private PickingLiberoActivity mContext;
private ActivityPickingLiberoBinding mBinding;
private Activity mContext;
private FragmentPickingLiberoBinding mBinding;
private PickingLiberoHelper mHelper;
private ActionBar mAppCompatActionBar;
private PickingLiberoListAdapter mAdapter;
public void init(PickingLiberoActivity context, ActivityPickingLiberoBinding binding, PickingLiberoHelper helper) {
public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, ActionBar appCompatActionBar) {
mContext = context;
mBinding = binding;
mHelper = helper;
mAppCompatActionBar = appCompatActionBar;
initObservable();
@ -101,14 +107,14 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
if(mtbColt.get() != null) {
initAdapter();
mContext.setTitle(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo()));
mAppCompatActionBar.setTitle(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo()));
initObservableMtbColr();
}
else {
destroyAdapter();
mContext.setTitle(mContext.getText(R.string.free_picking).toString());
mAppCompatActionBar.setTitle(mContext.getText(R.string.free_picking).toString());
}
thereIsAnOpenedUL.set(mtbColt.get() != null);

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze;
import android.content.Context;
import android.content.res.ColorStateList;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -99,15 +101,13 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
super.onDetach();
}
@Override
public String getTitle(Context context) {
return context.getResources().getString(R.string.rettifica_giacenze_fragment_title);
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
}
public void setUIToForn() {
mBinding.rettificaGiacenzeFornCheckBox.setChecked(true);
mBinding.rettificaGiacenzeFornLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left));

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative.gest.settings;
import android.content.Context;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -29,8 +31,8 @@ public class MainSettingsFragment extends Fragment implements ITitledFragment {
}
@Override
public String getTitle(Context context){
return context.getText(R.string.settings_category).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.settings_category).toString());
}
@Override

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.settings;
import android.content.Context;
import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.preference.CheckBoxPreference;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
@ -43,10 +45,9 @@ public class SettingsPreferenceFragment extends PreferenceFragmentCompat impleme
}
@Override
public String getTitle(Context context) {
return context.getText(R.string.settings_category).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.settings_category).toString());
}

View File

@ -3,6 +3,8 @@ package it.integry.integrywmsnative.gest.vendita;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -81,8 +83,8 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
}
@Override
public String getTitle(Context context){
return context.getText(R.string.vendita_title_fragment).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.vendita_title_fragment).toString());
}
@Override
@ -129,10 +131,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.action_free_picking) {
Intent myIntent = new Intent(getActivity(), PickingLiberoActivity.class);
startActivity(myIntent);
}
// if(item.getItemId() == R.id.action_free_picking) {
// Intent myIntent = new Intent(getActivity(), PickingLiberoActivity.class);
// startActivity(myIntent);
// }
return true;

View File

@ -745,7 +745,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> {
if(shouldPrint) {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative.gest.versamento_merce;
import android.content.Context;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -83,7 +85,7 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
}
@Override
public String getTitle(Context context) {
return context.getResources().getString(R.string.versamento_merce_fragment_title);
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.versamento_merce_fragment_title).toString());
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

View File

@ -19,281 +19,9 @@
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
android:id="@+id/waterfall_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:gravity="center_horizontal"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Picking Libero"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_gravity="center" />
</androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="8dp"
android:focusableInTouchMode="true"
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/picking_libero_main_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="92dp"
android:paddingStart="2dp"
android:paddingEnd="2dp">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_top"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.35"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsntAnOpenedUL}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsAnOpenULWithoutRows}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_2"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/fab_add"
android:onClick="@{() -> viewmodel.createNewLU()}"
android:visibility="@{viewmodel.mtbColt == null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/colorPrimary"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_check_white_24dp"
android:onClick="@{() -> viewmodel.closeLU()}"
android:visibility="@{viewmodel.mtbColt != null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/mainGreen"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<View
android:visibility="gone"
android:id="@+id/bg"
android:background="#99000000"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/bottom_sheet_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:orientation="vertical"
android:padding="16dp"
android:layout_gravity="bottom"
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="8dp"
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Descrizione articolo"
android:textColor="#444"
android:textSize="18dp"
android:maxLines="1"
android:ellipsize="end"
android:paddingRight="8dp"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="ABF52IL"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/bottom_sheet_actions_quantity"
android:layout_width="wrap_content"
android:gravity="right"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="15dp"
tools:text="250 PZ"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/bottom_sheet_actions_delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="@android:color/white"
android:scaleX="1.5"
android:scaleY="1.5"
android:src="@drawable/ic_delete_24dp"
android:tint="@color/red_600" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancella"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<include
android:id="@+id/layout"
layout="@layout/fragment_picking_libero" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -168,7 +168,7 @@
android:textStyle="bold"/>
<LinearLayout
android:padding="15dp"
android:layout_margin="15dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@ -180,52 +180,134 @@
android:weightSum="1">
<LinearLayout
android:id="@+id/fast_button_accettazione"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/fast_button_accettazione"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:scaleX="1.5"
android:scaleY="1.5"
android:src="@drawable/ic_download_black_24dp"
android:tint="@color/mainGreen" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Accettazione"/>
android:text="Accettazione"
android:gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
android:id="@+id/fast_button_spedizione"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/fast_button_spedizione"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:scaleX="1.5"
android:scaleY="1.5"
android:src="@drawable/ic_upload_black_24dp"
android:tint="@color/mainOrange" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spedizione"/>
android:text="Spedizione"
android:gravity="center_horizontal"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="16dp"
android:weightSum="0.9">
<LinearLayout
android:id="@+id/fast_button_rettifica_giacenze"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.3"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_empty_box_96"
android:tint="@color/brown_500" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rettifica Giacenze"
android:gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
android:id="@+id/fast_button_versamento"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.3"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_load_shelf_96"
android:tint="@color/teal_500" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Versamento Merce"/>
</LinearLayout>
<LinearLayout
android:id="@+id/fast_button_picking_libero"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.3"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:background="@android:color/white"
android:src="@drawable/ic_barcode_96"
android:tint="@color/colorPrimary" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/free_picking"
android:gravity="center_horizontal"/>
</LinearLayout>

View File

@ -0,0 +1,301 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel" />
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
android:id="@+id/waterfall_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:gravity="center_horizontal"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Picking Libero"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_gravity="center" />
</androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="8dp"
android:focusableInTouchMode="true"
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/picking_libero_main_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="92dp"
android:paddingStart="2dp"
android:paddingEnd="2dp">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_top"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.35"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsntAnOpenedUL}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsAnOpenULWithoutRows}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_2"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/fab_add"
android:onClick="@{() -> viewmodel.createNewLU()}"
android:visibility="@{viewmodel.mtbColt == null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/colorPrimary"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_check_white_24dp"
android:onClick="@{() -> viewmodel.closeLU()}"
android:visibility="@{viewmodel.mtbColt != null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/mainGreen"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<View
android:visibility="gone"
android:id="@+id/bg"
android:background="#99000000"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/bottom_sheet_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:orientation="vertical"
android:padding="16dp"
android:layout_gravity="bottom"
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="8dp"
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Descrizione articolo"
android:textColor="#444"
android:textSize="18dp"
android:maxLines="1"
android:ellipsize="end"
android:paddingRight="8dp"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="ABF52IL"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/bottom_sheet_actions_quantity"
android:layout_width="wrap_content"
android:gravity="right"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="15dp"
tools:text="250 PZ"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/bottom_sheet_actions_delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="@android:color/white"
android:scaleX="1.5"
android:scaleY="1.5"
android:src="@drawable/ic_delete_24dp"
android:tint="@color/red_600" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancella"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>

View File

@ -8,20 +8,24 @@
android:title="Home" />
<item
android:id="@+id/nav_accettazione"
android:icon="@drawable/ic_menu_camera"
android:icon="@drawable/ic_download_black_24dp"
android:title="Accettazione" />
<item
android:id="@+id/nav_spedizione"
android:icon="@drawable/ic_menu_gallery"
android:icon="@drawable/ic_upload_black_24dp"
android:title="Spedizione" />
<item
android:id="@+id/nav_rettifica_giacenze"
android:icon="@drawable/ic_menu_slideshow"
android:icon="@drawable/ic_empty_box_96"
android:title="Rettifica Giacenze" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:id="@+id/nav_versamento_merce"
android:icon="@drawable/ic_load_shelf_96"
android:title="Versamento Merce" />
<item
android:id="@+id/nav_free_picking"
android:icon="@drawable/ic_barcode_96"
android:title="@string/free_picking" />
</group>
<!--
<item android:title="Communicate">

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_free_picking"
android:orderInCategory="100"
android:title="@string/free_picking"
app:showAsAction="never" />
<!--<item-->
<!--android:id="@+id/action_free_picking"-->
<!--android:orderInCategory="100"-->
<!--android:title="@string/free_picking"-->
<!--app:showAsAction="never" />-->
</menu>

View File

@ -176,5 +176,6 @@
<string name="free_picking">Picking libero</string>
<string name="free_picking_suggestion_1">Per iniziare clicca sul + in basso a destra</string>
<string name="free_picking_suggestion_2">Scansiona un articolo per iniziare</string>
<string name="free_picking_title_fragment">Picking libero</string>
</resources>

View File

@ -29,6 +29,7 @@
<color name="blue_700">#1976D2</color>
<color name="brown_500">#795548</color>
<color name="green_500_with_alpha">#884CAF50</color>
<color name="green_500">#4CAF50</color>
@ -57,6 +58,8 @@
<color name="red_700">#D32F2F</color>
<color name="teal_500">#009688</color>
<color name="yellow_600">#FDD835</color>
</resources>

View File

@ -25,6 +25,7 @@
<string name="vendita_title_fragment">Check out</string>
<string name="rettifica_giacenze_fragment_title">Inventory</string>
<string name="versamento_merce_fragment_title">Items placement</string>
<string name="free_picking_title_fragment">Free picking</string>
<string name="error">Error</string>
<string name="ops">Ops</string>
<string name="warning">Warning</string>
@ -178,4 +179,7 @@
<string name="free_picking_suggestion_1">Please press + button to start with picking</string>
<string name="free_picking_suggestion_2">Scan an item to start</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>