diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-01-15 15:57:46 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-16 13:18:31 +0100 |
commit | 4712db6bb77d4bf8135339b9de4619faa505be3d (patch) | |
tree | 0d4b4574b31924a7dcc670406dd22584a3964579 /android | |
parent | 7cb282b02cc83e127485c162728650f45f75fe9d (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.java | 33 |
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 |