Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8576474

Browse files
committed
Actually using HandlerThread to do rendering
1 parent e6cd56f commit 8576474

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

android-pdf-viewer/src/main/java/com/github/barteksc/pdfviewer/PDFView.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,8 @@ public void loadComplete(PdfDocument pdfDocument) {
686686
if (!renderingHandlerThread.isAlive()) {
687687
renderingHandlerThread.start();
688688
}
689-
renderingHandler = new RenderingHandler(this, pdfiumCore, pdfDocument);
689+
renderingHandler = new RenderingHandler(renderingHandlerThread.getLooper(),
690+
this, pdfiumCore, pdfDocument);
690691

691692
if (scrollHandle != null) {
692693
scrollHandle.setupLayout(this);

android-pdf-viewer/src/main/java/com/github/barteksc/pdfviewer/RenderingHandler.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.graphics.Rect;
2121
import android.graphics.RectF;
2222
import android.os.Handler;
23+
import android.os.Looper;
2324
import android.os.Message;
2425

2526
import com.github.barteksc.pdfviewer.model.PagePart;
@@ -50,7 +51,8 @@ class RenderingHandler extends Handler {
5051
private Matrix renderMatrix = new Matrix();
5152
private final Set<Integer> openedPages = new HashSet<>();
5253

53-
RenderingHandler(PDFView pdfView, PdfiumCore pdfiumCore, PdfDocument pdfDocument) {
54+
RenderingHandler(Looper looper, PDFView pdfView, PdfiumCore pdfiumCore, PdfDocument pdfDocument) {
55+
super(looper);
5456
this.pdfView = pdfView;
5557
this.pdfiumCore = pdfiumCore;
5658
this.pdfDocument = pdfDocument;
@@ -65,9 +67,14 @@ void addRenderingTask(int userPage, int page, float width, float height, RectF b
6567
@Override
6668
public void handleMessage(Message message) {
6769
RenderingTask task = (RenderingTask) message.obj;
68-
PagePart part = proceed(task);
70+
final PagePart part = proceed(task);
6971
if (part != null) {
70-
pdfView.onBitmapRendered(part);
72+
pdfView.post(new Runnable() {
73+
@Override
74+
public void run() {
75+
pdfView.onBitmapRendered(part);
76+
}
77+
});
7178
}
7279
}
7380

0 commit comments

Comments
 (0)