package Ġua . ck . ge ek hub . lesson 1 Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġname EditText : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġemail Message TextView : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsend Button : ĠButton ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġname EditText Ġ= ĠfindViewById ( R . id . name _ edit _ text ) ĊĠĠĠĠĠĠĠ Ġemail Message TextView Ġ= ĠfindViewById ( R . id . email _ message _ text _ view ) ĊĠĠĠĠĠĠĠ Ġsend Button Ġ= ĠfindViewById ( R . id . send _ button ) ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . next _ button ). setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġsend Button ?. setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠGET _ MESSAGE _ REQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message ( data ?. getString Extra ( Message Activity . EXTRA _ MESSAGE )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Restore InstanceState ( savedInstanceState : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Restore InstanceState ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠsavedInstanceState . getString ( SAVE _ EXTRA _ MESSAGE )?. let Ġ{ Ġshow Message ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Message ( message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġemail Message TextView ?. text Ġ= Ġmessage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout State . putString ( SAVE _ EXTRA _ MESSAGE , Ġemail Message TextView ?. text ?. toString ()) ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . next _ button Ġ-> Ġstart Message Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . send _ button Ġ-> Ġstart Sending Email () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Message Activity () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠMessage Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġname EditText ?. text ?. toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( name . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠgetString ( R . string . blank _ name _ alert ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Message Activity . EXTRA _ NAME , Ġname ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠGET _ MESSAGE _ REQUEST _ CODE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart Sending Email () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ SEND TO , ĠUri . parse (" mailto :" )) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ SUBJECT , ĠgetString ( R . string . email _ subject )) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ TEXT , Ġemail Message TextView ?. text ?. toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġcho oser Ġ= ĠIntent . create Chooser ( intent , ĠgetString ( R . string . choose _ email _ app _ title )) ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . resolve Activity ( package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( cho oser ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSAVE _ EXTRA _ MESSAGE Ġ= Ġ" SAVE _ EXTRA _ MESSAGE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠGET _ MESSAGE _ REQUEST _ CODE Ġ= Ġ 1 0 0 ĊĠĠĠ Ġ} Ċ } Ċ