package Ġcom . br ays ki y . example . contract Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġcom . br ays ki y . example . Native Bridge . string From JNI Ċ import Ġcom . br ays ki y . example . activity . MainActivity Ċ import Ġcom . br ays ki y . example . base . Base Handler Ċ import Ġcom . br ays ki y . example . base . I Contract Ċ import Ġcom . br ays ki y . example . core . log . Log Ċ import Ġcom . br ays ki y . example . d agger . Io S ched Ċ import Ġcom . br ays ki y . example . d agger . Ui S ched Ċ import Ġcom . br ays ki y . example . models . Movie Details Ċ import Ġcom . br ays ki y . example . rest . Keys Ċ import Ġcom . br ays ki y . example . rest . Mobile Service Ċ import Ġcom . google . gson . Gson Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observer Ċ import Ġio . reactivex . Scheduler Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġbr ays ki y Ġon Ġ 0 1 / 3 1 / 1 9 . Ċ Ġ*/ Ċ Ċ interface ĠMovie Details Activity Contract Ġ{ ĊĠĠĠ Ġinterface ĠI Handler Ġ: ĠI Contract . Handler < I Adapter > Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġget Movie Details ( id : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠI Adapter Ġ: ĠI Contract . Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Movie Details Success ( movie Details : ĠMovie Details ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Movie Details Error ( throwable : ĠThrowable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠHandler Ġ@ Inject Ġinternal Ġconstructor ( private Ġval Ġapplication : ĠApplication , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġshared Preferences : ĠSharedPreferences , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmobile Service : ĠMobile Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Io S ched Ġprivate Ġval Ġio Scheduler : ĠScheduler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Ui S ched Ġprivate Ġval Ġui Scheduler : ĠScheduler ) Ġ: ĠBase Handler < I Adapter >(), ĠI Handler Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" Grant ĠResults : Ġ" Ġ+ Ġgrant Results . size ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Movie Details ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunused Ġ= Ġmobile Service . get Movie Details ( id , ĠKeys . key For ( Keys . Types . the _ movie _ db ), Ġ" videos ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( ui Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( io Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ({ Ġmovie Details Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. on Movie Details Success ( movie Details ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġthrowable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. on Movie Details Error ( throwable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ