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:
Hyundo Moon
2020-06-15 09:45:58 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 4 deletions

View File

@@ -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)) {

View File

@@ -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);