From 8908ada7402305d20b368607c69712a06ccbe487 Mon Sep 17 00:00:00 2001 From: Gius95 Date: Mon, 7 Jan 2019 11:04:33 +0100 Subject: [PATCH] Completata implementazione dei permessi. Implementata visibility tramite BindableBoolean. --- .idea/caches/build_file_checksums.ser | Bin 728 -> 728 bytes app/build.gradle | 3 +- app/src/main/AndroidManifest.xml | 14 +- .../integrywmsnative/MainActivity.java | 4 - .../integrywmsnative/SplashActivity.java | 43 ++++- .../integrywmsnative/core/di/Converters.java | 22 +++ .../core/expansion/RunnableArgsss.java | 7 + .../core/utility/PermissionsHelper.java | 89 ++++----- .../picking_libero/PickingLiberoActivity.java | 40 ++++ .../core/PickingLiberoHelper.java | 13 ++ .../viewmodel/PickingLiberoViewModel.java | 175 ++++++++++++++++++ .../gest/vendita/MainVenditaFragment.java | 25 +++ .../VenditaOrdineInevasoViewModel.java | 2 - .../main/res/drawable/ic_check_white_24dp.xml | 9 + .../res/layout/activity_picking_libero.xml | 148 +++++++++++++++ app/src/main/res/menu/fragment_vendita.xml | 9 + app/src/main/res/values-it/strings.xml | 3 + app/src/main/res/values/strings.xml | 3 + 18 files changed, 546 insertions(+), 63 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/expansion/RunnableArgsss.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java create mode 100644 app/src/main/res/drawable/ic_check_white_24dp.xml create mode 100644 app/src/main/res/layout/activity_picking_libero.xml create mode 100644 app/src/main/res/menu/fragment_vendita.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d179c9f3c54a2d2cbe6aac50e26facc9550adff0..423a57aa927c81249816f52b3cc9fc40dfd502a9 100644 GIT binary patch delta 36 ucmV+<0NelA1=t0Um;@)E?mCg2wGdignL>lyyQSuBZmUB=RVA}w0e1m6t`HIc delta 36 ucmV+<0NelA1=t0Um;@6L0#T8iwGj3ZuL - - + android:windowSoftInputMode="adjustPan"> - + android:resource="@xml/provider_paths" /> + + \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index b8fd7208..e23493ee 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -13,7 +13,6 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.SearchView; import androidx.appcompat.widget.Toolbar; -import android.os.StrictMode; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -24,13 +23,11 @@ import android.widget.TextView; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; -import it.integry.integrywmsnative.core.exception.ExceptionsHandler; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.update.UpdatesManager; -import it.integry.integrywmsnative.core.utility.PermissionsHelper; import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.databinding.ActivityMainBinding; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment; @@ -41,7 +38,6 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFrag import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment; import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment; -import it.integry.integrywmsnative.view.dialogs.exception.DialogException; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { diff --git a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java index 4e27e4c4..8077d93b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/SplashActivity.java @@ -7,10 +7,15 @@ import android.os.Bundle; import android.text.SpannableString; import android.widget.TextView; +import java.util.ArrayList; +import java.util.List; + import androidx.appcompat.app.AppCompatActivity; import butterknife.BindView; import butterknife.ButterKnife; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; +import it.integry.integrywmsnative.core.expansion.RunnableArgss; +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.gest.login.LoginActivity; @@ -21,6 +26,8 @@ public class SplashActivity extends AppCompatActivity { @BindView(R.id.app_version_textview) TextView appVersionTextView; + private RunnableArgsss> onRequestPermissionResult; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -30,8 +37,14 @@ public class SplashActivity extends AppCompatActivity { initAppVersion(); + initPermissions(this::init); + + + } + + private void initPermissions(Runnable onComplete) { PermissionsHelper.askPermissions(this, () -> { - init(); + onComplete.run(); }, permanentlyDenied -> { if(permanentlyDenied) { DialogSimpleMessageHelper.makeErrorDialog(this, @@ -39,14 +52,9 @@ public class SplashActivity extends AppCompatActivity { this.finish(); }).show(); } else { - DialogSimpleMessageHelper.makeErrorDialog(this, - new SpannableString(getText(R.string.permissions_denied)), null, () -> { - this.finish(); - }).show(); + initPermissions(onComplete); } }); - - } @@ -72,7 +80,7 @@ public class SplashActivity extends AppCompatActivity { SettingsManager.reloadDBVariables(onComplete, ex -> { DialogSimpleMessageHelper.makeErrorDialog(this, - new SpannableString(ex.getMessage()), null, null).show(); + new SpannableString(ex.getMessage()), null, this::finish).show(); } ); } @@ -80,6 +88,25 @@ public class SplashActivity extends AppCompatActivity { + public void setOnRequestPermissionsResult(RunnableArgsss> onRequestPermissionResult) { + this.onRequestPermissionResult = onRequestPermissionResult; + } + + + @Override + public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { + if(this.onRequestPermissionResult != null) { + List grantResultsList = new ArrayList<>(); + for(int i = 0; i < grantResults.length; i++) { + grantResultsList.add(grantResults[i]); + } + + this.onRequestPermissionResult.run(requestCode, permissions, grantResultsList); + } + } + + + private void startLoginActivity(){ diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java b/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java index c272b95c..04cc12dc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java @@ -11,6 +11,7 @@ import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; @@ -18,6 +19,7 @@ import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Locale; +import androidx.databinding.Observable; import it.integry.integrywmsnative.R; public class Converters { @@ -175,4 +177,24 @@ public class Converters { public static void bindFloatPercetageOnGuideline(View view, final float percentage) { ((Guideline)view).setGuidelinePercent(percentage); } + + + + + @BindingAdapter("app:visibility") + public static void bindCheckbox(LinearLayout view, final BindableBoolean bindableBoolean) { + if (view.getTag(R.id.bound_observable) != bindableBoolean) { + view.setTag(R.id.bound_observable, bindableBoolean); + //view.setOnCheckedChangeListener((compoundButton, b) -> bindableBoolean.set(b)); + } + bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE); + } + }); + + view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE); + } + } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/RunnableArgsss.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/RunnableArgsss.java new file mode 100644 index 00000000..e746f1ab --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/RunnableArgsss.java @@ -0,0 +1,7 @@ +package it.integry.integrywmsnative.core.expansion; + +public interface RunnableArgsss { + + void run(S data1, T data2, V data3); +} + diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/PermissionsHelper.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/PermissionsHelper.java index 09cebce1..0f66db4e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/PermissionsHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/PermissionsHelper.java @@ -1,27 +1,30 @@ package it.integry.integrywmsnative.core.utility; import android.Manifest; +import android.content.pm.PackageManager; import android.os.Build; +import android.widget.Toast; -import com.emreeran.permissionlivedata.PermissionLiveData; -import com.emreeran.permissionlivedata.Status; +import com.annimon.stream.Stream; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import it.integry.integrywmsnative.SplashActivity; import it.integry.integrywmsnative.core.expansion.RunnableArgs; public class PermissionsHelper { - public static void askPermissions(AppCompatActivity activity, Runnable onPermissionsConfirmed, RunnableArgs onPermissionsDenied) { + public static void askPermissions(SplashActivity activity, Runnable onPermissionsConfirmed, RunnableArgs onPermissionsDenied) { List permissionsToAsk = new ArrayList<>(); permissionsToAsk.add(Manifest.permission.READ_EXTERNAL_STORAGE); permissionsToAsk.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); - permissionsToAsk.add(Manifest.permission.INTERNET); - permissionsToAsk.add(Manifest.permission.ACCESS_WIFI_STATE); + //permissionsToAsk.add(Manifest.permission.INTERNET); + //permissionsToAsk.add(Manifest.permission.ACCESS_WIFI_STATE); if(Build.VERSION.SDK_INT >= 23) { @@ -31,50 +34,50 @@ public class PermissionsHelper { String[] permissionArray = new String[permissionsToAsk.size()]; permissionsToAsk.toArray(permissionArray); - PermissionLiveData permissionLiveData = PermissionLiveData.create( - activity, permissionArray); - AtomicInteger permissionStatusCounter = new AtomicInteger(); - AtomicInteger permissionGrantedCounter = new AtomicInteger(); - AtomicInteger permissionPendingCounter = new AtomicInteger(); - AtomicInteger permissionDeniedCounter = new AtomicInteger(); - AtomicInteger permissionPermDeniedCounter = new AtomicInteger(); - Runnable checkPermissionIfDone = () -> { - if(permissionStatusCounter.get() == permissionArray.length){ - if(permissionGrantedCounter.get() == permissionStatusCounter.get()) { - onPermissionsConfirmed.run(); - } else if(permissionPendingCounter.get() > 0) { - onPermissionsDenied.run(false); - } else if(permissionPermDeniedCounter.get() > 0) { - onPermissionsDenied.run(true); - } else { - onPermissionsDenied.run(false); + activity.setOnRequestPermissionsResult((requestCode, permissions, grantResults) -> { + switch (requestCode) { + case 1: { + + boolean allGranted = Stream.of(grantResults).allMatch(x -> x == PackageManager.PERMISSION_GRANTED); + + // If request is cancelled, the result arrays are empty. + if (grantResults.size() > 0 && allGranted) { + + onPermissionsConfirmed.run(); + + } else { + + boolean anyPermDeny = shouldShowRequestPermissionRationale( activity, permissions ); + + onPermissionsDenied.run(anyPermDeny); + + + } + return; } - } - }; - permissionLiveData.observe(activity, permission -> { - - permissionStatusCounter.getAndIncrement(); - - if (permission.getStatus() == Status.RECEIVED) { - if (permission.getGranted()) { - permissionGrantedCounter.getAndIncrement(); - checkPermissionIfDone.run(); - } else if (permission.getShouldShowRequestPermissionRationale()) { - permissionPermDeniedCounter.getAndIncrement(); - checkPermissionIfDone.run(); - } else { - permissionDeniedCounter.getAndIncrement(); - checkPermissionIfDone.run(); - } - } else if (permission.getStatus() == Status.PENDING) { - permissionPendingCounter.getAndIncrement(); - checkPermissionIfDone.run(); + // other 'case' lines to check for other + // permissions this app might request } }); + + + + ActivityCompat.requestPermissions(activity, permissionArray,1); + + } + + private static boolean shouldShowRequestPermissionRationale(AppCompatActivity activity, String[] permissions) { + boolean anyDeny = false; + + for(int i = 0; i < permissions.length && !anyDeny; i++) { + if(!ActivityCompat.shouldShowRequestPermissionRationale(activity, permissions[i])) anyDeny = true; + } + + return anyDeny; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java new file mode 100644 index 00000000..ab677332 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoActivity.java @@ -0,0 +1,40 @@ +package it.integry.integrywmsnative.gest.picking_libero; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.databinding.DataBindingUtil; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding; +import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; +import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel; + +import android.os.Bundle; + +public class PickingLiberoActivity extends AppCompatActivity { + + private ActivityPickingLiberoBinding mBindings; + + private PickingLiberoHelper mHelper; + private PickingLiberoViewModel mViewModel; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_libero); + + mHelper = new PickingLiberoHelper(this); + + mViewModel = new PickingLiberoViewModel(); + mViewModel.init(this, mBindings, mHelper); + + mBindings.setViewmodel(mViewModel); + + setSupportActionBar(this.mBindings.toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + @Override + public boolean onSupportNavigateUp() { + onBackPressed(); + return true; + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java new file mode 100644 index 00000000..1d0cc315 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java @@ -0,0 +1,13 @@ +package it.integry.integrywmsnative.gest.picking_libero.core; + +import android.content.Context; + +public class PickingLiberoHelper { + + private final Context mContext; + + public PickingLiberoHelper(Context context) { + mContext = context; + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java new file mode 100644 index 00000000..1e6f9100 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java @@ -0,0 +1,175 @@ +package it.integry.integrywmsnative.gest.picking_libero.viewmodel; + +import android.app.Activity; +import android.app.ProgressDialog; + +import java.util.Date; + +import androidx.databinding.Observable; +import androidx.databinding.ObservableArrayList; +import androidx.databinding.ObservableField; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; +import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.di.BindableBoolean; +import it.integry.integrywmsnative.core.model.CommonModelConsts; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.utility.UtilityExceptions; +import it.integry.integrywmsnative.core.utility.UtilityProgress; +import it.integry.integrywmsnative.core.utility.UtilityString; +import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding; +import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; +import it.integry.integrywmsnative.ui.StatusBarAlert; + +public class PickingLiberoViewModel { + + public ObservableField mtbColt = new ObservableField<>(); + + public BindableBoolean thereIsAnOpenedUL = new BindableBoolean(); + public BindableBoolean thereIsntAnOpenedUL = new BindableBoolean(); + public BindableBoolean thereIsAnyRowInUL = new BindableBoolean(); + public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean(); + + private Activity mContext; + private ActivityPickingLiberoBinding mBinding; + private PickingLiberoHelper mHelper; + + public void init(Activity context, ActivityPickingLiberoBinding binding, PickingLiberoHelper helper) { + mContext = context; + mBinding = binding; + mHelper = helper; + + initObservable(); + } + + + private void initObservable() { + refreshBindables(); + + mtbColt.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + refreshBindables(); + } + }); + } + + private void refreshBindables() { + thereIsAnOpenedUL.set(mtbColt.get() != null); + thereIsntAnOpenedUL.set(!thereIsAnOpenedUL.get()); + + thereIsAnyRowInUL.set(mtbColt.get() != null && + mtbColt.get().getMtbColr() != null && + mtbColt.get().getMtbColr().size() > 0); + + + thereIsAnOpenULWithoutRows.set(mtbColt.get() != null && + (mtbColt.get().getMtbColr() == null || mtbColt.get().getMtbColr().size() == 0)); + } + + public void createNewLU() { + createNewLU(null, null, null); + } + + private void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) { + + ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + MtbColt mtbColt = new MtbColt(); + mtbColt .setGestione(GestioneEnum.VENDITA) + .setSegno(-1) + //.setCodAnag(defaultCodAnagOfUL) + .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + if(customNumCollo != null) { + mtbColt.setNumCollo(customNumCollo); + } + + if(!UtilityString.isNullOrEmpty(customSerCollo)) { + mtbColt.setSerCollo(customSerCollo); + } + + ColliMagazzinoRESTConsumer.saveCollo(mtbColt, savedMtbColt -> { + savedMtbColt.setMtbColr(new ObservableArrayList<>()); + setULToCurrentContext(savedMtbColt); + + progressDialog.dismiss(); + + new StatusBarAlert.Builder(mContext) + .autoHide(true) + .withDuration(2500) + .showProgress(false) + .withText(R.string.data_saved) + .withAlertColor(R.color.mainGreen) + .build(); + + if(onComplete != null) onComplete.run(); + + }, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)); + } + + + private void setULToCurrentContext(MtbColt mtbColt){ + this.mtbColt.set(mtbColt); + } + + + public void closeLU() { + if(thereIsAnOpenedUL.get()) { + final ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mContext); + + if(thereIsAnyRowInUL.get()) { + updateDataFine(progress, null); //() -> distribuisciCollo(progress, () -> printCollo(progress))); + } else { + deleteCollo(progress); + } + + } + } + + private void updateDataFine(ProgressDialog progress, Runnable onComplete) { + + MtbColt cloneMtbColt = (MtbColt) this.mtbColt.get().clone(); + cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); + cloneMtbColt.setOraFinePrep(new Date()); + + + ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback() { + @Override + public void onSuccess(MtbColt value) { + if(onComplete != null) onComplete.run(); + } + + @Override + public void onFailed(Exception ex) { + UtilityExceptions.defaultException(mContext, ex, progress); + } + }); + + } + + private void deleteCollo(ProgressDialog progress) { + + ColliMagazzinoRESTConsumer.deleteCollo(this.mtbColt.get(), () -> { + this.mtbColt.set(null); + + progress.dismiss(); + }, ex -> UtilityExceptions.defaultException(mContext, ex, progress) + ); + } + + /*public boolean thereIsAnOpenedUL() { + return this.mtbColt.get() != null; + } + public boolean thereIsAnyRowInUL() { + return this.mtbColt.get() != null && + this.mtbColt.get().getMtbColr() != null && + this.mtbColt.get().getMtbColr().size() > 0; + } + + public boolean thereIsAnULWithoutRows() { + return thereIsAnOpenedUL() && !thereIsAnyRowInUL(); + } +*/ +} 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 2750abea..f762f7f6 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 @@ -10,6 +10,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import android.text.Html; import android.text.SpannableString; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -34,6 +37,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityToast; import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; +import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoActivity; import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter; import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper; import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzato; @@ -87,6 +91,8 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR if (getArguments() != null) { } + setHasOptionsMenu(true); + init(); } @@ -114,6 +120,25 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR return mBinding.getRoot(); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.fragment_vendita, menu); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + + if(item.getItemId() == R.id.action_free_picking) { + Intent myIntent = new Intent(getActivity(), PickingLiberoActivity.class); + startActivity(myIntent); + } + + return true; + + } + + private void init(){ final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting), diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java index bbb23db0..94ef0d31 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java @@ -260,7 +260,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO public RunnableArgs onScanSuccessfull = data -> { ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mActivity); - progressDialog.show(); BarcodeManager.disable(); @@ -431,7 +430,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO final List pickingList = mPickingList; - List matchPickingObject = Stream.of(pickingList) .filter(x -> Objects.equals(x.getNumCollo(), scannedUL.getNumCollo()) && x.getDataColloS().equals(scannedUL.getDataColloS()) && diff --git a/app/src/main/res/drawable/ic_check_white_24dp.xml b/app/src/main/res/drawable/ic_check_white_24dp.xml new file mode 100644 index 00000000..6541ee3e --- /dev/null +++ b/app/src/main/res/drawable/ic_check_white_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_picking_libero.xml b/app/src/main/res/layout/activity_picking_libero.xml new file mode 100644 index 00000000..f14d7f27 --- /dev/null +++ b/app/src/main/res/layout/activity_picking_libero.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/fragment_vendita.xml b/app/src/main/res/menu/fragment_vendita.xml new file mode 100644 index 00000000..c31f7386 --- /dev/null +++ b/app/src/main/res/menu/fragment_vendita.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 90685803..46e730a1 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -166,5 +166,8 @@ Tutti i permessi sono stati declinati, riapri l\'applicazione per continuare. Download aggiornamento + Picking libero + Per iniziare clicca sul + in basso a destra + Scansiona un articolo per iniziare \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 165ab8ae..d3627c7b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -174,5 +174,8 @@ Please note that all permissions are required. Application will close now. All permissions are required, please reopen the app. Downloading update + Free Picking + Please press + button to start with picking + Scan an item to start