package Ġpl . sr w . bill calculator . settings Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġpl . sr w . bill calculator . R Ċ import Ġpl . sr w . bill calculator . common . Back able Activity Ċ import Ġpl . sr w . bill calculator . di . Dependencies Ċ import Ġpl . sr w . bill calculator . settings . details . Settings Details Fragment Ċ import Ġpl . sr w . bill calculator . settings . list . Settings Fragment Ċ import Ġpl . sr w . bill calculator . type . Provider Ċ import Ġtim ber . log . Tim ber Ċ Ċ private Ġconst Ġval ĠARG _ PROVIDER Ġ= Ġ" settings . provider " Ċ Ċ class ĠSettings Activity Ġ: ĠBack able Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( context , ĠSettings Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static Ġfun Ġstart ( context : ĠContext , Ġprovider : ĠProvider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( ARG _ PROVIDER , Ġprovider ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġfrom Form Link Ġby Ġlazy Ġ{ Ġintent . has Extra ( ARG _ PROVIDER ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġprovider Ġby Ġlazy Ġ{ Ġintent . get Serializable Extra ( ARG _ PROVIDER ) Ġas ĠProvider Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . settings _ activity ) ĊĊĠĠĠĠĠĠĠ Ġinit Fragments ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( is Finish ing ) ĠDependencies . release Settings Component () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( support FragmentManager . back Stack Entry Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" Back Ġpressed Ġfrom Ġprovider Ġscreen ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġphone Ġconfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport ActionBar !!. setTitle ( R . string . settings _ label ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreplace Fragment ( details Fragment : ĠSettings Details Fragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Custom Animations ( R . anim . enter _ from _ right , ĠR . anim . exit _ to _ left , ĠR . anim . enter _ from _ left , ĠR . anim . exit _ to _ right ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . settings Container , Ġdetails Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Fragments ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( R . id . settings Container , Ġget Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Fragment (): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( from Form Link ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Details Fragment . create For ( provider ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSettings Fragment () ĊĠĠĠ Ġ} Ċ } Ċ