/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠMatrix . org ĠFoundation ĠC . I . C . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . matrix . android . sdk . api . auth . login Ċ Ċ import Ġorg . matrix . android . sdk . api . session . Session Ċ import Ġorg . matrix . android . sdk . api . util . Json Dict Ċ Ċ /** Ċ Ġ* ĠSet Ġof Ġmethods Ġto Ġbe Ġable Ġto Ġlogin Ġto Ġan Ġexisting Ġaccount Ġon Ġa Ġhome server . Ċ Ġ* Ċ Ġ* ĠMore Ġdocumentation Ġcan Ġbe Ġfound Ġin Ġthe Ġfile Ġhttps :// github . com / vector - im / element - android / blob / main / docs / signin . md Ċ Ġ*/ Ċ interface ĠLogin Wizard Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġsome Ġinformation Ġabout Ġa Ġmatrix Id : ĠdisplayName Ġand Ġavatar Ġurl ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġget Profile Info ( matrix Id : ĠString ): ĠLogin Profile Info ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLogin Ġto Ġthe Ġhome server . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlogin Ġthe Ġlogin Ġfield . ĠCan Ġbe Ġa Ġuser Ġname , Ġor Ġa Ġms is dn Ġ( email Ġor Ġphone Ġnumber ) Ġassociated Ġto Ġthe Ġaccount ĊĠĠĠĠ Ġ* Ġ@ param Ġpassword Ġthe Ġpassword Ġof Ġthe Ġaccount ĊĠĠĠĠ Ġ* Ġ@ param Ġinitial Device Name Ġthe Ġinitial Ġdevice Ġname ĊĠĠĠĠ Ġ* Ġ@ param ĠdeviceId Ġthe Ġdevice Ġid , Ġoptional . ĠIf Ġnot Ġprovided Ġor Ġnull , Ġthe Ġserver Ġwill Ġgenerate Ġone . ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Session ] Ġif Ġthe Ġlogin Ġis Ġsuccessful ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġlogin ( login : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Device Name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdeviceId : ĠString ? Ġ= Ġnull ): ĠSession ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠExchange Ġa Ġlogin Ġtoken Ġto Ġan Ġaccess Ġtoken . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlogin Token Ġlogin Ġtoken , Ġobtain Ġwhen Ġlogin Ġhas Ġhappen Ġin Ġa ĠWebView , Ġusing ĠSSO ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ Session ] Ġif Ġthe Ġlogin Ġis Ġsuccessful ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġlogin With Token ( login Token : ĠString ): ĠSession ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLogin Ġto Ġthe Ġhome server Ġby Ġsending Ġa Ġcustom ĠJson Dict . ĊĠĠĠĠ Ġ* ĠThe Ġdata Ġshould Ġcontain Ġat Ġleast Ġone Ġentry Ġ" type " Ġwith Ġa ĠString Ġvalue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġlogin Custom ( data : ĠJson Dict ): ĠSession ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAsk Ġthe Ġhome server Ġto Ġreset Ġthe Ġuser Ġpassword . ĠThe Ġpassword Ġwill Ġnot Ġbe Ġreset Ġuntil ĊĠĠĠĠ Ġ* Ġ[ reset Password Mail Confirmed ] Ġis Ġsuccessfully Ġcalled . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġemail Ġan Ġemail Ġpreviously Ġassociated Ġto Ġthe Ġaccount Ġthe Ġuser Ġwants Ġthe Ġpassword Ġto Ġbe Ġreset . ĊĠĠĠĠ Ġ* Ġ@ param Ġnew Password Ġthe Ġdesired Ġnew Ġpassword ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġreset Password ( email : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Password : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfirm Ġthe Ġnew Ġpassword , Ġonce Ġthe Ġuser Ġhas Ġchecked Ġtheir Ġemail ĊĠĠĠĠ Ġ* ĠWhen Ġthis Ġmethod Ġsucceed , Ġth a Ġaccount Ġpassword Ġwill Ġbe Ġeffectively Ġmodified . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġreset Password Mail Confirmed () Ċ } Ċ