package Ġcom . in fin um . coll ar . ui . presentation Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġcom . in fin um . coll ar . ui . Build Config Ċ import Ġcom . in fin um . coll ar . ui . domain . Domain Ċ import Ġcom . in fin um . coll ar . ui . presentation . notifications . in app . In App Notification Factory Ċ import Ġcom . in fin um . coll ar . ui . presentation . notifications . system . System Notification Factory Ċ import Ġorg . k oin . android x . view model . dsl . viewModel Ċ import Ġorg . k oin . core . module . Module Ċ import Ġorg . k oin . dsl . module Ċ import Ġtim ber . log . Tim ber Ċ Ċ @ Suppress Lint (" Static Field Leak ") Ċ internal Ġobject ĠPresentation Ġ{ ĊĊĠĠĠ Ġobject ĠConstants Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFORMAT _ DATETIME Ġ= Ġ" dd . MM . yyyy . ĠHH : mm : ss " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFORMAT _ ITEM _ DATETIME Ġ= Ġ" HH : mm : ss " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMIME _ TYPE _ TEXT Ġ= Ġ" text / plain " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ ENTITY _ TYPE Ġ= Ġ" KEY _ ENTITY _ TYPE " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ ENTITY _ TIMESTAMP Ġ= Ġ" KEY _ ENTITY _ TIMESTAMP " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ ENTITY _ NAME Ġ= Ġ" KEY _ ENTITY _ NAME " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ ENTITY _ PARAMETERS Ġ= Ġ" KEY _ ENTITY _ PARAMETERS " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ ENTITY _ VALUE Ġ= Ġ" KEY _ ENTITY _ VALUE " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ FILTER _ SCREEN S Ġ= Ġ" KEY _ FILTER _ SCREEN S " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ FILTER _ EVENTS Ġ= Ġ" KEY _ FILTER _ EVENTS " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ FILTER _ PROPERTIES Ġ= Ġ" KEY _ FILTER _ PROPERTIES " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ SETTINGS _ SYSTEM _ NOTIFICATION S Ġ= Ġ" KEY _ SETTINGS _ SYSTEM _ NOTIFICATION S " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ SETTINGS _ IN _ APP _ NOTIFICATION S Ġ= Ġ" KEY _ SETTINGS _ IN _ APP _ NOTIFICATION S " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ REQUEST _ FILTER S _ AP PLY Ġ= Ġ" KEY _ REQUEST _ FILTER S _ AP PLY " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ REQUEST _ SETTINGS _ AP PLY Ġ= Ġ" KEY _ REQUEST _ SETTINGS _ AP PLY " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ REQUEST _ CLEAR Ġ= Ġ" KEY _ REQUEST _ CLEAR " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . plant ( Tim ber . Debug Tree ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlaunch Intent : ĠIntent ĊĊĠĠĠ Ġfun Ġinit ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . launch Intent Ġ= ĠIntent ( this . context , ĠCol lar Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlaunch Intent () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: context . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Intent ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNullPointerException (" Presentation Ġcontext Ġhas Ġnot Ġbeen Ġinitialized .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( this :: context . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( launch Intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNullPointerException (" Presentation Ġcontext Ġhas Ġnot Ġbeen Ġinitialized .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmodules (): ĠList < Module > Ġ= ĊĠĠĠĠĠĠĠ ĠDomain . modules (). plus ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotifications (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Models () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġnotifications () Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠSystem Notification Factory ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠIn App Notification Factory ( get ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġview Models () Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ{ ĠCol lar ViewModel ( get (), Ġget ()) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ