summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-01-15 15:57:46 +0900
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-01-16 13:18:31 +0100
commit4712db6bb77d4bf8135339b9de4619faa505be3d (patch)
tree0d4b4574b31924a7dcc670406dd22584a3964579 /android
parent7cb282b02cc83e127485c162728650f45f75fe9d (diff)
android: add onTrimMemory to ComposedTileLayer
Change-Id: I9c85aa5de1495e16ec67f68043784c661c2b66ab
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ComposedTileLayer.java33
1 files changed, 31 insertions, 2 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ComposedTileLayer.java b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ComposedTileLayer.java
index 37b1aeb2b00c..512559f7b4e8 100644
--- a/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ComposedTileLayer.java
+++ b/android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ComposedTileLayer.java
@@ -1,6 +1,9 @@
package org.mozilla.gecko.gfx;
+import android.app.ActivityManager;
+import android.content.ComponentCallbacks2;
import android.content.Context;
+import android.content.res.Configuration;
import android.graphics.RectF;
import android.graphics.Region;
import android.util.Log;
@@ -15,7 +18,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
-public abstract class ComposedTileLayer extends Layer {
+public abstract class ComposedTileLayer extends Layer implements ComponentCallbacks2 {
private static final String LOGTAG = ComposedTileLayer.class.getSimpleName();
protected final List<SubTile> tiles = new CopyOnWriteArrayList<SubTile>();
@@ -24,7 +27,13 @@ public abstract class ComposedTileLayer extends Layer {
protected RectF currentViewport = new RectF();
protected float currentZoom;
+ private static int getMemoryClass(Context context) {
+ ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
+ return activityManager.getMemoryClass() * 1024 * 1024;
+ }
+
public ComposedTileLayer(Context context) {
+ context.registerComponentCallbacks(this);
this.tileSize = new IntSize(256, 256);
}
@@ -185,7 +194,7 @@ public abstract class ComposedTileLayer extends Layer {
private void markTiles(ImmutableViewportMetrics viewportMetrics) {
float zoom = getZoom(viewportMetrics);
for (SubTile tile : tiles) {
- if (FloatUtils.fuzzyEquals(tile.id.zoom, zoom)) {
+ if (FloatUtils.fuzzyEquals(tile.id.zoom, currentZoom)) {
RectF tileRect = tile.id.getRect();
if (!RectF.intersects(currentViewport, tileRect)) {
tile.markForRemoval();
@@ -222,4 +231,24 @@ public abstract class ComposedTileLayer extends Layer {
}
}
}
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ }
+
+ @Override
+ public void onLowMemory() {
+ Log.i(LOGTAG, "onLowMemory");
+ }
+
+ @Override
+ public void onTrimMemory(int level) {
+ Log.i(LOGTAG, "Trimming memory " + level);
+ if (level >= 10 /*TRIM_MEMORY_RUNNING_LOW*/) {
+ Log.i(LOGTAG, "Trimming memory - TRIM_MEMORY_RUNNING_LOW");
+ } else if (level >= 15 /*TRIM_MEMORY_RUNNING_CRITICAL*/) {
+ Log.i(LOGTAG, "Trimming memory - TRIM_MEMORY_RUNNING_CRITICAL");
+ clearAndReset();
+ }
+ }
} \ No newline at end of file