package Ġuk . ac . n cl . open lab . iris msg . common Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . TextView Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠA Ġutility Ġfor ĠActiv ities / Fragments Ġto Ġperform Ġcommon Ġactions , Ġdesigned Ġto Ġbe Ġ@ Inject 'd Ġin Ċ Ġ*/ Ċ @ Singleton Ċ class ĠViews Util Ġ@ Inject Ġconstructor ( val Ġapp : ĠApplication ) Ġ{ ĊĠĠĠĠĊĠĠĠ Ġ/** ĠToggle Ġan Ġelement Ġwith Ġan Ġshort Ġfade Ġanimation Ġ*/ ĊĠĠĠ Ġfun Ġtoggle Elem Ġ( view : ĠView ?, Ġshow : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġanimation Ġtime ĊĠĠĠĠĠĠĠ Ġval Ġshort Anim Time Ġ= Ġapp . resources . getInteger ( android . R . integer . config _ short Anim Time ). to Long () ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġvisibility ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( show ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ// ĠAn imate Ġthe Ġalpha ĊĠĠĠĠĠĠĠ Ġview . animate () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Duration ( short Anim Time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. alpha (( if Ġ( show ) Ġ 1 Ġelse Ġ 0 ). toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Listener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation End ( animation Ġ: ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . visibility Ġ= Ġif Ġ( show ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĠShow Ġan Ġapi Ġerror Ġor Ġhide Ġits Ġfield Ġif Ġnull Ġ*/ ĊĠĠĠ Ġfun Ġshow ApiError Ġ( api View : ĠTextView , Ġerror : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi View . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi View . text Ġ= Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĠShow Ġa Ġset Ġof Ġapi Ġerrors , Ġjoining Ġthem Ġwith Ġcommas Ġ*/ ĊĠĠĠ Ġfun Ġshow Api Errors Ġ( api View : ĠTextView , Ġerrors : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow ApiError ( api View , Ġerrors . join ToString ()) ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ Ġ/** ĠUn focus Ġthe Ġcurrently Ġfocused Ġinput Ġ*/ ĊĠĠĠ Ġfun Ġun Focus Ġ( current Focus : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcurrent Focus Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Input Ġ= Ġapp . application Context . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ? ĠInput Method Manager Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġcurrent Input . hide Soft Input From Window ( current Focus . window Token , ĠInput Method Manager . HIDE _ NOT _ ALWAYS ) ĊĠĠĠ Ġ} ĊĠĠĠĠ Ċ }