package Ġcom . glib . core . screen Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġandroidx . appcompat . app . ActionBar Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġcom . glib . core . R Ċ import Ġcom . glib . core . json . G JsonObject Ċ import Ġcom . glib . core . logging . G Log Ċ import Ġcom . glib . core . model . GB undle Ċ import Ġcom . glib . core . ui . Progress Indicator Ċ import Ġcom . glib . core . ui . icon . G Icon Ċ import Ġcom . glib . core . ui . json . Json Action Ċ import Ġcom . glib . core . ui . json . actions . windows . Close Ċ import Ġcom . glib . core . ui . json . actions . windows . Json Ui Screen Ċ import Ġcom . glib . core . ui . style . Lib Icon Ċ import Ġcom . glib . core . utils . Res Ċ import Ġjava . io . Serializable Ċ import Ġkotlin . reflect . K Class Ċ Ċ open Ġclass ĠG Screen Ġ: ĠG Activity () Ġ{ ĊĠĠĠ Ġval Ġnav : ĠNav Helper ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġin av Ġas ĠNav Helper ĊĊĠĠĠ Ġval Ġnav Bar : ĠAction Bar ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġsupport ActionBar !! Ġ Ġ// ĠIt Ġshould Ġexist Ġbecause Ġset Support ActionBar () Ġshould Ġhave Ġbeen Ġcalled ĊĊĠĠĠ Ġfun ĠonCreate For Screen ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init On Create ( Nav Helper ( this )) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( nav . toolbar ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Fragment With Toolbar ( fragment : ĠG Fragment ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġthis . top Navigation Ġ= Ġtop Navigation Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġset Fragment ( fragment , ĠsavedInstanceState ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset Fragment Without Toolbar ( fragment , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġnav . init Navigation ( nav Bar ) ĊĠĠĠĠĠĠĠ Ġnav . toolbar . visibility Ġ= ĠView . VISIBLE Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= Ġnav . toolbar Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( toolbar Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . visibility Ġ= ĠView . VISIBLE Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Content With Toolbar ( res Id : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġthis . top Navigation Ġ= Ġtop Navigation Ċ // ĠĠĠĠĠĠĠ Ġset Content ( res Id ) ĊĊĠĠĠĠĠĠĠ Ġset Content Without Toolbar ( res Id ) ĊĠĠĠĠĠĠĠ Ġnav . init Navigation ( nav Bar ) ĊĠĠĠĠĠĠĠ Ġnav . toolbar . visibility Ġ= ĠView . VISIBLE Ċ Ċ // ĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= Ġnav . toolbar Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( toolbar Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . visibility Ġ= ĠView . VISIBLE Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Starting Screen ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSometimes Ġa Ġstarting Ġscreen Ġneeds Ġto : ĊĠĠĠĠĠĠĠ Ġ// Ġ- ĠSt ay Ġopen Ġso Ġthat Ġit Ġcan Ġexecute Ġstuff Ġin Ġthe Ġbackground Ġ( e . g . Ġhandle Ġbe acon Ġscans ) ĊĠĠĠĠĠĠĠ Ġ// Ġ- ĠCloses Ġitself Ġwhen Ġit Ġreceives Ġresult Ġfrom Ġthe Ġlast Ġscreen ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġargs ĊĠĠĠĠĠĠĠ Ġval Ġopen Url Ġ= Ġdata [" open Url "]. string ĊĠĠĠĠĠĠĠ Ġval Ġon Open Ġ= ĠG JsonObject . Default ( data [" on Open "]. string ) ĊĊĠĠĠĠĠĠĠ Ġopen Url ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Json Ui Screen . intent ( it , Ġfalse , Ġon Open )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ// /// ĠMenu Ġ// /// ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! nav . handle Home Click ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () Ġ Ġ// ĠGo ing Ġup Ġis Ġmore Ġsimilar Ġto Ġon Back Pressed () Ġthan Ġfinish (), Ġespecially Ġbecause Ġthe Ġformer Ġcan Ġhave Ġpre - finish Ġcheck ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ