package Ġio . zer ob ase . smart tracing . api Ċ Ċ import Ġcom . google . i 1 8 n . phon en umbers . Number ParseException Ċ import Ġcom . google . i 1 8 n . phon en umbers . PhoneNumber Util Ċ import Ġjava . util .* Ċ Ċ private Ġval Ġphone Util Ġ= ĠPhone Number Util . getInstance () Ċ Ċ fun Ġvalidate PhoneNumber ( phone : ĠString ?) Ġ{ ĊĠĠĠ Ġif Ġ( phone Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠZ Z Ġas Ġthe Ġregion Ġcode Ġforces ĠE . 1 6 4 ĊĠĠĠĠĠĠĠ Ġval Ġparsed PhoneNumber Ġ= Ġphone Util . parse ( phone , Ġ" ZZ ") ĊĠĠĠĠĠĠĠ Ġval Ġvalidity Result Ġ= Ġphone Util . is Possible Number With Reason ( parsed PhoneNumber ) ĊĠĠĠĠĠĠĠ Ġif Ġ( validity Result Ġ!= ĠPhone Number Util . Validation Result . IS _ PO SS IBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid PhoneNumber Exception (" Unable Ġto Ġvalidate Ġphone Ġnumber : Ġ$ validity Result ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( ex : ĠNumber ParseException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid PhoneNumber Exception (" Phone Ġnumber Ġcould Ġnot Ġbe Ġparsed : Ġ${ ex . message }") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġnow (): ĠDate Ġ= ĠDate () Ċ