salmon-wallpaper/src/fishrungames/mountainwallpaper/MountainWallpaperService.java
2013-02-10 15:24:11 +00:00

233 lines
5.1 KiB
Java

package fishrungames.mountainwallpaper;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
//import com.seb.SLWP.SLWP.GlEngine.DownloadTask;
import fishrungames.engine.EngineWrapper;
public class MountainWallpaperService extends GLWallpaperService implements
OnSharedPreferenceChangeListener {
/*
* (non-Javadoc)
*
* @see android.app.Service#onLowMemory()
*/
static
{
EngineWrapper.LoadSalmonEngineLibrary();
JniWrapper.LoadLibrary();
}
public static final long SLEEPTIME = 1000 * 60 * 30; // 30 minutes
private GlEngine mGle;
public static Context mContext;
public static boolean ShowClouds;
public static boolean TouchRot;
public static int Bg;
public static boolean Usebg;
public static int Tex;
static long Synctime;
public boolean Slidedir;
public boolean Slideplanet;
public boolean Syncrot;
public static boolean Randomtex = true;
public static boolean visible = false;
public static boolean useCropper = true;
public static int Cropaspect;
public static boolean loading = false;
public static final Handler mHandler = new Handler();
public static final int RNDMAP = -1;
public static boolean destroyed;
public static String bgfile;
public ConnectivityManager cm;
public boolean needresume;
public boolean fstart;
public static String[] randlist;
public int curtexidx = -99;
static final String ACTION_FOREGROUND = "fishrungames.mountainwallpaper.FOREGROUND";
static final String ACTION_BACKGROUND = "fishrungames.mountainwallpaper.BACKGROUND";
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this);
EngineWrapper.SetActivityInstance(this);
EngineWrapper.SetupEnviroment();
String apkFilePath = null;
ApplicationInfo appInfo = null;
PackageManager packMgmr = this.getPackageManager();
try {
appInfo = packMgmr.getApplicationInfo("fishrungames.mountainwallpaper", 0);
} catch (NameNotFoundException e) {
e.printStackTrace();
throw new RuntimeException("Unable to locate assets, aborting...");
}
apkFilePath = appInfo.sourceDir;
EngineWrapper.SetupApkFilePath(apkFilePath);
Init();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// handleCommand(intent);
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
private void Init() {
try {
mContext = this;
cm = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.compareToIgnoreCase("Timeofday") == 0)
{
int time = Integer.parseInt(sharedPreferences.getString("Timeofday", "0"));
JniWrapper.SetTimeOfDayPref(time);
}
if (key.compareToIgnoreCase("Snow") == 0) {
JniWrapper.SetSnowPref(sharedPreferences.getBoolean("Snow", false));
}
}
@Override
public Engine onCreateEngine() {
if (mGle != null) {
mGle = null;
}
try {
mGle = new GlEngine();
} catch (Exception e) {
return null;
}
return mGle;
}
class GlEngine extends GLEngine {
public Handler mHandler = new Handler();
long NOW;
@Override
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
try {
this.setTouchEventsEnabled(true);
fstart = true;
setRenderer();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onTouchEvent(MotionEvent e) {
return;
}
@Override
public void onOffsetsChanged(float xOffset, float yOffset,
float xOffsetStep, float yOffsetStep, int xPixelOffset,
int yPixelOffset) {
super.onOffsetsChanged(xOffset, yOffset, xOffsetStep, yOffsetStep,
xPixelOffset, yPixelOffset);
JniWrapper.SetOffset(xPixelOffset*xOffsetStep, yPixelOffset*yOffsetStep);
}
@Override
public void onVisibilityChanged(boolean visible) {
// TODO Auto-generated method stub
super.onVisibilityChanged(visible);
MountainWallpaperService.visible = visible;
if (visible) {
} else {
}
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onResume() {
super.onResume();
}
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// TODO Auto-generated method stub
super.onSurfaceChanged(holder, format, width, height);
fstart = true;
}
}
}