diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 2b69220e..b2c24986 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index e40cd866..d6c20654 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 67 - def appVersionName = '1.6.6' + def appVersionCode = 68 + def appVersionName = '1.6.7' signingConfigs { release { @@ -126,8 +126,8 @@ dependencies { implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.1.1' implementation 'com.jakewharton.rxbinding2:rxbinding-design:2.1.1' implementation 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.1.1' - implementation 'com.jakewharton:butterknife:10.0.0' - annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' +// implementation 'com.jakewharton:butterknife:10.0.0' +// annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0' implementation 'br.com.zbra:android-linq:1.1.0' //FAB implementation 'com.github.clans:fab:1.6.4' diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index 7bcacf66..66168cfc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.Intent; import androidx.annotation.IdRes; +import androidx.core.content.ContextCompat; +import androidx.core.content.res.ResourcesCompat; import androidx.databinding.DataBindingUtil; import android.content.IntentFilter; @@ -18,6 +20,7 @@ import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.SearchView; +import android.provider.Settings; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -25,8 +28,14 @@ import android.view.View; import androidx.fragment.app.FragmentTransaction; +import java.util.List; + import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; +import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration; +import it.integry.integrywmsnative.core.class_router.ClassRouter; +import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration; +import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; @@ -307,4 +316,5 @@ public class MainActivity extends AppCompatActivity } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java index f7147bcb..477cd90c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java @@ -5,25 +5,27 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.text.SpannableString; +import android.view.LayoutInflater; import android.widget.TextView; import java.util.ArrayList; import java.util.List; import androidx.appcompat.app.AppCompatActivity; -import butterknife.BindView; -import butterknife.ButterKnife; +import androidx.databinding.DataBindingUtil; + import it.integry.integrywmsnative.core.context.MainContext; import it.integry.integrywmsnative.core.expansion.RunnableArgsss; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.PermissionsHelper; +import it.integry.integrywmsnative.databinding.ActivitySplashBinding; import it.integry.integrywmsnative.gest.login.LoginActivity; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; public class SplashActivity extends AppCompatActivity { - @BindView(R.id.app_version_textview) - TextView appVersionTextView; + + private ActivitySplashBinding mBinding; private MainContext mainContext = new MainContext(this); @@ -32,9 +34,9 @@ public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_splash); - ButterKnife.bind(this); + mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_splash, null, false); + setContentView(mBinding.getRoot()); initAppVersion(); @@ -66,7 +68,7 @@ public class SplashActivity extends AppCompatActivity { if(BuildConfig.DEBUG) debugText += "\n[DEBUG VERSION]"; - appVersionTextView.setText("v" + version + debugText); + mBinding.appVersionTextview.setText("v" + version + debugText); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java index 88a9f01e..8ea19d7e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/BaseCustomConfiguration.java @@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.class_router; import java.util.HashMap; +import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration; import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration; import it.integry.integrywmsnative.core.utility.UtilityHashMap; @@ -9,10 +10,12 @@ public class BaseCustomConfiguration implements ICustomConfiguration { public static class Keys { - public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 0; + public static int MENU_CONFIGURATION = 0; + public static int FLAG_SHOW_COD_FORN_IN_SPEDIZIONE = 1; } protected HashMap configurations = new HashMap() {{ + put(Keys.MENU_CONFIGURATION, new MenuConfiguration()); put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, true); }}; diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java new file mode 100644 index 00000000..9a7ba14a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/BaseMenuConfiguration.java @@ -0,0 +1,86 @@ +package it.integry.integrywmsnative.core.class_router.configs; + +import androidx.annotation.DrawableRes; +import androidx.annotation.IdRes; +import androidx.annotation.StringRes; + +import java.util.ArrayList; +import java.util.List; + +public class BaseMenuConfiguration { + + + protected List groups = new ArrayList<>(); + + public BaseMenuConfiguration addGroup(MenuGroup menuGroup) { + this.groups.add(menuGroup); + return this; + } + + public List getGroups() { + return groups; + } + + + public static class MenuGroup { + @StringRes + private int mGroupText; + + private List mItems = new ArrayList<>(); + + public int getGroupText() { + return mGroupText; + } + + public MenuGroup setGroupText(@StringRes int groupText) { + mGroupText = groupText; + return this; + } + + public List getItems() { + return mItems; + } + + public MenuGroup addItem(MenuItem item) { + this.mItems.add(item); + return this; + } + } + + public static class MenuItem { + @IdRes + private int mID; + @StringRes private int mTitleText; + @DrawableRes + private int mTitleIcon; + + public int getID() { + return mID; + } + + public MenuItem setID(@IdRes int ID) { + this.mID = ID; + return this; + } + + public int getTitleText() { + return mTitleText; + } + + public MenuItem setTitleText(@StringRes int titleText) { + mTitleText = titleText; + return this; + } + + public int getTitleIcon() { + return mTitleIcon; + } + + public MenuItem setTitleIcon(@DrawableRes int titleIcon) { + mTitleIcon = titleIcon; + return this; + } + } + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java new file mode 100644 index 00000000..3b1ae680 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/configs/MenuConfiguration.java @@ -0,0 +1,68 @@ +package it.integry.integrywmsnative.core.class_router.configs; + +import it.integry.integrywmsnative.R; + +public class MenuConfiguration extends BaseMenuConfiguration { + + + + public MenuConfiguration() { + + this + .addGroup( + new MenuGroup() + .setGroupText(R.string.general) + + .addItem(new MenuItem() + .setID(R.id.nav_accettazione) + .setTitleText(R.string.accettazione_title_fragment) + .setTitleIcon(R.drawable.ic_dashboard_accettazione)) + + .addItem(new MenuItem() + .setID(R.id.nav_spedizione) + .setTitleText(R.string.vendita_title_fragment) + .setTitleIcon(R.drawable.ic_dashboard_spedizione)) + + .addItem(new MenuItem() + .setID(R.id.nav_rettifica_giacenze) + .setTitleText(R.string.rettifica_giacenze_fragment_title) + .setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze)) + + .addItem(new MenuItem() + .setID(R.id.nav_versamento_merce) + .setTitleText(R.string.versamento_merce_fragment_title) + .setTitleIcon(R.drawable.ic_dashboard_versamento_merce)) + + .addItem(new MenuItem() + .setID(R.id.nav_free_picking) + .setTitleText(R.string.free_picking) + .setTitleIcon(R.drawable.ic_dashboard_picking_libero)) + + .addItem(new MenuItem() + .setID(R.id.nav_resi_cliente) + .setTitleText(R.string.fragment_ultime_consegne_cliente_title) + .setTitleIcon(R.drawable.ic_latest_delivery)) + ) + .addGroup( + new MenuGroup() + .setGroupText(R.string.production) + + .addItem(new MenuItem() + .setID(R.id.nav_prod_versamento_materiale) + .setTitleText(R.string.prod_versamento_materiale_title_fragment) + .setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)) + + .addItem(new MenuItem() + .setID(R.id.nav_prod_recupero_materiale) + .setTitleText(R.string.prod_recupero_materiale_title_fragment) + .setTitleIcon(R.drawable.ic_dashboard_prod_recupero_materiale)) + ); + + } + + + + + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java index 383c7b7c..286c6632 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/MainAccettazioneFragment.java @@ -25,8 +25,6 @@ import java.util.Date; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; -import butterknife.ButterKnife; -import butterknife.OnClick; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.REST.CommonRESTException; @@ -107,7 +105,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag mBinding.accettazioneMainList.setLayoutManager(new LinearLayoutManager(getActivity())); mBinding.accettazioneMainFab.hide(); - ButterKnife.bind(this, mBinding.getRoot()); + mBinding.accettazioneMainFab.setOnClickListener(v -> { + this.onAccettazioneMainFabClick(); + }); mToolbar.setRecyclerView(mBinding.accettazioneMainList); @@ -245,8 +245,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag mBinding.accettazioneMainList.setAdapter(mAdapter); } - @OnClick(R.id.accettazione_main_fab) - public void onClick(View view) { + public void onAccettazioneMainFabClick() { List selectedOrders = helper.getSelectedOrders(groupedOrdiniInevasi); List barcodes = new ArrayList<>(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java index de79415a..eee1f7ee 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java @@ -8,9 +8,13 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.AppCompatTextView; import androidx.databinding.DataBindingUtil; import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.GridLayoutManager; + +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.GridLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -21,15 +25,16 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.OnClick; -import de.hdodenhof.circleimageview.CircleImageView; import it.integry.integrywmsnative.MainActivity; import it.integry.integrywmsnative.R; 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.class_router.BaseCustomConfiguration; +import it.integry.integrywmsnative.core.class_router.ClassRouter; +import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration; +import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration; +import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration; import it.integry.integrywmsnative.core.data_recover.ColliDataRecover; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; @@ -40,6 +45,8 @@ import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentMainBinding; +import it.integry.integrywmsnative.databinding.FragmentMainMenuGroupLayoutBinding; +import it.integry.integrywmsnative.databinding.FragmentMainMenuItemLayoutBinding; import it.integry.integrywmsnative.ui.ElevatedToolbar; /** @@ -54,6 +61,8 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab private Runnable mOnPreDestroy; private ElevatedToolbar mToolbar; + private LayoutInflater mLayoutInflater; + public MainFragment() { } @@ -73,14 +82,15 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + this.mLayoutInflater = inflater; mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main, container, false); - ButterKnife.bind(this, mBindings.getRoot()); - mToolbar.setNestedScrollView(mBindings.fragmentMainScrollview); init(); + initGestMenu(); + return mBindings.getRoot(); } @@ -192,48 +202,6 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab titleText.setText(context.getText(R.string.app_name).toString()); } - @OnClick(R.id.fast_button_accettazione) - public void onClickAccettazione(View view) { - ((MainActivity) getActivity()).setItem(R.id.nav_accettazione); - } - - @OnClick(R.id.fast_button_spedizione) - public void onClickSpedizione(View view) { - ((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); - } - - @OnClick(R.id.fast_button_resi_clienti) - public void onClickResiClientio(View view) { - ((MainActivity) getActivity()).setItem(R.id.nav_resi_cliente); - } - - - -// @OnClick(R.id.fast_button_prod_versamento_materiale) -// public void onClickProdVersamentoMateriale(View view) { -// ((MainActivity) getActivity()).setItem(R.id.nav_prod_versamento_materiale); -// } -// -// @OnClick(R.id.fast_button_prod_recupero_materiale) -// public void onClickProdRecuperoMateriale(View view) { -// ((MainActivity) getActivity()).setItem(R.id.nav_prod_recupero_materiale); -// } - @Override public void setScrollToolbar(ElevatedToolbar toolbar) { mToolbar = toolbar; @@ -243,4 +211,51 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab public void setOnPreDestroy(Runnable onPreDestroy) { mOnPreDestroy = onPreDestroy; } + + + + + + + + + + + + private void initGestMenu() { + ICustomConfiguration customConfiguration = ClassRouter.getIstance(ClassRouter.PATH.CUSTOM_CONFIGURATION); + + BaseMenuConfiguration menuConfiguration = customConfiguration.getConfig(BaseCustomConfiguration.Keys.MENU_CONFIGURATION); + + List menuGroups = menuConfiguration.getGroups(); + + + + for(MenuConfiguration.MenuGroup menuGroup : menuGroups) { + + + FragmentMainMenuGroupLayoutBinding groupBinding = DataBindingUtil.inflate(mLayoutInflater, R.layout.fragment_main_menu_group_layout, null, false); + + String title = this.getResources().getString(menuGroup.getGroupText()); + groupBinding.generalDashboardGroupTitle.setText(title); + + MenuListAdapter menuListAdapter = new MenuListAdapter(getContext(), menuGroup.getItems()); + + groupBinding.mainList.setLayoutManager(new GridLayoutManager(getContext(), 2)); + groupBinding.mainList.setAdapter(menuListAdapter); + groupBinding.mainList.setNestedScrollingEnabled(false); + + menuListAdapter.setClickListener((view, position) -> { + onMenuClick(menuGroup.getItems().get(position)); + }); + + mBindings.menuContainer.addView(groupBinding.getRoot()); + } + + + } + + private void onMenuClick(MenuConfiguration.MenuItem menuItem) { + ((MainActivity) getActivity()).setItem(menuItem.getID()); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/main/MenuListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/main/MenuListAdapter.java new file mode 100644 index 00000000..aee2ab3a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MenuListAdapter.java @@ -0,0 +1,84 @@ +package it.integry.integrywmsnative.gest.main; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration; + +public class MenuListAdapter extends RecyclerView.Adapter { + + private Context mContext; + + private List mDataset; + private LayoutInflater mInflater; + private ItemClickListener mClickListener; + + // data is passed into the constructor + MenuListAdapter(Context context, List data) { + this.mContext = context; + this.mInflater = LayoutInflater.from(context); + this.mDataset = data; + } + + // inflates the cell layout from xml when needed + @Override + @NonNull + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = mInflater.inflate(R.layout.fragment_main_menu_item_layout, parent, false); + return new ViewHolder(view); + } + + // binds the data to the TextView in each cell + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.mIcon.setImageDrawable(mContext.getResources().getDrawable(mDataset.get(position).getTitleIcon(), null)); + holder.mTitle.setText(mContext.getResources().getString(mDataset.get(position).getTitleText())); + } + + // total number of cells + @Override + public int getItemCount() { + return mDataset.size(); + } + + + // stores and recycles views as they are scrolled off screen + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + private TextView mTitle; + private ImageView mIcon; + + ViewHolder(View itemView) { + super(itemView); + mTitle = itemView.findViewById(R.id.menu_title); + mIcon = itemView.findViewById(R.id.menu_icon); + itemView.setOnClickListener(this); + } + + @Override + public void onClick(View view) { + if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition()); + } + } + + + // allows clicks events to be caught + void setClickListener(ItemClickListener itemClickListener) { + this.mClickListener = itemClickListener; + } + + // parent activity will implement this method to respond to click events + public interface ItemClickListener { + void onItemClick(View view, int position); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java index 8f3fb264..1041401a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java @@ -12,7 +12,6 @@ import android.view.View; import android.view.ViewGroup; import androidx.preference.PreferenceFragmentCompat; -import butterknife.ButterKnife; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.databinding.FragmentMainSettingsBinding; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java index f8384c99..0558da74 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java @@ -23,8 +23,6 @@ import com.annimon.stream.Stream; import java.util.ArrayList; import java.util.List; -import butterknife.ButterKnife; -import butterknife.OnClick; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; @@ -117,7 +115,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS mBinding.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity())); mBinding.venditaMainFab.hide(); - ButterKnife.bind(this, mBinding.getRoot()); + mBinding.venditaMainFab.setOnClickListener(v -> onVenditaMainFabClick()); if(mToolbar != null) mToolbar.setRecyclerView(mBinding.venditaMainList); @@ -312,8 +310,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS }; - @OnClick(R.id.vendita_main_fab) - public void onClick(View view) { + public void onVenditaMainFabClick() { List selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList); List barcodes = new ArrayList<>(); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java index 532ba742..e3af5a78 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/ArticoliInColloBottomSheetHelper.java @@ -9,8 +9,6 @@ import androidx.appcompat.widget.Toolbar; import android.view.View; import android.widget.RelativeLayout; -import butterknife.BindView; -import butterknife.ButterKnife; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding; @@ -21,11 +19,6 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom private AppCompatActivity mActivity; private FragmentArticoliInColloBottomSheetBinding mBinding; - - @BindView(R.id.appbar_bottom_sheet) AppBarLayout appBarLayoutBottomSheet; - @BindView(R.id.toolbar_bottom_sheet) Toolbar toolbarBottomSheet; - - @BindView(R.id.tap_action_layout) RelativeLayout tapActionLayout; private BottomSheetBehavior mBottomSheetBehavior; @@ -33,22 +26,20 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom mActivity = context; mBinding = binding; - ButterKnife.bind(this, mBinding.getRoot()); - mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.getRoot()); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); mBottomSheetBehavior.setBottomSheetCallback(this); - appBarLayoutBottomSheet.setVisibility(View.INVISIBLE); + mBinding.appbarBottomSheet.setVisibility(View.INVISIBLE); - toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp); - toolbarBottomSheet.setNavigationOnClickListener(view -> { + mBinding.toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp); + mBinding.toolbarBottomSheet.setNavigationOnClickListener(view -> { if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED) { mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); } }); - tapActionLayout.setOnClickListener(v -> { + mBinding.tapActionLayout.setOnClickListener(v -> { if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED) { mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); } @@ -91,24 +82,24 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom // mRootView.scrollTo(0, 0); break; case BottomSheetBehavior.STATE_EXPANDED: - appBarLayoutBottomSheet.setClickable(true); - appBarLayoutBottomSheet.setFocusable(true); - tapActionLayout.setClickable(false); - tapActionLayout.setFocusable(false); + mBinding.appbarBottomSheet.setClickable(true); + mBinding.appbarBottomSheet.setFocusable(true); + mBinding.tapActionLayout.setClickable(false); + mBinding.tapActionLayout.setFocusable(false); break; case BottomSheetBehavior.STATE_COLLAPSED: - appBarLayoutBottomSheet.setVisibility(View.INVISIBLE); - appBarLayoutBottomSheet.setClickable(false); - appBarLayoutBottomSheet.setFocusable(false); - tapActionLayout.setClickable(true); - tapActionLayout.setFocusable(true); + mBinding.appbarBottomSheet.setVisibility(View.INVISIBLE); + mBinding.appbarBottomSheet.setClickable(false); + mBinding.appbarBottomSheet.setFocusable(false); + mBinding.tapActionLayout.setClickable(true); + mBinding.tapActionLayout.setFocusable(true); break; case BottomSheetBehavior.STATE_DRAGGING: - appBarLayoutBottomSheet.setVisibility(View.VISIBLE); + mBinding.appbarBottomSheet.setVisibility(View.VISIBLE); // mRootView.scrollTo(0, 0); break; case BottomSheetBehavior.STATE_SETTLING: - appBarLayoutBottomSheet.setVisibility(View.VISIBLE); + mBinding.appbarBottomSheet.setVisibility(View.VISIBLE); // mRootView.scrollTo(0, 0); break; } @@ -128,8 +119,8 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { - appBarLayoutBottomSheet.setAlpha(slideOffset); - tapActionLayout.setAlpha(1-slideOffset); + mBinding.appbarBottomSheet.setAlpha(slideOffset); + mBinding.tapActionLayout.setAlpha(1-slideOffset); } } diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 8298420d..0447f070 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -1,4 +1,5 @@ + - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index cb8f6806..326f011f 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -50,6 +50,7 @@ android:layout_height="wrap_content"> @@ -186,297 +187,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_main_menu_group_layout.xml b/app/src/main/res/layout/fragment_main_menu_group_layout.xml new file mode 100644 index 00000000..acc6f8a2 --- /dev/null +++ b/app/src/main/res/layout/fragment_main_menu_group_layout.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_menu_item_layout.xml b/app/src/main/res/layout/fragment_main_menu_item_layout.xml new file mode 100644 index 00000000..f92c5231 --- /dev/null +++ b/app/src/main/res/layout/fragment_main_menu_item_layout.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java b/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java index 8d2add83..8f1687ab 100644 --- a/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java +++ b/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java @@ -6,7 +6,7 @@ import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfigura public class CustomConfiguration extends BaseCustomConfiguration implements ICustomConfiguration { public CustomConfiguration() { - + configurations.put(Keys.MENU_CONFIGURATION, new MenuConfigurationIME()); } } diff --git a/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationIME.java b/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationIME.java new file mode 100644 index 00000000..29d4173c --- /dev/null +++ b/dynamic_ime/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationIME.java @@ -0,0 +1,47 @@ +package it.integry.wms.dynamic_customization.extensions; + +import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration; + +public class MenuConfigurationIME extends BaseMenuConfiguration { + + public MenuConfigurationIME() { + + this + .addGroup( + new MenuGroup() + .setGroupText(it.integry.integrywmsnative.R.string.general) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_accettazione) + .setTitleText(it.integry.integrywmsnative.R.string.accettazione_title_fragment) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_accettazione)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_spedizione) + .setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_rettifica_giacenze) + .setTitleText(it.integry.integrywmsnative.R.string.rettifica_giacenze_fragment_title) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_rettifica_giacenze)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_versamento_merce) + .setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_versamento_merce)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_free_picking) + .setTitleText(it.integry.integrywmsnative.R.string.free_picking) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_picking_libero)) + +// .addItem(new MenuItem() +// .setID(it.integry.integrywmsnative.R.id.nav_resi_cliente) +// .setTitleText(it.integry.integrywmsnative.R.string.fragment_ultime_consegne_cliente_title) +// .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_latest_delivery)) + ); + + } + +} diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java index 6983cd84..14f39cdf 100644 --- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java +++ b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/CustomConfiguration.java @@ -7,6 +7,7 @@ public class CustomConfiguration extends BaseCustomConfiguration implements ICus public CustomConfiguration() { configurations.put(Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE, false); + configurations.put(Keys.MENU_CONFIGURATION, new MenuConfigurationVG()); } } \ No newline at end of file diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationVG.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationVG.java new file mode 100644 index 00000000..5b2d5213 --- /dev/null +++ b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/MenuConfigurationVG.java @@ -0,0 +1,42 @@ +package it.integry.wms.dynamic_customization.extensions; + +import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration; + +public class MenuConfigurationVG extends BaseMenuConfiguration { + + public MenuConfigurationVG() { + + this + .addGroup( + new MenuGroup() + .setGroupText(it.integry.integrywmsnative.R.string.general) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_accettazione) + .setTitleText(it.integry.integrywmsnative.R.string.accettazione_title_fragment) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_accettazione)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_spedizione) + .setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_rettifica_giacenze) + .setTitleText(it.integry.integrywmsnative.R.string.rettifica_giacenze_fragment_title) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_rettifica_giacenze)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_versamento_merce) + .setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_versamento_merce)) + + .addItem(new MenuItem() + .setID(it.integry.integrywmsnative.R.id.nav_free_picking) + .setTitleText(it.integry.integrywmsnative.R.string.free_picking) + .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_picking_libero)) + ); + + } + +} \ No newline at end of file