Back to project page Sertimus.
The source code is released under:
GNU General Public License
If you think the Android project Sertimus listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* Sertimus - A live wallpaper featuring a cute Chao. // w w w .j a va 2 s . co m Copyright (C) 2013 Kevin Negrin This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ // MainService.java - This is the heart of the live wallpaper. package gameaddict30.wallpaper.sertimus; import gameaddict30.wallpaper.sertimus.objects.*; import android.content.SharedPreferences; import android.service.wallpaper.WallpaperService; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.preference.PreferenceManager; public final class MainService extends WallpaperService { public static final long frameRate = 30l; @Override public Engine onCreateEngine() { return new SertimusEngine(); } private class SertimusEngine extends Engine { private final Object logicLock = new Object(); private boolean touchEnabled; private MainCanvas canv; private LogicThread logicT; private void initSettings() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainService.this); touchEnabled = prefs.getBoolean("pref_key_touch", true); } @Override public void onVisibilityChanged(boolean visible) { if (visible) initSettings(); logicT.setPause(!visible); super.onVisibilityChanged(visible); } @Override public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height) { if (canv == null && logicT == null) { canv = new MainCanvas(getApplicationContext(), holder, R.drawable.tile_grass_optimized); new Sertimus(canv); for (int x=0; x < 20; x++) { new GrassStrands(canv); } logicT = new LogicThread(canv, logicLock); logicT.paused = false; } else { logicT.onSurfaceChanged(width, height); } super.onSurfaceChanged(holder, format, width, height); } @Override public void onSurfaceDestroyed(SurfaceHolder holder) { logicT.finish(); logicT = null; super.onSurfaceDestroyed(holder); } @Override public void onTouchEvent(MotionEvent event) { if (touchEnabled) logicT.queueMotionEvent(event); super.onTouchEvent(event); } } }