diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2015-02-17 19:07:39 +0900 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-02-23 10:10:24 +0100 |
commit | a17c13e279bc2e5352fdc788d48b802034b206d8 (patch) | |
tree | d37755eaf65d435e75f182fc69ab3fa4843a07a7 /android/experimental/LOAndroid3/src/java/org/mozilla | |
parent | dc14b540e9b90d046e108132ad93a631e88f550a (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.java | 11 |
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) { |