package Ġcom . the one . music . ui . activity Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . qm uite am . qm ui . arch . QM UI Fragment Ċ import Ġcom . qm uite am . qm ui . kotlin . match Parent Ċ import Ġcom . qm uite am . qm ui . kotlin . wrap Content Ċ import Ġcom . qm uite am . qm ui . widget . Q MU IT op Bar Layout Ċ import Ġcom . the one . common . constant . Bundle Constant Ċ import Ġcom . the one . common . ext . getValue Ċ import Ġcom . the one . common . ext . startActivity Ċ import Ġcom . the one . music . R Ċ import Ġcom . the one . music . app . ext . to Music Ċ import Ġcom . the one . music . data . model . Music Ċ import Ġcom . the one . music . player . Player Manager Ċ import Ġcom . the one . music . ui . fragment . music . L rc Fragment Ċ import Ġcom . the one . music . ui . fragment . music . Player Fragment Ċ import Ġcom . the one . music . view model . Music Player ViewModel Ċ import Ġcom . the one . mv vm . core . app . ext .* Ċ import Ġcom . the one . mv vm . core . app . ext . qm ui . add Tab Ċ import Ġcom . the one . mv vm . core . app . w idge . indicator . Skin Pager Title View Ċ import Ġcom . the one . mv vm . core . base . activity . Base Core Activity Ċ import Ġcom . the one . mv vm . core . base . adapter . Tab Fragment Adapter Ċ import Ġcom . the one . mv vm . core . data . entity . QM UI Item Bean Ċ import Ġcom . the one . mv vm . core . databinding . Base Tab In Title Layout Binding Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġnet . lu code . hack ware . magic indicator . Magic Indicator Ċ import Ġnet . lu code . hack ware . magic indicator . ViewPager Helper Ċ import Ġnet . lu code . hack ware . magic indicator . build ins . common navigator . Common Navigator Ċ import Ġnet . lu code . hack ware . magic indicator . build ins . common navigator . abs . Common Navigator Adapter Ċ import Ġnet . lu code . hack ware . magic indicator . build ins . common navigator . abs . IP ager Indicator Ċ import Ġnet . lu code . hack ware . magic indicator . build ins . common navigator . abs . IP ager Title View Ċ Ċ // Ġ ĠâĶ ı âĶ ĵ ãĢĢãĢĢ ãĢĢ âĶ ı âĶ ĵ Ċ // âĶ ı âĶ Ľ âĶ » âĶģâĶģ âĶģ âĶ Ľ âĶ » âĶ ĵ Ċ // âĶ ĥ ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ ãĢĢ âĶ ĥ Ċ // âĶ ĥ ãĢĢãĢĢ ãĢĢ âĶģ ãĢĢãĢĢ ãĢĢ âĶ ĥ Ċ // âĶ ĥ ãĢĢ âĶ ³ âĶ Ľ ãĢĢ âĶ Ĺ âĶ ³ ãĢĢ âĶ ĥ Ċ // âĶ ĥ ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ ãĢĢ âĶ ĥ Ċ // âĶ ĥ ãĢĢãĢĢ ãĢĢ âĶ » ãĢĢãĢĢ ãĢĢ âĶ ĥ Ċ // âĶ ĥ ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ ãĢĢ âĶ ĥ Ċ // âĶ Ĺ âĶģ âĶ ĵ ãĢĢãĢĢ ãĢĢ âĶ ı âĶģ âĶ Ľ Ċ // ĠĠĠ ĠâĶ ĥ ãĢĢãĢĢ ãĢĢ âĶ ĥ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ç¥ŀ åħ ½ ä¿Ŀ ä½ ĳ Ċ // ĠĠĠ ĠâĶ ĥ ãĢĢãĢĢ ãĢĢ âĶ ĥ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġæ ° ¸ æĹł BUG ï¼ģ Ċ // ĠĠĠ ĠâĶ ĥ ãĢĢãĢĢ ãĢĢ âĶ Ĺ âĶģâĶģ âĶģ âĶ ĵ Ċ // ĠĠĠ ĠâĶ ĥ ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ ãĢĢ âĶ £ âĶ ĵ Ċ // ĠĠĠ ĠâĶ ĥ ãĢĢãĢĢãĢĢãĢĢ ãĢĢãĢĢ ãĢĢ âĶ ı âĶ Ľ Ċ // ĠĠĠ ĠâĶ Ĺ âĶ ĵ âĶ ĵ âĶ ı âĶģ âĶ ³ âĶ ĵ âĶ ı âĶ Ľ Ċ // ĠĠĠĠĠ ĠâĶ ĥ âĶ « âĶ « ãĢĢ âĶ ĥ âĶ « âĶ « Ċ // ĠĠĠĠĠ ĠâĶ Ĺ âĶ » âĶ Ľ ãĢĢ âĶ Ĺ âĶ » âĶ Ľ Ċ /** Ċ Ġ* Ġ@ author ĠThe Ġone Ċ Ġ* Ġ@ date Ġ 2 0 2 2 - 0 6 - 1 5 Ġ 0 9 : 2 6 Ċ Ġ* Ġ@ describe ĠTODO Ċ Ġ* Ġ@ email Ġ 6 2 5 8 0 5 1 8 9 @ qq . com Ċ Ġ* Ġ@ remark Ċ Ġ*/ Ċ class ĠMusic Player Activity Ġ: ĠBase Core Activity < Music Player ViewModel , ĠBase Tab In Title Layout Binding >() Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart Play ( activity : ĠActivity , Ġmusic : ĠMusic ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . startActivity < Music Player Activity > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Bundle Constant . DATA , Ġmusic ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . override Pending Transition ( R . anim . anim _ in , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Music : ĠMusic ? Ġby ĠgetValue ( Bundle Constant . DATA ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å½ĵåīį æĴŃæĶ¾ çļĦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠgetCurrent Music (): ĠMusic Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPlayer Manager . getInstance (). current Playing Music . to Music () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Re Load () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Loading Page () ĊĠĠĠĠĠĠĠ Ġget ViewModel (). request Server () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( root : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ é¦ĸåħĪ å°±æĺ¯ æĭ¿ åĪ° ä¼łéĢĴ è¿ĩ æĿ¥ çļĦæķ°æį® ĊĠĠĠĠĠĠĠ Ġ( m Music Ġ?: ĠgetCurrent Music ()). let Ġ{ Ġmusic Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èµĭåĢ¼ è¯·æ±Ĥ åľ°åĿĢ Ġhttps :// h if ini . com / thread - 3 5 8 3 7 . htm ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ViewModel (). link Ġ= Ġmusic . share Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( Player Manager . getInstance ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Playing Music ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĴĮ å½ĵåīį æĴŃæĶ¾ çļĦæĺ¯ åĲĮ ä¸Ģä¸ª ï¼Į çĽ´æİ¥ æĭ¿ å½ĵåīį çļĦ æĴŃæĶ¾ çļĦæķ°æį® æĺ¾ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( share Url Ġ== Ġmusic . share Url ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Init () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸įæĺ¯ åĲĮ ä¸Ģä¸ª ï¼Į å°± æļĤ åģľ ä¸Ĭ ä¸Ģä¸ª ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Playing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpause Audio () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæĺ¯åĲ¦ æľī éŁ³ é¢ĳ åľ°åĿĢ ï¼Į æľī è¯´æĺİ æĺ¯ æĶ¶ èĹı è¿ĩ æĿ¥çļĦ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( music . get Music Url (). isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĽ´æİ¥ è®¾ç½® æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Media Source ( music ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæŁ¥è¯¢ DB ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ViewModel (). request Db Music ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Media Source ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Page Re Load () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġget ViewModel (). getRequest (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Response LiveData (). observe ( this @ Music Player Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Media Source ( it , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Error LiveData (). observe ( this @ Music Player Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Page ( it . msg ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Page Re Load () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè®¾ç½® æĴŃæĶ¾ èµĦæºĲ ĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĠMusic ĊĠĠĠĠ Ġ* Ġ@ param ĠnewData ĠBoolean Ġæĺ¯åĲ¦ ä¸º è¯·æ±Ĥ æĿ¥çļĦ æĸ° æķ°æį® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Media Source ( data : ĠMusic , ĠnewData : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Url Ġ= ĠPlayer Manager . getInstance (). getCache Url ( data . get Music Url ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ç¼ĵåŃĺ æľī å°± çĽ´æİ¥ æĴŃæĶ¾ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cache Url . startsWith (" file ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Album ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ä¸įæĺ¯ æĸ° æķ°æį® æīį æľ¬åľ° è¿ĺ æ²¡æľī ç¼ĵåŃĺ å°± çĽ´æİ¥ éĩįæĸ° åĬłè½½ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Data ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ViewModel (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľ¬åľ° æķ°æį® æľī å°± éĩįæĸ° åĬłè½½ ï¼Į æĽ´æĸ° æľ¬åľ° æķ°æį®åºĵ ï¼Į èĢĮä¸įæĺ¯ æıĴåħ¥ ä¸ĢæĿ¡ æĸ° æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Reload Ġ= Ġdata . id Ġ> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Server () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Album ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Album ( data : ĠMusic ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPlayer Manager . getInstance (). load Album ( data ) ĊĠĠĠĠĠĠĠ Ġ// ĠæĽ´æĸ° éŁ³ ä¹Ĳ ä¿¡æģ¯ Ġ æľĢåĲİ æĴŃæĶ¾ æĹ¶éĹ´ ĊĠĠĠĠĠĠĠ Ġget ViewModel (). update Music Last Play Date () ĊĠĠĠĠĠĠĠ Ġstart Init () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġloader Register View (): ĠView Ġ= Ġget Root View () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è¿Ļä¸ª çķĮéĿ¢ ä¸į åĨį è®¾ç½® é¢ľèī² ĊĠĠĠĠ Ġ* Ġ@ return ĠInt ? ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Root BackgroundColor (): ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġm Tabs : ĠMutable List < QM UI Item Bean > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġm Fragments : ĠMutable List < QM UI Fragment > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġoverride Ġfun ĠQ MU IT op Bar Layout . init Top Bar () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Center View ( m Magic Indicator ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Pager Adapter : ĠTab Fragment Adapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠTab Fragment Adapter ( support FragmentManager , Ġm Fragments ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Magic Indicator : ĠMagic Indicator Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMagic Indicator ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠRelative Layout . LayoutParams ( wrap Content , Ġmatch Parent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Init () Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch ( Dispatch ers . Main ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( m Tabs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Tab (" æŃĮ æĽ² ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Tab (" æŃĮ è¯į ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( mF rag ments ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Player Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( L rc Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetData Binding (). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm QM UI ViewPager . adapter Ġ= Ġm Pager Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Magic Indicator . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator Ġ= Ġcreate Navigator () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Pager Helper . bind ( this , Ġm QM UI ViewPager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Success Page () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ èĩªå®ļä¹ī ĠCommon Navigator Ġ éĩį åĨĻ è¿Ļä¸ª æĸ¹æ³ķ ĊĠĠĠĠ Ġ* Ġ@ return ĠCommon Navigator ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Navigator (): ĠCommon Navigator Ġ= ĠCommon Navigator ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġscroll Pivot X Ġ= Ġ 0 . 6 5 f ĊĠĠĠĠĠĠĠ Ġis Adjust Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġobject Ġ: ĠCommon Navigator Adapter () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġm Tabs . size ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Title View ( context : ĠContext , Ġindex : ĠInt ): ĠIP ager Title View Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSk in Pager Title View ( context ). init ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Tabs , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetData Binding (). m QM UI ViewPager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). init Badge Pager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Indicator ( context : ĠContext ): ĠIP ager Indicator ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }