open-roboe / roboapp

0 stars 0 forks source link

edge cases createregatta #22

Closed robalb closed 1 year ago

robalb commented 1 year ago

Controllare se regata esiste già durante validazione di createregatta,

Disattivare il pulsante createregatta mentre si è in attesa di esito.

Entrambi i casi sopra causano crash

robalb commented 1 year ago

Un oggetto Livedata deve essere osservato per eisistere. getValue all'interno di callback del viewmodel è uno dei pochi casi in cui si può interagire con livedata in maniera non asincrona, e funziona solo perchè i callback si eseguono parecchio dopo che il livedata è stato inizializzato da un observer.

Professionalmente, quando la logica diventa molto asincrona, si utilizza strumenti come RxJava. Noi lo evitiamo percè è piuttosto complesso. Un workaround abbastanza pulito può essere l'osservare solo una volta un livedata, qualcosa come questo https://stackoverflow.com/a/67475127/9169799