Merge "Missing or wrong pages in preview when scorlling large docs." into lmp-dev
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user