package Ġde . der typ 7 2 1 4 . r board theme manager . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . widget . Button Ċ import Ġandroidx . core . widget . do On TextChanged Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . google . android . material . text field . TextInput EditText Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . R Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . auth . Api Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . core . disable Ċ import Ġde . der typ 7 2 1 4 . r board theme manager . core . enable Ċ import Ġkotlinx . android . synt hetic . main . activity _ authentication .* Ċ Ċ class ĠAuth Login Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġinflater . inflate ( R . layout . fragment _ auth _ login , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= Ġauth Nav . find Nav Controller () ĊĊĠĠĠĠĠĠĠ Ġval Ġbutton Register Ġ= Ġv . findViewById < Button >( R . id . btn _ register ) ĊĠĠĠĠĠĠĠ Ġval Ġbutton Login Ġ= Ġv . findViewById < Button >( R . id . btn _ login ) ĊĠĠĠĠĠĠĠ Ġval Ġemail Input Ġ= Ġv . findViewById < TextInput EditText >( R . id . email _ input ) ĊĠĠĠĠĠĠĠ Ġval Ġemail Box Ġ= Ġv . findViewById < TextInput Layout >( R . id . email _ parent ) ĊĊĠĠĠĠĠĠĠ Ġv . findViewById < ViewGroup >( R . id . root ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. window ?. set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ STATE _ ALWAYS _ HIDDEN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbutton Register . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. window ?. set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ STATE _ ALWAYS _ HIDDEN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġemail Box . setOnClickListener Ġ{ Ġemail Box . isError Enabled Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠ Ġemail Input . setOnClickListener Ġ{ Ġemail Box . isError Enabled Ġ= Ġfalse Ġ} ĊĠĠĠĠĠĠĠ Ġemail Input . do On TextChanged Ġ{ Ġ_, Ġ_, Ġ_, Ġ_ Ġ-> Ġemail Box . isError Enabled Ġ= Ġfalse Ġ} ĊĊĠĠĠĠĠĠĠ Ġbutton Login . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. window ?. set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ STATE _ ALWAYS _ HIDDEN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( email Input . text . isNull OrEmpty () Ġ|| Ġemail Input . text . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Box . error Ġ= ĠgetString ( R . string . input Error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Box . isError Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccent Ġ= Ġresources . getColor ( R . color . color Accent , Ġnull ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Register . disable ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Login . disable ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠApi . login ( email Input . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response ) Ġcontroller . navigate ( R . id . action _ auth Login Fragment _ to _ auth Success Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġcontroller . navigate ( R . id . action _ auth Login Fragment _ to _ auth Failed Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Register . enable ( accent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Login . enable ( accent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} Ċ } Ċ