/* Ċ Ġ* Ġ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 . data Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . squareup . mos hi . Json Ċ import Ġcom . squareup . mos hi . Json Class Ċ import Ġkotlinx . parcel ize . Parcel ize Ċ Ċ @ Json Class ( generate Adapter Ġ= Ġtrue ) Ċ @ Parcel ize Ċ data Ġclass ĠS so Identity Provider ( ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġid Ġfield Ġwould Ġbe Ġopaque Ġwith Ġthe Ġaccepted Ġcharacters Ġmatching Ġun reserved ĠURI Ġcharacters Ġas Ġdefined Ġin ĠRFC 3 9 8 6 ĊĠĠĠĠĠĠĠĠ Ġ* Ġ- Ġthis Ġwas Ġchosen Ġto Ġavoid Ġhaving Ġto Ġencode Ġspecial Ġcharacters Ġin Ġthe ĠURL . ĠMax Ġlength Ġ 1 2 8 . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" id ") Ġval Ġid : ĠString , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġname Ġfield Ġshould Ġbe Ġthe Ġhuman Ġreadable Ġstring Ġintended Ġfor Ġprinting Ġby Ġthe Ġclient . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" name ") Ġval Ġname : ĠString ?, ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġicon Ġfield Ġis Ġthe Ġonly Ġoptional Ġfield Ġand Ġshould Ġpoint Ġto Ġan Ġicon Ġrepresenting Ġthe ĠId P . ĊĠĠĠĠĠĠĠĠ Ġ* ĠIf Ġpresent Ġthen Ġit Ġmust Ġbe Ġan ĠHTTPS ĠURL Ġto Ġan Ġimage Ġresource . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġshould Ġbe Ġhosted Ġby Ġthe Ġhome server Ġservice Ġprovider Ġto Ġnot Ġleak Ġthe Ġclient 's ĠIP Ġaddress Ġun ne cess arily . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" icon ") Ġval Ġicon Url : ĠString ?, ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġ` brand ` Ġfield Ġis Ġ** optional **. ĠIt Ġallows Ġthe Ġclient Ġto Ġstyle Ġthe Ġlogin ĊĠĠĠĠĠĠĠĠ Ġ* Ġbutton Ġto Ġsuit Ġa Ġparticular Ġbrand . ĠIt Ġshould Ġbe Ġa Ġstring Ġmatching Ġthe ĊĠĠĠĠĠĠĠĠ Ġ* Ġ" Common Ġname spaced Ġidentifier Ġgrammar " Ġas Ġdefined Ġin ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ MSC 2 7 5 8 ]( https :// github . com / matrix - org / matrix - doc / pull / 2 7 5 8 ). ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" brand ") Ġval Ġbrand : ĠString ? Ċ Ċ ) Ġ: ĠParcel able , ĠComparable < S so Identity Provider > Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB RAND _ GOOGLE Ġ= Ġ" google " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB RAND _ GITHUB Ġ= Ġ" github " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB RAND _ APPLE Ġ= Ġ" apple " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB RAND _ FACE BOOK Ġ= Ġ" facebook " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB RAND _ TW IT TER Ġ= Ġ" twitter " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB RAND _ GIT LAB Ġ= Ġ" gitlab " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠS so Identity Provider ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġother . to Priority (). compareTo ( to Priority ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġto Priority (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( brand ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġare Ġon ĠAndroid , Ġso Ġuser Ġis Ġmore Ġlikely Ġto Ġhave Ġa ĠGoogle Ġaccount ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB RAND _ GOOGLE Ġ-> Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFacebook Ġis Ġalso Ġan Ġimportant ĠSSO Ġprovider ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB RAND _ FACE BOOK Ġ-> Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTwitter Ġis Ġmore Ġfor Ġprof ession als ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB RAND _ TW IT TER Ġ-> Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHere Ġit 's Ġvery Ġfor Ġtech ie Ġpeople ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB RAND _ GITHUB , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB RAND _ GIT LAB Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAnd Ġfinally , Ġif Ġthe Ġaccount Ġhas Ġbeen Ġcreated Ġwith Ġan ĠiPhone ... ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB RAND _ APPLE Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ