ruboto/ruboto

View on GitHub
assets/app/src/main/java/org/ruboto/EntryPointActivity.java

Summary

Maintainability
A
0 mins
Test Coverage
package org.ruboto;

import android.content.Intent;
import android.os.Bundle;

/**
 * This Activity acts as an entry point to the app.  It must initialize the
 * JRuby runtime before restarting its life cycle.  While JRuby is initializing,
 * a progress dialog is shown.  If R.layout.splash is defined, by adding a
 * res/layout/splash.xml file, this layout is displayed instead of the progress
 * dialog.
 */
public class EntryPointActivity extends org.ruboto.RubotoActivity {

    public void onCreate(Bundle bundle) {
        Log.d("EntryPointActivity onCreate:");

        if (JRubyAdapter.isInitialized()) {
            getScriptInfo().setRubyClassName(getClass().getSimpleName());
        } else {
            showSplash();
            finish();
        }

        super.onCreate(bundle);
    }

    private void showSplash() {
        Intent splashIntent = new Intent(this, SplashActivity.class);
        splashIntent.putExtra(Intent.EXTRA_INTENT, futureIntent());
        startActivity(splashIntent);
    }
    
    // The Intent to to call when done. Defaults to calling this Activity again.
    // Override to change.
    protected Intent futureIntent() {
        if (getIntent().getAction() == null || !getIntent().getAction().equals(Intent.ACTION_VIEW)) {
            return new Intent(getIntent()).setAction(Intent.ACTION_VIEW);
        } else {
            return getIntent();
        }
    }
}