package Ġcom . qu ittle . a 1 1 y ally . lifecycle Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mediator LiveData Ċ Ċ /** Ċ Ġ* ĠAn Ġam al gam Ġof ĠLive Data Ġwhose Ġvalue Ġis Ġtrue Ġif Ġall Ġits Ġsources Ġare Ġtrue . ĠOtherwise Ġit 's Ġvalue Ġis Ċ Ġ* Ġfalse . ĠIf Ġno Ġsources Ġare Ġspecified , Ġthen Ġit Ġresolves Ġto Ġfalse Ċ Ġ*/ Ċ class ĠAll True LiveData ( var arg Ġsources : ĠLive Data < Boolean >) Ġ: ĠMed iator LiveData < Boolean >() Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdata Map : ĠMap < LiveData < Boolean >, ĠBoolean > ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . data Map Ġ= Ġmutable Map Of () ĊĠĠĠĠĠĠĠ Ġfor Ġ( source Ġin Ġsources ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . add Source ( source ) Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . data Map [ source ] Ġ= Ġv ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġcalculate Value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . data Map [ source ] Ġ= Ġsource . value !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġcalculate Value () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcalculate Value (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . data Map . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ! this . data Map . contains Value ( false ) ĊĠĠĠ Ġ} Ċ } Ċ