From http://www.jwz.org/xscreensaver/xscreensaver-5.31.tar.gz
[xscreensaver] / android / project / xscreensaver / src / org / jwz / xscreensaver / gen / HilbertService.java
1 package org.jwz.xscreensaver.gen;
2 import net.rbgrn.android.glwallpaperservice.*;
3 import android.content.SharedPreferences;
4 import org.jwz.xscreensaver.*;
5
6 // Original code provided by Robert Green
7 // http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers
8 public class HilbertService extends GLWallpaperService {
9     SharedPreferences sp;
10     public HilbertService() {
11         super();
12     }
13     @Override
14     public void onCreate() {
15         sp = ((XscreensaverApp)getApplication()).getThePrefs(HilbertWallpaper.SHARED_PREFS_NAME);
16     }
17     public Engine onCreateEngine() {
18         MyEngine engine = new MyEngine();
19         return engine;
20     }
21     class MyEngine extends GLEngine {
22         HilbertWallpaper renderer;
23         public MyEngine() {
24             super();
25             // handle prefs, other initialization
26             renderer = new HilbertWallpaper();
27             setRenderer(renderer);
28             setRenderMode(RENDERMODE_CONTINUOUSLY);
29         }
30         public void onDestroy() {
31             super.onDestroy();
32             if (renderer != null) {
33                 renderer.release(); // assuming yours has this method - it should!
34             }
35             renderer = null;
36         }
37         @Override
38         public void onVisibilityChanged(boolean visible) {
39             super.onVisibilityChanged(visible);
40             if (visible) {
41                 renderer.doSP(sp);
42             }
43         }
44     }
45     static
46     {
47         System.loadLibrary ("xscreensaver");
48     }
49 }