This commit is contained in:
2014-08-26 19:26:58 -07:00
commit 2c38a57e48
59 changed files with 516 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
package advent.core;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.TextView;
import android.util.Log;
import clojure.lang.Symbol;
import clojure.lang.Var;
import clojure.lang.RT;
import advent.core.R;
public class SplashActivity extends Activity {
private static boolean firstLaunch = true;
private static String TAG = "Splash";
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
if (firstLaunch) {
firstLaunch = false;
setupSplash();
loadClojure();
} else {
proceed();
}
}
public void setupSplash() {
setContentView(R.layout.splashscreen);
TextView appNameView = (TextView)findViewById(R.id.splash_app_name);
appNameView.setText(R.string.app_name);
Animation rotation = AnimationUtils.loadAnimation(this, R.anim.splash_rotation);
ImageView circleView = (ImageView)findViewById(R.id.splash_circles);
circleView.startAnimation(rotation);
}
public void proceed() {
startActivity(new Intent("advent.core.MAIN"));
finish();
}
public void loadClojure() {
new Thread(new Runnable(){
@Override
public void run() {
Symbol CLOJURE_MAIN = Symbol.intern("neko.init");
Var REQUIRE = RT.var("clojure.core", "require");
REQUIRE.invoke(CLOJURE_MAIN);
Var INIT = RT.var("neko.init", "init");
INIT.invoke(SplashActivity.this.getApplication());
try {
Class.forName("advent.core.AndroidLauncher");
} catch (ClassNotFoundException e) {
Log.e(TAG, "Failed loading AndroidLauncher", e);
}
proceed();
}
}).start();
}
}