package Ġcom . ir fan ir aw ans uk ir man . core . util . extension Ċ Ċ import Ġandroid . content . Activity NotFoundException Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠAppCompatActivity . extra ( key : ĠString , Ġdefault : ĠT ? Ġ= Ġnull ) Ġ= Ġlazy Ġ{ ĊĠĠĠ Ġval Ġvalue Ġ= Ġintent ?. extras ?. get ( key ) ĊĠĠĠ Ġif Ġ( value Ġis ĠT ) Ġvalue Ġelse Ġdefault Ċ } Ċ Ċ fun ĠAppCompatActivity . navigation To Browser ( url : ĠString ) Ġ{ ĊĠĠĠ ĠstartActivity ( Intent ( Intent . ACTION _ VIEW , ĠUri . parse ( url ))) Ċ } Ċ Ċ inline Ġfun ĠAppCompatActivity . navigation For Package ( ĊĠĠĠ ĠpackageName : ĠString , ĊĠĠĠ Ġis Finish Page : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġintent Params : ĠIntent . () Ġ-> ĠUnit , ĊĠĠĠ Ġexception : Ġ( Activity NotFoundException ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠClass . forName ( packageName )) ĊĠĠĠĠĠĠĠ Ġintent . intent Params () ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Finish Page ) Ġfinish () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠActivity NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexception ( e ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAppCompatActivity > ĠAppCompatActivity . navigation ( with Finish : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠ Ġnavigation < T >( with Finish Ġ= Ġwith Finish ) Ġ{} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAppCompatActivity > ĠAppCompatActivity . navigation ( ĊĠĠĠ Ġwith Finish : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġrequest Code : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġintent Params : ĠIntent . () Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠT :: class . java ) ĊĠĠĠ Ġintent . intent Params () ĊĠĠĠ Ġif Ġ( request Code Ġ!= Ġ 0 ) ĠstartActivity For Result ( intent , Ġrequest Code ) Ġelse ĠstartActivity ( intent ) ĊĠĠĠ Ġif Ġ( with Finish ) Ġfinish () Ċ }