summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java14
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java6
2 files changed, 12 insertions, 8 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
index 13eb73f..369c453 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java
@@ -57,7 +57,7 @@ public final class PageAdapter extends Adapter implements
private static final int MAX_PREVIEW_PAGES_BATCH = 50;
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final PageRange[] ALL_PAGES_ARRAY = new PageRange[] {
PageRange.ALL_PAGES
@@ -175,13 +175,19 @@ public final class PageAdapter extends Adapter implements
return mPageContentRepository.getFilePageCount();
}
- public void open(ParcelFileDescriptor source, Runnable callback) {
+ public void open(ParcelFileDescriptor source, final Runnable callback) {
throwIfNotClosed();
mState = STATE_OPENED;
if (DEBUG) {
Log.i(LOG_TAG, "STATE_OPENED");
}
- mPageContentRepository.open(source, callback);
+ mPageContentRepository.open(source, new Runnable() {
+ @Override
+ public void run() {
+ notifyDataSetChanged();
+ callback.run();
+ }
+ });
}
public void update(PageRange[] writtenPages, PageRange[] selectedPages,
@@ -728,8 +734,8 @@ public final class PageAdapter extends Adapter implements
if (provider != null) {
page.init(null, null, null, null);
mPageContentRepository.releasePageContentProvider(provider);
- mBoundPagesInAdapter.remove(pageIndexInAdapter);
}
+ mBoundPagesInAdapter.remove(pageIndexInAdapter);
page.setTag(null);
}
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java
index 5d858ca..b999866 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java
@@ -25,11 +25,9 @@ import android.print.PrintAttributes.MediaSize;
import android.print.PrintAttributes.Margins;
import android.print.PrintDocumentInfo;
import android.support.v7.widget.GridLayoutManager;
-import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.support.v7.widget.RecyclerView.LayoutManager;
-import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import com.android.internal.os.SomeArgs;
import com.android.printspooler.R;
@@ -132,7 +130,7 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba
public void onContentUpdated(boolean documentChanged, int documentPageCount,
PageRange[] writtenPages, PageRange[] selectedPages, MediaSize mediaSize,
Margins minMargins) {
- boolean contentChanged = false;
+ boolean contentChanged = false;
if (documentChanged) {
contentChanged = true;
@@ -153,7 +151,7 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba
// The content changed. In this case we have to invalidate
// all rendered pages and reopen the file...
- if (contentChanged && writtenPages != null) {
+ if ((contentChanged || !mPageAdapter.isOpened()) && writtenPages != null) {
Message operation = mHandler.obtainMessage(MyHandler.MSG_OPEN);
mHandler.enqueueOperation(operation);
}