9package org.libreoffice;
11import android.graphics.Bitmap;
12import android.graphics.Color;
13import android.graphics.drawable.ColorDrawable;
14import android.graphics.drawable.Drawable;
15import android.widget.ImageView;
17import java.lang.ref.WeakReference;
29 if (thumbnailCreationTask ==
null) {
33 if (thumbnailCreationTask.partNumber != partNumber) {
34 thumbnailCreationTask.cancel();
42 if (imageView ==
null) {
45 Drawable drawable = imageView.getDrawable();
46 if (drawable instanceof ThumbnailDrawable) {
47 return ((ThumbnailDrawable) drawable).thumbnailCreationTask.get();
55 ThumbnailCreationTask task =
new ThumbnailCreationTask(imageView, partNumber);
56 ThumbnailDrawable thumbnailDrawable =
new ThumbnailDrawable(task);
57 imageView.setImageDrawable(thumbnailDrawable);
63 static class ThumbnailDrawable
extends ColorDrawable {
64 public final WeakReference<ThumbnailCreationTask> thumbnailCreationTask;
66 public ThumbnailDrawable(ThumbnailCreationTask thumbnailCreationTask) {
68 this.thumbnailCreationTask =
new WeakReference<ThumbnailCreationTask>(thumbnailCreationTask);
72 class ThumbnailCreationTask{
73 private final WeakReference<ImageView> imageViewReference;
74 private final int partNumber;
75 private boolean cancelled =
false;
77 public ThumbnailCreationTask(ImageView imageView,
int partNumber) {
78 imageViewReference =
new WeakReference<ImageView>(imageView);
79 this.partNumber = partNumber;
82 public void cancel() {
86 public Bitmap getThumbnail(TileProvider tileProvider) {
87 int currentPart = tileProvider.getCurrentPartNumber();
88 tileProvider.changePart(partNumber);
90 tileProvider.changePart(currentPart);
94 private void changeBitmap(Bitmap bitmap) {
99 if (imageViewReference ==
null) {
102 ImageView imageView = imageViewReference.get();
104 if (
this == thumbnailCreationTask) {
105 imageView.setImageBitmap(bitmap);
109 public void applyBitmap(
final Bitmap bitmap) {
111 LibreOfficeApplication.getMainHandler().post(
new Runnable() {
114 changeBitmap(bitmap);
Common static LOKit functions, functions to send events.
static void sendThumbnailEvent(ThumbnailCreator.ThumbnailCreationTask task)
Create thumbnails for the parts of the document.
static final int THUMBNAIL_SIZE
static final String LOG_TAG
static boolean needsThumbnailCreation(int partNumber, ImageView imageView)
static ThumbnailCreationTask currentThumbnailCreationTask(ImageView imageView)
void createThumbnail(int partNumber, ImageView imageView)
def run(arg=None, arg2=-1)