From 3a8e475f729e76da8558b0240289b5e4abbdc885 Mon Sep 17 00:00:00 2001 From: Giuseppe Scorrano Date: Sat, 20 Oct 2018 12:38:25 +0200 Subject: [PATCH] Modifiche varie --- .idea/caches/build_file_checksums.ser | Bin 608 -> 608 bytes .idea/misc.xml | 2 +- app/build.gradle | 14 +- .../integrywmsnative/MainActivity.java | 124 ++++++++---------- .../integrywmsnative/MainApplication.java | 7 + .../core/REST/CommonRESTException.java | 10 ++ .../REST/consumers/EntityRESTConsumer.java | 2 +- .../REST/consumers/PrinterRESTConsumer.java | 62 +++++++++ .../consumers/PrinterRESTConsumerService.java | 30 +++++ .../REST/consumers/SystemRESTConsumer.java | 52 +------- .../REST/consumers/_BaseRESTConsumer.java | 35 +++++ .../REST/watcher/ServerStatusChecker.java | 46 +++++-- .../integrywmsnative/core/model/MtbColt.java | 25 ++++ .../core/settings/SharedPrefKeys.java | 8 ++ .../core/utility/UtilityArray.java | 16 +++ .../core/utility/UtilityString.java | 2 +- .../core/wifi/WiFiCheckerViewHolder.java | 8 +- .../accettazione/core/AccettazioneHelper.java | 6 +- ...OrdiniAccettazioneRESTConsumerService.java | 2 +- .../core/AccettazioneOrdineInevasoHelper.java | 33 +++-- .../MainListOrdineAccettazioneAdapter.java | 9 +- .../dto/AccettazioneOrdineInevasoOrderBy.java | 2 +- .../AccettazioneOnOrdineInevasoViewModel.java | 79 ++++++++++- .../gest/login/viewmodel/LoginViewModel.java | 50 +++---- .../gest/main/MainFragment.java | 102 ++++++++++++++ .../gest/settings/MainSettingsFragment.java | 55 ++++++++ .../settings/SettingsPreferenceFragment.java | 99 ++++++++++++++ .../drawable/ic_information_outline_24dp.xml | 9 ++ app/src/main/res/drawable/ic_palette_24dp.xml | 9 ++ .../main/res/drawable/ic_settings_24dp.xml | 9 ++ app/src/main/res/layout/content_main.xml | 103 --------------- app/src/main/res/layout/fragment_main.xml | 112 ++++++++++++++++ .../res/layout/fragment_main_settings.xml | 8 ++ .../main/res/menu/activity_main_drawer.xml | 4 + app/src/main/res/values-it/strings.xml | 8 ++ app/src/main/res/values/strings.xml | 10 ++ app/src/main/res/values/styles.xml | 3 + app/src/main/res/xml/app_preferences.xml | 27 ++++ build.gradle | 5 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 40 files changed, 883 insertions(+), 308 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumerService.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/settings/SharedPrefKeys.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityArray.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/gest/settings/SettingsPreferenceFragment.java create mode 100644 app/src/main/res/drawable/ic_information_outline_24dp.xml create mode 100644 app/src/main/res/drawable/ic_palette_24dp.xml create mode 100644 app/src/main/res/drawable/ic_settings_24dp.xml create mode 100644 app/src/main/res/layout/fragment_main.xml create mode 100644 app/src/main/res/layout/fragment_main_settings.xml create mode 100644 app/src/main/res/xml/app_preferences.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 67f5dc32c2feaa1fc0914f22b9047e8e0eb332a4..9e89a5ce1f3e9830658e3af80bbece41f5c9ad26 100644 GIT binary patch delta 57 zcmV-90LK5|1mFaamjz~xFn^YjoOcj^$|Jwhk%-hmr< delta 57 zcmV-90LK5|1mFaamjz^}*?rTIoOck$N8tAN(9~?Q4k&?>BLR*OEA&MIg diff --git a/.idea/misc.xml b/.idea/misc.xml index ba7052b8..635999df 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -24,7 +24,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index e85949ef..08893a3b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'kotlin-android' android { compileSdkVersion 27 - buildToolsVersion '27.0.3' + buildToolsVersion '28.0.3' defaultConfig { applicationId "it.integry.integrywmsnative" minSdkVersion 21 @@ -22,6 +22,10 @@ android { enabled = true } + compileOptions { + targetCompatibility 1.8 + sourceCompatibility 1.8 + } } dependencies { @@ -32,13 +36,16 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'com.orhanobut:logger:2.2.0' + implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support:support-v4:27.1.1' implementation 'com.android.support:design:27.1.1' - implementation 'com.android.support.constraint:constraint-layout:1.1.2' + implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support:cardview-v7:27.1.1' implementation 'com.android.support:recyclerview-v7:27.1.1' + implementation 'com.android.support:preference-v7:27.1.1' implementation 'com.squareup.retrofit2:retrofit:2.3.0' implementation 'com.squareup.retrofit2:converter-gson:2.0.0' @@ -46,8 +53,6 @@ dependencies { implementation 'org.parceler:parceler-api:1.1.10' annotationProcessor 'org.parceler:parceler:1.1.10' - - //MVVM implementation "android.arch.lifecycle:extensions:1.1.1" annotationProcessor "android.arch.lifecycle:compiler:1.1.1" @@ -61,6 +66,7 @@ dependencies { implementation 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' + implementation 'br.com.zbra:android-linq:1.1.0' //FAB //implementation 'com.getbase:floatingactionbutton:1.10.1' diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java index 90f85f8d..7306520f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java @@ -1,8 +1,6 @@ package it.integry.integrywmsnative; import android.content.Intent; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; @@ -13,32 +11,26 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.Toolbar; -import android.text.SpannableString; -import android.text.style.ForegroundColorSpan; import android.view.Menu; import android.view.MenuItem; import android.view.View; import net.cachapa.expandablelayout.ExpandableLayout; -import org.xml.sax.ErrorHandler; - -import java.util.ArrayList; - import butterknife.BindView; import butterknife.ButterKnife; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; -import it.integry.integrywmsnative.core.exception.ExceptionsHandler; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilitySettings; import it.integry.integrywmsnative.core.wifi.WiFiCheckerViewHolder; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment; import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment; -import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; -import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity; import it.integry.integrywmsnative.gest.login.LoginActivity; +import it.integry.integrywmsnative.gest.main.MainFragment; +import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; +import it.integry.integrywmsnative.gest.settings.SettingsPreferenceFragment; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @@ -47,11 +39,12 @@ public class MainActivity extends AppCompatActivity @BindView(R.id.nav_view) NavigationView mNavigationView; - @BindView(R.id.no_connection_top_layout) - ExpandableLayout mNoConnectionLayout; - private ServerStatusChecker serverStatusChecker; + + + private boolean firstCheckExecution = true; + private boolean mIsOnline = false; @Override protected void onCreate(Bundle savedInstanceState) { @@ -79,7 +72,10 @@ public class MainActivity extends AppCompatActivity mSearchView.setVisibility(View.GONE); + changeContentFragment(MainFragment.newInstance()); + init(); + } } @@ -91,54 +87,6 @@ public class MainActivity extends AppCompatActivity this.finish(); } - private void init(){ - serverStatusChecker = new ServerStatusChecker(); - serverStatusChecker.startMonitoring(new ISingleValueOperationCallback() { - @Override - public void onResult(Boolean value) { - if(value && (mNoConnectionLayout.isExpanded() || firstCheckExecution)){ - - SettingsManager.reloadDBVariables(new ISimpleOperationCallback() { - @Override - public void onSuccess(Object value) { - collapseNoConnectionLayout(); - firstCheckExecution = false; - } - - @Override - public void onFailed(Exception ex) { - //mNoConnectionLayout.expand(true); - if(!mNoConnectionLayout.isExpanded()) expandNoConnectionLayout(); - } - }); - - } else if(!value && !mNoConnectionLayout.isExpanded()){ - expandNoConnectionLayout(); - } - } - }); - - WiFiCheckerViewHolder wiFiCheckerViewHolder = new WiFiCheckerViewHolder(this, R.id.wifi_power); - wiFiCheckerViewHolder.startMonitoring(); - } - - private void collapseNoConnectionLayout(){ - runOnUiThread(new Runnable() { - @Override - public void run() { - mNoConnectionLayout.collapse(true); - } - }); - } - - private void expandNoConnectionLayout(){ - runOnUiThread(new Runnable() { - @Override - public void run() { - mNoConnectionLayout.expand(true); - } - }); - } @Override @@ -196,17 +144,17 @@ public class MainActivity extends AppCompatActivity } + else if(id == R.id.nav_settings){ + fragment = new MainSettingsFragment(); + this.adaptViewToFragment(fragment); + } + else if(id == R.id.nav_logout){ UtilitySettings.logout(); startLoginActivity(); } - if (fragment != null) { - FragmentManager fragmentManager = getSupportFragmentManager(); - fragmentManager.beginTransaction() - .replace(R.id.frame_container, fragment).commit(); - - } + changeContentFragment(fragment); DrawerLayout drawer = findViewById(R.id.drawer_layout); drawer.closeDrawer(GravityCompat.START); @@ -229,4 +177,44 @@ public class MainActivity extends AppCompatActivity getSupportActionBar().setTitle(R.string.app_name); } } + + private void changeContentFragment(Fragment fragment){ + if (fragment != null) { + FragmentManager fragmentManager = getSupportFragmentManager(); + fragmentManager.beginTransaction() + .replace(R.id.frame_container, fragment).commit(); + + } + } + + + + + + + private void init(){ + ServerStatusChecker.getIstance().addCallback(value -> { + if(value && (!mIsOnline || firstCheckExecution)){ + + SettingsManager.reloadDBVariables(new ISimpleOperationCallback() { + @Override + public void onSuccess(Object value) { + mIsOnline = true; + firstCheckExecution = false; + } + + @Override + public void onFailed(Exception ex) { + //mNoConnectionLayout.expand(true); + if(!mIsOnline) mIsOnline = false; + } + }); + + } else if(!value && mIsOnline){ + mIsOnline = false; + } + }); + + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java index 9038a4d8..989d7533 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplication.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplication.java @@ -6,6 +6,10 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.text.SpannableString; +import com.orhanobut.logger.AndroidLogAdapter; +import com.orhanobut.logger.Logger; + +import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.Stash; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; @@ -23,6 +27,9 @@ public class MainApplication extends Application { Stash.init(this); SettingsManager.init(this); + ServerStatusChecker.init(); + + Logger.addLogAdapter(new AndroidLogAdapter()); res = getResources(); Context = this; diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java index 13d27c25..3f527d11 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/CommonRESTException.java @@ -1,7 +1,16 @@ package it.integry.integrywmsnative.core.REST; +import android.util.Log; + import java.net.SocketException; import java.net.SocketTimeoutException; +import java.util.List; + +import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.REST.model.EsitoType; +import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.utility.UtilityString; +import retrofit2.Response; /** * Created by GiuseppeS on 22/03/2018. @@ -9,6 +18,7 @@ import java.net.SocketTimeoutException; public class CommonRESTException { + public static String tryRecognizeThenGetMessage(Exception ex){ if(ex instanceof SocketException){ diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java index 297f6226..76b025f1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/EntityRESTConsumer.java @@ -32,7 +32,7 @@ public class EntityRESTConsumer { Gson gson = new Gson(); //Type fooType = new TypeToken() {}.getType(); String json = gson.toJson(response.body().getEntity()); - callback.onSuccess((T) gson.fromJson(json, clazzType)); + callback.onSuccess(gson.fromJson(json, clazzType)); } else { Log.e("EntityRESTConsumer", response.body().getErrorMessage()); callback.onFailed(new Exception(response.body().getErrorMessage())); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java new file mode 100644 index 00000000..bf819314 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumer.java @@ -0,0 +1,62 @@ +package it.integry.integrywmsnative.core.REST.consumers; + +import android.util.Log; + +import java.util.List; + +import it.integry.integrywmsnative.core.REST.CommonRESTException; +import it.integry.integrywmsnative.core.REST.RESTBuilder; +import it.integry.integrywmsnative.core.REST.model.EsitoType; +import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.utility.UtilityString; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class PrinterRESTConsumer extends _BaseRESTConsumer { + + + public static void getAvailablePrinters(final ISimpleOperationCallback> callback) { + PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class); + printerService.getAvailablePrinters().enqueue(new Callback>>() { + @Override + public void onResponse(Call>> call, Response>> response) { + analyzeAnswer(response, "GetAvailablePrinters", callback); + } + + @Override + public void onFailure(Call>> call, Throwable t) { + + } + }); + } + + public static void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, final ISimpleOperationCallback callback) { + + PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class); + printerService.printCollo( + printerName, + testataColloToPrint.getDataColloS(), + testataColloToPrint.getGestione(), + testataColloToPrint.getSerCollo(), + testataColloToPrint.getNumCollo(), + quantity, + reportName) + + .enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "PrintCollo", callback); + } + + @Override + public void onFailure(Call> call, Throwable t) { + Log.e("PrintCollo", t.toString()); + callback.onFailed(new Exception(t)); + } + }); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumerService.java new file mode 100644 index 00000000..377c4d05 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/PrinterRESTConsumerService.java @@ -0,0 +1,30 @@ +package it.integry.integrywmsnative.core.REST.consumers; + +import java.util.List; + +import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO; +import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import retrofit2.Call; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Query; + +public interface PrinterRESTConsumerService { + + @POST("getAvailablePrinters") + Call>> getAvailablePrinters(); + + + @POST("pkgPrintLabel") + Call> printCollo( + @Query("printerName") String printerName, + @Query("dataCollo") String dataCollo, + @Query("gestione") String gestione, + @Query("serCollo") String serCollo, + @Query("numCollo") int numCollo, + @Query("printQuantity") int printQuantity, + @Query("reportName") String reportName + ); + + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java index 277e9341..d77acbe0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/SystemRESTConsumer.java @@ -13,7 +13,7 @@ import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; -public class SystemRESTConsumer { +public class SystemRESTConsumer extends _BaseRESTConsumer { public static void getAvailableProfiles(final ISimpleOperationCallback> callback){ @@ -21,36 +21,13 @@ public class SystemRESTConsumer { service.getAvailableProfiles(SettingsManager.i().user.username, SettingsManager.i().user.password).enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { - - if(response.isSuccessful()) { - - if(response.body() != null) { - if(response.body().getEsito() == EsitoType.OK) { - callback.onSuccess(response.body().getDto()); - } else { - Log.e("ProfilesAvailable", response.body().getErrorMessage()); - callback.onFailed(new Exception(response.body().getErrorMessage())); - } - } else { - Log.e("ProfilesAvailable", response.message()); - callback.onFailed(new Exception(response.message())); - } - } else { - Log.e("ProfilesAvailable", "Status " + response.code() + ": " + response.message()); - callback.onFailed(new Exception("Status " + response.code() + ": " + response.message())); - } - - + analyzeAnswer(response, "ProfilesAvailable", callback); } @Override public void onFailure(Call>> call, final Throwable t) { - Log.e("ProfilesAvailable", t.toString()); callback.onFailed(new Exception(t)); - - - } }); @@ -67,36 +44,13 @@ public class SystemRESTConsumer { service.getAvailableCodMdeps().enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { - - if(response.isSuccessful()) { - - if(response.body() != null) { - if(response.body().getEsito() == EsitoType.OK) { - callback.onSuccess(response.body().getDto()); - } else { - Log.e("CodMdepsAvailable", response.body().getErrorMessage()); - callback.onFailed(new Exception(response.body().getErrorMessage())); - } - } else { - Log.e("CodMdepsAvailable", response.message()); - callback.onFailed(new Exception(response.message())); - } - } else { - Log.e("CodMdepsAvailable", "Status " + response.code() + ": " + response.message()); - callback.onFailed(new Exception("Status " + response.code() + ": " + response.message())); - } - - + analyzeAnswer(response, "CodMdepsAvailable", callback); } @Override public void onFailure(Call>> call, final Throwable t) { - Log.e("CodMdepsAvailable", t.toString()); callback.onFailed(new Exception(t)); - - - } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java new file mode 100644 index 00000000..048b56b3 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/consumers/_BaseRESTConsumer.java @@ -0,0 +1,35 @@ +package it.integry.integrywmsnative.core.REST.consumers; + +import android.util.Log; + +import it.integry.integrywmsnative.core.REST.model.EsitoType; +import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse; +import it.integry.integrywmsnative.core.utility.UtilityString; +import retrofit2.Response; + +public class _BaseRESTConsumer { + + + public static void analyzeAnswer(Response> response, String logTitle, final ISimpleOperationCallback callback){ + if(response.isSuccessful()) { + if(response.body() != null) { + if(response.body().getEsito() == EsitoType.OK) { + if(!UtilityString.isNullOrEmpty(response.body().getErrorMessage())){ + callback.onFailed(new Exception(response.body().getErrorMessage())); + } else callback.onSuccess(response.body().getDto()); + } else { + Log.e(logTitle, response.body().getErrorMessage()); + callback.onFailed(new Exception(response.body().getErrorMessage())); + } + } else { + Log.e(logTitle, response.message()); + callback.onFailed(new Exception(response.message())); + } + } else { + Log.e(logTitle, "Status " + response.code() + ": " + response.message()); + callback.onFailed(new Exception("Status " + response.code() + ": " + response.message())); + } + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java b/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java index f2192949..d141f2c1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/REST/watcher/ServerStatusChecker.java @@ -2,13 +2,28 @@ package it.integry.integrywmsnative.core.REST.watcher; import android.os.Handler; +import java.util.ArrayList; +import java.util.List; + import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityServer; +import it.integry.integrywmsnative.core.utility.UtilityString; public class ServerStatusChecker { - private ISingleValueOperationCallback mCallback; + private static ServerStatusChecker istance = new ServerStatusChecker(); + + private List> mCallback = new ArrayList<>(); + + private ISingleValueOperationCallback mInternalCallback = new ISingleValueOperationCallback() { + @Override + public void onResult(Boolean value) { + for (ISingleValueOperationCallback callback : mCallback) { + callback.onResult(value); + } + } + }; private boolean shouldExecute = true; private final long MILLIS_DELAY = 5 * 1000; @@ -18,22 +33,35 @@ public class ServerStatusChecker { private Runnable runnableCode = new Runnable() { @Override public void run() { - if(shouldExecute) { - UtilityServer.isHostReachable(SettingsManager.i().server.host, SettingsManager.i().server.port, mCallback); + if(shouldExecute && !UtilityString.isNullOrEmpty(SettingsManager.i().server.host)) { + UtilityServer.isHostReachable(SettingsManager.i().server.host, SettingsManager.i().server.port, mInternalCallback); handler.postDelayed(this, MILLIS_DELAY); } } }; - public void startMonitoring(ISingleValueOperationCallback callback){ - this.mCallback = callback; - shouldExecute = true; + public void addCallback(ISingleValueOperationCallback callback){ + this.mCallback.add(callback); - handler.post(runnableCode); } - public void stopMonitoring(){ - shouldExecute = false; + public void removeCallback(ISingleValueOperationCallback callback){ + this.mCallback.remove(callback); + } + + + public static void init(){ + istance.shouldExecute = true; + + istance.handler.post(istance.runnableCode); + } + + public static void dispose() { + istance.shouldExecute = false; + } + + public static ServerStatusChecker getIstance() { + return istance; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java index 171c5692..e0dd7033 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java @@ -9,6 +9,7 @@ import java.util.Date; import java.util.List; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; +import it.integry.integrywmsnative.core.utility.UtilityDate; /** * Created by GiuseppeS on 06/03/2018. @@ -49,6 +50,30 @@ public class MtbColt extends EntityBase{ private BigDecimal larghezzaCm; private BigDecimal altezzaCm; + public void generaFiltroOrdine() throws Exception { + + if (this.gestione == null) { + throw new Exception("Impossibile creare il filtro dell'ordine se la gestione non è valorizzata"); + } + + if (this.dataOrd == null) { + throw new Exception("Impossibile creare il filtro dell'ordine se la data dell'ordine non è valorizzata"); + } + + if (this.numOrd == null) { + throw new Exception("Impossibile creare il filtro dell'ordine se il numero dell'ordine non è valorizzato"); + } + + + Date dateOrd = UtilityDate.recognizeDate(this.dataOrd); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); + String dateYMD = sdf.format(dateOrd); + + this.filtroOrdini = "" + this.gestione + "" + dateYMD + "" + this.numOrd + ""; + } + + + private ObservableArrayList mtbColr = new ObservableArrayList<>(); public ObservableArrayList getMtbColr() { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SharedPrefKeys.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SharedPrefKeys.java new file mode 100644 index 00000000..c97a8126 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SharedPrefKeys.java @@ -0,0 +1,8 @@ +package it.integry.integrywmsnative.core.settings; + +public final class SharedPrefKeys { + + + public static final String ACCETTAZIONE_PRINTER = "accettazione_printer"; + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityArray.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityArray.java new file mode 100644 index 00000000..2bec88a9 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityArray.java @@ -0,0 +1,16 @@ +package it.integry.integrywmsnative.core.utility; + +import java.lang.reflect.Array; +import java.util.List; + +public class UtilityArray { + + public static T[] listToArray(List inputList, Class c) { + + T[] result = (T[]) Array.newInstance(c, inputList.size()); + result = inputList.toArray(result); + return result; + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java index 3711788d..0032fbbf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityString.java @@ -7,7 +7,7 @@ package it.integry.integrywmsnative.core.utility; public class UtilityString { public static boolean isNullOrEmpty(String stringToCheck){ - return stringToCheck == null || stringToCheck.equalsIgnoreCase(""); + return stringToCheck == null || stringToCheck.trim().length() == 0; } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/wifi/WiFiCheckerViewHolder.java b/app/src/main/java/it/integry/integrywmsnative/core/wifi/WiFiCheckerViewHolder.java index 200dc349..9e258c6a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/wifi/WiFiCheckerViewHolder.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/wifi/WiFiCheckerViewHolder.java @@ -1,6 +1,8 @@ package it.integry.integrywmsnative.core.wifi; import android.app.Activity; +import android.content.Context; +import android.view.View; import android.widget.TextView; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; @@ -11,10 +13,10 @@ public class WiFiCheckerViewHolder implements ISingleValueOperationCallback>>() { + service.listOrdiniInevasi(codMdep).enqueue(new Callback>>() { @Override public void onResponse(Call>> call, Response>> response) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java index 6454d333..0aa7c501 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione/rest/OrdiniAccettazioneRESTConsumerService.java @@ -17,7 +17,7 @@ import retrofit2.http.Query; public interface OrdiniAccettazioneRESTConsumerService { @GET("SM2GetOrdiniAccettazioneInevasi") - Call>> listOrdiniInevasi(); + Call>> listOrdiniInevasi(@Query("codMdep") String codMdep); @GET("WMSGetPickingListAccettazione") Call>> pickingListAccettazione(@Query("codBarreBancale") String codBarreBacale); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java index 3026d5b8..3cd6f72f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/AccettazioneOrdineInevasoHelper.java @@ -1,19 +1,16 @@ package it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.core; import android.content.Context; -import android.content.SyncRequest; import android.databinding.ObservableArrayList; -import android.util.Log; + +import com.orhanobut.logger.Logger; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.List; -import java.util.SortedSet; -import java.util.TreeSet; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.coollection.Coollection; @@ -167,13 +164,11 @@ public class AccettazioneOrdineInevasoHelper { } } - Collections.sort(commessaList, new Comparator() { - public int compare(RaggruppaPerCommessaUtilDTO dto1, RaggruppaPerCommessaUtilDTO dto2) { - if(dto1.ragSocCom == null || dto2.codJcom.equalsIgnoreCase("MAG")) return -1; - if(dto2.ragSocCom == null || dto1.codJcom.equalsIgnoreCase("MAG")) return 1; + Collections.sort(commessaList, (dto1, dto2) -> { + if(dto1.ragSocCom == null || dto2.codJcom.equalsIgnoreCase("MAG")) return -1; + if(dto2.ragSocCom == null || dto1.codJcom.equalsIgnoreCase("MAG")) return 1; - return dto1.ragSocCom.compareToIgnoreCase(dto2.ragSocCom); - } + return dto1.ragSocCom.compareToIgnoreCase(dto2.ragSocCom); }); List> groupedRighe = new ArrayList<>(); @@ -190,11 +185,11 @@ public class AccettazioneOrdineInevasoHelper { } } - Collections.sort(tmpList, new Comparator() { - public int compare(OrdineAccettazioneDTO.Riga obj1, OrdineAccettazioneDTO.Riga obj2) { - return obj1.mtbAart.descrizioneEstesa.compareToIgnoreCase(obj2.mtbAart.descrizioneEstesa); - } - }); + Collections.sort(tmpList, (obj1, obj2) -> obj1.mtbAart.descrizioneEstesa.compareToIgnoreCase(obj2.mtbAart.descrizioneEstesa)); + + for(int i = 0; i < tmpList.size(); i++) { + Logger.d(tmpList.get(i)); + } if(tmpList.size() > 0){ groupedRighe.add(tmpList); @@ -250,7 +245,11 @@ public class AccettazioneOrdineInevasoHelper { for(int i = 0; i < groupedRighe.size(); i++){ AccettazioneOrdineInevasoListViewModel itemModel = new AccettazioneOrdineInevasoListViewModel(); - itemModel.descrizioneGroup = groupedRighe.get(i).get(0).codJcom; + if(groupedRighe.get(i).get(0).codJcom.equalsIgnoreCase("N/A")){ + itemModel.descrizioneGroup = mContext.getString(R.string.warehouse).toUpperCase(); + } else { + itemModel.descrizioneGroup = groupedRighe.get(i).get(0).codJcom; + } if(groupedRighe.get(i).get(0).ragSocCom != null && groupedRighe.get(i).get(0).ragSocCom.trim().length() > 0){ itemModel.descrizioneGroup += " - " + groupedRighe.get(i).get(0).ragSocCom; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java index 9d3c3af3..d8b3f7de 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/core/MainListOrdineAccettazioneAdapter.java @@ -168,12 +168,9 @@ public class MainListOrdineAccettazioneAdapter extends RecyclerView.Adapter
{ + if(mOrdineRowDispatch != null){ + mOrdineRowDispatch.onOrdineRowDispatch(rowItem.originalModel); } }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java index 858fcad8..1681de70 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/dto/AccettazioneOrdineInevasoOrderBy.java @@ -9,7 +9,7 @@ public class AccettazioneOrdineInevasoOrderBy { public static String[] descriptions = new String[] { "Cod articolo fornitore", "Descrizione articolo", - "Ragione sociale commessa" + "Commessa - Articolo" }; public enum Enum { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java index 2c34ba51..c542d2e6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java @@ -4,25 +4,24 @@ import android.app.ProgressDialog; import android.content.DialogInterface; import android.databinding.ObservableArrayList; import android.databinding.ObservableField; -import android.support.v4.content.ContextCompat; -import android.support.v4.content.res.ResourcesCompat; import android.support.v7.app.AlertDialog; import android.support.v7.widget.LinearLayoutManager; import android.text.SpannableString; import android.widget.Toast; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import br.com.zbra.androidlinq.delegate.Selector; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.CommonRESTException; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; +import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.coollection.Coollection; import it.integry.integrywmsnative.core.model.CommonModelConsts; import it.integry.integrywmsnative.core.model.MtbColr; @@ -43,6 +42,8 @@ import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; +import static br.com.zbra.androidlinq.Linq.stream; + public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineRowDispatchCallback { public ObservableField isFabVisible = new ObservableField<>(); @@ -179,7 +180,43 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb .setAnnotazioni(noteString) .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + List codAnags = + stream(mOrders) + .select(c -> c.codAnag) + .distinct() + .toList(); + if(codAnags != null && codAnags.size() == 1){ + mtbColt.setCodAnag(codAnags.get(0)); + } + + List rifOrds = + stream(mOrders) + .select(c -> c.rifOrd) + .distinct() + .toList(); + + if(rifOrds != null && rifOrds.size() == 1){ + mtbColt.setRifOrd(rifOrds.get(0)); + } + + List numDataOrds = + stream(mOrders) + .select(value -> ("" + value.numero) + value.data) + .distinct() + .toList(); + + if(numDataOrds != null && numDataOrds.size() == 1){ + mtbColt.setNumOrd(mOrders.get(0).numero); + mtbColt.setDataOrd(mOrders.get(0).data); + + try { + mtbColt.generaFiltroOrdine(); + } catch (Exception ex) { + DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show(); + return; + } + } ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback() { @@ -187,7 +224,7 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb public void onSuccess(MtbColt value) { isFabVisible.set(false); - value.setMtbColr(new ObservableArrayList()); + value.setMtbColr(new ObservableArrayList<>()); mArticoliInColloBottomSheetViewModel.mtbColt.set(value); @@ -238,9 +275,39 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb @Override public void onColloClosed() { - mArticoliInColloBottomSheetViewModel.mtbColt.set(null); + if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null) { + + final ProgressDialog progress = ProgressDialog.show(mActivity, mActivity.getText(R.string.waiting), + mActivity.getText(R.string.loading) + " ...", true); + + progress.show(); + + PrinterRESTConsumer.printCollo( + "Brother MFC-L2700DW series Printer", + mArticoliInColloBottomSheetViewModel.mtbColt.get(), + 1, "EtichettaBancale", new ISimpleOperationCallback() { + @Override + public void onSuccess(Object value) { + + mArticoliInColloBottomSheetViewModel.mtbColt.set(null); + + isFabVisible.set(true); + + progress.dismiss(); + } + + @Override + public void onFailed(Exception ex) { + progress.dismiss(); + String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex); + + if(errorMessage == null) errorMessage = ex.getMessage(); + DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show(); + } + }); + + } - isFabVisible.set(true); } @Override diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java index df1532cb..f8fb55e6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/login/viewmodel/LoginViewModel.java @@ -106,43 +106,31 @@ public class LoginViewModel { final String host = u.getHost(); final int port = u.getPort(); - UtilityServer.isHostReachable(host, port, new ISingleValueOperationCallback() { - @Override - public void onResult(Boolean value) { + UtilityServer.isHostReachable(host, port, value1 -> { - if(value){ //Is online - loginHelper.doLogin(host, port, new ISimpleOperationCallback() { - @Override - public void onSuccess(final LoginDTO value) { + if(value1){ //Is online + loginHelper.doLogin(host, port, new ISimpleOperationCallback() { + @Override + public void onSuccess(final LoginDTO value1) { - SettingsManager.iDB().setAvailableProfiles(value.availableProfiles); + SettingsManager.iDB().setAvailableProfiles(value1.availableProfiles); - mActivity.runOnUiThread(new Runnable() { - @Override - public void run() { + mActivity.runOnUiThread(() -> onLoginSuccess( + "Benvenuto", + Html.fromHtml("Ciao " + value1.full_name + ", la Integry le augura di svolgere al meglio il suo lavoro"), + host, port, value1.availableProfiles)); - onLoginSuccess( - "Benvenuto", - Html.fromHtml("Ciao " + value.full_name + ", la Integry le augura di svolgere al meglio il suo lavoro"), - host, port, value.availableProfiles); + } + + @Override + public void onFailed(final Exception ex) { + onLoginFailed(new SpannableString(ex.getMessage().toString())); + } + }); - } - }); - - } - - @Override - public void onFailed(final Exception ex) { - onLoginFailed(new SpannableString(ex.getMessage().toString())); - } - }); - - - } else { //Is not online - onLoginFailed(Html.fromHtml(String.format(mActivity.getText(R.string.server_not_reachable).toString(), host, port))); - } - + } else { //Is not online + onLoginFailed(Html.fromHtml(String.format(mActivity.getText(R.string.server_not_reachable).toString(), host, port))); } }); 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 new file mode 100644 index 00000000..a9ca7dde --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/main/MainFragment.java @@ -0,0 +1,102 @@ +package it.integry.integrywmsnative.gest.main; + + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import net.cachapa.expandablelayout.ExpandableLayout; + +import butterknife.BindView; +import butterknife.ButterKnife; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; +import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; +import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.wifi.WiFiCheckerViewHolder; + +/** + * A simple {@link Fragment} subclass. + * Use the {@link MainFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class MainFragment extends Fragment { + + + @BindView(R.id.no_connection_top_layout) ExpandableLayout mNoConnectionLayout; + + private View mView; + + public MainFragment() { + // Required empty public constructor + } + + public static MainFragment newInstance() { + MainFragment fragment = new MainFragment(); + Bundle args = new Bundle(); + fragment.setArguments(args); + return fragment; + } + + @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 + mView = inflater.inflate(R.layout.fragment_main, container, false); + + ButterKnife.bind(this, mView); + + init(); + return mView; + } + + + private void init(){ + ServerStatusChecker.getIstance().addCallback(new ISingleValueOperationCallback() { + @Override + public void onResult(Boolean value) { + if(value && mNoConnectionLayout.isExpanded()){ + + collapseNoConnectionLayout(); + + + } else if(!value && !mNoConnectionLayout.isExpanded()){ + expandNoConnectionLayout(); + } + } + }); + + WiFiCheckerViewHolder wiFiCheckerViewHolder = new WiFiCheckerViewHolder(getActivity(), mView, R.id.wifi_power); + wiFiCheckerViewHolder.startMonitoring(); + } + + private void collapseNoConnectionLayout(){ + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + mNoConnectionLayout.collapse(true); + } + }); + } + + private void expandNoConnectionLayout(){ + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + mNoConnectionLayout.expand(true); + } + }); + } + + + +} 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 new file mode 100644 index 00000000..77758c76 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java @@ -0,0 +1,55 @@ +package it.integry.integrywmsnative.gest.settings; + +import android.content.Context; +import android.databinding.DataBindingUtil; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import butterknife.ButterKnife; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.databinding.FragmentMainSettingsBinding; +import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment; + +public class MainSettingsFragment extends Fragment implements ITitledFragment { + + private FragmentMainSettingsBinding mBinding; + + public MainSettingsFragment() { + // Required empty public constructor + } + + public static MainSettingsFragment newInstance() { + MainSettingsFragment fragment = new MainSettingsFragment(); + Bundle args = new Bundle(); + fragment.setArguments(args); + return fragment; + } + + @Override + public String getTitle(Context context){ + return context.getText(R.string.settings_category).toString(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + //init(); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + + mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_settings, container, false); + + ButterKnife.bind(this, mBinding.getRoot()); + + return mBinding.getRoot(); + + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/SettingsPreferenceFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/SettingsPreferenceFragment.java new file mode 100644 index 00000000..776b7d92 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/SettingsPreferenceFragment.java @@ -0,0 +1,99 @@ +package it.integry.integrywmsnative.gest.settings; + +import android.content.Context; +import android.os.Bundle; +import android.support.v7.preference.CheckBoxPreference; +import android.support.v7.preference.EditTextPreference; +import android.support.v7.preference.ListPreference; +import android.support.v7.preference.PreferenceCategory; +import android.support.v7.preference.PreferenceFragmentCompat; +import android.support.v7.preference.PreferenceScreen; +import android.support.v7.view.ContextThemeWrapper; +import android.util.TypedValue; + +import java.util.List; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; +import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; +import it.integry.integrywmsnative.core.settings.SharedPrefKeys; +import it.integry.integrywmsnative.core.utility.UtilityArray; +import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ITitledFragment; + +import static br.com.zbra.androidlinq.Linq.stream; + +public class SettingsPreferenceFragment extends PreferenceFragmentCompat implements ITitledFragment { + @Override + public void onCreatePreferences(Bundle bundle, String s) { + + PrinterRESTConsumer.getAvailablePrinters(new ISimpleOperationCallback>() { + @Override + public void onSuccess(final List availablePrinters) { + initScreen(availablePrinters); + } + + @Override + public void onFailed(Exception ex) { + + } + }); + + + + } + + + + @Override + public String getTitle(Context context) { + return context.getText(R.string.settings_category).toString(); + } + + + + private void initScreen(List availablePrinters) { + // Load the Preferences from the XML file + Context activityContext = getActivity(); + + PreferenceScreen preferenceScreen = getPreferenceManager().createPreferenceScreen(activityContext); + setPreferenceScreen(preferenceScreen); + + TypedValue themeTypedValue = new TypedValue(); + activityContext.getTheme().resolveAttribute(R.attr.preferenceTheme, themeTypedValue, true); + ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(activityContext, themeTypedValue.resourceId); + + // We instance each Preference using our ContextThemeWrapper object + PreferenceCategory preferenceCategory = new PreferenceCategory(contextThemeWrapper); + preferenceCategory.setTitle("Category test"); + + EditTextPreference editTextPreference = new EditTextPreference(contextThemeWrapper); + editTextPreference.setKey("edittext"); + editTextPreference.setTitle("EditText test"); + + CheckBoxPreference checkBoxPreference = new CheckBoxPreference(contextThemeWrapper); + checkBoxPreference.setTitle("Checkbox test"); + checkBoxPreference.setKey("checkbox"); + checkBoxPreference.setChecked(true); + + availablePrinters.add(0, "Nessuna"); + String[] availablePritersArray = UtilityArray.listToArray(availablePrinters, String.class); + + ListPreference listPreferece = new ListPreference(contextThemeWrapper); + listPreferece.setTitle("Current printer"); + listPreferece.setKey(SharedPrefKeys.ACCETTAZIONE_PRINTER); + listPreferece.setEntries(availablePritersArray); + listPreferece.setEntryValues(availablePritersArray); + + // It's REALLY IMPORTANT to add Preferences with child Preferences to the Preference Hierarchy first + // Otherwise, the PreferenceManager will fail to load their keys + + // First we add the category to the root PreferenceScreen + getPreferenceScreen().addPreference(preferenceCategory); + + // Then their child to it + preferenceCategory.addPreference(editTextPreference); + preferenceCategory.addPreference(checkBoxPreference); + preferenceCategory.addPreference(listPreferece); + } + +} diff --git a/app/src/main/res/drawable/ic_information_outline_24dp.xml b/app/src/main/res/drawable/ic_information_outline_24dp.xml new file mode 100644 index 00000000..89d56934 --- /dev/null +++ b/app/src/main/res/drawable/ic_information_outline_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_palette_24dp.xml b/app/src/main/res/drawable/ic_palette_24dp.xml new file mode 100644 index 00000000..64f8a1a7 --- /dev/null +++ b/app/src/main/res/drawable/ic_palette_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_24dp.xml b/app/src/main/res/drawable/ic_settings_24dp.xml new file mode 100644 index 00000000..590a0dd8 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index 55de6889..9f598de0 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -14,109 +14,6 @@ android:layout_height="match_parent" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml new file mode 100644 index 00000000..635489c2 --- /dev/null +++ b/app/src/main/res/layout/fragment_main.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_settings.xml b/app/src/main/res/layout/fragment_main_settings.xml new file mode 100644 index 00000000..5ee8a8ca --- /dev/null +++ b/app/src/main/res/layout/fragment_main_settings.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index f85cb2b7..0d691756 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -35,6 +35,10 @@ + Note Aggiuntive Inserisci eventuali note aggiuntive della tua UL + Magazzino + + + Settaggi generali + referenza referenze @@ -84,4 +89,7 @@ Salvataggio completato + Impostazioni + Check box + This is a regular preference \ 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 f0c43349..32b2a3da 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,6 +37,10 @@ Hello blank fragment + + General settings + + reference references @@ -91,5 +95,11 @@ Data saved The quantity entered is not valid, please check it + Settings + Check box + This is a regular preference + + + Warehouse diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 58718fd5..725e6275 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,6 +2,9 @@