package Ġnet . ys library . mon ot weet y . base Ċ Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . ActionBar Ċ import Ġnet . ys library . mon ot weet y . activity . ActionBar Provider Ċ Ċ abstract Ġclass ĠAction Bar Controller Ġ: ĠBaseController () Ġ{ ĊĊĠĠĠ Ġopen Ġval Ġtitle : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġopen Ġval Ġshould Show ActionBar : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġopen Ġval Ġhas Options Menu : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġopen Ġval Ġhas Back Button : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġaction Bar : ĠAction Bar ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Bar Provider Ġ= Ġactivity Ġas ĠAction Bar Provider ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġaction Bar Provider ?. let Ġ{ Ġaction Bar Provider . get Support ActionBar () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( should Show ActionBar Ġ&& Ġ( has Options Menu Ġ|| Ġhas Back Button )) ĊĠĠĠĠĠĠĠ Ġif Ġ( should Show ActionBar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar ?. set Display Home As Up Enabled ( has Back Button ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar ?. hide () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetTitle () ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetTitle () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Bar ?. title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠitemId Ġ= Ġitem . itemId ĊĠĠĠĠĠĠĠ Ġwhen Ġ( itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ