/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 . ĠHu awei ĠTechnologies ĠCo ., ĠLtd . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . hu awei . ag c . quickstart . auth Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġcom . hu awei . ag connect . auth .* Ċ import Ġcom . hu awei . h mf . tasks . On Failure Listener Ċ import Ġcom . hu awei . h mf . tasks . On Success Listener Ċ import Ġcom . hu awei . h mf . tasks . Task Executors Ċ import Ġjava . util .* Ċ Ċ class ĠRegister Activity () Ġ: ĠActivity (), ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġcountry Code Edit : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġaccount Edit : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpassword Edit : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġverify Code Edit : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtype : ĠLogin Activity . Type ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ register ) ĊĠĠĠĠĠĠĠ Ġtype Ġ= Ġintent . get Serializable Extra (" register Type ") Ġas ĠLogin Activity . Type ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Tv Ġ= ĠfindViewById < TextView >( R . id . tv _ account ) ĊĠĠĠĠĠĠĠ Ġcountry Code Edit Ġ= ĠfindViewById ( R . id . et _ country _ code ) ĊĠĠĠĠĠĠĠ Ġaccount Edit Ġ= ĠfindViewById ( R . id . et _ account ) ĊĠĠĠĠĠĠĠ Ġpassword Edit Ġ= ĠfindViewById ( R . id . et _ password ) ĊĠĠĠĠĠĠĠ Ġverify Code Edit Ġ= ĠfindViewById ( R . id . et _ verify _ code ) ĊĠĠĠĠĠĠĠ Ġval Ġcountry Code Layout Ġ= ĠfindViewById < ViewGroup >( R . id . layout _ cc ) ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠLogin Activity . Type . EMAIL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Tv . setText ( R . string . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code Layout . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Tv . setText ( R . string . phone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Code Layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġregister Btn Ġ= ĠfindViewById < Button >( R . id . btn _ register ) ĊĠĠĠĠĠĠĠ Ġregister Btn . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġsend Ġ= ĠfindViewById < Button >( R . id . btn _ send ) ĊĠĠĠĠĠĠĠ Ġsend . setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ register Ġ-> Ġlogin () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . btn _ send Ġ-> Ġsend Verification Code () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogin () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠLogin Activity . Type . EMAIL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġaccount Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġpassword Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverify Code Ġ= Ġverify Code Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbuild Ġemail Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail User Ġ= ĠEmail User . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Email ( email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Password ( password ) Ġ// optional , if Ġyou Ġset Ġa Ġpassword , Ġyou Ġcan Ġlog Ġin Ġdirectly Ġusing Ġthe Ġpassword Ġnext Ġtime . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Verify Code ( verify Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcreate Ġemail Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG Connect Auth . getInstance (). createUser ( email User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener ( On Success Listener Ġ{ Ġ// ĠAfter Ġa Ġuser Ġis Ġcreated , Ġthe Ġuser Ġhas Ġlogged Ġin Ġby Ġdefault . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Register Activity , ĠAuth MainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener ( object Ġ: ĠOn Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Register Activity , Ġ" createUser Ġfail :$ e ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcountry Code Ġ= Ġcountry Code Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠphoneNumber Ġ= Ġaccount Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġpassword Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverify Code Ġ= Ġverify Code Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġbuild Ġphone Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphone User Ġ= ĠPhone User . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set CountryCode ( country Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set PhoneNumber ( phoneNumber ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Password ( password ) Ġ// optional ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Verify Code ( verify Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcreate Ġphone Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAG Connect Auth . getInstance (). createUser ( phone User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Success Listener ( object Ġ: ĠOn Success Listener < SignIn Result ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( signIn Result : ĠSign In Result ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAfter Ġa Ġuser Ġis Ġcreated , Ġthe Ġuser Ġhas Ġlogged Ġin Ġby Ġdefault . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this @ Register Activity , ĠAuth MainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add On Failure Listener ( object Ġ: ĠOn Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Register Activity , Ġ" createUser Ġfail :$ e ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Verification Code () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠVerify Code Settings . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. action ( Verify Code Settings . ACTION _ REGISTER _ LOGIN ) Ġ// Ġaction Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Interval ( 3 0 ) Ġ// short est Ġsend Ġinterval Ġï¼Į 3 0 - 1 2 0 s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. locale ( Locale . SIMP LI FIED _ CH INE SE ) Ġ// optional , must Ġcontain Ġcountry Ġand Ġlanguage Ġeg : zh _ CN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== ĠLogin Activity . Type . EMAIL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġaccount Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġapply Ġfor Ġa Ġverification Ġcode Ġby Ġemail , Ġindicating Ġthat Ġthe Ġemail Ġis Ġowned Ġby Ġyou . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠAG Connect Auth . getInstance (). request Verify Code ( email , Ġsettings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . add On Success Listener ( Task Executors . ui Thread (), Ġobject Ġ: ĠOn Success Listener < Verify Code Result ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( verify Code Result : ĠVerify Code Result ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Register Activity , Ġ" send Ġemail Ġverify Ġcode Ġsuccess ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// You Ġneed Ġto Ġget Ġthe Ġverification Ġcode Ġfrom Ġyour Ġemail ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). add On Failure Listener ( Task Executors . ui Thread (), Ġobject Ġ: ĠOn Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Register Activity , Ġ" request Verify Code Ġfail :$ e ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcountry Code Ġ= Ġcountry Code Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠphoneNumber Ġ= Ġaccount Edit !!. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġapply Ġfor Ġa Ġverification Ġcode Ġby Ġphone , Ġindicating Ġthat Ġthe Ġphone Ġis Ġowned Ġby Ġyou . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠAG Connect Auth . getInstance (). request Verify Code ( country Code , ĠphoneNumber , Ġsettings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . add On Success Listener ( Task Executors . ui Thread (), Ġobject Ġ: ĠOn Success Listener < Verify Code Result ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( verify Code Result : ĠVerify Code Result ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Register Activity , Ġ" send Ġphone Ġverify Ġcode Ġsuccess ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// You Ġneed Ġto Ġget Ġthe Ġverification Ġcode Ġfrom Ġyour Ġphone ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). add On Failure Listener ( Task Executors . ui Thread (), Ġobject Ġ: ĠOn Failure Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ Register Activity , Ġ" request Verify Code Ġfail :$ e ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }