@@ -123,18 +123,17 @@ async fn async_main(
123123 Ok ( device) => {
124124 let name = device. name ( ) . await ?. unwrap_or_else ( || "Unknown" . to_string ( ) ) ;
125125 info ! ( "Found connected AirPods: {}, initializing." , name) ;
126- let ui_tx_clone = ui_tx. clone ( ) ;
127- ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( device. address ( ) . to_string ( ) ) ) . unwrap ( ) ;
128- let airpods_device = AirPodsDevice :: new ( device. address ( ) , tray_handle. clone ( ) , ui_tx_clone) . await ;
126+ let airpods_device = AirPodsDevice :: new ( device. address ( ) , tray_handle. clone ( ) , ui_tx. clone ( ) ) . await ;
129127
130128 let mut managers = device_managers. write ( ) . await ;
129+ // let dev_managers = DeviceManagers::with_both(airpods_device.aacp_manager.clone(), airpods_device.att_manager.clone());
131130 let dev_managers = DeviceManagers :: with_aacp ( airpods_device. aacp_manager . clone ( ) ) ;
132131 managers
133132 . entry ( device. address ( ) . to_string ( ) )
134133 . or_insert ( dev_managers)
135- . set_aacp ( airpods_device. aacp_manager )
136- ;
137- drop ( managers )
134+ . set_aacp ( airpods_device. aacp_manager ) ;
135+ drop ( managers ) ;
136+ ui_tx . send ( BluetoothUIMessage :: DeviceConnected ( device . address ( ) . to_string ( ) ) ) . unwrap ( ) ;
138137 }
139138 Err ( _) => {
140139 info ! ( "No connected AirPods found." ) ;
@@ -150,16 +149,16 @@ async fn async_main(
150149 let ui_tx_clone = ui_tx. clone ( ) ;
151150 let device_managers = device_managers. clone ( ) ;
152151 tokio:: spawn ( async move {
153- ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( addr_str. clone ( ) ) ) . unwrap ( ) ;
154152 let mut managers = device_managers. write ( ) . await ;
155153 match type_ {
156154 devices:: enums:: DeviceType :: Nothing => {
157- let dev = devices:: nothing:: NothingDevice :: new ( device. address ( ) , ui_tx_clone) . await ;
155+ let dev = devices:: nothing:: NothingDevice :: new ( device. address ( ) , ui_tx_clone. clone ( ) ) . await ;
158156 let dev_managers = DeviceManagers :: with_att ( dev. att_manager . clone ( ) ) ;
159157 managers
160- . entry ( addr_str)
158+ . entry ( addr_str. clone ( ) )
161159 . or_insert ( dev_managers)
162160 . set_att ( dev. att_manager ) ;
161+ ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( addr_str) ) . unwrap ( ) ;
163162 }
164163 _ => { }
165164 }
@@ -212,14 +211,14 @@ async fn async_main(
212211 let device_managers = device_managers. clone ( ) ;
213212 tokio:: spawn ( async move {
214213 let mut managers = device_managers. write ( ) . await ;
215- ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( addr_str. clone ( ) ) ) . unwrap ( ) ;
216- let dev = devices:: nothing:: NothingDevice :: new ( addr, ui_tx_clone) . await ;
214+ let dev = devices:: nothing:: NothingDevice :: new ( addr, ui_tx_clone. clone ( ) ) . await ;
217215 let dev_managers = DeviceManagers :: with_att ( dev. att_manager . clone ( ) ) ;
218216 managers
219- . entry ( addr_str)
217+ . entry ( addr_str. clone ( ) )
220218 . or_insert ( dev_managers)
221219 . set_att ( dev. att_manager ) ;
222220 drop ( managers) ;
221+ ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( addr_str. clone ( ) ) ) . unwrap ( ) ;
223222 } ) ;
224223 }
225224 _ => { }
@@ -236,15 +235,16 @@ async fn async_main(
236235 let ui_tx_clone = ui_tx. clone ( ) ;
237236 let device_managers = device_managers. clone ( ) ;
238237 tokio:: spawn ( async move {
239- ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( addr_str. clone ( ) ) ) . unwrap ( ) ;
240- let airpods_device = AirPodsDevice :: new ( addr, handle_clone, ui_tx_clone) . await ;
238+ let airpods_device = AirPodsDevice :: new ( addr, handle_clone, ui_tx_clone. clone ( ) ) . await ;
241239 let mut managers = device_managers. write ( ) . await ;
240+ // let dev_managers = DeviceManagers::with_both(airpods_device.aacp_manager.clone(), airpods_device.att_manager.clone());
242241 let dev_managers = DeviceManagers :: with_aacp ( airpods_device. aacp_manager . clone ( ) ) ;
243242 managers
244- . entry ( addr_str)
243+ . entry ( addr_str. clone ( ) )
245244 . or_insert ( dev_managers)
246245 . set_aacp ( airpods_device. aacp_manager ) ;
247246 drop ( managers) ;
247+ ui_tx_clone. send ( BluetoothUIMessage :: DeviceConnected ( addr_str. clone ( ) ) ) . unwrap ( ) ;
248248 } ) ;
249249 true
250250 } ) ?;
0 commit comments