Merge "Unregister from the remote renderer only if bound." into lmp-dev
diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java
index cd2ccbd..06cba21 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/model/PageContentRepository.java
@@ -451,6 +451,8 @@
@GuardedBy("mLock")
private IPdfRenderer mRenderer;
+ private boolean mBoundToService;
+
public AsyncRenderer(Context context, OnMalformedPdfFileListener malformedPdfFileListener) {
mContext = context;
mOnMalformedPdfFileListener = malformedPdfFileListener;
@@ -463,6 +465,7 @@
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
+ mBoundToService = true;
synchronized (mLock) {
mRenderer = IPdfRenderer.Stub.asInterface(service);
mLock.notifyAll();
@@ -559,7 +562,10 @@
@Override
public void onPostExecute(Void result) {
- mContext.unbindService(AsyncRenderer.this);
+ if (mBoundToService) {
+ mBoundToService = false;
+ mContext.unbindService(AsyncRenderer.this);
+ }
mPageContentCache.invalidate();
mPageContentCache.clear();
}