Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0859cd48 authored by Iván Budnik's avatar Iván Budnik Committed by Android (Google) Code Review
Browse files

Merge "Add flag for MediaRouter2-based InfoMediaManager" into main

parents f99706cc 6f3bd5f8
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ android_library {
        "setupdesign",
        "zxing-core-1.7",
        "androidx.room_room-runtime",
        "settingslib_flags_lib",

    ],

@@ -88,3 +89,16 @@ java_defaults {
        "SettingsLib",
    ],
}

aconfig_declarations {
    name: "settingslib_media_flags",
    package: "com.android.settingslib.media.flags",
    srcs: [
        "aconfig/settingslib_media_flag_declarations.aconfig",
    ],
}

java_aconfig_library {
    name: "settingslib_flags_lib",
    aconfig_declarations: "settingslib_media_flags",
}
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.settingslib">

    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />

    <application>
        <activity
            android:name="com.android.settingslib.users.AvatarPickerActivity"
+8 −0
Original line number Diff line number Diff line
package: "com.android.settingslib.media.flags"

flag {
  name: "use_media_router2_for_info_media_manager"
  namespace: "placeholder_namespace"
  description: "Gates whether to use a MediaRouter2-based implementation of InfoMediaManager, instead of the legacy MediaRouter2Manager-based implementation."
  bug: "192657812"
}
 No newline at end of file
+23 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ import androidx.annotation.RequiresApi;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.media.flags.Flags;

import java.util.ArrayList;
import java.util.Collections;
@@ -105,6 +106,28 @@ public abstract class InfoMediaManager extends MediaManager {
        }
    }

    /** Creates an instance of InfoMediaManager. */
    public static InfoMediaManager createInstance(
            Context context,
            String packageName,
            Notification notification,
            LocalBluetoothManager localBluetoothManager) {
        if (Flags.useMediaRouter2ForInfoMediaManager()) {
            try {
                return new RouterInfoMediaManager(
                        context, packageName, notification, localBluetoothManager);
            } catch (PackageNotAvailableException ex) {
                // TODO: b/293578081 - Propagate this exception to callers for proper handling.
                Log.w(TAG, "Returning a no-op InfoMediaManager for package " + packageName);
                return new NoOpInfoMediaManager(
                        context, packageName, notification, localBluetoothManager);
            }
        } else {
            return new ManagerInfoMediaManager(
                    context, packageName, notification, localBluetoothManager);
        }
    }

    @Override
    public void startScan() {
        mMediaDevices.clear();
+1 −1
Original line number Diff line number Diff line
@@ -137,7 +137,7 @@ public class LocalMediaManager implements BluetoothCallback {
        }

        mInfoMediaManager =
                new ManagerInfoMediaManager(
                InfoMediaManager.createInstance(
                        context, packageName, notification, mLocalBluetoothManager);
    }

Loading