package Ġcom . mb . scrap book . lib . base . mv vm . view model Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . mb . scrap book . lib . base . common . State Ċ import Ġcom . mb . scrap book . lib . base . mv vm . repository . Base Repository Ċ import Ġcom . mb . scrap book . lib . base . utils . Util Ċ Ċ /** Ċ Ġ* ĠBase ĠViewModel Ċ Ġ* Ġ åħ¨å±Ģ ViewModel çĪ¶ ç±» ï¼Į æĮģ æľīä¸Ģä¸ª Base Repository å¯¹è±¡ ï¼Į åĴĮ ä¸Ģä¸ª åħ¨å±Ģ LiveData çĬ¶æĢģ å¯¹è±¡ Ċ Ġ* Ċ Ġ* Ġ@ author ĠD ong Lin Ċ Ġ* Ġ@ date Ġ 2 0 2 1 / 0 7 / 2 8 Ċ Ġ*/ Ċ open Ġclass ĠBase ViewModel < T : ĠBase Repository >: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¨å±Ģ çĬ¶æĢģ LiveData çĽĳåĲ¬ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġstate Ġby Ġlazy Ġ{ ĠMutable LiveData < State >() Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠéĢļè¿ĩ åıį å°Ħ åĪĽå»º å¯¹åºĶçļĦ repository å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġrepository : ĠT Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ( Util . getClass < T >( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getDeclared Constructor ( Mutable LiveData :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. newInstance ( state ); ĊĠĠĠ Ġ} Ċ Ċ }