package Ġ<%= Ġapp Package Ġ% >. k tx Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . CLIP BOARD _ SERVICE Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Point Ċ import Ġandroid . location . Location Ċ import Ġandroid . net . Uri Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view .* Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . Toast Ċ import Ġ<%= Ġapp Package Ġ% >. R Ċ Ċ fun ĠContext . toast ( message : ĠString , Ġduration : ĠInt Ġ= ĠToast . LENGTH _ SHORT ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġmessage , Ġduration ). show () Ċ } Ċ Ċ fun ĠContext . toast ( message Id : ĠInt , Ġduration : ĠInt Ġ= ĠToast . LENGTH _ SHORT ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , ĠmessageId , Ġduration ). show () Ċ } ĊĊ Ċ fun ĠContext . show Keyboard ( view : ĠView ) Ġ{ ĊĠĠĠ Ġval Ġinput Method Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġinput Method Manager . show Soft Input ( view , ĠInput Method Manager . SHOW _ IMP LICIT ) Ċ } Ċ Ċ fun ĠContext . toggle Keyboard () Ġ{ ĊĠĠĠ Ġval Ġinput Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġinput Manager . toggle Soft Input ( Input Method Manager . SHOW _ FOR CED , Ġ 0 ) Ċ } Ċ Ċ fun ĠContext . hide Keyboard ( view : ĠView ) Ġ{ ĊĠĠĠ Ġval Ġinput Method Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( view . window Token , Ġ 0 ) Ċ } Ċ Ċ fun ĠContext . has Soft Key (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġresource Id Ġ= Ġresources . getIdentifier (" config _ show NavigationBar ", Ġ" bool ", Ġ" android ") ĊĠĠĠ Ġ// ĠREFER : Ġhttp :// stackoverflow . com / questions / 1 6 0 9 2 4 3 1 / check - for - navigation - bar / 1 6 6 0 8 4 8 1 # 1 6 6 0 8 4 8 1 ĊĠĠĠ Ġval Ġhas Menu Key Ġ= ĠView Configuration . get ( this ). has Permanent Menu Key () ĊĠĠĠ Ġval Ġhas Home Key Ġ= ĠKey Character Map . device HasKey ( KeyEvent . KEYCODE _ HOME ) ĊĠĠĠ Ġval Ġhas Back Key Ġ= ĠKey Character Map . device HasKey ( KeyEvent . KEYCODE _ BACK ) ĊĊĠĠĠ Ġreturn Ġ( resourceId Ġ> Ġ 0 Ġ&& Ġresources . getBoolean ( resourceId )) Ġ|| Ġ(! has Menu Key Ġ&& Ġ! has Back Key ) Ċ } Ċ Ċ val ĠContext . navigation Bar Height : ĠInt ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Id Ġ= Ġresources . getIdentifier (" navigation _ bar _ height ", Ġ" dim en ", Ġ" android ") ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( resourceId Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension Pixel Size ( resourceId ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ 0 ĊĠĠĠ Ġ} Ċ Ċ fun ĠContext . status Bar Height (): ĠInt Ġ{ ĊĠĠĠ Ġval Ġresource Id Ġ= Ġresources . getIdentifier (" status _ bar _ height ", Ġ" dim en ", Ġ" android ") ĊĠĠĠ Ġreturn Ġresources . get Dimension Pixel Size ( resourceId ) Ċ } Ċ Ċ fun ĠContext . dp 2 px ( dp : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġdp , Ġresources . display Metrics ) Ċ } Ċ Ċ fun ĠContext . px 2 sp ( px : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġpx Ġ/ Ġresources . display Metrics . scaled Density Ċ } Ċ Ċ fun ĠContext . sp 2 px ( sp : ĠFloat ): ĠFloat Ġ{ ĊĠĠĠ Ġreturn Ġsp Ġ* Ġresources . display Metrics . scaled Density Ċ } Ċ Ċ fun ĠContext . phone Intent ( number : ĠString ): ĠIntent Ġ{ ĊĠĠĠ Ġreturn ĠIntent ( Intent . ACTION _ DI AL ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse (" tel :$ number ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠContext . open External Browser With ( url : ĠString ?, Ġcb : Ġ() Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ VIEW ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse ( url ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( i , Ġnull ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcb . invoke () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠContext . copy To Clipboard ( label : ĠString , Ġtext : ĠString ) Ġ{ ĊĠĠĠ Ġ( getSystem Service ( CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ). run Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text ( label , Ġtext ) ĊĠĠĠĠĠĠĠ Ġset Primary Clip ( clip ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠContext . window Manager (): ĠWindow Manager Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this Ġis ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow Manager ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġget System Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠContext . screen Width : ĠInt ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdisplay Ġ= Ġwindow Manager (). default Display ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠPoint () ĊĠĠĠĠĠĠĠ Ġdisplay . getSize ( size ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsize . x ĊĠĠĠ Ġ} Ċ Ċ val ĠContext . screen Height : ĠInt ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdisplay Ġ= Ġwindow Manager (). default Display ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠPoint () ĊĠĠĠĠĠĠĠ Ġdisplay . getSize ( size ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsize . y ĊĠĠĠ Ġ} Ċ Ċ fun ĠContext . is App Installed ( id : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġpackage Manager . getApplication Info ( id , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠContext . open Aut on avi App ( ĊĠĠĠ Ġorigin Loc : ĠLocation ?, ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġlatitude : ĠDouble , ĊĠĠĠ Ġlongitude : ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" android amap :// route ? source Application =${ getString ( R . string . app _ name )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"& dl at =$ latitude & dl on =$ longitude & d name =$ name " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"& dev = 0 & m = 0 & t = 4 & show Type = 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠstartActivity ( intent ) Ċ } ĊĊ Ċ fun ĠContext . open B aid u Map App ( ĊĠĠĠ Ġorigin Loc : ĠLocation ?, ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġcity : ĠString , ĊĠĠĠ Ġlatitude : ĠDouble , ĊĠĠĠ Ġlongitude : ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmode Ġ= Ġ" d riving " ĊĠĠĠĠĠĠĠ Ġval Ġorigin Ġ= Ġif Ġ( origin Loc Ġis ĠLocation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" origin = lat lng :${ origin Loc . latitude }, ${ origin Loc . longitude }| name :& " ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= Ġ" destination = lat lng :$ latitude ,$ longitude | name :$ name " ĊĠĠĠĠĠĠĠ Ġdata Ġ= ĠUri . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ba id um ap :// map / direction ?$ origin $ destination & mode =$ mode & region =$ city & coord _ type = w gs 8 4 & src =$ packageName # Intent ; scheme = bd app ; package = com . baidu . B aid u Map ; end " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠstartActivity ( intent ) Ċ } ĊĊ Ċ val ĠContext . approx imate Soft Key Board Height : ĠInt ĊĠĠĠ Ġget () Ġ= Ġscreen Height Ġ/ Ġ 5 Ġ* Ġ 3 Ċ