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 -> {
|
||||
if(value && (!mIsOnline || firstCheckExecution)){
|
||||
|
||||
SettingsManager.reloadDBVariables(() -> {
|
||||
SettingsManager.loadDBVariables(() -> {
|
||||
mIsOnline = true;
|
||||
firstCheckExecution = false;
|
||||
|
||||
|
||||
@ -15,6 +15,7 @@ import com.orhanobut.logger.Logger;
|
||||
import io.fabric.sdk.android.Fabric;
|
||||
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||
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.settings.SettingsManager;
|
||||
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 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.
|
||||
@ -37,39 +39,11 @@ public class MainApplication extends Application {
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
if(!BuildConfig.DEBUG) {
|
||||
Fabric.with(this, new Crashlytics());
|
||||
appContext.init();
|
||||
|
||||
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", 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());
|
||||
//Stash.init(this);
|
||||
|
||||
res = getResources();
|
||||
Context = this;
|
||||
}
|
||||
|
||||
// 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.ButterKnife;
|
||||
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.RunnableArgsss;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
@ -26,6 +27,8 @@ public class SplashActivity extends AppCompatActivity {
|
||||
@BindView(R.id.app_version_textview)
|
||||
TextView appVersionTextView;
|
||||
|
||||
private MainContext mainContext = new MainContext(this);
|
||||
|
||||
private RunnableArgsss<Integer, String[], List<Integer>> onRequestPermissionResult;
|
||||
|
||||
@Override
|
||||
@ -38,8 +41,6 @@ public class SplashActivity extends AppCompatActivity {
|
||||
initAppVersion();
|
||||
|
||||
initPermissions(this::init);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void initPermissions(Runnable onComplete) {
|
||||
@ -69,22 +70,13 @@ public class SplashActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void init() {
|
||||
if(SettingsManager.i().user.username == null && SettingsManager.i().user.password == null){
|
||||
if(!SettingsManager.i().isUserLoggedIn()){
|
||||
startLoginActivity();
|
||||
} 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;
|
||||
|
||||
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 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(){
|
||||
return firstStart;
|
||||
}
|
||||
public static boolean isInstanceAvailable(){
|
||||
return i() != null;
|
||||
}
|
||||
|
||||
public static void update(){
|
||||
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();
|
||||
|
||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_reload_vars");
|
||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_vars");
|
||||
perfTrace.start();
|
||||
|
||||
Runnable tmpOnComplete = () -> {
|
||||
|
||||
@ -8,6 +8,10 @@ public class SettingsModel {
|
||||
public User user;
|
||||
public UserSession userSession;
|
||||
|
||||
public boolean isUserLoggedIn() {
|
||||
return user != null;
|
||||
}
|
||||
|
||||
|
||||
public static class Server {
|
||||
public String codAzienda;
|
||||
|
||||
@ -7,8 +7,8 @@ public class UtilitySettings {
|
||||
|
||||
|
||||
public static void logout(){
|
||||
SettingsManager.i().user = new SettingsModel.User();
|
||||
SettingsManager.i().userSession = new SettingsModel.UserSession();
|
||||
SettingsManager.i().user = null;
|
||||
SettingsManager.i().userSession = null;
|
||||
|
||||
SettingsManager.update();
|
||||
}
|
||||
|
||||
@ -1,13 +1,20 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
|
||||
public class UtilityToast {
|
||||
|
||||
private static Context context;
|
||||
|
||||
public static void init(Context context) {
|
||||
UtilityToast.context = context;
|
||||
}
|
||||
|
||||
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 it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.context.MainContext;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityWindow;
|
||||
import it.integry.integrywmsnative.databinding.ActivityLoginBinding;
|
||||
import it.integry.integrywmsnative.gest.login.viewmodel.LoginViewModel;
|
||||
|
||||
public class LoginActivity extends AppCompatActivity {
|
||||
|
||||
private MainContext mainContext = new MainContext(this);
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -18,7 +20,7 @@ public class LoginActivity extends AppCompatActivity {
|
||||
UtilityWindow.maximizeToFullScreen(this);
|
||||
|
||||
ActivityLoginBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
|
||||
LoginViewModel loginViewModel = new LoginViewModel(this);
|
||||
LoginViewModel loginViewModel = new LoginViewModel(this, mainContext);
|
||||
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.SystemRESTConsumer;
|
||||
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.BindableString;
|
||||
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;
|
||||
|
||||
public class LoginViewModel {
|
||||
private static final String TAG = LoginViewModel.class.getSimpleName();
|
||||
|
||||
public BindableString username = new BindableString();
|
||||
public BindableString password = new BindableString();
|
||||
@ -47,11 +47,13 @@ public class LoginViewModel {
|
||||
|
||||
|
||||
private LoginActivity mActivity;
|
||||
private MainContext mMainContext;
|
||||
|
||||
private ProgressDialog mProgress;
|
||||
|
||||
public LoginViewModel(LoginActivity activity) {
|
||||
public LoginViewModel(LoginActivity activity, MainContext mainContext) {
|
||||
this.mActivity = activity;
|
||||
this.mMainContext = mainContext;
|
||||
|
||||
loginButtonEnabled.set(true);
|
||||
|
||||
@ -237,19 +239,14 @@ public class LoginViewModel {
|
||||
SettingsManager.update();
|
||||
|
||||
ProgressDialog loadingProgress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||
SettingsManager.reloadDBVariables(() -> {
|
||||
mMainContext.init(() -> {
|
||||
loadingProgress.dismiss();
|
||||
mActivity.finish();
|
||||
|
||||
Intent myIntent = new Intent(mActivity, MainActivity.class);
|
||||
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){
|
||||
textInputLayout.setErrorEnabled(true);
|
||||
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);
|
||||
|
||||
if (textInputLayout.getChildCount() == 2) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user