Merge "Stop observing death of PrintManager listener when it is removed"

This commit is contained in:
Treehugger Robot
2017-11-13 20:42:09 +00:00
committed by Gerrit Code Review

View File

@@ -586,6 +586,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;
}
@@ -628,6 +629,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;
}
@@ -675,6 +677,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;
}
@@ -1222,6 +1225,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);
@@ -1239,6 +1246,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);