summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2014-09-16 06:19:58 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-16 06:19:59 +0000
commite3cdd4dc6cc3188d5d1fdecb37798e49887f6d5f (patch)
tree311ea8a913e059480d15082dd5938f56773fb652 /packages
parentdc524b714ee67dcd1aca42c49125f443f0e8f699 (diff)
parentf3f963b0bebea91b17f7e60d9b826c458bfde38c (diff)
downloadframeworks_base-e3cdd4dc6cc3188d5d1fdecb37798e49887f6d5f.zip
frameworks_base-e3cdd4dc6cc3188d5d1fdecb37798e49887f6d5f.tar.gz
frameworks_base-e3cdd4dc6cc3188d5d1fdecb37798e49887f6d5f.tar.bz2
Merge "Missing or wrong pages in preview when scorlling large docs." into lmp-dev
Diffstat (limited to 'packages')
-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);
}