@@ -74,6 +74,9 @@ internal class MainActivity : AppCompatActivity() {
74
74
75
75
private var chooseAudioDeviceAlertDialog: AlertDialog ? = null
76
76
77
+ // Need to save reference of delegate (because in sdk delegate is Weak Reference)
78
+ private val availableRoutesChangedDelegate = createAvailableRoutesChangedDelegate()
79
+
77
80
override fun onCreate (savedInstanceState : Bundle ? ) {
78
81
super .onCreate(savedInstanceState)
79
82
@@ -92,6 +95,23 @@ internal class MainActivity : AppCompatActivity() {
92
95
}
93
96
}
94
97
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
+
95
115
private fun initPeerList () {
96
116
adapter = RemotePeerAdapter (layoutInflater)
97
117
binding?.remotePeerList?.layoutManager =
@@ -301,21 +321,8 @@ internal class MainActivity : AppCompatActivity() {
301
321
}
302
322
303
323
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
+ )
319
326
}
320
327
321
328
private fun connectToChannel (
0 commit comments