package Ġcom . pro jet . mini pro jet . android V ox . activities . OTP Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġcom . google . android . material . dialog . Material AlertDialog Builder Ċ import Ġcom . h bb 2 0 . CountryCode Picker Ċ import Ġcom . pro jet . mini pro jet . android V ox . R Ċ Ċ import Ġandroid . widget . TextView Ċ import Ġcom . h bb 2 0 . CountryCode Picker . Custom Dialog Text Provider Ċ import Ġkotlinx . android . synt hetic . main . activity _ otp 2 .* ĊĊ Ċ class ĠO TP First Step Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġlateinit Ġvar ĠphoneNumber : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġcountry Code : ĠString ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Theme ( R . style . Theme _ Mini pro jet ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ otp 2 ) ĊĠĠĠĠĠĠĠ Ġ// ĠHide Ġthe Ġstatus Ġbar . ĊĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ċ // ĠRemember Ġthat Ġyou Ġshould Ġnever Ġshow Ġthe Ġaction Ġbar Ġif Ġthe Ċ // Ġstatus Ġbar Ġis Ġhidden , Ġso Ġhide Ġthat Ġtoo Ġif Ġnecessary . ĊĠĠĠĠĠĠĠ Ġaction Bar ?. hide () ĊĠĠĠĠĠĠĠ Ġval Ġph on enumber ET Ġ= ĠfindViewById < EditText >( R . id . phon enumber ET ) ĊĠĠĠĠĠĠĠ Ġval Ġget OTP btn Ġ= ĠfindViewById < Button >( R . id . get OTP btn ) ĊĊĠĠĠĠĠĠĠ Ġph on enumber ET . add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget OTP btn . isEnabled Ġ= Ġ!( it . isNull OrEmpty () Ġ|| Ġit . length Ġ< Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġget OTP btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Number () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcpp . set Custom Dialog Text Provider ( object Ġ: ĠCustom Dialog Text Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget CC P Dialog Title ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠCountry Code Picker . Language , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Title : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( language ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCountry Code Picker . Language . EN GL ISH Ġ-> Ġ" Select ĠCountry / Region " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdefault Title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget CC P Dialog Search Hint Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠCountry Code Picker . Language ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Search Hint Text : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdefault Search Hint Text ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget CC P Dialog No Result ACK ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠCountry Code Picker . Language , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault No Result ACK : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdefault No Result ACK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Number () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc cp Ġ= ĠfindViewById < CountryCode Picker >( R . id . cpp ) ĊĠĠĠĠĠĠĠ Ġval Ġph on enumber ET Ġ= ĠfindViewById < EditText >( R . id . phon enumber ET ) ĊĊĊĠĠĠĠĠĠĠ Ġcountry Code Ġ= Ġc cp . selected CountryCode With Plus ĊĠĠĠĠĠĠĠ ĠphoneNumber Ġ= Ġcountry Code Ġ+ Ġph on enumber ET . text . toString () ĊĊĠĠĠĠĠĠĠ Ġnotify User () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnotify User () Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial AlertDialog Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Message (" We Ġwill Ġbe Ġverify ing Ġthe Ġphone Ġnumber Ġ: Ġ$ phoneNumber \ n " Ġ+ Ġ" Is Ġthis ĠOK , Ġor Ġwould Ġyou Ġlike Ġto Ġedit Ġthe Ġnumber Ġ? ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button (" OK ") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow O tp Activity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative Button (" Edit ") Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow O tp Activity () Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , OTP Second Step :: class . java ). putExtra ( PHONE _ NUMBER , phoneNumber )) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} Ċ }