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) {
|
void updatePreferredFeatures(String packageName, List<String> preferredFeatures) {
|
||||||
|
if (preferredFeatures == null) {
|
||||||
|
mPreferredFeaturesMap.remove(packageName);
|
||||||
|
return;
|
||||||
|
}
|
||||||
List<String> prevFeatures = mPreferredFeaturesMap.put(packageName, preferredFeatures);
|
List<String> prevFeatures = mPreferredFeaturesMap.put(packageName, preferredFeatures);
|
||||||
if ((prevFeatures == null && preferredFeatures.size() == 0)
|
if ((prevFeatures == null && preferredFeatures.size() == 0)
|
||||||
|| Objects.equals(preferredFeatures, prevFeatures)) {
|
|| Objects.equals(preferredFeatures, prevFeatures)) {
|
||||||
|
|||||||
@@ -598,6 +598,10 @@ class MediaRouter2ServiceImpl {
|
|||||||
|
|
||||||
UserRecord userRecord = routerRecord.mUserRecord;
|
UserRecord userRecord = routerRecord.mUserRecord;
|
||||||
userRecord.mRouterRecords.remove(routerRecord);
|
userRecord.mRouterRecords.remove(routerRecord);
|
||||||
|
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
|
obtainMessage(UserHandler::notifyPreferredFeaturesChangedToManagers,
|
||||||
|
routerRecord.mUserRecord.mHandler,
|
||||||
|
routerRecord.mPackageName, /* preferredFeatures=*/ null));
|
||||||
userRecord.mHandler.sendMessage(
|
userRecord.mHandler.sendMessage(
|
||||||
obtainMessage(UserHandler::updateDiscoveryPreferenceOnHandler,
|
obtainMessage(UserHandler::updateDiscoveryPreferenceOnHandler,
|
||||||
userRecord.mHandler));
|
userRecord.mHandler));
|
||||||
@@ -613,7 +617,9 @@ class MediaRouter2ServiceImpl {
|
|||||||
routerRecord.mDiscoveryPreference = discoveryRequest;
|
routerRecord.mDiscoveryPreference = discoveryRequest;
|
||||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
obtainMessage(UserHandler::notifyPreferredFeaturesChangedToManagers,
|
obtainMessage(UserHandler::notifyPreferredFeaturesChangedToManagers,
|
||||||
routerRecord.mUserRecord.mHandler, routerRecord));
|
routerRecord.mUserRecord.mHandler,
|
||||||
|
routerRecord.mPackageName,
|
||||||
|
routerRecord.mDiscoveryPreference.getPreferredFeatures()));
|
||||||
routerRecord.mUserRecord.mHandler.sendMessage(
|
routerRecord.mUserRecord.mHandler.sendMessage(
|
||||||
obtainMessage(UserHandler::updateDiscoveryPreferenceOnHandler,
|
obtainMessage(UserHandler::updateDiscoveryPreferenceOnHandler,
|
||||||
routerRecord.mUserRecord.mHandler));
|
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();
|
MediaRouter2ServiceImpl service = mServiceRef.get();
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
return;
|
return;
|
||||||
@@ -1967,8 +1974,7 @@ class MediaRouter2ServiceImpl {
|
|||||||
}
|
}
|
||||||
for (IMediaRouter2Manager manager : managers) {
|
for (IMediaRouter2Manager manager : managers) {
|
||||||
try {
|
try {
|
||||||
manager.notifyPreferredFeaturesChanged(routerRecord.mPackageName,
|
manager.notifyPreferredFeaturesChanged(routerPackageName, preferredFeatures);
|
||||||
routerRecord.mDiscoveryPreference.getPreferredFeatures());
|
|
||||||
} catch (RemoteException ex) {
|
} catch (RemoteException ex) {
|
||||||
Slog.w(TAG, "Failed to notify preferred features changed."
|
Slog.w(TAG, "Failed to notify preferred features changed."
|
||||||
+ " Manager probably died.", ex);
|
+ " Manager probably died.", ex);
|
||||||
|
|||||||
Reference in New Issue
Block a user