summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2014-09-12 13:55:30 -0700
committerSvetoslav <svetoslavganov@google.com>2014-09-12 13:55:35 -0700
commit2fb64a5cb160a2615f07ed669aa5738dbb74ad6c (patch)
treeceed98760d8d6a039db2695c6b89e6237f8a4943 /packages
parent139ba7fb0ed976bdbc7c283e3f7fe9980eed22a6 (diff)
downloadframeworks_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.xml3
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java20
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();
}
}
}