package Ġcom . ep iph any . call . helpers Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . net . Uri Ċ import Ġcom . ep iph any . call . extensions . getInt Value Ċ import Ġcom . ep iph any . call . extensions . getString Value Ċ import Ġcom . ep iph any . call . models . Simple Contact Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ Ċ // Ġused Ġfor Ġsharing Ġprivate ly Ġstored Ġcontacts Ġin ĠSimple ĠContact s Ġwith ĠSimple ĠD ial er , ĠSimple ĠSMS ĠMess enger Ġand ĠSimple ĠCalendar ĠPro Ċ class ĠCall Contacts Content Provider Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAUTH ORITY Ġ= Ġ" com . simple mobile tools . commons . contact spro vider " ĊĠĠĠĠĠĠĠ Ġval ĠCONT ACT S _ CONTENT _ URI Ġ= ĠUri . parse (" content :// $ AUTH ORITY / contacts ") ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF AV OR ITES _ ONLY Ġ= Ġ" favorites _ only " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ RAW _ ID Ġ= Ġ" raw _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ CONTACT _ ID Ġ= Ġ" contact _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ NAME Ġ= Ġ" name " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ PH OTO _ URI Ġ= Ġ" photo _ uri " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ PHONE _ NUMBER S Ġ= Ġ" phone _ numbers " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ B IR TH DAYS Ġ= Ġ" birth days " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOL _ AN NI VER SAR IES Ġ= Ġ" ann ivers aries " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Simple Contacts ( context : ĠContext , Ġcursor : ĠCursor ?): ĠArrayList < Simple Contact > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontacts Ġ= ĠArrayList < Simple Contact >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠpackageName Ġ= Ġcontext . packageName . remove Suffix (". debug ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( packageName Ġ!= Ġ" com . simple mobile tools . dial er " Ġ&& ĠpackageName Ġ!= Ġ" com . simple mobile tools . sms messenger " Ġ&& ĠpackageName Ġ!= Ġ" com . simple mobile tools . calendar . pro ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontacts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor ?. use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġraw Id Ġ= Ġcursor . getInt Value ( COL _ RAW _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontact Id Ġ= Ġcursor . getInt Value ( COL _ CONTACT _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġcursor . getString Value ( COL _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphoto Uri Ġ= Ġcursor . getString Value ( COL _ PH OTO _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphone Numbers Json Ġ= Ġcursor . getString Value ( COL _ PHONE _ NUMBER S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbirth days Json Ġ= Ġcursor . getString Value ( COL _ B IR TH DAYS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġann ivers aries Json Ġ= Ġcursor . getString Value ( COL _ AN NI VER SAR IES ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġobject Ġ: ĠType Token < ArrayList < String >>() Ġ{} . type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphone Numbers Ġ= ĠGson (). fromJson < ArrayList < String >>( phone Numbers Json , Ġtoken ) Ġ?: ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbirth days Ġ= ĠGson (). fromJson < ArrayList < String >>( birth days Json , Ġtoken ) Ġ?: ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġann ivers aries Ġ= ĠGson (). fromJson < ArrayList < String >>( ann ivers aries Json , Ġtoken ) Ġ?: ĠArrayList () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontact Ġ= ĠSimple Contact ( raw Id , Ġcontact Id , Ġname , Ġphoto Uri , Ġphone Numbers , Ġbirth days , Ġann ivers aries ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontacts . add ( contact ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcontacts ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ