package com.quickblox.sample.core.ui.activity; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.support.annotation.StringRes; import android.view.View; import android.view.Window; import android.widget.TextView; import com.quickblox.auth.session.QBSessionManager; import com.quickblox.core.exception.QBResponseException; import com.quickblox.sample.core.CoreApp; import com.quickblox.sample.core.R; import com.quickblox.sample.core.utils.ErrorUtils; import com.quickblox.sample.core.utils.VersionUtils; public abstract class CoreSplashActivity extends CoreBaseActivity { private static final int SPLASH_DELAY = 1500; private static Handler mainThreadHandler = new Handler(Looper.getMainLooper()); @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_ACTION_BAR); super.onCreate(savedInstanceState); if (getSupportActionBar() != null) { getSupportActionBar().hide(); } setContentView(R.layout.activity_splash); TextView appNameTextView = _findViewById(R.id.text_splash_app_title); TextView versionTextView = _findViewById(R.id.text_splash_app_version); appNameTextView.setText(getAppName()); versionTextView.setText(getString(R.string.splash_app_version, VersionUtils.getAppVersionName())); } protected abstract String getAppName(); protected abstract void proceedToTheNextActivity(); protected boolean sampleConfigIsCorrect(){ return CoreApp.getInstance().getQbConfigs() != null; } protected void proceedToTheNextActivityWithDelay() { mainThreadHandler.postDelayed(new Runnable() { @Override public void run() { proceedToTheNextActivity(); } }, SPLASH_DELAY); } protected boolean checkConfigsWithSnackebarError(){ if (!sampleConfigIsCorrect()){ showSnackbarErrorParsingConfigs(); return false; } return true; } @Override protected void showSnackbarError(View rootLayout, @StringRes int resId, QBResponseException e, View.OnClickListener clickListener) { rootLayout = findViewById(R.id.layout_root); ErrorUtils.showSnackbar(rootLayout, resId, e, R.string.dlg_retry, clickListener); } protected void showSnackbarErrorParsingConfigs(){ ErrorUtils.showSnackbar(findViewById(R.id.layout_root), R.string.error_parsing_configs, R.string.dlg_ok, null); } protected boolean checkSignIn() { return QBSessionManager.getInstance().getSessionParameters() != null; } }