summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2014-09-12 23:22:46 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-12 23:22:46 +0000
commiteb652db16f5e03b32b062710fb3b11629be3b150 (patch)
tree6af3643b75452f9db83886a4a2e17819750f57c4
parent34c5a6205afcbf0b6480df3a35deb1a16a3eac1b (diff)
parentba46eb6b6d19e9ab8d2efa0990d056bbfc56a8be (diff)
downloadframeworks_base-eb652db16f5e03b32b062710fb3b11629be3b150.zip
frameworks_base-eb652db16f5e03b32b062710fb3b11629be3b150.tar.gz
frameworks_base-eb652db16f5e03b32b062710fb3b11629be3b150.tar.bz2
am 376926b7: am 60eed0e5: Merge "Fix crash in spooler if printing app dies." into lmp-dev
* commit '376926b7010b848fc22631a7274eb7bcf2078a0b': Fix crash in spooler if printing app dies.
-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();
}
}
}