summaryrefslogtreecommitdiff
path: root/android/experimental/LOAndroid3/src/java/org/mozilla
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-02-17 19:07:39 +0900
committerMiklos Vajna <vmiklos@collabora.co.uk>2015-02-23 10:10:24 +0100
commita17c13e279bc2e5352fdc788d48b802034b206d8 (patch)
treed37755eaf65d435e75f182fc69ab3fa4843a07a7 /android/experimental/LOAndroid3/src/java/org/mozilla
parentdc14b540e9b90d046e108132ad93a631e88f550a (diff)
android: create SubTile right away to reduce tile change events
Change-Id: Idbc18a721c482fccd80d9c7da00f5f5dca1a864c
Diffstat (limited to 'android/experimental/LOAndroid3/src/java/org/mozilla')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/mozilla/gecko/gfx/ComposedTileLayer.java11
1 files changed, 8 insertions, 3 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 1dee5de1cd34..ae7f98ae45ca 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
@@ -27,7 +27,7 @@ public abstract class ComposedTileLayer extends Layer implements ComponentCallba
protected float currentZoom;
private final ReadWriteLock tilesReadWriteLock = new ReentrantReadWriteLock();
- private final Lock tilesReadLock = tilesReadWriteLock.readLock();
+ private final Lock tilesReadLock = tilesReadWriteLock.readLock();
private final Lock tilesWriteLock = tilesReadWriteLock.writeLock();
public ComposedTileLayer(Context context) {
@@ -177,6 +177,7 @@ public abstract class ComposedTileLayer extends Layer implements ComponentCallba
}
private void addNewTiles(RectF pageRect) {
+ beginTransaction();
for (float y = currentViewport.top; y < currentViewport.bottom; y += tileSize.height) {
if (y > pageRect.height()) {
continue;
@@ -187,10 +188,12 @@ public abstract class ComposedTileLayer extends Layer implements ComponentCallba
}
if (!containsTilesMatching(x, y, currentZoom)) {
TileIdentifier tileId = new TileIdentifier((int) x, (int) y, currentZoom, tileSize);
- LOKitShell.sendTileRequestEvent(this, tileId, true, getTilePriority());
+ SubTile tile = createNewTile(tileId);
+ LOKitShell.sendTileRequestEvent(this, tile, true, getTilePriority());
}
}
}
+ endTransaction();
}
private void clearMarkedTiles() {
@@ -228,11 +231,13 @@ public abstract class ComposedTileLayer extends Layer implements ComponentCallba
currentViewport = new RectF();
}
- public void addTile(SubTile tile) {
+ private SubTile createNewTile(TileIdentifier tileId) {
+ SubTile tile = new SubTile(tileId);
tile.beginTransaction();
tilesWriteLock.lock();
tiles.add(tile);
tilesWriteLock.unlock();
+ return tile;
}
public boolean isStillValid(TileIdentifier tileId) {