package Ġmust af ao zh an . github . com . andro cat . base Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġmust af ao zh an . github . com . andro cat . application . Application Ċ import Ġmust af ao zh an . github . com . andro cat . d agger . component . ViewModel Component Ċ import Ġmust af ao zh an . github . com . andro cat . tools . DataManager Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠMust afa ĠO zh an Ġon Ġ 2 0 1 8 - 0 7 - 2 2 . Ċ Ġ*/ Ċ abstract Ġclass ĠBase ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprotected Ġval ĠviewModel Component : ĠViewModel Component Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠApplication . instance . component . viewModel Component () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdata Manager : ĠData Manager ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinject () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinject () ĊĊĠĠĠ Ġprotected Ġfun Ġget Settings () Ġ= Ġdata Manager . load Settings () ĊĊĠĠĠ Ġprotected Ġfun Ġupdate Settings ( ĊĠĠĠĠĠĠĠ Ġdark Mode : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ= Ġdata Manager . update Settings ( dark Mode ) Ċ }