package Ġcom . projects . me li h . gist pub . view . main Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ Ċ import Ġcom . projects . me li h . gist pub . R Ċ import Ġcom . projects . me li h . gist pub . components . Hide Soft Keyboard Ċ import Ġcom . projects . me li h . gist pub . view . user . Login Activity Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . view . View Ċ import Ġcom . projects . me li h . gist pub . view . Base Activity Ċ import Ġcom . projects . me li h . gist pub . view . Navigation Observer ĊĊ Ċ open Ġclass ĠMainActivity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot View : ĠView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġroot View Ġ= ĠfindViewById < View >( R . id . container ) ĊĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . toolbar _ action ). setOnClickListener Ġ{ Ġv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHide Soft Keyboard ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogout () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġget SharedPreferences ( getString ( R . string . preference _ user _ key ), ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġshared Pref . getString ( getString ( R . string . username _ extra ), Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( username )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠUSER _ REQUEST ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Fragment And Clear Stack ( Home Fragment . newInstance (), ĠNavigation Observer . Companion . NONE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogout () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this @ MainActivity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( R . string . are _ you _ sure _ to _ logout ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . ok , Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġget SharedPreferences ( getString ( R . string . preference _ user _ key ), ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Pref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . remove ( getString ( R . string . username _ extra )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . remove ( getString ( R . string . password _ extra )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ MainActivity , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠUSER _ REQUEST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . cancel , Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠUSER _ REQUEST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġdata ?. getString Extra ( getString ( R . string . username _ extra )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġdata ?. getString Extra ( getString ( R . string . password _ extra )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= Ġget SharedPreferences ( getString ( R . string . preference _ user _ key ), ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġshared Pref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString ( getString ( R . string . username _ extra ), Ġusername ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString ( getString ( R . string . password _ extra ), Ġpassword ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Fragment And Clear Stack ( Home Fragment . newInstance (), ĠNavigation Observer . Companion . NONE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġval ĠUSER _ REQUEST Ġ= Ġ 1 ĊĠĠĠ Ġ} Ċ } Ċ