package it.integry.integrywmsnative; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.text.SpannableString; import android.view.LayoutInflater; import android.widget.TextView; import java.util.ArrayList; import java.util.List; import androidx.appcompat.app.AppCompatActivity; import androidx.databinding.DataBindingUtil; import it.integry.integrywmsnative.core.context.MainContext; import it.integry.integrywmsnative.core.expansion.RunnableArgsss; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.PermissionsHelper; import it.integry.integrywmsnative.databinding.ActivitySplashBinding; import it.integry.integrywmsnative.gest.login.LoginActivity; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; public class SplashActivity extends AppCompatActivity { private ActivitySplashBinding mBinding; private MainContext mainContext = new MainContext(this); private RunnableArgsss> onRequestPermissionResult; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_splash, null, false); setContentView(mBinding.getRoot()); initAppVersion(); initPermissions(this::init); } private void initPermissions(Runnable onComplete) { PermissionsHelper.askPermissions(this, () -> { onComplete.run(); }, permanentlyDenied -> { if(permanentlyDenied) { DialogSimpleMessageHelper.makeErrorDialog(this, new SpannableString(getText(R.string.permissions_permanently_denied)), null, () -> { this.finish(); }).show(); } else { initPermissions(onComplete); } }); } private void initAppVersion() { try { PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); String version = pInfo.versionName; String debugText = ""; if(BuildConfig.DEBUG) debugText += "\n[DEBUG VERSION]"; mBinding.appVersionTextview.setText("v" + version + debugText); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } private void init() { if(!SettingsManager.i().isUserLoggedIn()){ startLoginActivity(); } else { mainContext.init(this::startMainActivity); } } public void setOnRequestPermissionsResult(RunnableArgsss> onRequestPermissionResult) { this.onRequestPermissionResult = onRequestPermissionResult; } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { if(this.onRequestPermissionResult != null) { List grantResultsList = new ArrayList<>(); for(int i = 0; i < grantResults.length; i++) { grantResultsList.add(grantResults[i]); } this.onRequestPermissionResult.run(requestCode, permissions, grantResultsList); } } private void startLoginActivity(){ this.finish(); Intent myIntent = new Intent(this, LoginActivity.class); startActivity(myIntent); } private void startMainActivity(){ this.finish(); Intent myIntent = new Intent(this, MainActivity.class); startActivity(myIntent); } }