package Ġcom . w 2 solo . android . ui . common frag Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . w 2 solo . android . R Ċ import Ġcom . w 2 solo . android . ui . base . IS c roll To Top Ċ import Ġcom . w 2 solo . android . ui . base . activity . Base Toolbar Activity Ċ import Ġcom . w 2 solo . android . ui . base . fragment . Base Fragment Ċ Ċ class ĠCommon Frag Activity Ġ: ĠBase Toolbar Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ FRAG _ KEY Ġ= Ġ" frag _ key " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠKEY _ FRAG _ ARGS Ġ= Ġ" frag _ args " ĊĠĠĠĠĠĠĠ Ġ// can Ġparse Ġa Ġtitle Ġto Ġshow ĊĠĠĠĠĠĠĠ Ġpublic Ġval ĠKEY _ TITLE _ TEXT Ġ= Ġ" page _ title _ text " ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext , Ġ@ String Res Ġtitle Res Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart ( context , Ġtitle Res Id , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġtitle Res Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs : ĠBundle ? ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠCommon Frag Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( KEY _ FRAG _ KEY , Ġtitle Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( args Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( KEY _ FRAG _ ARGS , Ġargs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġvar Ġcur Page : ĠFragment ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout () Ġ= ĠR . layout . act _ common _ frag _ container ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent ĊĠĠĠĠĠĠĠ Ġval Ġtitle Res Id Ġ= Ġintent . getInt Extra ( KEY _ FRAG _ KEY , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġintent . get Bundle Extra ( KEY _ FRAG _ ARGS ) ĊĠĠĠĠĠĠĠ Ġval Ġinit Title Text Ġ= Ġintent . getString Extra ( KEY _ TITLE _ TEXT ) ĊĠĠĠĠĠĠĠ Ġinit Internal ( init Title Text , Ġtitle Res Id , Ġargs ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Toolbar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Toolbar !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġis ĠI Scroll To Top ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( cur Page Ġas ĠI Scroll To Top ). scrollTo Top () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Internal ( title Text : ĠString ?, Ġ@ String Res Ġtitle Res Id : ĠInt , Ġargs : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( title Res Id Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġtitle : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( title Text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġtitle Text ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( title Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( thr : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthr . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( title )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . error _ invalid _ params , ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcur Page Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Frag Page Configs . new Fragment ( title Res Id , Ġargs ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . error _ invalid _ params , ĠToast . LENGTH _ SHORT ). show (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠsetTitle ( title ) ĊĠĠĠĠĠĠĠ Ġshow Fragment ( cur Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġshow Fragment ( fragment : ĠFragment ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcur Page Ġ= Ġfragment ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . fragment _ container , Ġcur Page !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠArray < String ? >, ĊĠĠĠĠĠĠĠ Ġgrant Results : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Page !!. on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ ĠresultCode : ĠInt , ĊĠĠĠĠĠĠĠ Ġdata : ĠIntent ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Page !!. on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cur Page Ġis ĠBase Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( cur Page Ġas ĠBase Fragment ). on Back Pressed ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} Ċ }