aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2013-08-18 01:42:51 +0200
committerJorge Ruesga <jorge@ruesga.com>2013-08-18 01:42:51 +0200
commit667e0a2fa2a9b643f588b486da474643e2c518d0 (patch)
treeb7b759ba29521d909d0ee57ff10ab5c94137a339
parentc6d121d0fbc08914032a74f509bf9adcd9c88cc1 (diff)
downloadandroid_packages_wallpapers_PhotoPhase-667e0a2fa2a9b643f588b486da474643e2c518d0.tar.gz
android_packages_wallpapers_PhotoPhase-667e0a2fa2a9b643f588b486da474643e2c518d0.tar.bz2
android_packages_wallpapers_PhotoPhase-667e0a2fa2a9b643f588b486da474643e2c518d0.zip
Destroy cached textures when system runs out of resources
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java12
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java11
-rw-r--r--src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java14
3 files changed, 35 insertions, 2 deletions
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java
index 6469a18..973618d 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseActivity.java
@@ -156,4 +156,16 @@ public class PhotoPhaseActivity extends Activity implements OnTouchListener {
}
return false;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onLowMemory() {
+ super.onLowMemory();
+ Log.i(TAG, "onLowMemory");
+ // Pause the wallpaper and destroy the cached textures
+ mRenderer.onPause();
+ mRenderer.onLowMemory();
+ }
}
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
index a101ce0..6523b5d 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseRenderer.java
@@ -203,7 +203,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
}
/**
- * Method called when when renderer is created
+ * Method called when renderer is created
*/
public void onCreate() {
if (DEBUG) Log.d(TAG, "onCreate [" + mInstance + "]");
@@ -221,7 +221,7 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
}
/**
- * Method called when when renderer is destroyed
+ * Method called when renderer is destroyed
*/
public void onDestroy() {
if (DEBUG) Log.d(TAG, "onDestroy [" + mInstance + "]");
@@ -238,6 +238,13 @@ public class PhotoPhaseRenderer implements GLSurfaceView.Renderer {
}
/**
+ * Method called when system runs under low memory
+ */
+ public void onLowMemory() {
+ mTextureManager.emptyTextureQueue(false);
+ }
+
+ /**
* Method called when the renderer should be paused
*/
public void onPause() {
diff --git a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java
index 5a09b49..8385032 100644
--- a/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java
+++ b/src/org/cyanogenmod/wallpapers/photophase/PhotoPhaseWallpaper.java
@@ -165,6 +165,20 @@ public class PhotoPhaseWallpaper
* {@inheritDoc}
*/
@Override
+ public void onLowMemory() {
+ super.onLowMemory();
+ Log.i(TAG, "onLowMemory");
+ for(PhotoPhaseRenderer renderer : mRenderers) {
+ // Pause the wallpaper and destroy the cached textures
+ renderer.onPause();
+ renderer.onLowMemory();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
public void onInitializeEGLView(GLSurfaceView view) {
if (DEBUG) Log.d(TAG, "onInitializeEGLView");
}