Implementati context di App e Main
This commit is contained in:
parent
6fbc8009ce
commit
ab7db0fe05
@ -238,7 +238,7 @@ public class MainActivity extends AppCompatActivity
|
|||||||
ServerStatusChecker.getIstance().addCallback(value -> {
|
ServerStatusChecker.getIstance().addCallback(value -> {
|
||||||
if(value && (!mIsOnline || firstCheckExecution)){
|
if(value && (!mIsOnline || firstCheckExecution)){
|
||||||
|
|
||||||
SettingsManager.reloadDBVariables(() -> {
|
SettingsManager.loadDBVariables(() -> {
|
||||||
mIsOnline = true;
|
mIsOnline = true;
|
||||||
firstCheckExecution = false;
|
firstCheckExecution = false;
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.orhanobut.logger.Logger;
|
|||||||
import io.fabric.sdk.android.Fabric;
|
import io.fabric.sdk.android.Fabric;
|
||||||
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.context.AppContext;
|
||||||
import it.integry.integrywmsnative.core.exception.ExceptionsHandler;
|
import it.integry.integrywmsnative.core.exception.ExceptionsHandler;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.settings.Stash;
|
import it.integry.integrywmsnative.core.settings.Stash;
|
||||||
@ -28,7 +29,8 @@ import it.integry.integrywmsnative.view.dialogs.exception.DialogException;
|
|||||||
public class MainApplication extends Application {
|
public class MainApplication extends Application {
|
||||||
|
|
||||||
public static Resources res;
|
public static Resources res;
|
||||||
public static Context Context;
|
|
||||||
|
private AppContext appContext = new AppContext(this);
|
||||||
|
|
||||||
|
|
||||||
// Called when the application is starting, before any other application objects have been created.
|
// Called when the application is starting, before any other application objects have been created.
|
||||||
@ -37,39 +39,11 @@ public class MainApplication extends Application {
|
|||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
if(!BuildConfig.DEBUG) {
|
appContext.init();
|
||||||
Fabric.with(this, new Crashlytics());
|
|
||||||
|
|
||||||
if(SettingsManager.i() != null &&
|
//Stash.init(this);
|
||||||
(SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) &&
|
|
||||||
(SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) {
|
|
||||||
|
|
||||||
Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname);
|
|
||||||
Crashlytics.setString("profile_db", SettingsManager.i().userSession.profileDB);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(SettingsManager.i() != null &&
|
|
||||||
(SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) &&
|
|
||||||
(SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) {
|
|
||||||
|
|
||||||
Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname);
|
|
||||||
Crashlytics.setString("profile_db", "[DEBUG] " + SettingsManager.i().userSession.profileDB);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Stash.init(this);
|
|
||||||
|
|
||||||
SettingsManager.init(this);
|
|
||||||
ServerStatusChecker.init();
|
|
||||||
BarcodeManager.init(this);
|
|
||||||
|
|
||||||
// UtilityExceptions.init(this);
|
|
||||||
UtilityResources.init(this);
|
|
||||||
|
|
||||||
Logger.addLogAdapter(new AndroidLogAdapter());
|
|
||||||
|
|
||||||
res = getResources();
|
res = getResources();
|
||||||
Context = this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called by the system when the device configuration changes while your component is running.
|
// Called by the system when the device configuration changes while your component is running.
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@ -26,6 +27,8 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
@BindView(R.id.app_version_textview)
|
@BindView(R.id.app_version_textview)
|
||||||
TextView appVersionTextView;
|
TextView appVersionTextView;
|
||||||
|
|
||||||
|
private MainContext mainContext = new MainContext(this);
|
||||||
|
|
||||||
private RunnableArgsss<Integer, String[], List<Integer>> onRequestPermissionResult;
|
private RunnableArgsss<Integer, String[], List<Integer>> onRequestPermissionResult;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -38,8 +41,6 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
initAppVersion();
|
initAppVersion();
|
||||||
|
|
||||||
initPermissions(this::init);
|
initPermissions(this::init);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPermissions(Runnable onComplete) {
|
private void initPermissions(Runnable onComplete) {
|
||||||
@ -69,22 +70,13 @@ public class SplashActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
if(SettingsManager.i().user.username == null && SettingsManager.i().user.password == null){
|
if(!SettingsManager.i().isUserLoggedIn()){
|
||||||
startLoginActivity();
|
startLoginActivity();
|
||||||
} else {
|
} else {
|
||||||
initFirstData(this::startMainActivity);
|
mainContext.init(this::startMainActivity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFirstData(Runnable onComplete) {
|
|
||||||
|
|
||||||
SettingsManager.reloadDBVariables(onComplete, ex -> {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(this,
|
|
||||||
new SpannableString(ex.getMessage()), null, this::finish).show();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,9 +1,81 @@
|
|||||||
package it.integry.integrywmsnative.core.context;
|
package it.integry.integrywmsnative.core.context;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.crashlytics.android.Crashlytics;
|
||||||
|
import com.orhanobut.logger.AndroidLogAdapter;
|
||||||
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
|
import io.fabric.sdk.android.Fabric;
|
||||||
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.settings.Stash;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
|
|
||||||
public class AppContext {
|
public class AppContext {
|
||||||
|
|
||||||
public AppContext() {
|
//Note: this is the Application Context NOT the Activity Context
|
||||||
|
private final Context mContext;
|
||||||
|
|
||||||
|
public AppContext(Context context) {
|
||||||
|
this.mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
this.initSettings();
|
||||||
|
|
||||||
|
this.initCrashlytics();
|
||||||
|
|
||||||
|
this.initServerStatusChecker();
|
||||||
|
|
||||||
|
this.initBarcode();
|
||||||
|
|
||||||
|
this.initUtilities();
|
||||||
|
|
||||||
|
this.initLogger();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initSettings() {
|
||||||
|
Stash.init(mContext);
|
||||||
|
SettingsManager.init(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initCrashlytics() {
|
||||||
|
if(!BuildConfig.DEBUG) {
|
||||||
|
Fabric.with(mContext, new Crashlytics());
|
||||||
|
|
||||||
|
if( SettingsManager.isInstanceAvailable() &&
|
||||||
|
(SettingsManager.i().userSession != null && !UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB)) &&
|
||||||
|
(SettingsManager.i().user != null && !UtilityString.isNullOrEmpty(SettingsManager.i().user.fullname))) {
|
||||||
|
|
||||||
|
Crashlytics.setString("user_fullname", SettingsManager.i().user.fullname);
|
||||||
|
Crashlytics.setString("profile_db", SettingsManager.i().userSession.profileDB);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initServerStatusChecker() {
|
||||||
|
ServerStatusChecker.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBarcode() {
|
||||||
|
BarcodeManager.init(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initUtilities() {
|
||||||
|
UtilityResources.init(mContext);
|
||||||
|
UtilityToast.init(mContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initLogger() {
|
||||||
|
Logger.addLogAdapter(new AndroidLogAdapter());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
package it.integry.integrywmsnative.core.context;
|
||||||
|
|
||||||
|
import android.text.SpannableString;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
|
public class MainContext {
|
||||||
|
|
||||||
|
private final AppCompatActivity mContext;
|
||||||
|
|
||||||
|
public MainContext(AppCompatActivity context) {
|
||||||
|
this.mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void init(Runnable onContextInitialized) {
|
||||||
|
this.initDBData(() -> {
|
||||||
|
onContextInitialized.run();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initDBData(Runnable onComplete) {
|
||||||
|
SettingsManager.loadDBVariables(onComplete, ex -> {
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(mContext,
|
||||||
|
new SpannableString(ex.getMessage()), null, mContext::finish).show();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -57,6 +57,9 @@ public class SettingsManager {
|
|||||||
public static boolean isFirstStart(){
|
public static boolean isFirstStart(){
|
||||||
return firstStart;
|
return firstStart;
|
||||||
}
|
}
|
||||||
|
public static boolean isInstanceAvailable(){
|
||||||
|
return i() != null;
|
||||||
|
}
|
||||||
|
|
||||||
public static void update(){
|
public static void update(){
|
||||||
Stash.put(TAG, settingsModelIstance);
|
Stash.put(TAG, settingsModelIstance);
|
||||||
@ -68,10 +71,10 @@ public class SettingsManager {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void reloadDBVariables(Runnable onComplete, RunnableArgs<Exception> onFailed){
|
public static void loadDBVariables(Runnable onComplete, RunnableArgs<Exception> onFailed){
|
||||||
dbSettingsModelIstance = new DBSettingsModel();
|
dbSettingsModelIstance = new DBSettingsModel();
|
||||||
|
|
||||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_reload_vars");
|
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_vars");
|
||||||
perfTrace.start();
|
perfTrace.start();
|
||||||
|
|
||||||
Runnable tmpOnComplete = () -> {
|
Runnable tmpOnComplete = () -> {
|
||||||
|
|||||||
@ -8,6 +8,10 @@ public class SettingsModel {
|
|||||||
public User user;
|
public User user;
|
||||||
public UserSession userSession;
|
public UserSession userSession;
|
||||||
|
|
||||||
|
public boolean isUserLoggedIn() {
|
||||||
|
return user != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class Server {
|
public static class Server {
|
||||||
public String codAzienda;
|
public String codAzienda;
|
||||||
|
|||||||
@ -7,8 +7,8 @@ public class UtilitySettings {
|
|||||||
|
|
||||||
|
|
||||||
public static void logout(){
|
public static void logout(){
|
||||||
SettingsManager.i().user = new SettingsModel.User();
|
SettingsManager.i().user = null;
|
||||||
SettingsManager.i().userSession = new SettingsModel.UserSession();
|
SettingsManager.i().userSession = null;
|
||||||
|
|
||||||
SettingsManager.update();
|
SettingsManager.update();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,20 @@
|
|||||||
package it.integry.integrywmsnative.core.utility;
|
package it.integry.integrywmsnative.core.utility;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
|
||||||
public class UtilityToast {
|
public class UtilityToast {
|
||||||
|
|
||||||
|
private static Context context;
|
||||||
|
|
||||||
|
public static void init(Context context) {
|
||||||
|
UtilityToast.context = context;
|
||||||
|
}
|
||||||
|
|
||||||
public static void showToast(String message) {
|
public static void showToast(String message) {
|
||||||
Toast.makeText(MainApplication.Context, message, Toast.LENGTH_LONG).show();
|
Toast.makeText(context, message, Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,12 +5,14 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityWindow;
|
import it.integry.integrywmsnative.core.utility.UtilityWindow;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityLoginBinding;
|
import it.integry.integrywmsnative.databinding.ActivityLoginBinding;
|
||||||
import it.integry.integrywmsnative.gest.login.viewmodel.LoginViewModel;
|
import it.integry.integrywmsnative.gest.login.viewmodel.LoginViewModel;
|
||||||
|
|
||||||
public class LoginActivity extends AppCompatActivity {
|
public class LoginActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
private MainContext mainContext = new MainContext(this);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -18,7 +20,7 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
UtilityWindow.maximizeToFullScreen(this);
|
UtilityWindow.maximizeToFullScreen(this);
|
||||||
|
|
||||||
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
|
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
|
||||||
LoginViewModel loginViewModel = new LoginViewModel(this);
|
LoginViewModel loginViewModel = new LoginViewModel(this, mainContext);
|
||||||
binding.setLoginViewModel(loginViewModel);
|
binding.setLoginViewModel(loginViewModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import it.integry.integrywmsnative.R;
|
|||||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
|
import it.integry.integrywmsnative.core.REST.model.AvailableCodMdepsDTO;
|
||||||
|
import it.integry.integrywmsnative.core.context.MainContext;
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
import it.integry.integrywmsnative.core.di.BindableString;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@ -28,7 +29,6 @@ import it.integry.integrywmsnative.gest.login.dto.LoginDTO;
|
|||||||
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
public class LoginViewModel {
|
public class LoginViewModel {
|
||||||
private static final String TAG = LoginViewModel.class.getSimpleName();
|
|
||||||
|
|
||||||
public BindableString username = new BindableString();
|
public BindableString username = new BindableString();
|
||||||
public BindableString password = new BindableString();
|
public BindableString password = new BindableString();
|
||||||
@ -47,11 +47,13 @@ public class LoginViewModel {
|
|||||||
|
|
||||||
|
|
||||||
private LoginActivity mActivity;
|
private LoginActivity mActivity;
|
||||||
|
private MainContext mMainContext;
|
||||||
|
|
||||||
private ProgressDialog mProgress;
|
private ProgressDialog mProgress;
|
||||||
|
|
||||||
public LoginViewModel(LoginActivity activity) {
|
public LoginViewModel(LoginActivity activity, MainContext mainContext) {
|
||||||
this.mActivity = activity;
|
this.mActivity = activity;
|
||||||
|
this.mMainContext = mainContext;
|
||||||
|
|
||||||
loginButtonEnabled.set(true);
|
loginButtonEnabled.set(true);
|
||||||
|
|
||||||
@ -237,19 +239,14 @@ public class LoginViewModel {
|
|||||||
SettingsManager.update();
|
SettingsManager.update();
|
||||||
|
|
||||||
ProgressDialog loadingProgress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
ProgressDialog loadingProgress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||||
SettingsManager.reloadDBVariables(() -> {
|
mMainContext.init(() -> {
|
||||||
loadingProgress.dismiss();
|
loadingProgress.dismiss();
|
||||||
mActivity.finish();
|
mActivity.finish();
|
||||||
|
|
||||||
Intent myIntent = new Intent(mActivity, MainActivity.class);
|
Intent myIntent = new Intent(mActivity, MainActivity.class);
|
||||||
mActivity.startActivity(myIntent);
|
mActivity.startActivity(myIntent);
|
||||||
|
});
|
||||||
|
|
||||||
},ex -> {
|
|
||||||
loadingProgress.dismiss();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(mActivity,
|
|
||||||
new SpannableString(ex.getMessage()), null, null).show();
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -553,7 +553,7 @@ public class DialogInputQuantity {
|
|||||||
if(isError){
|
if(isError){
|
||||||
textInputLayout.setErrorEnabled(true);
|
textInputLayout.setErrorEnabled(true);
|
||||||
textInputLayout.setError(" ");
|
textInputLayout.setError(" ");
|
||||||
textInputLayout.getEditText().setTextColor(ContextCompat.getColor(MainApplication.Context, R.color.red_600));
|
textInputLayout.getEditText().setTextColor(ContextCompat.getColor(currentContext, R.color.red_600));
|
||||||
textInputLayout.setHintTextAppearance(R.style.ErrorFloatingLabel);
|
textInputLayout.setHintTextAppearance(R.style.ErrorFloatingLabel);
|
||||||
|
|
||||||
if (textInputLayout.getChildCount() == 2) {
|
if (textInputLayout.getChildCount() == 2) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user