package Ġcom . battle l ancer . series guide . shows . episodes Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences . On Shared Preference ChangeListener Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . core . content . edit Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġandroidx . view pager 2 . widget . ViewPager 2 Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġcom . battle l ancer . series guide . R Ċ import Ġcom . battle l ancer . series guide . jobs . episodes . Base Episode s Job Ċ import Ġcom . battle l ancer . series guide . notifications . Notification Service Ċ import Ġcom . battle l ancer . series guide . shows . overview . Season Tools Ċ import Ġcom . battle l ancer . series guide . ui . Base Message Activity Ċ import Ġcom . battle l ancer . series guide . ui . Overview Activity Ċ import Ġcom . battle l ancer . series guide . util . Image Tools Ċ import Ġcom . battle l ancer . series guide . util . Text Tools Ċ import Ġcom . battle l ancer . series guide . util . Theme Utils . setDefault Style Ċ import Ġcom . uw et rott mann . series guide . widgets . Sl iding Tab Layout Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ Ċ /** Ċ Ġ* ĠHost s Ġa Ġfragment Ġwhich Ġdisplays Ġepisode s Ġof Ġa Ġseason Ġin Ġa Ġlist Ġand Ġin Ġa Ġview Ġpager . Ċ Ġ* ĠOn Ġsmall Ġscreens Ġonly Ġone Ġis Ġvisible Ġat Ġa Ġtime , Ġon Ġlarger Ġscreens Ġthey Ġare Ġshown Ġside - by - side . Ċ Ġ*/ Ċ class ĠEp isode s Activity Ġ: ĠBase Message Activity () Ġ{ ĊĊĠĠĠ Ġ@ BindView ( R . id . fragment _ episodes ) ĊĠĠĠ Ġlateinit Ġvar Ġcontainer List : ĠViewGroup ĊĠĠĠ Ġ@ BindView ( R . id . container Episode s Pager ) ĊĠĠĠ Ġ@ Jvm Field ĊĠĠĠ Ġvar Ġcontainer Pager : ĠViewGroup ? Ġ= Ġnull ĊĠĠĠ Ġ@ BindView ( R . id . pager Episode s ) ĊĠĠĠ Ġlateinit Ġvar Ġepisode Details Pager : ĠView Pager 2 ĊĠĠĠ Ġ@ BindView ( R . id . tabs Episode s ) ĊĠĠĠ Ġlateinit Ġvar Ġepisode Details Tabs : ĠSl iding Tab Layout ĊĠĠĠ Ġ@ BindView ( R . id . imageView Episode s Background ) ĊĠĠĠ Ġlateinit Ġvar Ġbackground ImageView : ĠImageView ĊĊĠĠĠ Ġprivate Ġvar Ġepisode s List Fragment : ĠEp isode s Fragment ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġepisode Details Adapter : ĠEp isode Pager Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠEp isode s Activity ViewModel ĊĠĠĠ Ġprivate Ġvar Ġshow Id : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġseason Id : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġ/** ĠKeep s Ġlist Ġvisibility Ġeven Ġin Ġmulti - pane Ġview . Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġis List Visible In Single Pane View : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ/** ĠRe members Ġif Ġpager Ġwas Ġshown Ġdue Ġto Ġtap Ġon Ġlist Ġitem . Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġhas T apped Item In Single Pane View : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġlist Ġand Ġpager Ġare Ġdisplayed Ġside - by - side , Ġor Ġtoggle able Ġone Ġor Ġthe Ġother . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġis Single Pane View : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcontainer Pager Ġ!= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġis List G one : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġcontainer List . visibility Ġ== ĠView . GONE ĊĊĠĠĠ Ġprivate Ġval Ġis View ing Season : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġintent . has Extra ( EXTRA _ LONG _ SE ASON _ ID ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ episodes ) ĊĠĠĠĠĠĠĠ Ġsetup ActionBar () ĊĊĠĠĠĠĠĠĠ Ġ// Ġif Ġcoming Ġfrom Ġa Ġnotification , Ġset Ġlast Ġcleared Ġtime ĊĠĠĠĠĠĠĠ ĠNotification Service . handle Delete Intent ( this , Ġintent ) ĊĊĠĠĠĠĠĠĠ Ġis List Visible In Single Pane View Ġ= ĠsavedInstanceState ?. getBoolean ( STATE _ IS _ LIST _ VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġif Ġ( is View ing Season ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWhen Ġcoming Ġto Ġview Ġseason , Ġcheck Ġif Ġlist Ġis Ġpreferred . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Manager . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getBoolean ( PRE F _ PREFER _ LIST _ TO _ VIEW _ SE ASON , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhas T apped Item In Single Pane View Ġ= ĠsavedInstanceState ?. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Boolean ( STATE _ HAS _ T AP PED _ ITEM _ SINGLE _ P ANE ) Ġ?: Ġfalse ĊĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this ) ĊĠĠĠĠĠĠĠ Ġsetup Views () ĊĊĠĠĠĠĠĠĠ Ġval Ġepisode Row Id Ġ= Ġintent . getLong Extra ( EXTRA _ LONG _ E PI SO DE _ ID , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġepisode Tv db Id Ġ= Ġintent . getInt Extra ( EXTRA _ E PI SO DE _ TV DB ID , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġseason Id Ġ= Ġintent . getLong Extra ( EXTRA _ LONG _ SE ASON _ ID , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġby Ġview Models < Episode s Activity ViewModel > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEp isode s Activity ViewModel Factory ( application , Ġepisode Tv db Id , Ġepisode Row Id , Ġseason Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ ĠviewModel . season And Show Info LiveData . observe ( this , ĠObserver Ġ{ Ġinfo Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( info Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () Ġ// ĠMissing Ġrequired Ġdata . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ Observer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . season Id Ġ= Ġinfo . season And Show Info . season Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . show Id Ġ= Ġinfo . season And Show Info . show Id ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ActionBar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . season And Show Info . show . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . season And Show Info . season Number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġimage Ġbackground . ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Tools . load Show Post er Alpha ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbackground ImageView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . season And Show Info . show . poster Small ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Views ( info ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Show Delayed ( info . season And Show Info . show Id ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ActionBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setup ActionBar () ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Show Title Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate ActionBar ( show Title : ĠString , Ġseason Number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseason String Ġ= ĠSe ason Tools . get Season String ( this , Ġseason Number ) ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"$ show Title Ġ$ season String " ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title Ġ= Ġshow Title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . subtitle Ġ= Ġseason String ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġswitch View ( make List Visible : ĠBoolean , Ġupdate Options Menu : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis List Visible In Single Pane View Ġ= Ġmake List Visible ĊĠĠĠĠĠĠĠ Ġcontainer List . visibility Ġ= Ġif Ġ( make List Visible ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġval Ġvisibility Pager Views Ġ= Ġif Ġ( make List Visible ) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġcontainer Pager !!. visibility Ġ= Ġvisibility Pager Views ĊĠĠĠĠĠĠĠ Ġepisode Details Tabs . visibility Ġ= Ġvisibility Pager Views ĊĠĠĠĠĠĠĠ Ġif Ġ( update Options Menu ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvalidate Options Menu () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Single Pane View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch View ( is List Visible In Single Pane View , Ġupdate Options Menu Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠTabs Ġsetup . ĊĠĠĠĠĠĠĠ Ġepisode Details Tabs . setDefault Style () ĊĠĠĠĠĠĠĠ Ġepisode Details Tabs . set Display Underline ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠPre load Ġnext / previous Ġpage Ġso Ġsw ip ing Ġis Ġsm oo ther . ĊĠĠĠĠĠĠĠ Ġepisode Details Pager . off screen Page Limit Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġon Page ChangeListener Ġ= Ġobject Ġ: ĠView Pager 2 . On Page Change Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Sc rolled ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset : ĠFloat , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Offset Pixels : ĠInt ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Selected ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġupdate Ġcurrently Ġchecked Ġepisode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode s List Fragment ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lifecycle . currentState . is At Least ( Lifecycle . State . STARTED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Item Checked ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Scroll StateChanged ( state : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Views ( info : ĠEp isode s Activity ViewModel . Episode Season And Show Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠEp isode Ġlist . ĊĠĠĠĠĠĠĠ Ġif Ġ( episodes List Fragment Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexisting Fragment Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Fragment By Tag (" episodes ") Ġas ĠEp isode s Fragment ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode s List Fragment Ġ= Ġexisting Fragment Ġ?: ĠEp isode s Fragment . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . season And Show Info . season Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . start Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( R . id . fragment _ episodes , Ġit , Ġ" episodes ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠEp isode Ġpager . ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= Ġepisode Details Adapter ĊĠĠĠĠĠĠĠ Ġif Ġ( adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode Details Adapter Ġ= ĠEp isode Pager Adapter ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġit . update Items ( info . episodes ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode Details Pager . adapter Ġ= Ġepisode Details Adapter ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . update Items ( info . episodes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠRefresh Ġpager Ġtab Ġdecoration . ĊĠĠĠĠĠĠĠ Ġepisode Details Tabs . set ViewPager 2 ( episode Details Pager ) Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġepisode Ġ= Ġinfo . episodes [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Tools . get Episode Number ( this , Ġepisode . season , Ġepisode . ep is od enumber ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġpage Ġchange Ġlistener Ġto Ġavoid Ġchanging Ġchecked Ġepisode Ġon Ġsort Ġorder Ġchanges . ĊĠĠĠĠĠĠĠ Ġepisode Details Tabs . setOn Page ChangeListener ( null ) ĊĠĠĠĠĠĠĠ Ġepisode Details Pager . setCurrent Item ( info . start Position , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġpage Ġlistener Ġafter Ġcurrent Ġitem Ġto Ġavoid Ġnull Ġpointer Ġfor Ġnon - existing Ġcontent Ġview . ĊĠĠĠĠĠĠĠ Ġepisode Details Tabs . setOn Page ChangeListener ( on Page ChangeListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġon SortOrder Changed Listener Ġ= ĠOn Shared Preference ChangeListener Ġ{ Ġ_, Ġkey Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( Episode s Settings . KEY _ E PI SO DE _ SORT _ ORDER Ġ== Ġkey ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreorder AndUpdate Tabs () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ ĠPreference Manager . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register On Shared Preference ChangeListener ( on SortOrder Changed Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġif Ġ( is View ing Season ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Manager . getDefault SharedPreferences ( this ). edit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Boolean ( PRE F _ PREFER _ LIST _ TO _ VIEW _ SE ASON , Ġis List Visible In Single Pane View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Boolean ( STATE _ IS _ LIST _ VISIBLE , Ġis List Visible In Single Pane View ) ĊĠĠĠĠĠĠĠ Ġout State . put Boolean ( STATE _ HAS _ T AP PED _ ITEM _ SINGLE _ P ANE , Ġhas T apped Item In Single Pane View ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĊĠĠĠĠĠĠĠ ĠPreference Manager . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. unregister On Shared Preference ChangeListener ( on SortOrder Changed Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Single Pane View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . episodes _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . find Item ( R . id . menu _ action _ episodes _ switch _ view ). setIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is List G one ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ view _ headline _ control _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ view _ column _ control _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġup Intent Ġ= ĠOverview Activity . intent Se asons ( this , Ġshow Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Flags ( Intent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( up Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ action _ episodes _ switch _ view Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas T apped Item In Single Pane View Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswitch View ( is List G one , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġsingle Ġpane Ġview Ġand Ġpreviously Ġswitched Ġto Ġpager Ġby Ġt apping Ġon Ġlist Ġitem , ĊĠĠĠĠĠĠĠ Ġ// Ġgo Ġback Ġto Ġlist Ġfirst Ġinstead Ġof Ġfinish ing Ġactivity . ĊĠĠĠĠĠĠĠ Ġif Ġ( is Single Pane View Ġ&& Ġis List G one Ġ&& Ġhas T apped Item In Single Pane View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas T apped Item In Single Pane View Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch View ( make List Visible Ġ= Ġtrue , Ġupdate Options Menu Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSwitch Ġto Ġthe Ġepisode Ġat Ġthe Ġgiven Ġposition . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠsetCurrent Page ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Single Pane View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas T apped Item In Single Pane View Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswitch View ( make List Visible Ġ= Ġfalse , Ġupdate Options Menu Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġsetting Ġitem Ġposition Ġto Ġthe Ġevent Ġqueue Ġas Ġthe Ġpager Ġmight Ġnot Ġhave Ġbeen Ġdrawn , ĊĠĠĠĠĠĠĠ Ġ// Ġyet , Ġe . g . Ġwhen Ġin Ġsingle Ġpane Ġview . ĊĠĠĠĠĠĠĠ Ġepisode Details Pager . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġepisode Details Pager . setCurrent Item ( position , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN ) ĊĠĠĠ Ġfun Ġon Event ( event : ĠService Completed Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( event . is Successful Ġ&& Ġevent . flag Job Ġis ĠBase Episode s Job ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġorder Ġcan Ġonly Ġchange Ġif Ġsorted Ġby Ġun w atched Ġfirst ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsort Order Ġ= ĠEp isode s Settings . get Episode SortOrder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sort Order Ġ== ĠEp isode s Settings . Episode Sorting . UN WATCH ED _ FIRST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemp or arily Ġremove Ġpage Ġchange Ġlistener Ġto Ġavoid Ġscrolling Ġto Ġchecked Ġitem . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġepisode Details Tabs . setOn Page ChangeListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠListener Ġis Ġre - set Ġonce Ġview Ġmodel Ġcompletes Ġloading . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreorder AndUpdate Tabs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreorder AndUpdate Tabs () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġcurrently Ġselected Ġepisode ĊĠĠĠĠĠĠĠ Ġval Ġold Position Ġ= Ġepisode Details Pager . currentItem ĊĠĠĠĠĠĠĠ Ġval Ġepisode Row Id Ġ= Ġepisode Details Adapter ?. getItem Episode Id ( old Position ) Ġ?: Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġ// ĠLaunch Ġupdate . ĊĠĠĠĠĠĠĠ ĠviewModel . update Episode s Data ( 0 , Ġepisode Row Id , Ġseason Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ LONG _ SE ASON _ ID Ġ= Ġ" season _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ LONG _ E PI SO DE _ ID Ġ= Ġ" episode _ id " ĊĠĠĠĠĠĠĠ Ġ/** ĠEither Ġthis Ġor Ġ[ EXTRA _ E PI SO DE _ TV DB ID ] Ġis Ġrequired . Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Deprecated (" Use Ġintent Season Ġand Ġseason Ġrow ĠID Ġinstead .") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ SE ASON _ TV DB ID Ġ= Ġ" season _ tv db id " ĊĠĠĠĠĠĠĠ Ġ/** ĠEither Ġthis Ġor Ġ[ EXTRA _ SE ASON _ TV DB ID ] Ġis Ġrequired . Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Deprecated (" Use Ġintent Episode Ġand Ġepisode Ġrow ĠID Ġinstead .") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ E PI SO DE _ TV DB ID Ġ= Ġ" episode _ tv db id " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF _ PREFER _ LIST _ TO _ VIEW _ SE ASON Ġ= Ġ" com . uw et rott mann . series guide . episodes . prefer list " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTATE _ IS _ LIST _ VISIBLE Ġ= Ġ" STATE _ IS _ LIST _ VISIBLE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTATE _ HAS _ T AP PED _ ITEM _ SINGLE _ P ANE Ġ= Ġ" STATE _ HAS _ T AP PED _ ITEM _ SINGLE _ P ANE " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠE PI SO DES _ LOAD ER _ ID Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠE PI SO DE _ LOAD ER _ ID Ġ= Ġ 1 0 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTIONS _ LOAD ER _ ID Ġ= Ġ 1 0 2 ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġintent Season ( season Row Id : ĠLong , Ġcontext : ĠContext ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠEp isode s Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( EXTRA _ LONG _ SE ASON _ ID , Ġseason Row Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġintent Episode ( episode Row Id : ĠLong , Ġcontext : ĠContext ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠIntent ( context , ĠEp isode s Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( EXTRA _ LONG _ E PI SO DE _ ID , Ġepisode Row Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ