package com.quickblox.sample.customobjects.activities; import android.os.Bundle; import android.util.Log; import android.view.View; import com.quickblox.auth.session.QBSessionManager; import com.quickblox.core.exception.QBResponseException; import com.quickblox.core.server.Performer; import com.quickblox.extensions.RxJavaPerformProcessor; import com.quickblox.sample.core.ui.activity.CoreSplashActivity; import com.quickblox.sample.core.utils.configs.CoreConfigUtils; import com.quickblox.sample.customobjects.R; import com.quickblox.sample.customobjects.utils.Consts; import com.quickblox.sample.customobjects.utils.QBCustomObjectsUtils; import com.quickblox.users.QBUsers; import com.quickblox.users.model.QBUser; import rx.Observable; import rx.Observer; import rx.android.schedulers.AndroidSchedulers; import rx.schedulers.Schedulers; public class SplashActivity extends CoreSplashActivity { private static final String TAG = SplashActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (checkConfigsWithSnackebarError()){ signInQB(); } } private void signInQB() { if (!checkSignIn()) { QBUser qbUser = CoreConfigUtils.getUserFromConfig(Consts.SAMPLE_CONFIG_FILE_NAME); Performer<QBUser> performer = QBUsers.signIn(qbUser); Observable<QBUser> observable = performer.convertTo(RxJavaPerformProcessor.INSTANCE); observable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<QBUser>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { if (QBCustomObjectsUtils.checkQBException(e)) { showSnackbarError(null, R.string.splash_create_session_error, (QBResponseException) e, new View.OnClickListener() { @Override public void onClick(View v) { signInQB(); } }); } else { Log.d(TAG, "onError" + e.getMessage()); } } @Override public void onNext(QBUser qbUser) { proceedToTheNextActivity(); } }); } else { proceedToTheNextActivityWithDelay(); } } @Override protected String getAppName() { return getString(R.string.splash_app_title); } @Override protected void proceedToTheNextActivity() { MovieListActivity.start(this); finish(); } @Override protected boolean sampleConfigIsCorrect() { boolean result = super.sampleConfigIsCorrect(); result = result && CoreConfigUtils.getUserFromConfig(Consts.SAMPLE_CONFIG_FILE_NAME) != null; return result; } }