package Ġcom . vl ad pen . c ams Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . activity . On Back Pressed Callback Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . vl ad pen .* Ċ import Ġcom . vl ad pen . c ams . databinding . Activity Main Binding Ċ Ċ class ĠMainActivity : ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġlazy Ġ{ ĠActivity Main Binding . inflate ( layout Inflater ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġsources Ġby Ġlazy Ġ{ ĠSource Data . getAll () Ġ} ĊĊĠĠĠ Ġval Ġexport Settings Ġ= ĠSettings ( this ). export () ĊĠĠĠ Ġval Ġimport Settings Ġ= ĠSettings ( this ). import () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġinit Activity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( resources . display Metrics . height Pixels Ġ> Ġresources . display Metrics . width Pixels ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . re cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGrid LayoutManager ( this , 2 , ĠRecyclerView . VERTICAL , false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġbinding . re cyclerView . layout Manager Ġ= Ġthis Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . btn Back . setImage Resource ( R . drawable . ic _ baseline _ menu _ 2 4 ) ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . btn Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Menu ( this ). show PopupMenu ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . re cyclerView . adapter Ġ= ĠSource Adapter ( sources ) ĊĠĠĠĠĠĠĠ ĠItem Touch . helper (). attach To RecyclerView ( binding . re cyclerView ) ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . tv Toolbar Label . text Ġ= ĠgetString ( R . string . main _ title ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( sources . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Empty () ĊĊĠĠĠĠĠĠĠ Ġthis . on Back Pressed Dispatcher . add Callback ( callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . empty Box . empty Content . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġbinding . empty Box . btn Edit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠEdit Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . empty Box . btn Import . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Menu ( this ). import () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcallback Ġ= Ġobject Ġ: ĠOn Back Pressed Callback ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle On Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish Affinity () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }