package Ġcom . zk . base _ project . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġkotlin . math . round ToInt ĊĊ Ċ object ĠExtensions Ġ{ ĊĊĠĠĠ Ġvar ĠView . visible : Boolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvisible ĊĠĠĠĠĠĠĠ Ġset ( value ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= Ġif Ġ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠInt . to Dp () Ġ: Int Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( this Ġ/ ĠResources . getSystem (). display Metrics . density ). round ToInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠInt . to Px () Ġ: Int Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( this Ġ* ĠResources . getSystem (). display Metrics . density ). round ToInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠFragment . hide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Activity (). current Focus ?. hide Keyboard () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠView . hide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġcontext ?. getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ? ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm ?. hide Soft Input From Window ( window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠView . show Sn ackBar ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlength : ĠInt Ġ= ĠSn ackbar . LENGTH _ LONG ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( this , Ġmessage , Ġlength ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSend Ġemail . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġthe Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġemail Ġthe Ġemail ĊĠĠĠĠ Ġ* Ġ@ param Ġsubject Ġthe Ġsubject ĊĠĠĠĠ Ġ* Ġ@ param Ġtext Ġthe Ġtext ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠString . send Email ( context : ĠContext , Ġtext : ĠString ="", Ġsubject : ĠString ? ="") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Intent Ġ= ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ SEND ) ĊĠĠĠĠĠĠĠ Ġemail Intent . type Ġ= Ġ" plain / text " ĊĠĠĠĠĠĠĠ Ġemail Intent . putExtra ( Intent . EXTRA _ EMAIL , ĠarrayOf ( this )) ĊĠĠĠĠĠĠĠ Ġemail Intent . putExtra ( Intent . EXTRA _ SUBJECT , Ġsubject ) ĊĠĠĠĠĠĠĠ Ġemail Intent . putExtra ( Intent . EXTRA _ TEXT , Ġtext ) ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent . create Chooser ( email Intent , Ġ" Send Ġmail ... ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠD ial . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext Ġthe Ġcontext ĊĠĠĠĠ Ġ* Ġ@ param Ġnumber Ġthe Ġnumber ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠString . dial ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdial Uri : ĠUri Ġ= ĠUri . parse (" tel :$ this ") ĊĠĠĠĠĠĠĠ Ġval Ġdial Intent Ġ= ĠIntent ( Intent . ACTION _ DI AL , Ġdial Uri ) ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( dial Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠString . open Browser ( context : ĠContext ){ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠ Ġvar Ġurl Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġif Ġ(! url . startsWith (" http :// ") Ġ&& Ġ! url . startsWith (" https :// ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" http ://" Ġ+ Ġurl ; ĊĠĠĠĠĠĠĠ Ġi . data Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( i ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }