@@ -74,6 +74,9 @@ internal class MainActivity : AppCompatActivity() {
7474
7575 private var chooseAudioDeviceAlertDialog: AlertDialog ? = null
7676
77+ // Need to save reference of delegate (because in sdk delegate is Weak Reference)
78+ private val availableRoutesChangedDelegate = createAvailableRoutesChangedDelegate()
79+
7780 override fun onCreate (savedInstanceState : Bundle ? ) {
7881 super .onCreate(savedInstanceState)
7982
@@ -92,6 +95,23 @@ internal class MainActivity : AppCompatActivity() {
9295 }
9396 }
9497
98+ private fun createAvailableRoutesChangedDelegate (): AudioRouter .AvailableRoutesChangedDelegate =
99+ object : AudioRouter .AvailableRoutesChangedDelegate {
100+ override fun availableRoutesChanged (availableRoutes : List <AudioRoute >) {
101+ chooseAudioDeviceAlertDialog?.listView?.let { alertDialogListView ->
102+ val availableAudioDeviceNames = availableRoutes.map { it.kind.name }
103+ val selectedAudioDeviceIndex = availableRoutes.indexOfFirst { it.isCurrent }
104+
105+ (alertDialogListView.adapter as ? ArrayAdapter <String >)?.apply {
106+ clear()
107+ addAll(availableAudioDeviceNames)
108+ notifyDataSetChanged()
109+ }
110+ alertDialogListView.setItemChecked(selectedAudioDeviceIndex, true )
111+ }
112+ }
113+ }
114+
95115 private fun initPeerList () {
96116 adapter = RemotePeerAdapter (layoutInflater)
97117 binding?.remotePeerList?.layoutManager =
@@ -301,21 +321,8 @@ internal class MainActivity : AppCompatActivity() {
301321 }
302322
303323 liveDigitalEngine?.audioRouter?.setAvailableRoutesChangedDelegate(
304- object : AudioRouter .AvailableRoutesChangedDelegate {
305- override fun availableRoutesChanged (availableRoutes : List <AudioRoute >) {
306- chooseAudioDeviceAlertDialog?.listView?.let { alertDialogListView ->
307- val availableAudioDeviceNames = availableRoutes.map { it.kind.name }
308- val selectedAudioDeviceIndex = availableRoutes.indexOfFirst { it.isCurrent }
309-
310- (alertDialogListView.adapter as ? ArrayAdapter <String >)?.apply {
311- clear()
312- addAll(availableAudioDeviceNames)
313- notifyDataSetChanged()
314- }
315- alertDialogListView.setItemChecked(selectedAudioDeviceIndex, true )
316- }
317- }
318- })
324+ availableRoutesChangedDelegate
325+ )
319326 }
320327
321328 private fun connectToChannel (
0 commit comments