package Ġcom . e ag les ak ura . example Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . activity . result . Activity Result Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . e ag les ak ura . workflow dispatcher . On Activity Result Flow Ċ import Ġcom . e ag les ak ura . workflow dispatcher . On Dialog Result Flow Ċ import Ġcom . e ag les ak ura . workflow dispatcher . On Runtime Permission Result Flow Ċ import Ġcom . e ag les ak ura . workflow dispatcher . dialog . AlertDialog Factory Ċ import Ġcom . e ag les ak ura . workflow dispatcher . dialog . Dialog Result Ċ import Ġcom . e ag les ak ura . workflow dispatcher . permission . Runtime Permission Result Ċ import Ġjava . util . Date Ċ Ċ class ĠAnnotation Example Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartDate Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Example Dialog With State ( AlertDialog Factory . Builder (). also Ġ{ Ġbuilder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . message Ġ= Ġ" Start ĠRuntime - Permission !! \ n startDate ='$ startDate '" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . positive Button Ġ= Ġ" Start " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . negative Button Ġ= Ġ" Abort " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build (), ĠstartDate , Ġ" https :// google . com ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Re Build ĠActivity ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDone Ġdialog Ġresult . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ On Dialog Result Flow (" show Example Dialog ") ĊĠĠĠ Ġinternal Ġfun Ġon Show Example Dialog Result ( result : ĠDialog Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( result . selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Result . Selection . Positive Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġruntime Permission Flow () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Dialog Result Flow (" show Example Dialog With State ") ĊĠĠĠ Ġinternal Ġfun Ġon Show Example Dialog With State Result ( ĊĠĠĠĠĠĠĠ Ġresult : ĠDialog Result , ĊĠĠĠĠĠĠĠ ĠstartDate : ĠDate , ĊĠĠĠĠĠĠĠ Ġurl : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( result . selected ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog Result . Selection . Positive Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġruntime Permission With State Flow ( url Ġ= Ġurl , ĠstartDate Ġ= ĠstartDate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDone Ġruntime Ġpermission Ġresult . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ On Runtime Permission Result Flow ( ĊĠĠĠĠĠĠĠ Ġ" runtime Permission Flow ", ĊĠĠĠĠĠĠĠ Ġ[ android . Manifest . permission . WRITE _ EXTERNAL _ STORAGE ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġinternal Ġfun Ġon Runtime Permission Result ( result : ĠRuntime Permission Result ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! result . all Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" permission Ġnot Ġgranted : Ġ${ result . permissions }", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġactivity Result Flow ( Intent ( Intent . ACTION _ VIEW , ĠUri . parse (" https :// yahoo . com "))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDone Ġruntime Ġpermission Ġresult . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ On Runtime Permission Result Flow ( ĊĠĠĠĠĠĠĠ Ġ" runtime Permission With State Flow ", ĊĠĠĠĠĠĠĠ Ġ[ android . Manifest . permission . WRITE _ EXTERNAL _ STORAGE , Ġandroid . Manifest . permission . READ _ EXTERNAL _ STORAGE ] ĊĠĠĠ Ġ) ĊĠĠĠ Ġinternal Ġfun Ġon Runtime Permission With State Result ( ĊĠĠĠĠĠĠĠ Ġresult : ĠRuntime Permission Result , ĊĠĠĠĠĠĠĠ ĠstartDate : ĠDate , ĊĠĠĠĠĠĠĠ Ġurl : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! result . all Granted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" permission Ġnot Ġgranted : Ġ${ result . permissions }", ĠToast . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġactivity Result Flow With State ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( url )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartDate Ġ= ĠstartDate ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDone Ġactivity Ġresult . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ On Activity Result Flow (" activity Result Flow ") ĊĠĠĠ Ġinternal Ġfun Ġon Activity Result Flow Result ( result : ĠActivity Result ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Done ĠAll ĠFlow !! ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Activity Result Flow (" activity Result Flow With State ") ĊĠĠĠ Ġinternal Ġfun Ġon Activity Result With State Flow Result ( ĊĠĠĠĠĠĠĠ Ġresult : ĠActivity Result , ĠstartDate : ĠDate ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" startDate ='$ startDate '", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ċ Ċ } Ċ