summaryrefslogtreecommitdiff
path: root/src/java
diff options
context:
space:
mode:
authorDavid Barksdale <amatus@amatus.name>2013-08-26 20:31:42 -0500
committerDavid Barksdale <amatus@amatus.name>2013-08-26 20:31:42 -0500
commit85e0a42e2a695b4eb58579aeba0756ff64615f03 (patch)
tree6840eae199e3eac8a7c7a2fb9217273b9bfefc53 /src/java
New lein-droid project.
Created by: lein droid new carddav-sync io.cons.carddav_sync \ :target-sdk 18 :app-name CardDAV-Sync
Diffstat (limited to 'src/java')
-rw-r--r--src/java/io/cons/carddav_sync/SplashActivity.java66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/java/io/cons/carddav_sync/SplashActivity.java b/src/java/io/cons/carddav_sync/SplashActivity.java
new file mode 100644
index 0000000..9bdc24e
--- /dev/null
+++ b/src/java/io/cons/carddav_sync/SplashActivity.java
@@ -0,0 +1,66 @@
+package io.cons.carddav_sync;
+
+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 clojure.lang.Symbol;
+import clojure.lang.Var;
+import clojure.lang.RT;
+
+import io.cons.carddav_sync.R;
+
+public class SplashActivity extends Activity {
+
+ private static boolean firstLaunch = true;
+
+ @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("io.cons.carddav_sync.MAIN"));
+ finish();
+ }
+
+ public void loadClojure() {
+ new Thread(new Runnable(){
+ @Override
+ public void run() {
+ Symbol CLOJURE_MAIN = Symbol.intern("neko.application");
+ Var REQUIRE = RT.var("clojure.core", "require");
+ REQUIRE.invoke(CLOJURE_MAIN);
+
+ Var INIT = RT.var("neko.application", "init-application");
+ INIT.invoke(SplashActivity.this.getApplication());
+
+ proceed();
+ }
+ }).start();
+ }
+}