am 88025747: am 42f75e9f: Merge "Missing or wrong pages in preview when scorlling large docs." into lmp-dev

* commit '8802574776cd5c5f94c771c02dfdbf62b0fa79b3':
  Missing or wrong pages in preview when scorlling large docs.
This commit is contained in:
Svetoslav
2014-09-16 09:00:12 +00:00
committed by Android Git Automerger
2 changed files with 12 additions and 8 deletions

View File

@@ -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);
}

View File

@@ -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);
}