Refactoring DialogProgressView.

Refactoring UpdateManager.
This commit is contained in:
Giuseppe Scorrano 2022-02-22 18:56:30 +01:00
parent e1b4af2402
commit eb39e1b7c5
25 changed files with 426 additions and 233 deletions

View File

@ -19,7 +19,8 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
android:fullBackupContent="@xml/backup_descriptor"> android:fullBackupContent="@xml/backup_descriptor"
android:requestLegacyExternalStorage="true">
<activity <activity
android:name=".gest.spedizione.SpedizioneActivity" android:name=".gest.spedizione.SpedizioneActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

View File

@ -5,6 +5,10 @@ import javax.inject.Singleton;
import dagger.Component; import dagger.Component;
import it.integry.integrywmsnative.core.context.AppContext; import it.integry.integrywmsnative.core.context.AppContext;
import it.integry.integrywmsnative.core.data_store.db.RoomModule; import it.integry.integrywmsnative.core.data_store.db.RoomModule;
import it.integry.integrywmsnative.core.expansion.BaseActivityComponent;
import it.integry.integrywmsnative.core.expansion.BaseActivityModule;
import it.integry.integrywmsnative.core.expansion.BaseFragmentComponent;
import it.integry.integrywmsnative.core.expansion.BaseFragmentModule;
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneComponent; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneComponent;
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneModule; import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneModule;
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent; import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
@ -79,6 +83,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
RoomModule.class, RoomModule.class,
SplashActivityModule.class, SplashActivityModule.class,
MainApplicationModule.class, MainApplicationModule.class,
BaseActivityModule.class,
BaseFragmentModule.class,
LoginModule.class, LoginModule.class,
MainActivityModule.class, MainActivityModule.class,
MainFragmentModule.class, MainFragmentModule.class,
@ -114,6 +120,10 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
}) })
public interface MainApplicationComponent { public interface MainApplicationComponent {
BaseActivityComponent.Factory baseActivityComponent();
BaseFragmentComponent.Factory baseFragmentComponent();
SplashActivityComponent.Factory splashActivityComponent(); SplashActivityComponent.Factory splashActivityComponent();
LoginComponent.Factory loginActivityComponent(); LoginComponent.Factory loginActivityComponent();

View File

@ -27,8 +27,10 @@ import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.services.inventario.InventarioService; import it.integry.integrywmsnative.core.services.inventario.InventarioService;
import it.integry.integrywmsnative.core.update.UpdatesManager;
import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer; import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
@Module @Module
public class MainApplicationModule { public class MainApplicationModule {
@ -71,6 +73,18 @@ public class MainApplicationModule {
return new MenuService(menuRESTConsumer); return new MenuService(menuRESTConsumer);
} }
@Provides
@Singleton
UpdatesManager provideUpdatesManager() {
return new UpdatesManager();
}
@Provides
@Singleton
DialogProgressView providesDialogProgressView() {
return DialogProgressView.newInstance();
}
@Provides @Provides
@Singleton @Singleton
OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer, EntityRESTConsumer entityRESTConsumer) { OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer, EntityRESTConsumer entityRESTConsumer) {

View File

@ -1,21 +1,37 @@
package it.integry.integrywmsnative.core.expansion; package it.integry.integrywmsnative.core.expansion;
import android.app.Dialog; import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class BaseActivity extends AppCompatActivity { public class BaseActivity extends AppCompatActivity {
@Inject
public DialogProgressView mCurrentProgress;
protected Dialog mCurrentProgress; @Nullable
@Override
public View onCreateView(@Nullable View parent, @NonNull String name, @NonNull Context context, @NonNull AttributeSet attrs) {
var v = super.onCreateView(parent, name, context, attrs);
public BaseActivity() { MainApplication.appComponent
//Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(this, BaseActivity.class)); .baseActivityComponent()
.create()
.inject(this);
return v;
} }
@Override @Override
@ -42,8 +58,8 @@ public class BaseActivity extends AppCompatActivity {
protected void openProgress() { protected void openProgress() {
runOnUiThread(() -> { runOnUiThread(() -> {
BarcodeManager.disable(); BarcodeManager.disable();
if (this.mCurrentProgress == null) { if (!this.mCurrentProgress.isVisible() && !this.mCurrentProgress.isAdded()) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(this); this.mCurrentProgress.show(getSupportFragmentManager(), "tag");
} }
}); });
} }
@ -51,9 +67,8 @@ public class BaseActivity extends AppCompatActivity {
protected void closeProgress() { protected void closeProgress() {
runOnUiThread(() -> { runOnUiThread(() -> {
BarcodeManager.enable(); BarcodeManager.enable();
if (mCurrentProgress != null) { if (mCurrentProgress.isVisible()) {
mCurrentProgress.dismiss(); mCurrentProgress.dismiss();
mCurrentProgress = null;
} }
}); });
} }

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.core.expansion;
import dagger.Subcomponent;
@Subcomponent
public interface BaseActivityComponent {
@Subcomponent.Factory
interface Factory {
BaseActivityComponent create();
}
void inject(BaseActivity baseActivity);
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.expansion;
import dagger.Module;
@Module(subcomponents = BaseActivityComponent.class)
public class BaseActivityModule {
}

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.expansion; package it.integry.integrywmsnative.core.expansion;
import android.app.Dialog;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent; import android.view.KeyEvent;
@ -15,11 +14,12 @@ import androidx.fragment.app.FragmentTransaction;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class BaseDialogFragment extends DialogFragment { public class BaseDialogFragment extends DialogFragment {
private boolean mBarcodeListener = false; private boolean mBarcodeListener = false;
private Dialog mCurrentProgress; private DialogProgressView mCurrentProgress;
public BaseDialogFragment() { public BaseDialogFragment() {
super(); super();
@ -82,7 +82,7 @@ public class BaseDialogFragment extends DialogFragment {
// new Thread(() -> { // new Thread(() -> {
requireActivity().runOnUiThread(() -> { requireActivity().runOnUiThread(() -> {
if (this.mCurrentProgress == null) { if (this.mCurrentProgress == null) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity()); this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(requireActivity());
} }
}); });
// }).start(); // }).start();

View File

@ -1,21 +1,30 @@
package it.integry.integrywmsnative.core.expansion; package it.integry.integrywmsnative.core.expansion;
import android.app.Dialog; import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public abstract class BaseFragment extends Fragment { public abstract class BaseFragment extends Fragment {
protected Dialog mCurrentProgress; @Inject
public DialogProgressView mCurrentProgress;
protected ElevatedToolbar mToolbar; protected ElevatedToolbar mToolbar;
@ -26,11 +35,22 @@ public abstract class BaseFragment extends Fragment {
mToolbar = toolbar; mToolbar = toolbar;
} }
public void addOnPreDestroy(Runnable onPreDestroy) { public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy); this.mOnPreDestroyList.add(onPreDestroy);
} }
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
MainApplication.appComponent
.baseFragmentComponent()
.create()
.inject(this);
return view;
}
public void onLoadingStarted() { public void onLoadingStarted() {
new Thread(() -> { new Thread(() -> {
@ -65,24 +85,23 @@ public abstract class BaseFragment extends Fragment {
} }
protected void openProgress() { protected void openProgress() {
getActivity().runOnUiThread(() -> { requireActivity().runOnUiThread(() -> {
if (this.mCurrentProgress == null) { if (!this.mCurrentProgress.isVisible() && !this.mCurrentProgress.isAdded()) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity()); this.mCurrentProgress.show(requireActivity().getSupportFragmentManager(), "tag");
} }
}); });
} }
protected void closeProgress() { protected void closeProgress() {
getActivity().runOnUiThread(() -> { requireActivity().runOnUiThread(() -> {
if (mCurrentProgress != null) { if (mCurrentProgress.isVisible()) {
mCurrentProgress.dismiss(); mCurrentProgress.dismiss();
mCurrentProgress = null;
} }
}); });
} }
protected void popMe() { protected void popMe() {
getActivity().runOnUiThread(() -> { requireActivity().runOnUiThread(() -> {
((IPoppableActivity) requireActivity()).pop(); ((IPoppableActivity) requireActivity()).pop();
}); });
} }

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.core.expansion;
import dagger.Subcomponent;
@Subcomponent
public interface BaseFragmentComponent {
@Subcomponent.Factory
interface Factory {
BaseFragmentComponent create();
}
void inject(BaseFragment baseFragment);
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.expansion;
import dagger.Module;
@Module(subcomponents = BaseFragmentComponent.class)
public class BaseFragmentModule {
}

View File

@ -1,60 +0,0 @@
package it.integry.integrywmsnative.core.update;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class UpdateApp extends AsyncTask<String,Void,Void> {
private Context context;
public void setContext(Context contextf){
context = contextf;
}
@Override
protected Void doInBackground(String... arg0) {
try {
URL url = new URL(arg0[0]);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
file.mkdirs();
File outputFile = new File(file, "update.apk");
if(outputFile.exists()){
outputFile.delete();
}
FileOutputStream fos = new FileOutputStream(outputFile);
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // without this flag android returned a intent error!
context.startActivity(intent);
} catch (Exception e) {
Log.e("UpdateAPP", "Update error! " + e.getMessage());
}
return null;
}
}

View File

@ -1,30 +1,35 @@
package it.integry.integrywmsnative.core.update; package it.integry.integrywmsnative.core.update;
import android.app.Activity;
import android.app.DownloadManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Environment; import android.os.Environment;
import androidx.appcompat.app.AppCompatActivity;
import com.github.javiersantos.appupdater.AppUpdater; import com.github.javiersantos.appupdater.AppUpdater;
import com.github.javiersantos.appupdater.enums.Display; import com.github.javiersantos.appupdater.enums.Display;
import com.github.javiersantos.appupdater.enums.UpdateFrom; import com.github.javiersantos.appupdater.enums.UpdateFrom;
import java.io.File; import java.io.File;
import it.integry.integrywmsnative.R; import javax.inject.Singleton;
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration; import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
import it.integry.integrywmsnative.core.class_router.ClassRouter; import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration; import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.FileDownloader;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
@Singleton
public class UpdatesManager { public class UpdatesManager {
public static void init(Activity context) { private AppCompatActivity mContext;
public void init(AppCompatActivity activityContext) {
this.mContext = activityContext;
String suffix; String suffix;
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION); ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
try { try {
@ -40,64 +45,67 @@ public class UpdatesManager {
String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release" + suffix + ".apk"; String currentDownloadUrl = "http://" + SettingsManager.i().getServer().getHost() + ":" + SettingsManager.i().getServer().getPort() + "/ems-api/wms/android-release" + suffix + ".apk";
AppUpdater appUpdater = new AppUpdater(context) AppUpdater appUpdater = new AppUpdater(mContext)
.setDisplay(Display.DIALOG) .setDisplay(Display.DIALOG)
.setUpdateFrom(UpdateFrom.JSON) .setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON(currentVersionUrl) .setUpdateJSON(currentVersionUrl)
.setButtonDoNotShowAgain(null) .setButtonDoNotShowAgain(null)
.setButtonUpdateClickListener((dialog, which) -> { .setButtonUpdateClickListener((dialog, which) -> {
installAPK(context, currentDownloadUrl); installAPK(currentDownloadUrl);
}); });
appUpdater.start(); appUpdater.start();
} }
private static void installAPK(Activity context, String downloadURL) { private void installAPK(String downloadURL) {
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"; String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
String fileName = context.getResources().getString(R.string.app_name) + ".apk";
destination += fileName;
final Uri uri = Uri.parse("file://" + destination);
//Delete update file if exists var progressDialog = DialogProgressView.newInstance("Download", null, false);
final File file = new File(destination); progressDialog.show(mContext.getSupportFragmentManager(), "tag");
if (file.exists())
file.delete();
//set downloadmanager
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadURL));
request.setDescription(context.getString(R.string.notification_update_download));
request.setTitle(context.getString(R.string.app_name));
//set destination var fileDownloader = new FileDownloader()
request.setDestinationUri(uri); .setDestFolder(destination)
.setUrlString(downloadURL)
.setOnProgressUpdate(progress -> {
mContext.runOnUiThread(() -> {
progressDialog.setProgress(progress);
});
})
.setOnDownloadCompleted(destPath -> {
// get download service and enqueue file mContext.runOnUiThread(() -> {
final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); progressDialog.dismiss();
manager.enqueue(request);
//set BroadcastReceiver to install app when .apk is downloaded Uri fileLoc;
BroadcastReceiver onComplete = new BroadcastReceiver() { Intent intent;
public void onReceive(Context ctxt, Intent i) {
Uri fileLoc; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Intent intent; intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
fileLoc = GenericFileProvider.getUriForFile(mContext,
mContext.getApplicationContext().getPackageName() + ".core.update.GenericFileProvider",
new File(destPath));
} else {
intent = new Intent(Intent.ACTION_VIEW);
fileLoc = Uri.fromFile(new File(destPath));
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { intent.setDataAndType(fileLoc, "application/vnd.android.package-archive");
intent = new Intent(Intent.ACTION_INSTALL_PACKAGE); intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
fileLoc = GenericFileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".core.update.GenericFileProvider", file);
} else {
intent = new Intent(Intent.ACTION_VIEW);
fileLoc = Uri.fromFile(file);
}
intent.setDataAndType(fileLoc, "application/vnd.android.package-archive"); mContext.startActivity(intent);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); });
context.startActivity(intent); });
new Thread(() -> {
try {
fileDownloader.download();
} catch (Exception e) {
e.printStackTrace();
} }
}; }).start();
//register receiver for when .apk download is compete
context.registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
} }
} }

View File

@ -0,0 +1,113 @@
package it.integry.integrywmsnative.core.utility;
import android.webkit.URLUtil;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class FileDownloader {
private String urlString;
private String destFolder;
private RunnableArgs<Integer> onProgressUpdate;
private RunnableArgs<String> onDownloadCompleted;
public void download() throws Exception {
InputStream input = null;
OutputStream output = null;
HttpURLConnection connection = null;
String destPathFile;
try {
File direct = new File(destFolder);
if (!direct.exists()) {
direct.mkdirs();
}
URL url = new URL(urlString);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
connection.setConnectTimeout(120 * 1000);
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK)
throw new Exception("Server returned HTTP " + connection.getResponseCode() + " " + connection.getResponseMessage());
input = connection.getInputStream();
int totalBytesToDownload = connection.getContentLength();
int downloadedBytes = 0;
String title = URLUtil.guessFileName(String.valueOf(url), null, null);
destPathFile = destFolder + title;
if (new File(destPathFile).exists())
new File(destPathFile).delete();
output = new FileOutputStream(destPathFile);
byte[] buf = new byte[1024];
int len;
while ((len = input.read(buf)) > 0) {
output.write(buf, 0, len);
downloadedBytes += len;
if (onProgressUpdate != null)
onProgressUpdate.run((downloadedBytes * 100) / totalBytesToDownload);
}
} catch (Exception e) {
throw e;
} finally {
try {
if (output != null)
output.close();
if (input != null)
input.close();
} catch (IOException ignored) {
}
if (connection != null)
connection.disconnect();
}
if (onDownloadCompleted != null) onDownloadCompleted.run(destPathFile);
}
public String getUrlString() {
return urlString;
}
public FileDownloader setUrlString(String urlString) {
this.urlString = urlString;
return this;
}
public String getDestFolder() {
return destFolder;
}
public FileDownloader setDestFolder(String destFolder) {
this.destFolder = destFolder;
return this;
}
public FileDownloader setOnProgressUpdate(RunnableArgs<Integer> onProgressUpdate) {
this.onProgressUpdate = onProgressUpdate;
return this;
}
public FileDownloader setOnDownloadCompleted(RunnableArgs<String> onDownloadCompleted) {
this.onDownloadCompleted = onDownloadCompleted;
return this;
}
}

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.core.utility; package it.integry.integrywmsnative.core.utility;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.text.Html; import android.text.Html;
@ -13,6 +12,7 @@ import com.orhanobut.logger.Logger;
import it.integry.integrywmsnative.BuildConfig; import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.rest.CommonRESTException; import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class UtilityExceptions { public class UtilityExceptions {
@ -21,9 +21,9 @@ public class UtilityExceptions {
}; };
public static void defaultException(Context context, Exception ex, Dialog progressDialog) { public static void defaultException(Context context, Exception ex, DialogProgressView progressDialog) {
defaultException(context, ex); defaultException(context, ex);
if (progressDialog != null) progressDialog.dismiss(); if (progressDialog != null && progressDialog.isVisible()) progressDialog.dismiss();
} }
public static void defaultException(Context context, Exception ex) { public static void defaultException(Context context, Exception ex) {

View File

@ -1,25 +1,21 @@
package it.integry.integrywmsnative.core.utility; package it.integry.integrywmsnative.core.utility;
import android.app.Dialog; import androidx.appcompat.app.AppCompatActivity;
import android.content.Context; import androidx.fragment.app.FragmentActivity;
import it.integry.integrywmsnative.view.dialogs.DialogProgress; import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class UtilityProgress { public class UtilityProgress {
public static Dialog createDefaultProgressDialog(Context mContext) { public static DialogProgressView createDefaultProgressDialog(FragmentActivity mContext) {
// final ProgressDialog progress = ProgressDialog.show(mContext, mContext.getText(R.string.waiting), var progress = DialogProgressView.newInstance();
// mContext.getText(R.string.loading) + " ...", true); progress.show(mContext.getSupportFragmentManager(), "tag");
//
// return progress;
Dialog progress = DialogProgress.make(mContext);
progress.show();
return progress; return progress;
} }
public static Dialog createDefaultProgressDialog(Context mContext,String subtitle) {
Dialog progress = DialogProgress.make(mContext,subtitle); public static DialogProgressView createDefaultProgressDialog(AppCompatActivity mContext, String title, String subtitle) {
progress.show(); DialogProgressView progress = DialogProgressView.newInstance(title, subtitle, true);
progress.show(mContext.getSupportFragmentManager(), "tag");
return progress; return progress;
} }

View File

@ -67,6 +67,9 @@ public class MainActivity extends BaseActivity
@Inject @Inject
MainContext mainContext; MainContext mainContext;
@Inject
UpdatesManager updatesManager;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -79,7 +82,7 @@ public class MainActivity extends BaseActivity
mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false); mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false);
setContentView(mBinding.getRoot()); setContentView(mBinding.getRoot());
UpdatesManager.init(this); updatesManager.init(this);
UtilityContext.initMainActivity(this); UtilityContext.initMainActivity(this);
setSupportActionBar(mBinding.appBarMain.toolbar); setSupportActionBar(mBinding.appBarMain.toolbar);

View File

@ -138,6 +138,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main_ordini_uscita, container, false); mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main_ordini_uscita, container, false);

View File

@ -1,8 +1,6 @@
package it.integry.integrywmsnative.gest.pv_ordini_acquisto; package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.Html; import android.text.Html;
import android.text.SpannableString; import android.text.SpannableString;
@ -25,7 +23,6 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia; import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine; import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
@ -41,12 +38,13 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding; import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.ui.OrdineAcquistoPvOpenListAdapter;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisA; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisA;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.ui.OrdineAcquistoPvOpenListAdapter;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction; import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment { public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment {
@ -55,7 +53,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
private OrdineAcquistoPvHelper mHelper; private OrdineAcquistoPvHelper mHelper;
private Griglia mGriglia; private Griglia mGriglia;
private OrdineAcquistoPvOpenListAdapter mAdapter; private OrdineAcquistoPvOpenListAdapter mAdapter;
private Dialog mCurrentProgress; private DialogProgressView mCurrentProgress;
private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>(); private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
private boolean mRedirectToNewOrder = true; private boolean mRedirectToNewOrder = true;

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs; package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs;
import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
@ -8,6 +7,7 @@ import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.FragmentActivity;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO; import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
@ -21,13 +21,14 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding; import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class DialogScanLisA { public class DialogScanLisA {
private Activity mContext; private FragmentActivity mContext;
private BaseDialog mDialog; private BaseDialog mDialog;
private Dialog mCurrentProgress; private DialogProgressView mCurrentProgress;
private final DialogScanCodiceGrigliaBinding mBinding; private final DialogScanCodiceGrigliaBinding mBinding;
@ -38,7 +39,7 @@ public class DialogScanLisA {
private GrigliaRepository mGrigliaRepository; private GrigliaRepository mGrigliaRepository;
private Griglia mGriglia; private Griglia mGriglia;
private DialogScanLisA(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) { private DialogScanLisA(FragmentActivity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) {
mOnDialogDismiss = null; mOnDialogDismiss = null;
mContext = context; mContext = context;
mGrigliaRepository = grigliaRepository; mGrigliaRepository = grigliaRepository;
@ -58,7 +59,7 @@ public class DialogScanLisA {
} }
public static Dialog make(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) { public static Dialog make(FragmentActivity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) {
return new DialogScanLisA(context, grigliaRepository, helper, onDialogDismiss).mDialog; return new DialogScanLisA(context, grigliaRepository, helper, onDialogDismiss).mDialog;
} }

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze; package it.integry.integrywmsnative.gest.rettifica_giacenze;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
@ -58,6 +57,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView; import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView;
import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.DialogConsts;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts; import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts;
@ -82,7 +82,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
private int barcodeScannerIstanceID = -1; private int barcodeScannerIstanceID = -1;
private Dialog mCurrentProgress; private DialogProgressView mCurrentProgress;
public RettificaGiacenzeFragment() { public RettificaGiacenzeFragment() {
// Required empty public constructor // Required empty public constructor
@ -341,7 +341,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
if (ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage()); UtilityToast.showToast(ex.getMessage());
} else { } else {
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress); UtilityExceptions.defaultException(requireActivity(), ex, mCurrentProgress);
} }
BarcodeManager.enable(); BarcodeManager.enable();

View File

@ -1,61 +0,0 @@
package it.integry.integrywmsnative.view.dialogs;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.databinding.DialogProgressBinding;
public class DialogProgress {
private Context mContext;
private DialogProgressBinding mBinding;
private Dialog mDialog;
public static Dialog make(Context context,String subtitle) {
DialogProgress progress = new DialogProgress(context);
progress.setSubtitle(subtitle);
return progress.mDialog;
}
public static Dialog make(Context context) {
return new DialogProgress(context).mDialog;
}
private DialogProgress(Context context) {
mContext = context;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_progress, null, false);
// final Thread[] progressBarThread = new Thread[1];
mDialog = new Dialog(mContext);
mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mDialog.setOnShowListener(dialog -> {
// ((ProgressBar) currentView.findViewById(R.id.progressBar)).setIndeterminate(true);
// progressBarThread[0] = UtilityProgress.makeProgressBarIndeterminate(mBinding.progressBar);
});
mDialog.setOnDismissListener(dialog -> {
// progressBarThread[0].interrupt();
});
}
private void setSubtitle(String subtitle){
mBinding.subtitleText.setText(subtitle);
}
}

View File

@ -0,0 +1,88 @@
package it.integry.integrywmsnative.view.dialogs;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.DialogFragment;
import javax.inject.Singleton;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogProgressBinding;
@Singleton
public class DialogProgressView extends DialogFragment {
private DialogProgressBinding mBindings;
private String title;
private String subtitle;
private boolean indeterminateProgress;
public static DialogProgressView newInstance(String title, String subtitle, boolean indeterminate) {
return new DialogProgressView()
.setIndeterminateProgress(indeterminate)
.setTitle(title)
.setSubtitle(subtitle);
}
public static DialogProgressView newInstance() {
return newInstance(null, null, true);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_progress, container, false);
getDialog().setCanceledOnTouchOutside(false);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mBindings.setTitle(UtilityString.isNullOrEmpty(title) ? requireActivity().getString(R.string.loading) : title);
mBindings.setSubtitle(subtitle);
mBindings.progressBar.setIndeterminate(isIndeterminateProgress());
if(!isIndeterminateProgress()){
mBindings.progressBar.setMax(100);
}
return mBindings.getRoot();
}
public boolean isIndeterminateProgress() {
return indeterminateProgress;
}
public DialogProgressView setIndeterminateProgress(boolean indeterminateProgress) {
this.indeterminateProgress = indeterminateProgress;
return this;
}
public DialogProgressView setTitle(String title) {
this.title = title;
return this;
}
public DialogProgressView setSubtitle(String subtitle) {
this.subtitle = subtitle;
return this;
}
public void setProgress(int progress) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mBindings.progressBar.setProgress(progress, true);
}
}
}

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts; package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.graphics.Color; import android.graphics.Color;
@ -42,6 +41,7 @@ import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding; import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding;
import it.integry.integrywmsnative.view.dialogs.DialogCommon; import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class DialogChooseArtsFromListaArts extends BaseDialogFragment { public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
@ -62,7 +62,7 @@ public class DialogChooseArtsFromListaArts extends BaseDialogFragment {
private final List<DialogChooseArtsFromListaArtsItemModel> mDataset; private final List<DialogChooseArtsFromListaArtsItemModel> mDataset;
private int mBarcodeScannerIstanceID; private int mBarcodeScannerIstanceID;
private Dialog mCurrentProgress; private DialogProgressView mCurrentProgress;
private MtbAart selectedArt; private MtbAart selectedArt;
public static DialogChooseArtsFromListaArts newInstance(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) { public static DialogChooseArtsFromListaArts newInstance(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) {

View File

@ -8,6 +8,7 @@ import android.view.LayoutInflater;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.FragmentActivity;
import com.annimon.stream.Optional; import com.annimon.stream.Optional;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
@ -24,24 +25,25 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.DialogInputPesoLuBinding; import it.integry.integrywmsnative.databinding.DialogInputPesoLuBinding;
import it.integry.integrywmsnative.view.dialogs.DialogProgressView;
public class DialogInputPeso { public class DialogInputPeso {
private Context mContext; private final FragmentActivity mContext;
private DialogInputPesoLuBinding mBindings; private final DialogInputPesoLuBinding mBindings;
private DialogInputPesoViewModel mViewModel; private final DialogInputPesoViewModel mViewModel;
private Dialog currentDialog; private final Dialog currentDialog;
private List<MtbTCol> codTcolList = null; private List<MtbTCol> codTcolList = null;
private ArrayAdapter<String> codTcolArrayAdapter = null; private ArrayAdapter<String> codTcolArrayAdapter = null;
public static Dialog make(final Context context, String codTcol, BigDecimal netWeight, BigDecimal grossWeight, RunnableArgsss<String, BigDecimal, BigDecimal> onDialogDismiss) { public static Dialog make(final FragmentActivity context, String codTcol, BigDecimal netWeight, BigDecimal grossWeight, RunnableArgsss<String, BigDecimal, BigDecimal> onDialogDismiss) {
return new DialogInputPeso(context, codTcol, netWeight, grossWeight, onDialogDismiss).currentDialog; return new DialogInputPeso(context, codTcol, netWeight, grossWeight, onDialogDismiss).currentDialog;
} }
private DialogInputPeso(final Context context, String codTcol, BigDecimal netWeight, BigDecimal grossWeight, RunnableArgsss<String, BigDecimal, BigDecimal> onDialogDismiss) { private DialogInputPeso(final FragmentActivity context, String codTcol, BigDecimal netWeight, BigDecimal grossWeight, RunnableArgsss<String, BigDecimal, BigDecimal> onDialogDismiss) {
this.mContext = context; this.mContext = context;
@ -91,7 +93,7 @@ public class DialogInputPeso {
private void init() { private void init() {
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); final DialogProgressView progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
MagazzinoRESTConsumer.getTipiColloStatic(codTcols -> { MagazzinoRESTConsumer.getTipiColloStatic(codTcols -> {
this.codTcolList = codTcols; this.codTcolList = codTcols;

View File

@ -6,6 +6,11 @@
<data> <data>
<import type="android.view.View" /> <import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" /> <import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<variable
name="title"
type="String" />
<variable <variable
name="subtitle" name="subtitle"
type="String" /> type="String" />
@ -28,15 +33,13 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/TextViewMaterial.Dialog.HeadlineText" style="@style/TextViewMaterial.Dialog.HeadlineText"
android:text="@string/loading" android:text="@{title}"
android:gravity="center_horizontal"/> android:gravity="center_horizontal"/>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/subtitle_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.Small" style="@style/AppTheme.NewMaterial.Text.Small"