diff options
| author | 2017-11-14 12:09:39 +0000 | |
|---|---|---|
| committer | 2017-11-14 12:09:39 +0000 | |
| commit | a9a65af6ac4414b2df2a17bb2d3d5fb9254450c3 (patch) | |
| tree | 340aa5abaa2632189b912c2171c52e1467b73bcb | |
| parent | 9769872de6a7c4ddbb62f7d53dad1712a8d269f7 (diff) | |
| parent | 9e3ff42caa647dc8292dbbdedf177003adf04f40 (diff) | |
Merge "Stop observing death of PrintManager listener when it is removed" am: e7240a52e2 am: 5cb172d17e
am: 9e3ff42caa
Change-Id: I3d643e52e86bbd4ff9bd588fba51fce82fbb35e9
| -rw-r--r-- | services/print/java/com/android/server/print/UserState.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/services/print/java/com/android/server/print/UserState.java b/services/print/java/com/android/server/print/UserState.java index 58833bee1b98..e8ae020c2728 100644 --- a/services/print/java/com/android/server/print/UserState.java +++ b/services/print/java/com/android/server/print/UserState.java @@ -597,6 +597,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, PrintJobStateChangeListenerRecord record = mPrintJobStateChangeListenerRecords.get(i); if (record.listener.asBinder().equals(listener.asBinder())) { + record.destroy(); mPrintJobStateChangeListenerRecords.remove(i); break; } @@ -639,6 +640,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, ListenerRecord<IPrintServicesChangeListener> record = mPrintServicesChangeListenerRecords.get(i); if (record.listener.asBinder().equals(listener.asBinder())) { + record.destroy(); mPrintServicesChangeListenerRecords.remove(i); break; } @@ -686,6 +688,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, ListenerRecord<IRecommendationsChangeListener> record = mPrintServiceRecommendationsChangeListenerRecords.get(i); if (record.listener.asBinder().equals(listener.asBinder())) { + record.destroy(); mPrintServiceRecommendationsChangeListenerRecords.remove(i); break; } @@ -1285,6 +1288,10 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, listener.asBinder().linkToDeath(this, 0); } + public void destroy() { + listener.asBinder().unlinkToDeath(this, 0); + } + @Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); @@ -1302,6 +1309,10 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks, listener.asBinder().linkToDeath(this, 0); } + public void destroy() { + listener.asBinder().unlinkToDeath(this, 0); + } + @Override public void binderDied() { listener.asBinder().unlinkToDeath(this, 0); |