diff options
author | Svetoslav <svetoslavganov@google.com> | 2014-09-12 13:55:30 -0700 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2014-09-12 13:55:35 -0700 |
commit | 2fb64a5cb160a2615f07ed669aa5738dbb74ad6c (patch) | |
tree | ceed98760d8d6a039db2695c6b89e6237f8a4943 /packages | |
parent | 139ba7fb0ed976bdbc7c283e3f7fe9980eed22a6 (diff) | |
download | frameworks_base-2fb64a5cb160a2615f07ed669aa5738dbb74ad6c.zip frameworks_base-2fb64a5cb160a2615f07ed669aa5738dbb74ad6c.tar.gz frameworks_base-2fb64a5cb160a2615f07ed669aa5738dbb74ad6c.tar.bz2 |
Fix crash in spooler if printing app dies.
bug:16966145
Change-Id: I092c489a7f1b4000a96d3f12f2996ccabf734b9a
Diffstat (limited to 'packages')
-rw-r--r-- | packages/PrintSpooler/AndroidManifest.xml | 3 | ||||
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java | 20 |
2 files changed, 13 insertions, 10 deletions
diff --git a/packages/PrintSpooler/AndroidManifest.xml b/packages/PrintSpooler/AndroidManifest.xml index adff596..c7cf61a 100644 --- a/packages/PrintSpooler/AndroidManifest.xml +++ b/packages/PrintSpooler/AndroidManifest.xml @@ -55,7 +55,8 @@ <service android:name=".renderer.PdfManipulationService" - android:isolatedProcess="true"> + android:isolatedProcess="true" + android:process=":renderer"> </service> <activity diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java index 239f006..429437d 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java +++ b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java @@ -135,7 +135,7 @@ public final class RemotePrintDocument { private final DeathRecipient mDeathRecipient = new DeathRecipient() { @Override public void binderDied() { - mAdapterDeathObserver.onDied(); + notifyPrintingAppDied(); } }; @@ -180,7 +180,6 @@ public final class RemotePrintDocument { } catch (RemoteException re) { Log.e(LOG_TAG, "Error calling start()", re); mState = STATE_FAILED; - mAdapterDeathObserver.onDied(); } } @@ -269,7 +268,6 @@ public final class RemotePrintDocument { } catch (RemoteException re) { Log.e(LOG_TAG, "Error calling finish()", re); mState = STATE_FAILED; - mAdapterDeathObserver.onDied(); } } @@ -1108,6 +1106,15 @@ public final class RemotePrintDocument { } } + private void notifyPrintingAppDied() { + new Handler(mLooper).post(new Runnable() { + @Override + public void run() { + mAdapterDeathObserver.onDied(); + } + }); + } + private static final class PrintDocumentAdapterObserver extends IPrintDocumentAdapterObserver.Stub { private final WeakReference<RemotePrintDocument> mWeakDocument; @@ -1120,12 +1127,7 @@ public final class RemotePrintDocument { public void onDestroy() { final RemotePrintDocument document = mWeakDocument.get(); if (document != null) { - new Handler(document.mLooper).post(new Runnable() { - @Override - public void run() { - document.mAdapterDeathObserver.onDied(); - } - }); + document.notifyPrintingAppDied(); } } } |