Loading packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +20 −6 Original line number Diff line number Diff line Loading @@ -106,12 +106,26 @@ public final class PageContentRepository { mRenderer.close(callback); } public void destroy() { public void destroy(final Runnable callback) { if (mState == STATE_OPENED) { close(new Runnable() { @Override public void run() { destroy(callback); } }); return; } mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } mRenderer.destroy(); if (callback != null) { callback.run(); } } public void startPreload(int firstShownPage, int lastShownPage) { Loading Loading @@ -158,7 +172,7 @@ public final class PageContentRepository { try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); destroy(); destroy(null); } } finally { super.finalize(); Loading Loading @@ -455,6 +469,10 @@ public final class PageContentRepository { public void close(final Runnable callback) { cancelAllRendering(); if (mOpenTask != null) { mOpenTask.cancel(); } new AsyncTask<Void, Void, Void>() { @Override protected void onPreExecute() { Loading Loading @@ -492,10 +510,6 @@ public final class PageContentRepository { mContext.unbindService(AsyncRenderer.this); } if (mOpenTask != null) { mOpenTask.cancel(); } mPageContentCache.invalidate(); mPageContentCache.clear(); mDestroyed = true; Loading packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +3 −3 Original line number Diff line number Diff line Loading @@ -493,13 +493,13 @@ public final class PageAdapter extends Adapter { return selectedPages; } public void destroy() { mPageContentRepository.destroy(); public void destroy(Runnable callback) { mCloseGuard.close(); mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } mPageContentRepository.destroy(callback); } @Override Loading @@ -507,7 +507,7 @@ public final class PageAdapter extends Adapter { try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); destroy(); destroy(null); } } finally { super.finalize(); Loading packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +8 −2 Original line number Diff line number Diff line Loading @@ -1635,10 +1635,16 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat mSpoolerProvider.destroy(); mPrintedDocument.finish(); mPrintedDocument.destroy(); mPrintPreviewController.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 +2 −2 Original line number Diff line number Diff line Loading @@ -192,10 +192,10 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba }); } public void destroy() { public void destroy(Runnable callback) { mHandler.cancelQueuedOperations(); mRecyclerView.setAdapter(null); mPageAdapter.destroy(); mPageAdapter.destroy(callback); } @Override Loading Loading
packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java +20 −6 Original line number Diff line number Diff line Loading @@ -106,12 +106,26 @@ public final class PageContentRepository { mRenderer.close(callback); } public void destroy() { public void destroy(final Runnable callback) { if (mState == STATE_OPENED) { close(new Runnable() { @Override public void run() { destroy(callback); } }); return; } mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } mRenderer.destroy(); if (callback != null) { callback.run(); } } public void startPreload(int firstShownPage, int lastShownPage) { Loading Loading @@ -158,7 +172,7 @@ public final class PageContentRepository { try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); destroy(); destroy(null); } } finally { super.finalize(); Loading Loading @@ -455,6 +469,10 @@ public final class PageContentRepository { public void close(final Runnable callback) { cancelAllRendering(); if (mOpenTask != null) { mOpenTask.cancel(); } new AsyncTask<Void, Void, Void>() { @Override protected void onPreExecute() { Loading Loading @@ -492,10 +510,6 @@ public final class PageContentRepository { mContext.unbindService(AsyncRenderer.this); } if (mOpenTask != null) { mOpenTask.cancel(); } mPageContentCache.invalidate(); mPageContentCache.clear(); mDestroyed = true; Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PageAdapter.java +3 −3 Original line number Diff line number Diff line Loading @@ -493,13 +493,13 @@ public final class PageAdapter extends Adapter { return selectedPages; } public void destroy() { mPageContentRepository.destroy(); public void destroy(Runnable callback) { mCloseGuard.close(); mState = STATE_DESTROYED; if (DEBUG) { Log.i(LOG_TAG, "STATE_DESTROYED"); } mPageContentRepository.destroy(callback); } @Override Loading @@ -507,7 +507,7 @@ public final class PageAdapter extends Adapter { try { if (mState != STATE_DESTROYED) { mCloseGuard.warnIfOpen(); destroy(); destroy(null); } } finally { super.finalize(); Loading
packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +8 −2 Original line number Diff line number Diff line Loading @@ -1635,10 +1635,16 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat mSpoolerProvider.destroy(); mPrintedDocument.finish(); mPrintedDocument.destroy(); mPrintPreviewController.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 +2 −2 Original line number Diff line number Diff line Loading @@ -192,10 +192,10 @@ class PrintPreviewController implements MutexFileProvider.OnReleaseRequestCallba }); } public void destroy() { public void destroy(Runnable callback) { mHandler.cancelQueuedOperations(); mRecyclerView.setAdapter(null); mPageAdapter.destroy(); mPageAdapter.destroy(callback); } @Override Loading