package Ġcom . bar uck is . k ript of ol io . utilities Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . annotation . Menu Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . view . Action Mode Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . bar uck is . k ript of ol io . R Ċ Ċ class ĠPrimary Action Mode Controller Ġ: ĠAction Mode . Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠAppCompatActivity ĊĠĠĠ Ġprivate Ġvar Ġstatus Bar Color : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġinterface ĠPrimary Action Mode Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Enter Action Mode () ĊĠĠĠĠĠĠĠ Ġfun Ġon Leave Action Mode () ĊĠĠĠĠĠĠĠ Ġfun Ġon Action Item Click ( item : ĠMenuItem ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġprimary Action Mode Listener : ĠPrimary Action Mode Listener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmode : ĠAction Mode ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Menu Res ĊĠĠĠ Ġprivate Ġvar Ġmenu Res Id : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġtitle : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsubtitle : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Action Mode ( mode : ĠAction Mode ?, Ġmenu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġprimary Action Mode Listener ?. on Enter Action Mode () ĊĊĠĠĠĠĠĠĠ Ġmode ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode . menu Inflater . inflate ( menu Res Id , Ġmenu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmode . subtitle Ġ= Ġsubtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . mode Ġ= Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Color Ġ= Ġactivity . window . status Bar Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . status Bar Color Ġ= ĠContext Compat . getColor ( activity , ĠR . color . color For Action Mode StatusBar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare Action Mode ( mode : ĠAction Mode ?, Ġmenu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy Action Mode ( mode : ĠAction Mode ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġprimary Action Mode Listener ?. on Leave Action Mode () ĊĠĠĠĠĠĠĠ Ġthis . mode Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . window . status Bar Color Ġ= Ġstatus Bar Color ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Action Item Clicked ( mode : ĠAction Mode ?, Ġitem : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Mode Listener ?. on Action Item Click ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Action Mode ( activity : ĠAppCompatActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprimary Action Mode Listener : ĠPrimary Action Mode Listener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Menu Res Ġmenu Res Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . menu Res Id Ġ= Ġmenu Res Id ĊĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġthis . subtitle Ġ= Ġsubtitle ĊĠĠĠĠĠĠĠ Ġthis . activity Ġ= Ġactivity ĊĠĠĠĠĠĠĠ Ġthis . primary Action Mode Listener Ġ= Ġprimary Action Mode Listener ĊĊĠĠĠĠĠĠĠ Ġactivity . start Support Action Mode ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfinish Action Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġmode ?. finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠisIn Mode (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmode Ġ!= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetTitle ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmode ?. title Ġ= Ġtext ĊĠĠĠ Ġ} Ċ Ċ }