package Ġcom . world line . he li os . sample app . ui . app Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġcom . rus sh w olf . settings . Android Settings Ċ import Ġcom . word line . he li os . reward ing . sdk . Rew arding Sdk Ċ import Ġcom . word line . he li os . reward ing . sdk . Rew arding Sdk Impl Ċ import Ġcom . word line . he li os . reward ing . sdk . data . datasource . local . Common Local DataSource Ċ import Ġcom . word line . he li os . reward ing . sdk . data . datasource . local . Local DataSource Ċ import Ġcom . word line . he li os . reward ing . sdk . data . datasource . remote . Common Remote DataSource Ċ import Ġcom . word line . he li os . reward ing . sdk . data . datasource . remote . Remote DataSource Ċ import Ġcom . word line . he li os . reward ing . sdk . data . repository . Common Repository Ċ import Ġcom . word line . he li os . reward ing . sdk . data . repository . Repository Ċ import Ġcom . world line . he li os . sample app . ui . error . ErrorHandler Ċ import Ġcom . world line . he li os . sample app . ui . executor . Executor Ċ import Ġorg . kode in . di . K ode in Ċ import Ġorg . kode in . di . K ode in Aware Ċ import Ġorg . kode in . di . generic . bind Ċ import Ġorg . kode in . di . generic . instance Ċ import Ġorg . kode in . di . generic . singleton Ċ Ċ class ĠApp Ġ: ĠApplication (), ĠK ode in Aware Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġk ode in Ġby ĠK ode in . lazy Ġ{ ĊĠĠĠĠĠĠĠ Ġimport ( app Module ( this @ App )) ĊĠĠĠĠĠĠĠ Ġimport ( domain Module ) ĊĠĠĠĠĠĠĠ Ġimport ( data Module ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ ĠRew arding Sdk Impl . init ( this , Ġ" https :// devel 3 . temp os 2 1 . com ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġapp Module ( context : ĠContext ) Ġ= ĠK ode in . Module (" app Module ") Ġ{ ĊĠĠĠ Ġbind < Context >() Ġwith Ġsingleton Ġ{ Ġcontext Ġ} ĊĠĠĠ Ġbind < Executor >() Ġwith Ġsingleton Ġ{ ĠExecutor () Ġ} ĊĠĠĠ Ġbind < ErrorHandler >() Ġwith Ġsingleton Ġ{ ĠError Handler ( context ) Ġ} Ċ } Ċ Ċ val Ġdomain Module Ġ= ĠK ode in . Module (" domain Module ") Ġ{ ĊĠĠĠ Ġbind < Repository >() Ġwith Ġsingleton Ġ{ ĠCommon Repository ( remote Ġ= Ġinstance (), Ġlocal Ġ= Ġinstance ()) Ġ} Ċ } Ċ Ċ val Ġdata Module Ġ= ĠK ode in . Module (" data Module ") Ġ{ ĊĠĠĠ Ġbind < Rew arding Sdk >() Ġwith Ġsingleton Ġ{ ĠRew arding Sdk Impl () Ġ} ĊĠĠĠ Ġbind < Remote DataSource >() Ġwith Ġsingleton Ġ{ ĠCommon Remote DataSource ( local DataSource Ġ= Ġinstance (), Ġend Point Ġ= Ġinstance ()) Ġ} ĊĠĠĠ Ġbind < Local DataSource >() Ġwith Ġsingleton Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext Ġ= Ġinstance () ĊĠĠĠĠĠĠĠ ĠCommon Local DataSource ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAndroid Settings ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . get SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" bd ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval ĠACT IVITY _ MODULE Ġ= Ġ" activity Module " Ċ