/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* Ġ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 Ġim . vector . matrix . android . api . session . identity Ċ Ċ import Ġim . vector . matrix . android . api . Matrix Callback Ċ import Ġim . vector . matrix . android . api . util . Cancel able Ċ Ċ /** Ċ Ġ* ĠProvides Ġaccess Ġto Ġthe Ġidentity Ġserver Ġconfiguration Ġand Ġservices Ġidentity Ġserver Ġcan Ġprovide Ċ Ġ*/ Ċ interface ĠIdentity Service Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġdefault Ġidentity Ġserver Ġof Ġthe Ġuser , Ġwhich Ġmay Ġhave Ġbeen Ġprovided Ġat Ġlogin Ġtime Ġby Ġthe Ġhome server , ĊĠĠĠĠ Ġ* Ġor Ġby Ġthe ĠWell - known Ġsetup Ġof Ġthe Ġhome server ĊĠĠĠĠ Ġ* ĠIt Ġmay Ġbe Ġdifferent Ġfrom Ġthe Ġcurrent Ġconfigured Ġidentity Ġserver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetDefault Identity Server (): ĠString ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġcurrent Ġidentity Ġserver ĠURL Ġused Ġby Ġthis Ġaccount . ĠReturns Ġnull Ġif Ġno Ġidentity Ġserver Ġis Ġconfigured . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠgetCurrent Identity Server Url (): ĠString ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCheck Ġif Ġthe Ġidentity Ġserver Ġis Ġvalid ĊĠĠĠĠ Ġ* ĠSee Ġhttps :// matrix . org / docs / spec / identity _ service / latest # status - check ĊĠĠĠĠ Ġ* ĠR iot X ĠSDK Ġonly Ġsupports Ġidentity Ġserver ĠAPI Ġv 2 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠisValid Identity Server ( url : ĠString , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġthe Ġidentity Ġserver Ġurl . ĊĠĠĠĠ Ġ* ĠIf Ġsuccessful , Ġany Ġprevious Ġidentity Ġserver Ġwill Ġbe Ġdisconnected . ĊĠĠĠĠ Ġ* ĠIn Ġcase Ġof Ġerror , Ġany Ġprevious Ġidentity Ġserver Ġwill Ġremain Ġconfigured . ĊĠĠĠĠ Ġ* Ġ@ param Ġurl Ġthe Ġnew Ġurl . ĊĠĠĠĠ Ġ* Ġ@ param Ġcallback Ġwill Ġnotify Ġthe Ġuser Ġif Ġchange Ġis Ġsuccessful . ĠThe ĠString Ġwill Ġbe Ġthe Ġfinal Ġurl Ġof Ġthe Ġidentity Ġserver . ĊĠĠĠĠ Ġ* ĠThe ĠSDK Ġcan Ġprepend Ġ" https ://" Ġfor Ġinstance . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset New Identity Server ( url : ĠString , Ġcallback : ĠMatrix Callback < String >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDis connect Ġ( logout ) Ġfrom Ġthe Ġcurrent Ġidentity Ġserver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdisconnect ( callback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġask Ġthe Ġidentity Ġserver Ġto Ġsend Ġan Ġemail Ġor Ġan ĠSMS Ġto Ġlet Ġthe Ġuser Ġconfirm Ġhe Ġowns Ġthe ĠThree Pid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġstart Bind Three Pid ( three Pid : ĠThree Pid , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġcancel Ġa Ġpending Ġbinding Ġof Ġthree Pid . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcancel Bind Three Pid ( three Pid : ĠThree Pid , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġask Ġthe Ġidentity Ġserver Ġto Ġsend Ġan Ġnew Ġemail Ġor Ġa Ġnew ĠSMS Ġto Ġlet Ġthe Ġuser Ġconfirm Ġhe Ġowns Ġthe ĠThree Pid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsend Again Validation Code ( three Pid : ĠThree Pid , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubmit Ġthe Ġcode Ġthat Ġthe Ġidentity Ġserver Ġhas Ġsent Ġto Ġthe Ġuser Ġ( in Ġemail Ġor ĠSMS ) ĊĠĠĠĠ Ġ* ĠOnce Ġsuccessful , Ġyou Ġwill Ġhave Ġto Ġcall Ġ[ finalize Bind Three Pid ] ĊĠĠĠĠ Ġ* Ġ@ param Ġcode Ġthe Ġcode Ġsent Ġto Ġthe Ġuser ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsubmit Validation Token ( three Pid : ĠThree Pid , Ġcode : ĠString , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġperform Ġthe Ġactual Ġassociation Ġof ĠThree Pid Ġand ĠMatrix Ġaccount ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfinalize Bind Three Pid ( three Pid : ĠThree Pid , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠU nb ind Ġa Ġthree Pid ĊĠĠĠĠ Ġ* ĠThe Ġrequest Ġwill Ġactually Ġbe Ġdone Ġon Ġthe Ġhome server ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġun bind Three Pid ( three Pid : ĠThree Pid , Ġcallback : ĠMatrix Callback < Unit >): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSearch ĠMatrix Id Ġof Ġusers Ġproviding Ġemail Ġand Ġphone Ġnumbers ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlook Up ( three P ids : ĠList < Three Pid >, Ġcallback : ĠMatrix Callback < List < Found Three Pid >> ): ĠCancel able ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġstatus Ġof Ġthe Ġcurrent Ġuser 's Ġthree Pid ĊĠĠĠĠ Ġ* ĠA Ġlookup Ġwill Ġbe Ġperformed , Ġbut Ġalso Ġpending Ġbinding Ġstate Ġwill Ġbe Ġrestored ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġthree P ids Ġthe Ġlist Ġof Ġthree Pid Ġthe Ġuser Ġowns Ġ( retrie ved Ġform Ġthe Ġhome server ) ĊĠĠĠĠ Ġ* Ġ@ param Ġcallback ĠonSuccess Ġwill Ġbe Ġcalled Ġwith Ġa Ġmap Ġof ĠThree Pid Ġ-> ĠShared State ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Share Status ( three P ids : ĠList < Three Pid >, Ġcallback : ĠMatrix Callback < Map < Three Pid , ĠShared State >> ): ĠCancel able ĊĊĠĠĠ Ġfun Ġadd Listener ( listener : ĠIdentity Service Listener ) ĊĠĠĠ Ġfun Ġremove Listener ( listener : ĠIdentity Service Listener ) Ċ } Ċ