package Ġio . github . z ey om ir . ext reme sport ss os . view . contact Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . widget . Toast Ċ import Ġdagger . android . Android Injection Ċ import Ġio . github . z ey om ir . ext reme sport ss os . R Ċ import Ġio . github . z ey om ir . ext reme sport ss os . presenter . contact . Contact Presenter Ċ import Ġjavax . inject . Inject Ċ Ċ import Ġkotlinx . android . synt hetic . main . activity _ contact . pick Ċ import Ġkotlinx . android . synt hetic . main . activity _ contact . info Ċ import Ġkotlinx . android . synt hetic . main . activity _ contact . name Ċ import Ġkotlinx . android . synt hetic . main . activity _ contact . next Ċ import Ġandroid . provider . Contacts Contract Ċ import Ġandroid . content . Intent Ċ import Ġandroid . database . Cursor Ċ import Ġio . github . z ey om ir . ext reme sport ss os . view . message . Configure Message Activity ĊĊ Ċ class ĠConfigure Contact Activity Ġ: ĠAppCompatActivity (), ĠConfigure Contact View Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠContact Presenter ĊĊĠĠĠ Ġprivate Ġval ĠSELECT _ PHONE _ NUMBER : ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ contact ) ĊĠĠĠĠĠĠĠ Ġpresenter . bind ( this ) ĊĠĠĠĠĠĠĠ Ġpresenter . fetch Contact Info () ĊĠĠĠĠĠĠĠ Ġpick . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ P ICK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi . type Ġ= ĠContact s Contract . Common Data Kinds . Phone . CONTENT _ TYPE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( i , ĠSELECT _ PHONE _ NUMBER ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnext . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . save Data ( info . text . toString (), Ġname . text . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠActivity . RESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠSELECT _ PHONE _ NUMBER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparse Contact Info ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Contact Info ( data : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor Ġ= Ġcontent Resolver . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . data , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Contacts Contract . Common Data Kinds . Phone . NUMBER , ĠContact s Contract . Common Data Kinds . Identity . DISPLAY _ NAME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġcursor Ġreturned Ġis Ġvalid , Ġget Ġthe Ġphone Ġnumber ĊĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontact Number : ĠString Ġ= Ġcursor . getString ( cursor . getColumnIndex ( Contacts Contract . Common Data Kinds . Phone . NUMBER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontact Name : ĠString Ġ= Ġcursor . getString ( cursor . getColumnIndex ( Contacts Contract . Common Data Kinds . Identity . DISPLAY _ NAME )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo . setText ( contact Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . setText ( contact Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġpresenter . unbind () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetData ( contact Info : ĠString ?, Ġcontact Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo . setText ( contact Info ) ĊĠĠĠĠĠĠĠ Ġname . setText ( contact Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Contact Info Empty Error () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . configure _ contact _ validation _ error , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnext Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( this , ĠConfigure Message Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( i ) ĊĠĠĠ Ġ} Ċ } Ċ