package Ġorg . ny pl . simpl ified . viewer . ep ub . read ium 2 Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Application Info Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . webkit . WebView Ċ import Ġandroidx . annotation . Ui Thread Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġorg . joda . time . LocalDateTime Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Bookmark Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Command Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Controller Type Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Bookmark Event . SR 2 Bookmark Created Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Bookmark Event . SR 2 Bookmark Deleted Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Bookmark Event . SR 2 Book marks Loaded Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Command Event . SR 2 Command Event Completed . SR 2 Command Execution Failed Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Command Event . SR 2 Command Event Completed . SR 2 Command Execution Succeeded Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Command Event . SR 2 Command Execution Running Long Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Command Event . SR 2 Command Execution Started Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Error . SR 2 Chapter Non existent Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Event . SR 2 Error . SR 2 WebView In accessible Ċ import Ġorg . library simpl ified . r 2 . api . SR 2 Locator Ċ import Ġorg . library simpl ified . r 2 . van illa . SR 2 Controllers Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Controller Reference Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader Fragment Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader Fragment Factory Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader Parameters Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader View Event Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader View Event . SR 2 Reader View Book Event . SR 2 Book Loading Failed Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader View Event . SR 2 Reader ViewController Event . SR 2 Controller B ec ame Available Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader View Event . SR 2 Reader View Navigation Event . SR 2 Reader View Navigation Close Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader View Event . SR 2 Reader View Navigation Event . SR 2 Reader View Navigation Open TOC Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader ViewModel Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 Reader ViewModel Factory Ċ import Ġorg . library simpl ified . r 2 . views . SR 2 TO CF ragment Ċ import Ġorg . library simpl ified . services . api . Services Ċ import Ġorg . ny pl . dr m . core . A dobe A dept File Asset Ċ import Ġorg . ny pl . dr m . core . Axis Now File Asset Ċ import Ġorg . ny pl . dr m . core . Content Protection Provider Ċ import Ġorg . ny pl . simpl ified . accounts . database . api . Account Type Ċ import Ġorg . ny pl . simpl ified . analytics . api . Analytics Event Ċ import Ġorg . ny pl . simpl ified . analytics . api . Analytics Type Ċ import Ġorg . ny pl . simpl ified . books . api . Book DRM Information Ċ import Ġorg . ny pl . simpl ified . profiles . controller . api . Profiles Controller Type Ċ import Ġorg . ny pl . simpl ified . reader . bookmarks . api . Reader Bookmark ServiceType Ċ import Ġorg . ny pl . simpl ified . ui . thread . api . UIT hread ServiceType Ċ import Ġorg . read ium . r 2 . shared . publication . asset . File Asset Ċ import Ġorg . read ium . r 2 . streamer . Stream er Ċ import Ġorg . read ium . r 2 . streamer . parser . ep ub . E pub Parser Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util . Service Loader Ċ import Ġjava . util . concurrent . ExecutionException Ċ Ċ /** Ċ Ġ* ĠThe Ġmain Ġreader Ġactivity Ġfor Ġreading Ġan ĠE PUB Ġusing ĠRead ium Ġ 2 . Ċ Ġ*/ Ċ Ċ class ĠReader 2 Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠARG _ PARAMETERS Ġ= ĊĠĠĠĠĠ Ġ" org . ny pl . simpl ified . viewer . ep ub . read ium 2 . Reader Activity 2 . parameters " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStart Ġa Ġnew Ġreader Ġfor Ġthe Ġgiven Ġbook . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġfun ĠstartActivity ( ĊĠĠĠĠĠ Ġcontext : ĠActivity , ĊĠĠĠĠĠ Ġparameters : ĠReader 2 Activity Parameters ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠReader 2 Activity :: class . java ) ĊĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . put Serializable ( this @ Companion . ARG _ PARAMETERS , Ġparameters ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġintent . put Extras ( bundle ) ĊĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġlogger Ġ= ĊĠĠĠ ĠLoggerFactory . getLogger ( Reader 2 Activity :: class . java ) ĊĊĠ Ġprivate Ġlateinit Ġvar Ġaccount : ĠAccount Type ĊĠ Ġprivate Ġlateinit Ġvar Ġanalytics Service : ĠAnalytics Type ĊĠ Ġprivate Ġlateinit Ġvar Ġbookmark Service : ĠReader Bookmark ServiceType ĊĠ Ġprivate Ġlateinit Ġvar Ġcontent Protection Providers : ĠList < Content Protection Provider > ĊĠ Ġprivate Ġlateinit Ġvar Ġparameters : ĠReader 2 Activity Parameters ĊĠ Ġprivate Ġlateinit Ġvar Ġprofiles Controller : ĠPro files Controller Type ĊĠ Ġprivate Ġlateinit Ġvar Ġreader Book marks : ĠReader Bookmark ServiceType ĊĠ Ġprivate Ġlateinit Ġvar Ġreader Fragment Factory : ĠSR 2 Reader Fragment Factory ĊĠ Ġprivate Ġlateinit Ġvar Ġui Thread : ĠUIT hread ServiceType ĊĠ Ġprivate Ġvar Ġcontroller : ĠSR 2 Controller Type ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġcontroller Subscription : ĠDis posable ? Ġ= Ġnull ĊĠ Ġprivate Ġvar Ġview Subscription : ĠDis posable ? Ġ= Ġnull ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠEnable Ġweb view Ġdebugging Ġfor Ġdebug Ġbuilds ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġif Ġ(( this . application Info . flags Ġand ĠApplication Info . FLAG _ DEBUG G ABLE ) Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠ ĠWebView . set Web Contents Debugging Enabled ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġservices Ġ= ĠServices . service Directory () ĊĊĠĠĠ Ġthis . analytics Service Ġ= ĊĠĠĠĠĠ Ġservices . require Service ( Analytics Type :: class . java ) ĊĠĠĠ Ġthis . bookmark Service Ġ= ĊĠĠĠĠĠ Ġservices . require Service ( Reader Bookmark ServiceType :: class . java ) ĊĠĠĠ Ġthis . profiles Controller Ġ= ĊĠĠĠĠĠ Ġservices . require Service ( Profiles Controller Type :: class . java ) ĊĠĠĠ Ġthis . reader Book marks Ġ= ĊĠĠĠĠĠ Ġservices . require Service ( Reader Bookmark ServiceType :: class . java ) ĊĠĠĠ Ġthis . ui Thread Ġ= ĊĠĠĠĠĠ Ġservices . require Service ( UIT hread ServiceType :: class . java ) ĊĠĠĠ Ġthis . content Protection Providers Ġ= ĊĠĠĠĠĠ ĠService Loader . load ( Content Protection Provider :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. toList () ĊĊĠĠĠ Ġthis . logger . debug (" loaded Ġ{} Ġcontent Ġprotection Ġproviders ", Ġthis . content Protection Providers . size ) ĊĠĠĠ Ġthis . content Protection Providers . forEach Indexed Ġ{ Ġindex , Ġprovider Ġ-> ĊĠĠĠĠĠ Ġthis . logger . debug ("[ {}] Ġavailable Ġprovider Ġ{}", Ġindex , Ġprovider . java Class . canonical Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġintent Ġ= ĊĠĠĠĠĠ Ġthis . intent Ġ?: Ġthrow ĠIllegalStateException (" Reader Activity 2 Ġrequires Ġan Ġintent ") ĊĠĠĠ Ġval Ġextras Ġ= ĊĠĠĠĠĠ Ġintent . extras Ġ?: Ġthrow ĠIllegalStateException (" Reader Activity 2 ĠIntent Ġlack s Ġparameters ") ĊĊĠĠĠ Ġthis . parameters Ġ= ĊĠĠĠĠĠ Ġextras . get Serializable ( ARG _ PARAMETERS ) Ġas ĠReader 2 Activity Parameters ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġthis . account Ġ= ĊĠĠĠĠĠĠĠ Ġthis . profiles Controller . profile Current () ĊĠĠĠĠĠĠĠĠĠ Ġ. account ( this . parameters . accountId ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġthis . logger . error (" unable Ġto Ġlocate Ġaccount : Ġ", Ġe ) ĊĠĠĠĠĠ Ġthis . finish () ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġthis . set ContentView ( R . layout . reader 2 ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġthis . start Reader () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġthis . controller Subscription ?. dispose () ĊĠĠĠ Ġthis . view Subscription ?. dispose () ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠIf Ġthe Ġactivity Ġis Ġfinish ing , Ġsend Ġan Ġanalytics Ġevent . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġif Ġ( this . is Finish ing ) Ġ{ ĊĠĠĠĠĠ Ġval Ġprofile Ġ= Ġthis . profiles Controller . profile Current () ĊĊĠĠĠĠĠ Ġthis . analytics Service . publish Event ( ĊĠĠĠĠĠĠĠ ĠAnalytics Event . Book Closed ( ĊĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ= Ġthis . account . login State . credentials , ĊĠĠĠĠĠĠĠĠĠ Ġprofile UUID Ġ= Ġprofile . id . uuid , ĊĠĠĠĠĠĠĠĠĠ Ġaccount Provider Ġ= Ġthis . account . provider . id , ĊĠĠĠĠĠĠĠĠĠ Ġaccount UUID Ġ= Ġthis . account . id . uuid , ĊĠĠĠĠĠĠĠĠĠ Ġop ds Entry Ġ= Ġthis . parameters . entry . feed Entry ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠStart Ġthe Ġreader Ġwith Ġthe Ġgiven ĠE PUB . ĊĠĠ Ġ*/ ĊĊĠ Ġ@ Ui Thread ĊĠ Ġprivate Ġfun Ġstart Reader () Ġ{ ĊĠĠĠ Ġthis . ui Thread . check Is UIT hread () ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠInstantiate Ġany Ġcontent Ġprotection s Ġthat Ġmight Ġbe Ġneeded Ġfor ĠD RM ... ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġcontent Protection s Ġ= ĊĠĠĠĠĠ Ġthis . content Protection Providers . map NotNull Ġ{ Ġprovider Ġ-> ĊĠĠĠĠĠĠĠ Ġthis . logger . debug (" inst anti ating Ġcontent Ġprotection Ġprovider Ġ{}", Ġprovider . java Class . canonical Name ) ĊĠĠĠĠĠĠĠ Ġprovider . create ( this ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġstream er Ġ= ĊĠĠĠĠĠ ĠStream er ( ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis , ĊĠĠĠĠĠĠĠ Ġparsers Ġ= ĠlistOf ( E pub Parser ()), ĊĠĠĠĠĠĠĠ Ġcontent Protection s Ġ= Ġcontent Protection s , ĊĠĠĠĠĠĠĠ Ġignore Default Parsers Ġ= Ġtrue ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠLoad Ġthe Ġmost Ġrecently Ġconfigured Ġtheme Ġfrom Ġthe Ġprofile 's Ġpreferences . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġinitial Theme Ġ= ĊĠĠĠĠĠ ĠReader 2 Themes . to SR 2 ( ĊĠĠĠĠĠĠĠ Ġthis . profiles Controller . profile Current () ĊĠĠĠĠĠĠĠĠĠ Ġ. preferences () ĊĠĠĠĠĠĠĠĠĠ Ġ. reader Preferences ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġbook File Ġ= ĊĠĠĠĠĠ Ġwhen Ġ( val Ġdrm Info Ġ= Ġthis . parameters . dr m Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠBook DRM Information . ACS Ġ-> ĊĠĠĠĠĠĠĠĠĠ ĠAdobe A dept File Asset ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Asset Ġ= ĠFile Asset ( this . parameters . file ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa dobe Rights File Ġ= Ġdrm Info . rights ?. first ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġis ĠBook DRM Information . AXIS Ġ-> ĊĠĠĠĠĠĠĠĠĠ ĠAxis Now File Asset ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Asset Ġ= ĠFile Asset ( this . parameters . file ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaxis License Ġ= Ġdrm Info . license , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaxis User Key Ġ= Ġdrm Info . user Key ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠFile Asset ( this . parameters . file ) ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġreader Parameters Ġ= ĊĠĠĠĠĠ ĠSR 2 Reader Parameters ( ĊĠĠĠĠĠĠĠ Ġstream er Ġ= Ġstream er , ĊĠĠĠĠĠĠĠ Ġbook File Ġ= Ġbook File , ĊĠĠĠĠĠĠĠ Ġtheme Ġ= Ġinitial Theme , ĊĠĠĠĠĠĠĠ Ġcontrollers Ġ= ĠSR 2 Controllers () ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġthis . reader Fragment Factory Ġ= ĊĠĠĠĠĠ ĠSR 2 Reader Fragment Factory ( reader Parameters ) ĊĊĠĠĠ Ġval Ġreader Model Ġ= ĊĠĠĠĠĠ ĠViewModel Provider ( this , ĠSR 2 Reader ViewModel Factory ( reader Parameters )) ĊĠĠĠĠĠĠĠ Ġ. get ( SR 2 Reader ViewModel :: class . java ) ĊĊĠĠĠ Ġthis . view Subscription Ġ= ĊĠĠĠĠĠ Ġreader Model . view Events . subscribe ( this :: on View Event ) ĊĊĠĠĠ Ġthis . support FragmentManager . beginTransaction () ĊĠĠĠĠĠ Ġ. replace ( R . id . reader 2 Fragment Host , Ġthis . reader Fragment Factory . instantiate ( this . class Loader , ĠSR 2 Reader Fragment :: class . java . name )) ĊĠĠĠĠĠ Ġ. commit () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠHandle Ġincoming Ġmessages Ġfrom Ġthe Ġview Ġfragments . ĊĠĠ Ġ*/ ĊĊĠ Ġprivate Ġfun Ġon View Event ( event : ĠSR 2 Reader View Event ) Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠ ĠSR 2 Reader View Navigation Close Ġ-> ĊĠĠĠĠĠĠĠ Ġthis . ui Thread . run On UIT hread Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthis . support FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠSR 2 Reader View Navigation Open TOC Ġ-> ĊĠĠĠĠĠĠĠ Ġthis . ui Thread . run On UIT hread ( this :: open TOC ) ĊĊĠĠĠĠĠ Ġis ĠSR 2 Controller B ec ame Available Ġ-> ĊĠĠĠĠĠĠĠ Ġthis . on Controller B ec ame Available ( event . reference ) ĊĠĠĠĠĠ Ġis ĠSR 2 Book Loading Failed Ġ-> ĊĠĠĠĠĠĠĠ Ġthis . on Book Loading Failed ( event . exception ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġon Controller B ec ame Available ( reference : ĠSR 2 Controller Reference ) Ġ{ ĊĠĠĠ Ġthis . controller Ġ= Ġreference . controller ĊĊĠĠĠ Ġ/* ĊĠĠĠĠ Ġ* ĠSubscribe Ġto Ġmessages Ġfrom Ġthe Ġcontroller . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġthis . controller Subscription Ġ= ĊĠĠĠĠĠ Ġreference . controller . events . subscribe ( this :: on Controller Event ) ĊĊĠĠĠ Ġif Ġ( reference . is First Startup ) Ġ{ ĊĠĠĠĠĠ Ġval Ġbook marks Ġ= ĊĠĠĠĠĠĠĠ ĠReader 2 Book marks . load Book marks ( ĊĠĠĠĠĠĠĠĠĠ Ġbookmark Service Ġ= Ġthis . bookmark Service , ĊĠĠĠĠĠĠĠĠĠ Ġaccount ID Ġ= Ġthis . parameters . accountId , ĊĠĠĠĠĠĠĠĠĠ Ġbook ID Ġ= Ġthis . parameters . book Id , ĊĠĠĠĠĠĠĠĠĠ Ġbook Metadata Ġ= Ġreference . controller . book Metadata ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġval Ġlast Read Ġ= Ġbook marks . find Ġ{ Ġbookmark Ġ-> Ġbookmark . type Ġ== ĠSR 2 Bookmark . Type . LAST _ READ Ġ} ĊĠĠĠĠĠ Ġreference . controller . submit Command ( SR 2 Command . Book marks Load ( bookmarks )) ĊĠĠĠĠĠ Ġif Ġ( last Read Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreference . controller . submit Command ( SR 2 Command . Open Chapter ( last Read . locator )) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġreference . controller . book Metadata . reading Order . first () ĊĠĠĠĠĠĠĠ Ġreference . controller . submit Command ( ĊĠĠĠĠĠĠĠĠĠ ĠSR 2 Command . Open Chapter ( SR 2 Locator . SR 2 Locator Percent ( first . chapter Href , Ġ 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġ// ĠRefresh Ġwhatever Ġthe Ġcontroller Ġwas Ġlooking Ġat Ġpreviously . ĊĠĠĠĠĠ Ġreference . controller . submit Command ( SR 2 Command . Refresh ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠHandle Ġincoming Ġmessages Ġfrom Ġthe Ġcontroller . ĊĠĠ Ġ*/ ĊĊĠ Ġprivate Ġfun Ġon Controller Event ( ĊĠĠĠ Ġevent : ĠSR 2 Event ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠ Ġis ĠSR 2 Bookmark Created Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbookmark Ġ= ĊĠĠĠĠĠĠĠĠĠ ĠReader 2 Book marks . from SR 2 Bookmark ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook Entry Ġ= Ġthis . parameters . entry , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdeviceId Ġ= ĠReader 2 Devices . deviceId ( this . profiles Controller , Ġthis . parameters . book Id ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġevent . bookmark ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġthis . bookmark Service . bookmark Create ( ĊĠĠĠĠĠĠĠĠĠ Ġaccount ID Ġ= Ġthis . parameters . accountId , ĊĠĠĠĠĠĠĠĠĠ Ġbookmark Ġ= Ġbookmark ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġis ĠSR 2 Bookmark Deleted Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbookmark Ġ= ĊĠĠĠĠĠĠĠĠĠ ĠReader 2 Book marks . from SR 2 Bookmark ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook Entry Ġ= Ġthis . parameters . entry , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdeviceId Ġ= ĠReader 2 Devices . deviceId ( this . profiles Controller , Ġthis . parameters . book Id ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġevent . bookmark ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġthis . bookmark Service . bookmark Delete ( ĊĠĠĠĠĠĠĠĠĠ Ġaccount ID Ġ= Ġthis . account . id , ĊĠĠĠĠĠĠĠĠĠ Ġbookmark Ġ= Ġbookmark ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġis ĠSR 2 Event . SR 2 Theme Changed Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . profiles Controller . profile Update Ġ{ Ġcurrent Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġcurrent . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences Ġ= Ġcurrent . preferences . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreader Preferences Ġ= ĠReader 2 Themes . from SR 2 ( event . theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġis ĠSR 2 Event . SR 2 On Center T apped , ĊĠĠĠĠĠ Ġis ĠSR 2 Event . SR 2 Reading Position Changed , ĊĠĠĠĠĠ ĠSR 2 Book marks Loaded , ĊĠĠĠĠĠ Ġis ĠSR 2 Chapter Non existent , ĊĠĠĠĠĠ Ġis ĠSR 2 WebView In accessible , ĊĠĠĠĠĠ Ġis ĠSR 2 Command Execution Started , ĊĠĠĠĠĠ Ġis ĠSR 2 Command Execution Running Long , ĊĠĠĠĠĠ Ġis ĠSR 2 Command Execution Succeeded , ĊĠĠĠĠĠ Ġis ĠSR 2 Command Execution Failed Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNothing ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠOpen Ġthe Ġtable Ġof Ġcontents . ĊĠĠ Ġ*/ ĊĊĠ Ġ@ Ui Thread ĊĠ Ġprivate Ġfun Ġopen TOC () Ġ{ ĊĠĠĠ Ġthis . ui Thread . check Is UIT hread () ĊĊĠĠĠ Ġif Ġ( this . is Finish ing Ġ|| Ġthis . is Destroyed ) Ġ{ ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthis . support FragmentManager . beginTransaction () ĊĠĠĠĠĠ Ġ. replace ( R . id . reader 2 Fragment Host , Ġthis . reader Fragment Factory . instantiate ( this . class Loader , ĠSR 2 TO CF ragment :: class . java . name )) ĊĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠ Ġ. commit () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠLoading Ġa Ġbook Ġfailed . ĊĠĠ Ġ*/ ĊĊĠ Ġprivate Ġfun Ġon Book Loading Failed ( ĊĠĠĠ Ġexception : ĠThrowable ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġthis . ui Thread . run On UIT hread Ġ{ ĊĠĠĠĠĠ Ġval Ġactual Exception Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( exception Ġis ĠExecution Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġexception . cause Ġ?: Ġexception ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġexception ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . book Open Failed Title ) ĊĠĠĠĠĠĠĠ Ġ. setMessage ( this . getString ( R . string . book Open Failed Message , Ġactual Exception . java Class . name , Ġactual Exception . message )) ĊĠĠĠĠĠĠĠ Ġ. setOn Dismiss Listener Ġ{ Ġthis . finish () Ġ} ĊĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ