package Ġcom . pr 0 gram m . app . ui . dialogs Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Auto Complete TextView Ċ import Ġcom . pr 0 gram m . app . R Ċ import Ġcom . pr 0 gram m . app . api . pr 0 gram m . Api Ċ import Ġcom . pr 0 gram m . app . services . UserService Ċ import Ġcom . pr 0 gram m . app . services . User Suggestion Service Ċ import Ġcom . pr 0 gram m . app . ui . Username Auto Complete Adapter Ċ import Ġcom . pr 0 gram m . app . ui . base . Base Dialog Fragment Ċ import Ġcom . pr 0 gram m . app . ui . base . bind View Ċ import Ġcom . pr 0 gram m . app . ui . dialog Ċ import Ġcom . pr 0 gram m . app . util . di . instance Ċ import Ġkotlinx . coroutines . Cancellation Exception Ċ Ċ /** Ċ Ġ*/ Ċ class ĠSearch User Dialog Ġ: ĠBase Dialog Fragment (" Search User Dialog ") Ġ{ ĊĠĠĠ Ġprivate Ġval ĠuserService : ĠUserService Ġby Ġinstance () ĊĠĠĠ Ġprivate Ġval Ġsuggestion Service : ĠUser Suggestion Service Ġby Ġinstance () ĊĊĠĠĠ Ġprivate Ġval Ġinput View : ĠAuto Complete TextView Ġby Ġbind View ( R . id . username ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdialog ( require Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout ( R . layout . search _ user _ dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive ( R . string . action _ search _ simple ) Ġ{ Ġon Search Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnegative Ġ{ Ġdismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Auto Dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġon Dialog View Created () Ġ{ ĊĠĠĠĠĠĠĠ Ġinput View . setAdapter ( Username Auto Complete Adapter ( suggestion Service , Ġthe med Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ dropdown _ item _ 1 line , Ġ"")) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Search Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġinput View . text . toString (). trim () ĊĊĠĠĠĠĠĠĠ Ġlaunch With ErrorHandler ( busy Indicator Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Search Success ( userService . info ( username )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( err : ĠC ancellation Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( err : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Search Failure () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Search Success ( info : ĠApi . Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Found Ġuser Ġinfo : Ġ${ info . user . id } Ġ${ info . user . name }" Ġ} ĊĊĠĠĠĠĠĠĠ Ġ( parent Fragment Ġas ? ĠListener )?. on UserInfo ( info ) ĊĠĠĠĠĠĠĠ Ġdismiss Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Search Failure () Ġ{ ĊĠĠĠĠĠĠĠ Ġinput View . error Ġ= ĠgetString ( R . string . user _ not _ found ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon UserInfo ( info : ĠApi . Info ) ĊĠĠĠ Ġ} Ċ } Ċ