Loading packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +10 −6 Original line number Diff line number Diff line Loading @@ -110,13 +110,13 @@ public final class PageContentRepository { mRenderer.close(callback); } public void destroy() { public void destroy(Runnable callback) { throwIfNotClosed(); mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } doDestroy(); doDestroy(callback); } public void startPreload(int firstShownPage, int lastShownPage) { Loading Loading @@ -163,19 +163,19 @@ public final class PageContentRepository { try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); doDestroy(); doDestroy(null); } } finally { super.finalize(); } } private void doDestroy() { private void doDestroy(Runnable callback) { mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } mRenderer.destroy(); mRenderer.destroy(callback); } private void throwIfNotOpened() { Loading Loading @@ -536,7 +536,7 @@ public final class PageContentRepository { }.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR); } public void destroy() { public void destroy(final Runnable callback) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Loading @@ -551,6 +551,10 @@ public final class PageContentRepository { } mPageContentCache.invalidate(); mPageContentCache.clear(); if (callback != null) { callback.run(); } } }.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR); } Loading packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +5 −5 Original line number Diff line number Diff line Loading @@ -488,9 +488,9 @@ public final class PageAdapter extends Adapter implements return selectedPages; } public void destroy() { public void destroy(Runnable callback) { throwIfNotClosed(); doDestroy(); doDestroy(callback); } @Override Loading @@ -498,7 +498,7 @@ public final class PageAdapter extends Adapter implements try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); doDestroy(); doDestroy(null); } } finally { super.finalize(); Loading Loading @@ -745,8 +745,8 @@ public final class PageAdapter extends Adapter implements mPageContentRepository.stopPreload(); } private void doDestroy() { mPageContentRepository.destroy(); private void doDestroy(Runnable callback) { mPageContentRepository.destroy(callback); mCloseGuard.close(); mState = STATE_DESTROYED; if (DEBUG) { Loading packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +8 −2 Original line number Diff line number Diff line Loading @@ -1562,13 +1562,19 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat if (mState != STATE_INITIALIZING) { mProgressMessageController.cancel(); mPrinterRegistry.setTrackedPrinter(null); mPrintPreviewController.destroy(); mSpoolerProvider.destroy(); mPrintedDocument.finish(); mPrintedDocument.destroy(); mPrintPreviewController.destroy(new Runnable() { @Override public void run() { finish(); } }); } else { finish(); } } private final class SpinnerItem<T> { final T value; Loading packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java +10 −5 Original line number Diff line number Diff line Loading @@ -192,12 +192,15 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba }); } public void destroy() { public void destroy(Runnable callback) { if (mPageAdapter.isOpened()) { mPageAdapter.close(null); Message operation = mHandler.obtainMessage(MyHandler.MSG_CLOSE); mHandler.enqueueOperation(operation); } mRecyclerView.setAdapter(null); mPageAdapter.destroy(); Message operation = mHandler.obtainMessage(MyHandler.MSG_DESTROY); operation.obj = callback; mHandler.enqueueOperation(operation); } @Override Loading Loading @@ -292,7 +295,9 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba } break; case MSG_DESTROY: { mPageAdapter.destroy(); Runnable callback = (Runnable) message.obj; mRecyclerView.setAdapter(null); mPageAdapter.destroy(callback); handleNextOperation(); } break; Loading Loading
packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +10 −6 Original line number Diff line number Diff line Loading @@ -110,13 +110,13 @@ public final class PageContentRepository { mRenderer.close(callback); } public void destroy() { public void destroy(Runnable callback) { throwIfNotClosed(); mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } doDestroy(); doDestroy(callback); } public void startPreload(int firstShownPage, int lastShownPage) { Loading Loading @@ -163,19 +163,19 @@ public final class PageContentRepository { try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); doDestroy(); doDestroy(null); } } finally { super.finalize(); } } private void doDestroy() { private void doDestroy(Runnable callback) { mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } mRenderer.destroy(); mRenderer.destroy(callback); } private void throwIfNotOpened() { Loading Loading @@ -536,7 +536,7 @@ public final class PageContentRepository { }.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR); } public void destroy() { public void destroy(final Runnable callback) { new AsyncTask<Void, Void, Void>() { @Override protected Void doInBackground(Void... params) { Loading @@ -551,6 +551,10 @@ public final class PageContentRepository { } mPageContentCache.invalidate(); mPageContentCache.clear(); if (callback != null) { callback.run(); } } }.executeOnExecutor(AsyncTask.SERIAL_EXECUTOR); } Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +5 −5 Original line number Diff line number Diff line Loading @@ -488,9 +488,9 @@ public final class PageAdapter extends Adapter implements return selectedPages; } public void destroy() { public void destroy(Runnable callback) { throwIfNotClosed(); doDestroy(); doDestroy(callback); } @Override Loading @@ -498,7 +498,7 @@ public final class PageAdapter extends Adapter implements try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); doDestroy(); doDestroy(null); } } finally { super.finalize(); Loading Loading @@ -745,8 +745,8 @@ public final class PageAdapter extends Adapter implements mPageContentRepository.stopPreload(); } private void doDestroy() { mPageContentRepository.destroy(); private void doDestroy(Runnable callback) { mPageContentRepository.destroy(callback); mCloseGuard.close(); mState = STATE_DESTROYED; if (DEBUG) { Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +8 −2 Original line number Diff line number Diff line Loading @@ -1562,13 +1562,19 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat if (mState != STATE_INITIALIZING) { mProgressMessageController.cancel(); mPrinterRegistry.setTrackedPrinter(null); mPrintPreviewController.destroy(); mSpoolerProvider.destroy(); mPrintedDocument.finish(); mPrintedDocument.destroy(); mPrintPreviewController.destroy(new Runnable() { @Override public void run() { finish(); } }); } else { finish(); } } private final class SpinnerItem<T> { final T value; Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PrintPreviewController.java +10 −5 Original line number Diff line number Diff line Loading @@ -192,12 +192,15 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba }); } public void destroy() { public void destroy(Runnable callback) { if (mPageAdapter.isOpened()) { mPageAdapter.close(null); Message operation = mHandler.obtainMessage(MyHandler.MSG_CLOSE); mHandler.enqueueOperation(operation); } mRecyclerView.setAdapter(null); mPageAdapter.destroy(); Message operation = mHandler.obtainMessage(MyHandler.MSG_DESTROY); operation.obj = callback; mHandler.enqueueOperation(operation); } @Override Loading Loading @@ -292,7 +295,9 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba } break; case MSG_DESTROY: { mPageAdapter.destroy(); Runnable callback = (Runnable) message.obj; mRecyclerView.setAdapter(null); mPageAdapter.destroy(callback); handleNextOperation(); } break; Loading