Kaydet (Commit) f7721c73 authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl

android: refresh screenshot correctly, fix rendering at load

Change-Id: I38345399c96764ecc454cc3e6e8f87b5cc5e8fbe
üst 3273a1f3
package org.libreoffice;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.DisplayMetrics;
import android.util.Log;
......@@ -15,11 +14,10 @@ import java.util.concurrent.LinkedBlockingQueue;
public class LOKitThread extends Thread {
private static final String LOGTAG = LOKitThread.class.getSimpleName();
public LinkedBlockingQueue<LOEvent> mEventQueue = new LinkedBlockingQueue<LOEvent>();
private LinkedBlockingQueue<LOEvent> mEventQueue = new LinkedBlockingQueue<LOEvent>();
private LibreOfficeMainActivity mApplication;
private TileProvider mTileProvider;
private ImmutableViewportMetrics mViewportMetrics;
private boolean mCheckboardImageSet = false;
private GeckoLayerClient mLayerClient;
private LayerController mController;
......@@ -36,19 +34,26 @@ public class LOKitThread extends Thread {
GeckoLayerClient layerClient = mApplication.getLayerClient();
layerClient.beginDrawing();
layerClient.reevaluateTiles();
layerClient.endDrawing(mViewportMetrics);
return true;
}
private void refresh() {
Bitmap bitmap = mTileProvider.thumbnail();
if (bitmap != null) {
mApplication.getLayerController().getView().changeCheckerboardBitmap(bitmap, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
}
RectF rect = new RectF(0, 0, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
mController.setPageRect(rect, rect);
mController.setForceRedraw();
}
private void changePart(int partIndex) throws InterruptedException {
mTileProvider.changePart(partIndex);
GeckoLayerClient layerClient = mApplication.getLayerClient();
updateCheckbardImage();
LOKitShell.sendEvent(LOEvent.draw(new Rect()));
refresh();
}
private boolean load(String filename) {
......@@ -68,24 +73,11 @@ public class LOKitThread extends Thread {
boolean isReady = mTileProvider.isReady();
if (isReady) {
updateCheckbardImage();
RectF rect = new RectF(0, 0, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
mController.setPageRect(rect, rect);
mController.setForceRedraw();
refresh();
}
return isReady;
}
private void updateCheckbardImage() {
if (!mCheckboardImageSet) {
Bitmap bitmap = mTileProvider.thumbnail();
if (bitmap != null) {
mApplication.getLayerController().getView().changeCheckerboardBitmap(bitmap, mTileProvider.getPageWidth(), mTileProvider.getPageHeight());
mCheckboardImageSet = true;
}
}
}
public void run() {
try {
while (true) {
......
......@@ -322,7 +322,6 @@ public class LayerView extends SurfaceView implements SurfaceHolder.Callback {
}
public void changeCheckerboardBitmap(Bitmap bitmap, float pageWidth, float pageHeight) {
mRenderer.resetCheckerboard();
mRenderer.setCheckerboardBitmap(bitmap, pageWidth, pageHeight);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment