Merge "Stop observing death of PrintManager listener when it is removed"
This commit is contained in:
@@ -586,6 +586,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
|
|||||||
PrintJobStateChangeListenerRecord record =
|
PrintJobStateChangeListenerRecord record =
|
||||||
mPrintJobStateChangeListenerRecords.get(i);
|
mPrintJobStateChangeListenerRecords.get(i);
|
||||||
if (record.listener.asBinder().equals(listener.asBinder())) {
|
if (record.listener.asBinder().equals(listener.asBinder())) {
|
||||||
|
record.destroy();
|
||||||
mPrintJobStateChangeListenerRecords.remove(i);
|
mPrintJobStateChangeListenerRecords.remove(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -628,6 +629,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
|
|||||||
ListenerRecord<IPrintServicesChangeListener> record =
|
ListenerRecord<IPrintServicesChangeListener> record =
|
||||||
mPrintServicesChangeListenerRecords.get(i);
|
mPrintServicesChangeListenerRecords.get(i);
|
||||||
if (record.listener.asBinder().equals(listener.asBinder())) {
|
if (record.listener.asBinder().equals(listener.asBinder())) {
|
||||||
|
record.destroy();
|
||||||
mPrintServicesChangeListenerRecords.remove(i);
|
mPrintServicesChangeListenerRecords.remove(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -675,6 +677,7 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
|
|||||||
ListenerRecord<IRecommendationsChangeListener> record =
|
ListenerRecord<IRecommendationsChangeListener> record =
|
||||||
mPrintServiceRecommendationsChangeListenerRecords.get(i);
|
mPrintServiceRecommendationsChangeListenerRecords.get(i);
|
||||||
if (record.listener.asBinder().equals(listener.asBinder())) {
|
if (record.listener.asBinder().equals(listener.asBinder())) {
|
||||||
|
record.destroy();
|
||||||
mPrintServiceRecommendationsChangeListenerRecords.remove(i);
|
mPrintServiceRecommendationsChangeListenerRecords.remove(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1222,6 +1225,10 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
|
|||||||
listener.asBinder().linkToDeath(this, 0);
|
listener.asBinder().linkToDeath(this, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void destroy() {
|
||||||
|
listener.asBinder().unlinkToDeath(this, 0);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void binderDied() {
|
public void binderDied() {
|
||||||
listener.asBinder().unlinkToDeath(this, 0);
|
listener.asBinder().unlinkToDeath(this, 0);
|
||||||
@@ -1239,6 +1246,10 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks,
|
|||||||
listener.asBinder().linkToDeath(this, 0);
|
listener.asBinder().linkToDeath(this, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void destroy() {
|
||||||
|
listener.asBinder().unlinkToDeath(this, 0);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void binderDied() {
|
public void binderDied() {
|
||||||
listener.asBinder().unlinkToDeath(this, 0);
|
listener.asBinder().unlinkToDeath(this, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user