package Ġs out void . com . D sr Weather App . ui . screen . main . locations . pager Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 4 . app . Fragment State Pager Adapter Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroid . view . ViewGroup Ċ import Ġs out void . com . D sr Weather App . R Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ /** Ċ Ġ* ĠÐ° Ð´ Ð°Ð¿ ÑĤÐµÑĢ ĠÐ´Ð»Ñı ĠÑĤ Ð°Ð± Ð¾Ð² ĠÑģÐ¿Ð¸Ñģ ÐºÐ° ĠÑĤ Ð¾Ñĩ ÐµÐº Ċ Ġ*/ Ċ class ĠLoc ations Pager Adapter ( fragment Manager : ĠFragment Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext ) ĊĠĠĠ Ġ: ĠFragment State Pager Adapter ( fragment Manager ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÑħ ÑĢÐ°Ð½ Ð¸Ð¼ ĠÑģ ÑģÑĭ Ð» ÐºÐ¸ ĠÐ½Ð° ĠÐ²ÑģÐµ ĠÐ· Ð°ÑĢ ÐµÐ³ ÐµÑģÑĤ ÑĢÐ¸ ÑĢÐ¾Ð² Ð°Ð½ Ð½ÑĭÐµ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ñĭ ĠÐ´Ð»Ñı ĠÐ¾Ð¿ Ð¾Ð² Ðµ Ñī ÐµÐ½Ð¸Ñı ĠÐ¸ Ñħ ĠÐ¾Ð± ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½Ð¸Ð¸ ĠÐ´Ð°Ð½Ð½ÑĭÑħ ĊĠĠĠĠ Ġ* ĠÐ¾Ð± ÐµÑĢ Ð½ Ñĥ ÑĤÐ¾ ĠÐ² ĠWeak Reference ĠÐ´Ð»Ñı ĠÐ¿ÑĢÐµÐ´ Ð¾ÑĤ Ð²ÑĢÐ°Ñī ÐµÐ½Ð¸Ñı Ġmemory Ġleak ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġregistered Fragments : ĠSparse Array < Weak Reference < Locations List Fragment View >> Ġ= ĠSparse Array () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġreturn ĠLoc ations List Fragment View . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġreturn ĠLoc ations List Fragment View . newInstance ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠLoc ations List Fragment View . newInstance () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġ 2 ĊĊĠĠĠ Ġoverride Ġfun Ġget Page Title ( position : ĠInt ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġreturn Ġcontext . getString ( R . string . all _ locations ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġreturn Ġcontext . getString ( R . string . favorite ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext . getString ( R . string . all _ locations ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÑģÐ¾ Ñħ ÑĢÐ°Ð½ Ñı ÐµÐ¼ ĠÑģ Ð¾ÑģÑĤ Ð¾Ñı Ð½Ð¸ Ðµ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ð¾Ð² ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġinstantiate Item ( container : ĠViewGroup ?, Ġposition : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġsuper . instantiate Item ( container , Ġposition ) Ġas ĠLoc ations List Fragment View ĊĠĠĠĠĠĠĠ Ġregistered Fragments . put ( position , ĠWeak Reference ( fragment )) ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÑĥ Ð´Ð° Ð»Ñı ÐµÐ¼ ĠÐ·Ð°Ð¿Ð¸Ñģ ÑĮ ĠÐ¾ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ðµ ĠÐ¿Ð¾ÑģÐ» Ðµ ĠÐµÐ³Ð¾ ĠÑĥ Ð´Ð°Ð» ÐµÐ½Ð¸Ñı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdestroy Item ( container : ĠViewGroup ?, Ġposition : ĠInt , Ġ` object `: ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġregistered Fragments . remove ( position ) ĊĠĠĠĠĠĠĠ Ġsuper . destroy Item ( container , Ġposition , Ġ` object `) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÑįÑĤ Ð¾ÑĤ ĠÐ¼ÐµÑĤÐ¾Ð´ ĠÐ±ÑĥÐ´ÐµÑĤ ĠÐ²Ñĭ Ð· Ð² Ð°Ð½ , ĠÐº Ð¾Ð³Ð´Ð° ĠÐ² ĠÐ¾Ð´ Ð½Ð¾Ð¼ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ðµ ĠÐ´Ð°Ð½ Ð½ÑĭÐµ ĠÑģÐ¿Ð¸Ñģ ÐºÐ° ĠÐ¿Ð¾Ð¼ ÐµÐ½ Ñı Ð»Ð¸ Ñģ ÑĮ , ĊĠĠĠĠ Ġ* ĠÐ¸ ĠÐ½ ÑĥÐ¶ Ð½Ð¾ ĠÐ¾Ð±Ð½Ð¾Ð² Ð¸ÑĤÑĮ ĠÐ´Ð°Ð½ Ð½ÑĭÐµ ĠÑģÐ¿Ð¸Ñģ ÐºÐ° ĠÐ² ĠÐ´ÑĢÑĥÐ³ Ð¾Ð¼ ĠÑĦ ÑĢÐ°Ð ³ Ð¼ ÐµÐ½ÑĤ Ðµ ĊĠĠĠĠ Ġ* Ġ@ see ĠLoc ations List Fragment View . try Notify Pager DataSet Changed ĊĠĠĠĠ Ġ* Ġ@ see ĠLoc ations List Fragment View . on DataSet Changed ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnotify Other Fragment DataSet Changed ( current Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġother Fragment Pos Ġ: ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( current Position Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġother Fragment Pos Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġother Fragment Ġ= Ġregistered Fragments [ other Fragment Pos ] ĊĠĠĠĠĠĠĠ Ġother Fragment ?. get ()?. on DataSet Changed () ĊĠĠĠ Ġ} Ċ }