package Ġio . github . wy kop mob il ny . ui . modules . main navigation Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Looper Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . ActionBar Drawer Toggle Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . core . os . post Delayed Ċ import Ġandroidx . core . view . Gravity Compat Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġcom . google . android . material . internal . Navigation Menu View Ċ import Ġcom . google . android . material . navigation . Navigation View Ċ import Ġio . github . wy kop mob il ny . R Ċ import Ġio . github . wy kop mob il ny . api . pat ron s . Pat ron s Api Ċ import Ġio . github . wy kop mob il ny . base . Base Activity Ċ import Ġio . github . wy kop mob il ny . base . Base Navigation View Ċ import Ġio . github . wy kop mob il ny . data . storage . api . App Storage Ċ import Ġio . github . wy kop mob il ny . databinding . Activity Navigation Binding Ċ import Ġio . github . wy kop mob il ny . databinding . App About Bottom sheet Binding Ċ import Ġio . github . wy kop mob il ny . databinding . Drawer Header View Layout Binding Ċ import Ġio . github . wy kop mob il ny . databinding . Pat ron ListItem Binding Ċ import Ġio . github . wy kop mob il ny . databinding . Pat ron s Bottom sheet Binding Ċ import Ġio . github . wy kop mob il ny . storage . api . Settings Preferences Api Ċ import Ġio . github . wy kop mob il ny . ui . base . App Dispatch ers Ċ import Ġio . github . wy kop mob il ny . ui . dialogs . confirmation Dialog Ċ import Ġio . github . wy kop mob il ny . ui . modules . New Navigator Ċ import Ġio . github . wy kop mob il ny . ui . modules . favorite . Favorite Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . links . hits . Hits Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . links . prom oted . Prom oted Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . links . up coming . Up coming Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . mik ro blog . feed . hot . Hot Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . my wy kop . My W yk op Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . notifications list . Notifications List Activity Ċ import Ġio . github . wy kop mob il ny . ui . modules . notifications list . notification . Notifications List Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . pm . con versations list . Con versations List Fragment Ċ import Ġio . github . wy kop mob il ny . ui . modules . profile . Profile Activity Ċ import Ġio . github . wy kop mob il ny . ui . modules . search . Search Fragment Ċ import Ġio . github . wy kop mob il ny . ui . widgets . Badge Drawer Drawable Ċ import Ġio . github . wy kop mob il ny . ui . widgets . drawer header view . Drawer Header Widget Ċ import Ġio . github . wy kop mob il ny . utils . link handler . W yk op Link Handler Ċ import Ġio . github . wy kop mob il ny . utils . open Browser Ċ import Ġio . github . wy kop mob il ny . utils . shortcuts . Shortcut s Dispatcher Ċ import Ġio . github . wy kop mob il ny . utils . user manager . User Manager Api Ċ import Ġio . github . wy kop mob il ny . utils . user manager . is User Authorized Ċ import Ġio . github . wy kop mob il ny . utils . view Binding Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject Ċ Ċ interface ĠMain Navigation Interface Ġ{ ĊĠĠĠ Ġval Ġactivity Toolbar : ĠToolbar ĊĠĠĠ Ġfun Ġopen Fragment ( fragment : ĠFragment ) ĊĠĠĠ Ġval Ġfloating Button : ĠView ĊĠĠĠ Ġfun Ġforce Refresh Notifications () Ċ } Ċ Ċ class ĠMain Navigation Activity Ġ: ĊĠĠĠ ĠBase Activity (), ĊĠĠĠ ĠMain Navigation View , ĊĠĠĠ ĠNavigation View . On Navigation ItemSelected Listener , ĊĠĠĠ ĠMain Navigation Interface Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTARGET _ FRAGMENT _ KEY Ġ= Ġ" TARGET _ FRAGMENT " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTARGET _ NOTIFICATION S Ġ= Ġ" TARGET _ NOTIFICATION S " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Intent ( context : ĠContext , Ġtarget Fragment : ĠString ? Ġ= Ġnull ): ĠIntent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠMain Navigation Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Fragment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( TARGET _ FRAGMENT _ KEY , Ġtarget Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġintent ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpat ron s Api : ĠPat ron s Api ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġapp Storage : ĠApp Storage ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġsettings Preferences Api : ĠSettings Preferences Api ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Activity Navigation Binding :: inflate ) ĊĊĠĠĠ Ġoverride Ġval Ġactivity Toolbar : ĠToolbar Ġget () Ġ= Ġbinding . toolbar . toolbar ĊĠĠĠ Ġvar Ġtap Double Clicked Millis Ġ= Ġ 0 L ĊĊĠĠĠ Ġprivate Ġval Ġnav Header Ġby Ġlazy Ġ{ Ġbinding . navigation View . getHeader View ( 0 ) Ġas ĠDraw er Header Widget Ġ} ĊĠĠĠ Ġprivate Ġval Ġnav Header Binding Ġby Ġlazy Ġ{ ĠDraw er Header View Layout Binding . bind ( nav Header ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġaction Bar Toggle Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠAction Bar Drawer Toggle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . drawer Layout , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar . toolbar , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . nav _ drawer _ open , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . nav _ drawer _ closed , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġbadge Drawable Ġby Ġlazy Ġ{ ĠBadge Drawer Drawable ( support ActionBar !!. the med Context ) Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġfloating Button : ĠView ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġbinding . fab ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠMain Navigation Presenter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġsettings Api : ĠSettings Preferences Api ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġshortcuts Dispatcher : ĠShort cuts Dispatcher ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġnavigator : ĠNew Navigator ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġuser Manager Api : ĠUser Manager Api ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġlink Handler : ĠW yk op Link Handler ĊĊĠĠĠ Ġoverride Ġfun Ġon Navigation ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ mik ro blog Ġ-> Ġopen Fragment ( Hot Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . login Ġ-> Ġnavigator . open Login Screen () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . messages Ġ-> Ġopen Fragment ( Con versations List Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ settings Ġ-> Ġnavigator . open Settings Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ moj wy kop Ġ-> Ġopen Fragment ( My W yk op Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ home Ġ-> Ġopen Fragment ( Prom oted Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . search Ġ-> Ġopen Fragment ( Search Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . fav our ite Ġ-> Ġopen Fragment ( Favorite Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . your _ profile Ġ-> ĠstartActivity ( Profile Activity . create Intent ( this , Ġuser Manager Api . getUser Credentials () !!. login )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . nav _ wy kop alis ko Ġ-> Ġopen Fragment ( Up coming Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . hits Ġ-> Ġopen Fragment ( Hits Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . about Ġ-> Ġopen About Sheet () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . logout Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirmation Dialog ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( App Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Storage . blacklist Queries . transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Storage . blacklist Queries . delete All () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Manager Api . logout User () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestart Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġshow NotImplemented Toast () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitem . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġbinding . drawer Layout . close Draw ers () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( binding . toolbar . toolbar ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! presenter . is Sub scribed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . subscribe ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Delayed ( 3 3 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . start Listening For Notifications () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ( binding . navigation View . getChild At ( 0 ) Ġas ĠNavigation Menu View ). is Vertical ScrollBar Enabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġaction Bar Toggle . drawer Arrow Drawable Ġ= Ġbadge Drawable ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . toolbar . tag Ġ= Ġbinding . toolbar . toolbar . overflow Icon Ġ// ĠWe Ġwant Ġto Ġsave Ġoriginal Ġoverflow Ġicon Ġdrawable Ġinto Ġmemory . ĊĠĠĠĠĠĠĠ Ġnav Header . show Drawer Header ( user Manager Api . is User Authorized (), Ġuser Manager Api . getUser Credentials ()) ĊĠĠĠĠĠĠĠ Ġshow Users Menu ( user Manager Api . is User Authorized ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra ( TARGET _ FRAGMENT _ KEY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( intent . getString Extra ( TARGET _ FRAGMENT _ KEY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTARGET _ NOTIFICATION S Ġ-> Ġopen Fragment ( Notifications List Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Main Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsetup Navigation () ĊĠĠĠĠĠĠĠ Ġshortcuts Dispatcher . dispatch Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ġ= Ġintent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Fragment Ġ= Ġ:: open Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity Ġ= Ġnavigator :: open Login Screen , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis User Authorized Ġ= Ġuser Manager Api . is User Authorized (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġaction Bar Toggle . sync State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Configuration Changed ( new Config : ĠConfiguration ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Configuration Changed ( new Config ) ĊĠĠĠĠĠĠĠ Ġaction Bar Toggle . on Configuration Changed ( new Config ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( action Bar Toggle . on Options ItemSelected ( item )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ(! presenter . is Sub scribed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . subscribe ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler ( Looper . get Main Looper ()). post Delayed ( 3 3 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . start Listening For Notifications () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġpresenter . unsubscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( presenter . is Sub scribed ) Ġpresenter . unsubscribe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Navigation () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . drawer Layout . add Drawer Listener ( action Bar Toggle ) ĊĠĠĠĠĠĠĠ Ġbinding . navigation View . set Navigation ItemSelected Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Users Menu ( value : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . navigation View . menu . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Group Visible ( R . id . nav _ user , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Item ( R . id . nav _ moj wy kop ). isVisible Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Item ( R . id . login ). isVisible Ġ= Ġ! value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Item ( R . id . logout ). isVisible Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnav Header . isVisible Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġnav Header . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Header Binding . nav Notifications Tag . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġde select Items () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator . open Notifications List Activity ( Notifications List Activity . PRE SELECT _ HAS HT AG S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Header Binding . nav Notifications . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġde select Items () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator . open Notifications List Activity ( Notifications List Activity . PRE SELECT _ NOTIFICATION S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Main Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( settings Api . default Screen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" main page ", Ġnull Ġ-> Ġopen Fragment ( Prom oted Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" mik ro blog " Ġ-> Ġopen Fragment ( Hot Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" my wy kop " Ġ-> Ġopen Fragment ( My W yk op Fragment . newInstance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" hits " Ġ-> Ġopen Fragment ( Hits Fragment . newInstance ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopen Fragment ( fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. subtitle Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġbinding . fab . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . fab . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġbinding . fab . isVisible Ġ= Ġfragment Ġis ĠBase Navigation View Ġ&& Ġuser Manager Api . is User Authorized () ĊĠĠĠĠĠĠĠ Ġval Ġft Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠ Ġft . set Custom Animations ( R . anim . fade _ in , ĠR . anim . fade _ out ) ĊĠĠĠĠĠĠĠ Ġft . replace ( R . id . content View , Ġfragment ) ĊĠĠĠĠĠĠĠ Ġft . commit () ĊĠĠĠĠĠĠĠ Ġclose Drawer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclose Drawer () Ġ= Ġbinding . drawer Layout . close Draw ers () ĊĊĠĠĠ Ġprivate Ġfun Ġde select Items () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Ġ= Ġbinding . navigation View . menu ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġmenu . size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . getItem ( i ). isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Notifications Count ( notifications : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbadge Drawable . text Ġ= Ġif Ġ( notifications Ġ> Ġ 0 ) Ġnotifications . toString () Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġnav Header . notification Count Ġ= Ġnotifications ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Hash Notifications Count ( hash Notifications : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnav Header . hash Tags Notifications Count Ġ= Ġhash Notifications ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( binding . drawer Layout . is Drawer Open ( Gravity Compat . START )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Drawer () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( settings Api . disable Exit Confirmation Ġ|| Ġtap Double Clicked Millis Ġ+ Ġ 2 0 0 0 L Ġ> ĠSystem . currentTimeMillis ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . double back _ to _ exit , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtap Double Clicked Millis Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrestart Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavigator . open MainActivity () ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow NotImplemented Toast () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" N ie Ġza implement ow ano ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġde select Items () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠNew Navigator . STARTED _ FROM _ NOTIFICATION S _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! presenter . is Sub scribed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . subscribe ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . start Listening For Notifications () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . check Notifications ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen About Sheet () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠBottom Sheet Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġbottom Sheet View Ġ= ĠApp About Bottom sheet Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ Ġdialog . set ContentView ( bottom Sheet View . root ) ĊĊĠĠĠĠĠĠĠ Ġbottom Sheet View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Name Ġ= Ġpackage Manager . get Package Info ( packageName , Ġ 0 ). version Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Version Text view . text Ġ= ĠgetString ( R . string . app _ version , Ġversion Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Version . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Browser (" https :// github . com / ot w art y - wy kop - mob il ny / wy kop - android ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Report Bug . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator . open Tag Activity (" owm bug i ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Ob serve Tag . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigator . open Tag Activity (" ot w art y wy kop mob il ny 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Pat ron s . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow App Pat ron s Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlicense . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Browser (" https :// github . com / ot w art y - wy kop - mob il ny / wy kop - android / blob / master / LICENSE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivacy Policy . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Browser (" https :// sites . google . com / view / ot w art y - wy kop - mob il ny - v 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġm Behavior Ġ= ĠBottom Sheet Behavior . from ( bottom Sheet View . root . parent Ġas ĠView ) ĊĠĠĠĠĠĠĠ Ġdialog . setOn Show Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Behavior . peek Height Ġ= Ġbottom Sheet View . root . height ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow App Pat ron s Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpat ron s Dialog Ġ= ĠBottom Sheet Dialog ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġbad ges Dialog View 2 Ġ= ĠPat ron s Bottom sheet Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ Ġpat ron s Dialog . set ContentView ( badges Dialog View 2 . root ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( badge Ġin Ġpat ron s Api . pat ron s . filter Ġ{ Ġpat ron Ġ-> Ġpat ron . list Mention Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠPat ron ListItem Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpat ron s Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Handler . handle Url (" https :// wy kop . pl / l ud zie /" Ġ+ Ġbadge . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . nickname . text Ġ= Ġbadge . username ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . tier TextView . text Ġ= Ġwhen Ġ( badge . tier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pat ron 5 0 " Ġ-> Ġ" Pat ron Ġpr Ã³g Ġ\" B ia ÅĤ k owy \"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pat ron 2 5 " Ġ-> Ġ" Pat ron Ġpr Ã³g Ġ\" B ord owy \"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pat ron 1 0 " Ġ-> Ġ" Pat ron Ġpr Ã³g Ġ\" P om ar anc z owy \"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pat ron 5 " Ġ-> Ġ" Pat ron Ġpr Ã³g Ġ\" Z iel ony \"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Pat ron " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbad ges Dialog View 2 . pat ron s List . addView ( item . root ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpat ron s Dialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġforce Refresh Notifications () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . check Notifications ( true ) ĊĠĠĠ Ġ} Ċ } Ċ