diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java index 0bec21755d4f4..a4555f18fb59a 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +++ b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java @@ -64,9 +64,6 @@ public final class PageContentRepository { private final CloseGuard mCloseGuard = CloseGuard.get(); - private final ArrayMap mPageContentProviders = - new ArrayMap<>(); - private final AsyncRenderer mRenderer; private RenderSpec mLastRenderSpec; @@ -141,10 +138,6 @@ public final class PageContentRepository { return mRenderer.getPageCount(); } - public PageContentProvider peekPageContentProvider(int pageIndex) { - return mPageContentProviders.get(pageIndex); - } - public PageContentProvider acquirePageContentProvider(int pageIndex, View owner) { throwIfDestroyed(); @@ -152,15 +145,7 @@ public final class PageContentRepository { Log.i(LOG_TAG, "Acquiring provider for page: " + pageIndex); } - if (mPageContentProviders.get(pageIndex)!= null) { - throw new IllegalStateException("Already acquired for page: " + pageIndex); - } - - PageContentProvider provider = new PageContentProvider(pageIndex, owner); - - mPageContentProviders.put(pageIndex, provider); - - return provider; + return new PageContentProvider(pageIndex, owner); } public void releasePageContentProvider(PageContentProvider provider) { @@ -170,10 +155,6 @@ public final class PageContentRepository { Log.i(LOG_TAG, "Releasing provider for page: " + provider.mPageIndex); } - if (mPageContentProviders.remove(provider.mPageIndex) == null) { - throw new IllegalStateException("Not acquired"); - } - provider.cancelLoad(); } diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java index 84bbc2769261e..da8160ac81417 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java @@ -274,8 +274,7 @@ public final class PageAdapter extends Adapter implements @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View page = mLayoutInflater.inflate(R.layout.preview_page, parent, false); - ViewHolder holder = new MyViewHolder(page); - return holder; + return new MyViewHolder(page); } @Override @@ -313,14 +312,8 @@ public final class PageAdapter extends Adapter implements + ", pageIndexInFile: " + pageIndexInFile); } - // OK, there are bugs in recycler view which tries to bind views - // without recycling them which would give us a chance to clean up. - PageContentProvider boundProvider = mPageContentRepository - .peekPageContentProvider(pageIndexInFile); - if (boundProvider != null) { - PageContentView owner = (PageContentView) boundProvider.getOwner(); - owner.init(null, mEmptyState, mMediaSize, mMinMargins); - mPageContentRepository.releasePageContentProvider(boundProvider); + if (provider != null && provider.getPageIndex() != pageIndexInFile) { + mPageContentRepository.releasePageContentProvider(provider); } provider = mPageContentRepository.acquirePageContentProvider( @@ -731,7 +724,7 @@ public final class PageAdapter extends Adapter implements private void recyclePageView(PageContentView page, int pageIndexInAdapter) { PageContentProvider provider = page.getPageContentProvider(); if (provider != null) { - page.init(null, null, null, null); + page.init(null, mEmptyState, mMediaSize, mMinMargins); mPageContentRepository.releasePageContentProvider(provider); } mBoundPagesInAdapter.remove(pageIndexInAdapter);