From http://www.jwz.org/xscreensaver/xscreensaver-5.31.tar.gz
[xscreensaver] / android / project / xscreensaver / src / org / jwz / xscreensaver / gen / StonerviewService.java
diff --git a/android/project/xscreensaver/src/org/jwz/xscreensaver/gen/StonerviewService.java b/android/project/xscreensaver/src/org/jwz/xscreensaver/gen/StonerviewService.java
new file mode 100644 (file)
index 0000000..177e528
--- /dev/null
@@ -0,0 +1,60 @@
+package org.jwz.xscreensaver.gen;
+
+import net.rbgrn.android.glwallpaperservice.*;
+import android.content.SharedPreferences;
+import org.jwz.xscreensaver.*;
+
+// Original code provided by Robert Green
+// http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers
+public class StonerviewService extends GLWallpaperService {
+
+    SharedPreferences sp;
+
+    public StonerviewService() {
+        super();
+    }
+
+    @Override
+    public void onCreate() {
+        sp = ((XscreensaverApp)getApplication()).getThePrefs(StonerviewWallpaper.SHARED_PREFS_NAME);
+    }
+
+    public Engine onCreateEngine() {
+        MyEngine engine = new MyEngine();
+        return engine;
+    }
+
+    class MyEngine extends GLEngine {
+        StonerviewWallpaper renderer;
+        public MyEngine() {
+            super();
+            // handle prefs, other initialization
+            renderer = new StonerviewWallpaper();
+            setRenderer(renderer);
+            setRenderMode(RENDERMODE_CONTINUOUSLY);
+        }
+
+        public void onDestroy() {
+            super.onDestroy();
+            if (renderer != null) {
+                renderer.release(); // assuming yours has this method - it should!
+            }
+            renderer = null;
+        }
+
+        @Override
+        public void onVisibilityChanged(boolean visible) {
+            super.onVisibilityChanged(visible);
+            if (visible) {
+                renderer.doSP(sp);
+            }
+        }
+
+    }
+    static
+    {
+        System.loadLibrary ("xscreensaver");
+    }
+
+
+}