Merge "Clear preferred feature when unregistering MediaRouter2" into rvc-dev am: e7ae494759
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11846909 Change-Id: Icfde0ab0b8eea47a504719396bc79d458f094ede
This commit is contained in:
@@ -576,6 +576,10 @@ public final class MediaRouter2Manager {
|
||||
}
|
||||
|
||||
void updatePreferredFeatures(String packageName, List<String> preferredFeatures) {
|
||||
if (preferredFeatures == null) {
|
||||
mPreferredFeaturesMap.remove(packageName);
|
||||
return;
|
||||
}
|
||||
List<String> prevFeatures = mPreferredFeaturesMap.put(packageName, preferredFeatures);
|
||||
if ((prevFeatures == null && preferredFeatures.size() == 0)
|
||||
|| Objects.equals(preferredFeatures, prevFeatures)) {
|
||||
|
||||
@@ -598,6 +598,10 @@ class MediaRouter2ServiceImpl {
|
||||
|
||||
UserRecord userRecord = routerRecord.mUserRecord;
|
||||
userRecord.mRouterRecords.remove(routerRecord);
|
||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||
obtainMessage(UserHandler::notifyPreferredFeaturesChangedToManagers,
|
||||
routerRecord.mUserRecord.mHandler,
|
||||
routerRecord.mPackageName, /* preferredFeatures=*/ null));
|
||||
userRecord.mHandler.sendMessage(
|
||||
obtainMessage(UserHandler::updateDiscoveryPreferenceOnHandler,
|
||||
userRecord.mHandler));
|
||||
@@ -613,7 +617,9 @@ class MediaRouter2ServiceImpl {
|
||||
routerRecord.mDiscoveryPreference = discoveryRequest;
|
||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||
obtainMessage(UserHandler::notifyPreferredFeaturesChangedToManagers,
|
||||
routerRecord.mUserRecord.mHandler, routerRecord));
|
||||
routerRecord.mUserRecord.mHandler,
|
||||
routerRecord.mPackageName,
|
||||
routerRecord.mDiscoveryPreference.getPreferredFeatures()));
|
||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||
obtainMessage(UserHandler::updateDiscoveryPreferenceOnHandler,
|
||||
routerRecord.mUserRecord.mHandler));
|
||||
@@ -1954,7 +1960,8 @@ class MediaRouter2ServiceImpl {
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyPreferredFeaturesChangedToManagers(@NonNull RouterRecord routerRecord) {
|
||||
private void notifyPreferredFeaturesChangedToManagers(@NonNull String routerPackageName,
|
||||
@Nullable List<String> preferredFeatures) {
|
||||
MediaRouter2ServiceImpl service = mServiceRef.get();
|
||||
if (service == null) {
|
||||
return;
|
||||
@@ -1967,8 +1974,7 @@ class MediaRouter2ServiceImpl {
|
||||
}
|
||||
for (IMediaRouter2Manager manager : managers) {
|
||||
try {
|
||||
manager.notifyPreferredFeaturesChanged(routerRecord.mPackageName,
|
||||
routerRecord.mDiscoveryPreference.getPreferredFeatures());
|
||||
manager.notifyPreferredFeaturesChanged(routerPackageName, preferredFeatures);
|
||||
} catch (RemoteException ex) {
|
||||
Slog.w(TAG, "Failed to notify preferred features changed."
|
||||
+ " Manager probably died.", ex);
|
||||
|
||||
Reference in New Issue
Block a user