package Ġru . a 1 0 2 4 bits . by the way . ui . fragments Ċ Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . app . Activity Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Provider Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics .* Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Layout Res Ċ import Ġandroid . support . design . widget . Navigation View Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 4 . content . res . Resources Compat Ċ import Ġandroid . support . v 4 . widget . Nested ScrollView Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget .* Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . code tro o pers . better pick ers . cal end ard ate picker . Calendar DatePicker Dialog Fragment Ċ import Ġcom . code tro o pers . better pick ers . cal end ard ate picker . Month Adapter Ċ import Ġcom . google . android . gms . common . Google Play Services Not Available Exception Ċ import Ġcom . google . android . gms . common . Google Play Services Repair able Exception Ċ import Ġcom . google . android . gms . location . places . Autocomplete Filter Ċ import Ġcom . google . android . gms . location . places . ui . Place Autocomplete Ċ import Ġcom . google . android . gms . maps .* Ċ import Ġcom . google . android . gms . maps . model .* Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . crash . Firebase Crash Ċ import Ġcom . google . firebase . firestore . Geo Point Ċ import Ġcom . google . maps . android . Poly Util Ċ import Ġcom . vk . sdk . VK AccessToken Ċ import Ġcom . vk . sdk . VK Callback Ċ import Ġcom . vk . sdk . V KS dk Ċ import Ġcom . vk . sdk . api . VK Error Ċ import Ġkotlinx . android . synt hetic . main . confirm _ dialog . view .* Ċ import Ġkotlinx . android . synt hetic . main . fragment _ my _ user _ profile .* Ċ import Ġkotlinx . android . synt hetic . main . profile _ add _ trip .* Ċ import Ġkotlinx . android . synt hetic . main . profile _ direction .* Ċ import Ġkotlinx . android . synt hetic . main . profile _ main _ image .* Ċ import Ġru . a 1 0 2 4 bits . by the way . App Ċ import Ġru . a 1 0 2 4 bits . by the way . R Ċ import Ġru . a 1 0 2 4 bits . by the way . model .* Ċ import Ġru . a 1 0 2 4 bits . by the way . model . map _ directions . Routes List Ċ import Ġru . a 1 0 2 4 bits . by the way . router . On Fragment Interaction Listener Ċ import Ġru . a 1 0 2 4 bits . by the way . router . Scre ens Ċ import Ġru . a 1 0 2 4 bits . by the way . ui . activity . Menu Activity Ċ import Ġru . a 1 0 2 4 bits . by the way . ui . dialogs . Social Tips Dialog Ċ import Ġru . a 1 0 2 4 bits . by the way . util .* Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . END _ DATE Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . FIRST _ INDEX _ C ITY Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . LAST _ INDEX _ C ITY Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM _ MIDDLE _ C ITY Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ TO Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ TO _ NEW _ C ITY Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . START _ DATE Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . TWO _ DATE Ċ import Ġru . a 1 0 2 4 bits . by the way . util . Constants . TWO _ INDEX _ C ITY Ċ import Ġru . a 1 0 2 4 bits . by the way . view model . My Profile ViewModel Ċ import Ġru . ter r ak ok . c icer one . commands . Replace Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . collections . HashMap Ċ import Ġkotlin . math . round ToInt Ċ import Ġru . a 1 0 2 4 bits . by the way . model . Response Ġas ĠResponse B tw ĊĊ Ċ class ĠMy Profile Fragment Ġ: ĠBase Fragment < My Profile ViewModel >(), ĠOn Map Ready Callback Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB UD GET Ġ= Ġ" budget " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB UD GET _ POSITION Ġ= Ġ" budget Position " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ITIES Ġ= Ġ" cities " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMETHOD Ġ= Ġ" method " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMETHO DS Ġ= Ġ" methods " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDAT ES Ġ= Ġ" dates " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ITY _ FROM Ġ= Ġ" city From LatLng " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ITY _ TO Ġ= Ġ" city To LatLng " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ITY _ TWO Ġ= Ġ" city Two LatLng " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠADD _ INFO Ġ= Ġ" add Information " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCOUNT _ TR IP Ġ= Ġ" count Trip " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS EX Ġ= Ġ" sex " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠA GE Ġ= Ġ" age " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNAME Ġ= Ġ" name " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNET WORK Ġ= Ġ" social Network " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLAST NAME Ġ= Ġ" lastName " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠROUT E Ġ= Ġ" route " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ITY Ġ= Ġ" city " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG _ ANAL YT ICS : ĠString Ġ= Ġ" M Profile _ screen " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSTART _ BU D GET : ĠInt Ġ= Ġ 5 0 ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTWO _ C ITY _ POINT Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFIRST _ C ITY _ POINT Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLAST _ C ITY _ POINT Ġ= Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġprivate Ġvar Ġm Listener : ĠOn Fragment Interaction Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġuid Ġ= ĠFirebase Auth . getInstance (). currentUser ?. uid . or Empty () ĊĠĠĠ Ġprivate Ġvar Ġname Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġcity From LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠ Ġprivate Ġvar Ġcity To LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠ Ġprivate Ġvar Ġcity Two LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠ Ġprivate Ġvar ĠlastName Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġcity Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdate Dialog : ĠCalendar DatePicker Dialog Fragment ĊĠĠĠ Ġprivate Ġvar Ġnumber Phone : ĠString Ġ= Ġ"+ 7 " ĊĠĠĠ Ġprivate Ġvar Ġsocial Values : ĠHashMap < String , ĠString > Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . VK . link Ġto Ġ" https :// www . vk . com /", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . TG . link Ġto Ġ"@ ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . CS . link Ġto Ġ" https :// www . couch surf ing . com / people /", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . FB . link Ġto Ġ" https :// www . facebook . com /", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . WH ATS APP . link Ġto Ġ"+ 7 " ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġvar Ġdefault Social Values : ĠHashMap < String , ĠString > Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . VK . link Ġto Ġ" https :// www . vk . com /", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . TG . link Ġto Ġ"@ ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . CS . link Ġto Ġ" https :// www . couch surf ing . com / people /", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . FB . link Ġto Ġ" https :// www . facebook . com /", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . WH ATS APP . link Ġto Ġ"+ 7 " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġvar Ġmethods : ĠHashMap < String , ĠBoolean > Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . CAR . link Ġto Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . TRAIN . link Ġto Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . BUS . link Ġto Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . PL ANE . link Ġto Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMethod . H ITCH H IK ING . link Ġto Ġfalse ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġvar Ġmethod Icons : ĠHashMap < String , ĠRelative Layout > Ġ= Ġhash Map Of () ĊĠĠĠ Ġprivate Ġvar Ġmethod Text Views : ĠHashMap < String , ĠTextView ?> Ġ= Ġhash Map Of () ĊĊĠĠĠ Ġprivate Ġvar Ġsoc Net : ĠHashMap < String , ĠString > Ġ= Ġhash Map Of () ĊĠĠĠ Ġprivate Ġvar Ġdates : ĠHashMap < String , ĠLong > Ġ= Ġhash Map Of () ĊĠĠĠ Ġprivate Ġvar Ġsex : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġage : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġcities : ĠHashMap < String , ĠString > Ġ= Ġhash Map Of () ĊĠĠĠ Ġprivate Ġvar Ġbudget : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġbudget Position : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġprofile State HashMap : ĠHashMap < String , ĠString > Ġ= Ġhash Map Of () ĊĠĠĠ Ġprivate Ġvar Ġold Profile State : ĠInt Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġroute String : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġgoogle Map : ĠGoogle Map ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmap View : ĠMap View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcount Trip : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġro uts Observer : ĠObserver < Response B tw < Routes List >> Ġ= ĠObserver Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( response ?. status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data Ġ!= Ġnull Ġ&& Ġactivity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data . routes ?. size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ My Profile Fragment . route String Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Polyline () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . data . routes ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . overview Polyline ?. encoded Data ?. let Ġ{ Ġroute String Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ My Profile Fragment . route String Ġ= Ġroute String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Polyline () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Rout () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġphoto Url Observer : ĠObserver < Response B tw < String >> Ġ= ĠObserver Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ?. status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . data Ġ!= Ġnull Ġ&& Ġ! activity . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Image Profile ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ upload _ image ", Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ error _ upload ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Upload Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġtoken Observer : ĠObserver < Response B tw < Boolean >> Ġ= ĠObserver Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ?. status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! activity . is Destroyed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMenu Activity ). token Updated () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ token _ updated ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ error _ token _ upd ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error Upload Image () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( activity , ĠR . string . error _ upload , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġusers Observer s : ĠObserver < User > Ġ= ĠObserver Ġ{ Ġuser Ġ-> ĊĠĠĠĠĠĠĠ Ġm Listener ?. on Fragment Interaction ( user ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġval Ġresponse Observer : ĠObserver < Response B tw < User >> Ġ= ĠObserver Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( response ?. status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Profile ( response . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel ?. loading Status ?. setValue ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener ?. on Fragment Interaction ( response . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain User Ġ= Ġresponse . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ErrorResponse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" LOG ", Ġ" log Ġe :" Ġ+ Ġresponse . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġobserver Save Profile : ĠObserver < Response B tw < Boolean >> Ġ= ĠObserver Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( response ?. status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . data Ġ== Ġtrue Ġ&& Ġactivity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , Ġresources . getString ( R . string . save _ suc ces full ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ErrorResponse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ErrorResponse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" LOG ", Ġ" log Ġe :" Ġ+ Ġresponse . error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġobserver Save Social : ĠObserver < Social Response > Ġ= ĠObserver Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠ Ġresponse ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . value . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange S oc Icons Dis Active ( response . link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange S oc Icons Active ( response . link , Ġresponse . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġmain User : ĠUser ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠApp . component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Error Rout () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ error _ ro uts ", Ġnull ) ĊĠĠĠĠĠĠĠ ĠLog . d (" LOG ", Ġ" error Ġ Ġget Ġrouting ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġmethod Icons [ Method . CAR . link ] Ġ= Ġicon Car ĊĠĠĠĠĠĠĠ Ġmethod Icons [ Method . TRAIN . link ] Ġ= Ġicon Train ĊĠĠĠĠĠĠĠ Ġmethod Icons [ Method . BUS . link ] Ġ= Ġicon Bus ĊĠĠĠĠĠĠĠ Ġmethod Icons [ Method . PL ANE . link ] Ġ= Ġicon Plane ĊĠĠĠĠĠĠĠ Ġmethod Icons [ Method . H ITCH H IK ING . link ] Ġ= Ġicon H itch H ick ing ĊĊĠĠĠĠĠĠĠ Ġmethod Text Views [ Method . CAR . link ] Ġ= Ġtravel Car Text ĊĠĠĠĠĠĠĠ Ġmethod Text Views [ Method . TRAIN . link ] Ġ= Ġtravel Train Text ĊĠĠĠĠĠĠĠ Ġmethod Text Views [ Method . BUS . link ] Ġ= Ġtravel Bus Text ĊĠĠĠĠĠĠĠ Ġmethod Text Views [ Method . PL ANE . link ] Ġ= Ġtravel Plane Text ĊĠĠĠĠĠĠĠ Ġmethod Text Views [ Method . H ITCH H IK ING . link ] Ġ= Ġtravel H itch H ik ing Text ĊĊĠĠĠĠĠĠĠ ĠviewModel ?. routes ?. observe ( this , Ġro uts Observer ) ĊĠĠĠĠĠĠĠ ĠviewModel ?. response ?. observe ( this , Ġresponse Observer ) ĊĠĠĠĠĠĠĠ ĠviewModel ?. user ?. observe ( this , Ġusers Observer s ) ĊĠĠĠĠĠĠĠ ĠviewModel ?. loading Status ?. observe ( this , Ġ( activity Ġas ĠMenu Activity ). progress Bar Load ) ĊĊĠĠĠĠĠĠĠ ĠviewModel ?. photoUrl ?. observe ( this , Ġphoto Url Observer ) ĊĠĠĠĠĠĠĠ ĠviewModel ?. token ?. observe ( this , Ġtoken Observer ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( viewModel ?. save Social ?. has Observer s () Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel ?. save Social ?. observe ( this , Ġobserver Save Social ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( viewModel ?. save Profile ?. has Observer s () Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel ?. save Profile ?. observe ( this , Ġobserver Save Profile ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View Factory Class (): ĠViewModel Provider . Factory Ġ= ĠviewModel Factory ĊĊĠĠĠ Ġ@ Layout Res ĊĠĠĠ Ġoverride Ġfun Ġget Layout Res (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . fragment _ my _ user _ profile ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewModel Class (): ĠClass < My Profile ViewModel > Ġ= ĠMy Profile ViewModel :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġshow Prompt (" is First Enter My Profile Fragment ", Ġcontext . resources . getString ( R . string . close _ hint ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . hint _ create _ travel ), ĠgetString ( R . string . hint _ create _ travel _ description ), Ġadd New Trip ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġthis Action Is Vk Share : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! V KS dk . on Activity Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠVK Callback < VK AccessToken > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐŁ Ð¾Ð»ÑĮÐ·Ð¾Ð²Ð°ÑĤ ÐµÐ»ÑĮ ĠÑĥ ÑģÐ¿ ÐµÑĪ Ð½Ð¾ ĠÐ°Ð² ÑĤÐ¾ÑĢ Ð¸Ð· Ð¾Ð² Ð°Ð» ÑģÑı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( res : ĠVK AccessToken ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvk Link Ġ= Ġdefault Social Values [ Social Network . VK . link ]. plus ( res ?. userId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd New S oc Link ( Social Network . VK . link , Ġnew Link Ġ= Ġvk Link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocial Values [ Social Network . VK . link ] Ġ= Ġvk Link ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Action Is Vk Share ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshare VK Post () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog VK ( Social Network . VK . link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠVK Error ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Crash . report ( error ?. http Error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPL ACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM Ġ-> Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompatActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Ġ= ĠPlace Autocomplete . get Place ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . setText ( place . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity From LatLng Ġ= ĠGeo Point ( place . lat Lng . latitude , Ġplace . lat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( city From LatLng . hashCode () Ġ== Ġcity To LatLng . hashCode ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . error Ġ= Ġ" true " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . fill _ diff _ cities ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcities [ FIRST _ INDEX _ C ITY ] Ġ= Ġplace . name . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ C ITY _ FROM ] Ġ= Ġcity From LatLng . hashCode (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Routes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Markers ( FIRST _ C ITY _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠPlace Autocomplete . getStatus ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text City From . text . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPL ACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ TO Ġ-> Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompatActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Ġ= ĠPlace Autocomplete . get Place ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To ?. setText ( place . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To ?. error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity To LatLng Ġ= ĠGeo Point ( place . lat Lng . latitude , Ġplace . lat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( city To LatLng . hashCode () Ġ== Ġcity From LatLng . hashCode ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . error Ġ= Ġ" true " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . fill _ diff _ cities ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcities [ LAST _ INDEX _ C ITY ] Ġ= Ġplace . name . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ C ITY _ TO ] Ġ= Ġcity To LatLng . hashCode (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Routes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Markers ( LAST _ C ITY _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠPlace Autocomplete . getStatus ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text City To . text . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPL ACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM _ MIDDLE _ C ITY Ġ-> Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompatActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Ġ= ĠPlace Autocomplete . get Place ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City Middle Two . setText ( place . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City Middle Two . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Two LatLng Ġ= ĠGeo Point ( place . lat Lng . latitude , Ġplace . lat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( city Two LatLng . hashCode () Ġ== Ġcity From LatLng . hashCode () Ġ|| Ġcity Two LatLng Ġ== Ġcity To LatLng ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . error Ġ= Ġ" true " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . fill _ diff _ cities ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcities [ TWO _ INDEX _ C ITY ] Ġ= Ġplace . name . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ C ITY _ TWO ] Ġ= Ġcity Two LatLng . hashCode (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Routes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Markers ( TWO _ C ITY _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠPlace Autocomplete . getStatus ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text City Middle Two . text . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City Middle Two . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPL ACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ TO _ NEW _ C ITY Ġ-> Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompatActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplace Ġ= ĠPlace Autocomplete . get Place ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City ?. setText ( place . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City ?. error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity To LatLng Ġ= ĠGeo Point ( place . lat Lng . latitude , Ġplace . lat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( city To LatLng . hashCode () Ġ== Ġcity From LatLng . hashCode () Ġ|| Ġcity To LatLng . hashCode () Ġ== Ġcity Two LatLng . hashCode ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . error Ġ= Ġ" true " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . fill _ diff _ cities ), ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcities [ LAST _ INDEX _ C ITY ] Ġ= Ġplace . name . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ C ITY _ TO ] Ġ= Ġcity To LatLng . hashCode (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Routes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Markers ( LAST _ C ITY _ POINT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠPlace Autocomplete . getStatus ( activity , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text New City . text . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREAD _ REQUEST _ CODE Ġ-> Ġwhen Ġ( result Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity . RESULT _ OK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThe Ġdocument Ġselected Ġby Ġthe Ġuser Ġwon 't Ġbe Ġreturned Ġin Ġthe Ġintent . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInstead , Ġa ĠURI Ġto Ġthat Ġdocument Ġwill Ġbe Ġcontained Ġin Ġthe Ġreturn Ġintent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprovided Ġto Ġthis Ġmethod Ġas Ġa Ġparameter . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPull Ġthat ĠURI Ġusing Ġresult Data . getData (). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuri : ĠUri ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuri Ġ= Ġdata . getData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel ?. load Image ( uri , ĠFirebase Auth . getInstance (). currentUser ?. uid !! , Ġmain User ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Ðŀ ÑĪÐ¸Ð± ÐºÐ° , ĠÐ¿ Ð¾Ð¿ ÑĢ Ð¾Ð± Ñĥ Ð¹ ÑĤÐµ ĠÐ¿Ð¾Ð· Ð¶Ðµ ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠÐķÑģÐ»Ð¸ ĠÑĥ ĠÐ½Ð° Ñģ ĠÑģ ÐµÐ¹ Ñĩ Ð°Ñģ ĠÐ·Ð°Ð¿ Ð¾Ð»Ð½ ÐµÐ½Ð¸Ðµ ĠÑĤÐ¾Ð»ÑĮÐºÐ¾ ĠÐ´Ð² Ñĥ Ñħ ĠÐ³ Ð¾ÑĢ Ð¾Ð´ Ð¾Ð² ĠÑĤÐ¾ ĠÐ½ Ð°Ð´ Ð¾ ĠÑģ Ð´ÐµÐ» Ð°ÑĤÑĮ ĠÐ²Ñĭ Ð· Ð¾Ð² ĠÐ¿Ð¾ÑģÐ» Ðµ ĠÐ·Ð°Ð¿ Ð¾Ð»Ð½ ÐµÐ½Ð¸Ñı ĠÐ´Ð² Ñĥ Ñħ ĠÐ³ Ð¾ÑĢ Ð¾Ð´ Ð¾Ð² . ĊĠĠĠĠ Ġ* ĠÐķÑģÐ»Ð¸ ĠÑĥ ĠÐ½Ð° Ñģ ĠÑģ ÐµÐ¹ Ñĩ Ð°Ñģ ĠÐ·Ð°Ð¿ Ð¾Ð»Ð½ ÐµÐ½Ð¸Ðµ Ġ(@ MODE _ TWO _ C ITY Ġ== Ġfalse ) ĠÑĤÑĢ ÐµÑħ ĠÐ³ Ð¾ÑĢ Ð¾Ð´ Ð¾Ð² ĠÑĤÐ¾ ĠÐ½ Ð°Ð´ Ð¾ ĠÑĤÐ°Ðº Ð¶Ðµ ĠÐ¿ÑĢ Ð¾Ð²ÐµÑĢ Ð¸ÑĤÑĮ ĠÐ½Ð° ĠÐ·Ð°Ð¿ Ð¾Ð»Ð½ Ñı ÐµÐ¼ Ð¾ÑģÑĤ ÑĮ ĠÐ²ÑģÐµ Ñħ ĠÑĤÑĢ ÐµÑħ ĠÐ³ Ð¾ÑĢ Ð¾Ð´ Ð¾Ð² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Routes () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(( city To LatLng . longitude Ġ!= Ġ 0 . 0 Ġ&& Ġcity From LatLng . longitude Ġ!= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcity To LatLng . latitude Ġ!= Ġ 0 . 0 Ġ&& Ġcity From LatLng . latitude Ġ!= Ġ 0 . 0 Ġ&& ĠMODE _ TWO _ C ITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( city To LatLng . longitude Ġ!= Ġ 0 . 0 Ġ&& Ġcity From LatLng . longitude Ġ!= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcity To LatLng . latitude Ġ!= Ġ 0 . 0 Ġ&& Ġcity From LatLng . latitude Ġ!= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ! MODE _ TWO _ C ITY Ġ&& Ġcity Two LatLng . latitude Ġ!= Ġ 0 . 0 Ġ&& Ġcity Two LatLng . longitude Ġ!= Ġ 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobtain Direction () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View ?. on Resume () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Map Ready ( map : ĠGoogle Map ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . google Map Ġ= Ġmap ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. ui Settings ?. is Zoom Controls Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCustom ise Ġthe Ġstyling Ġof Ġthe Ġbase Ġmap Ġusing Ġa ĠJSON Ġobject Ġdefined ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġin Ġa Ġraw Ġresource Ġfile . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġgoogle Map ?. set Map Style ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Style Options . load Raw Resource Style ( activity , ĠR . raw . style )) ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠResources . NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel ?. load ( uid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Markers ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgoogle Map ?. clear () ĊĠĠĠĠĠĠĠ Ġval Ġcoord From Ġ= ĠLat Lng ( city From LatLng . latitude , Ġcity From LatLng . longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġcoord Middle Ġ= ĠLat Lng ( city Two LatLng . latitude , Ġcity Two LatLng . longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġcoord To Ġ= ĠLat Lng ( city To LatLng . latitude , Ġcity To LatLng . longitude ) ĊĠĠĠĠĠĠĠ Ġvar Ġmarker Title Start : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġmarker Title Final : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġmarker Two Title : ĠString ? Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġmarker Position Start Ġ= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġvar Ġmarker Position Two Ġ= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġvar Ġmarker Position Final Ġ= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġname City From Ġ= Ġcities [ FIRST _ INDEX _ C ITY ] ĊĠĠĠĠĠĠĠ Ġval Ġname City To Ġ= Ġcities [ LAST _ INDEX _ C ITY ] ĊĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== ĠFIRST _ C ITY _ POINT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Title Start Ġ= Ġname City To ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Title Final Ġ= Ġname City From ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Position Start Ġ= Ġcoord To ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Position Final Ġ= Ġcoord From ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ== ĠLAST _ C ITY _ POINT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Title Final Ġ= Ġname City To ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Title Start Ġ= Ġname City From ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Position Final Ġ= Ġcoord To ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Position Start Ġ= Ġcoord From ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( position Ġ== ĠTWO _ C ITY _ POINT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Position Two Ġ= Ġcoord Middle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarker Two Title Ġ= Ġcities [ TWO _ INDEX _ C ITY ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġblue Marker Ġ= ĠBitmap Descriptor Factory . from Resource ( R . drawable . pin _ blue ) ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠLat Lng Bounds . Builder (); ĊĠĠĠĠĠĠĠ Ġif Ġ( city Two LatLng . latitude Ġ!= Ġ 0 . 0 Ġ&& Ġcity Two LatLng . longitude Ġ!= Ġ 0 . 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . include ( LatLng ( city Two LatLng . latitude , Ġcity Two LatLng . longitude )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. add Marker ( Marker Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon ( blue Marker ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( LatLng ( city Two LatLng . latitude , Ġcity Two LatLng . longitude )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( cities [ Constants . TWO _ INDEX _ C ITY ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( 0 . 5 F , Ġ 1 . 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flat ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( marker Position Start Ġ!= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . include ( marker Position Start ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. add Marker ( Marker Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon ( blue Marker ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( marker Position Start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( marker Title Start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( 0 . 5 F , Ġ 1 . 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flat ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( marker Position Two Ġ!= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . include ( marker Position Two ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. add Marker ( Marker Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon ( blue Marker ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( marker Position Two ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( marker Two Title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( 0 . 5 F , Ġ 1 . 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flat ( true )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( marker Position Final Ġ!= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . include ( marker Position Final ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. move Camera ( Camera Update Factory . new LatLng Zoom ( marker Position Final , Ġ 4 . 0 f )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. add Marker ( Marker Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon ( blue Marker ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( marker Position Final ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title ( marker Title Final ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( 0 . 5 F , Ġ 1 . 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flat ( true )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= Ġbuilder . build (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . lat Lng Bounds Padding ); Ġ// Ġoffset Ġfrom Ġedges Ġof Ġthe Ġmap Ġin Ġpixels ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcu Ġ= ĠCamera Update Factory . new LatLng Bounds ( bounds , Ġpadding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( map View ?. view Tree Observer ?. is Alive Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap View ?. view Tree Observer ?. add On Global Layout Listener ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( marker Position Start Ġ!= ĠLat Lng ( 0 . 0 , Ġ 0 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. animate Camera ( cu ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. animate Camera ( Camera Update Factory . new LatLng Zoom ( marker Position Final , Ġ 2 . 0 f )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdraw Polyline () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġblue Color Ġ= Ġactivity . resources . getColor ( R . color . route Line ) ĊĠĠĠĠĠĠĠ Ġval Ġoptions Ġ= ĠPoly line Options () ĊĠĠĠĠĠĠĠ Ġoptions . color ( blue Color ) ĊĊĠĠĠĠĠĠĠ Ġoptions . width ( 5 f ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( route String Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . addAll ( Poly Util . decode ( route String )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfix Ġme ĠÑĢ Ð¸Ñģ Ñĥ ÐµÐ¼ ĠÐ¿ÑĢ Ñı Ð¼ ÑĥÑİ ĠÐ» Ð¸Ð½ Ð¸ Ñİ Ġ( ĠÐºÐ°Ðº ĠÐ±ÑĥÐ´ ÑĤÐ¾ ĠÐ½Ð° ĠÑģ Ð°Ð¼ Ð¾Ð» ÐµÑĤ Ðµ ĠÐ» ÐµÑĤ Ð¸Ð¼ ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . add ( city From LatLng . to LatLng ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! MODE _ TWO _ C ITY ) Ġoptions . add ( city Two LatLng . to LatLng ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . add ( city To LatLng . to LatLng ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoptions . ge odes ic ( true ) ĊĠĠĠĠĠĠĠ Ġgoogle Map ?. add Polyline ( options ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġmap View Ġ= Ġview ?. findViewById ( R . id . map View ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View ?. onCreate ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMaps Initializer . initialize ( context ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmap View ?. getMap Async ( this @ My Profile Fragment ) ĊĠĠĠĠĠĠĠ Ġval Ġscroll Ġ= Ġview ?. findViewById ( R . id . scroll Profile ) Ġas ĠNested ScrollView ĊĠĠĠĠĠĠĠ Ġscroll . desc endant Focus ability Ġ= ĠViewGroup . FOCUS _ BEFORE _ DESC END ANT S ĊĠĠĠĠĠĠĠ Ġscroll . is Focus able Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġscroll . is Focus able In Touch Mode Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠOn Fragment Interaction Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( context ?. toString () Ġ+ Ġ" Ġmust Ġimplement ĠOn Fragment Interaction Listener ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġvar ĠMODE _ TWO _ C ITY : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġdisplay Price Travel . text Ġ= Ġbudget . toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠCalendar . getInstance () ĊĊĠĠĠĠĠĠĠ Ġdate Dialog Ġ= ĠCalendar DatePicker Dialog Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set First DayOfWeek ( Calendar . MON DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Theme Custom ( R . style . By the way DatePicker Dialog Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pre selected Date ( now . get ( Calendar . YEAR ), Ġnow . get ( Calendar . MONTH ), Ġnow . get ( Calendar . DAY _ OF _ MONTH )) ĊĊĠĠĠĠĠĠĠ Ġheader profile . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Information Edit Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ header _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd _ city . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ TWO _ C ITY Ġ= Ġ! MODE _ TWO _ C ITY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MODE _ TWO _ C ITY Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDELETE ĠC ITY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Last City () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠADD ĠNEW ĠC ITY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd New City () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġchoose Price Travel . setOn Seek Bar ChangeListener ( object Ġ: ĠSeek Bar . On Seek Bar ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress Changed ( p 0 : ĠSeek Bar ?, Ġnumber : ĠInt , Ġp 2 : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Ġ= Ġ( START _ BU D GET Ġ* Ġnumber ). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Price Travel . text Ġ= Ġbudget . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( number Ġ!= Ġbudget Position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Position Ġ= Ġnumber ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ BU D GET ] Ġ= Ġbudget . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ BU D GET _ POSITION ] Ġ= Ġnumber . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( p 0 : ĠSeek Bar ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( p 0 : ĠSeek Bar ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġme ) Ġin Ġmethod Icons ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġme . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Text Views [ key ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme . is Activated Ġ= Ġ! it . is Activated ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethods . put ( key , Ġit . is Activated ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ METHO DS ] Ġ= Ġmethods . hashCode (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnew Trip Text . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Block New Trip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Block Travel Information () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ create _ click ", Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvk Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠÐķÑģÐ»Ð¸ ĠÐºÐ¾Ð½ ÑĤ Ð°Ðº ÑĤ Ñĭ ĠÐµ Ñī Ðµ ĠÐ½Ðµ ĠÐ´Ð¾Ð±Ð°Ð² Ð»ÐµÐ½ Ñĭ , ĠÑĤ Ð¾Ð³Ð´Ð° ĠÐ¾ÑĤ Ðº ÑĢ ÑĭÐ² Ð°ÐµÐ¼ ĠÐ´ Ð¸ Ð°Ð» Ð¾Ð³ Ð¾Ð² Ð¾Ðµ ĠÐ¾ Ðº Ð½Ð¾ . ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠÐķÑģÐ»Ð¸ ĠÐ±Ñĭ Ð»Ð¸ ĠÐºÐ°Ðº Ð¸Ðµ - ÑĤÐ¾ ĠÐ¸Ð· Ð¼ÐµÐ½ ÐµÐ½Ð¸Ñı ĠÐ² ĠÐ» Ð¸Ð½ ÐºÐ° Ñħ ĠÑĤÐ¾ ĠÑģÐ¾ Ñħ ÑĢÐ°Ð½ Ñı ÐµÐ¼ ĠÐ² ĠÐ± Ð´ . ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠÐĺ ĠÐ¼ÐµÐ½ Ñı ÐµÐ¼ ĠÑĨ Ð²ÐµÑĤ ĠÐ¸ Ðº Ð¾Ð½ ÐºÐ¸ ĠÑģÐ¾ Ð¾ÑĤ Ð²ÐµÑĤ Ñģ Ð² ÐµÐ½ Ð½Ð¾ ĠÐ·Ð½Ð°Ñĩ ÐµÐ½Ð¸Ñı Ð¼ . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog VK ( Social Network . VK . link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ vk _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcs Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog ( Social Network . CS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ cs _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwh ats App Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog Wh ats App ( Social Network . WH ATS APP . link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ wap _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfb con . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog ( Social Network . FB ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ fb _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtg Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Dialog Telegram ( Social Network . TG . link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ tg _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Save Travel Info . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( checking City Text ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend UserInfo ToServer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ save ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Date Ar rived . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Date Dialog ( END _ DATE , Ġtext Date Ar rived ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ date _ to _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Date Ar rived . setOn Touch Listener ( Date Utils . on Date Touch ) ĊĊĠĠĠĠĠĠĠ Ġtext Date From . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Date Dialog ( START _ DATE , Ġtext Date From ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ date _ from _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Date From . setOn Touch Listener ( Date Utils . on Date Touch ) ĊĊĠĠĠĠĠĠĠ Ġadd Info User . after TextChanged ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ ADD _ INFO ] Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġtext City From . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent For Search ( PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ city _ from _ change ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext City To . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent For Search ( PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ TO ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ city _ to _ change ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġapp in The Air Enter . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMenu Activity ). navigator ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Command ( Replace ( Scre ens . USER _ SIN HR ON IZED _ SCREEN , Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ click _ air ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvk App . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare VK Post () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ click _ vk _ share ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Remove Travel Info . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen AlertDialog ( this :: remove Trip ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ remove _ trip ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġbitmap : ĠBitmap ? Ġ= Ġnull ĊĊĠĠĠ Ġval ĠMIN _ LEN G HT _ TEXT Ġ= Ġ 1 5 8 ĊĠĠĠ Ġval ĠMIN _ LEN G HT _ INFO _ TEXT _ FOR _ POST Ġ= Ġ 4 0 ĊĠĠĠ Ġprivate Ġfun Ġshare VK Post () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Action Is Vk Share Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġcity Ar rived Ġ= Ġtext City From . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġcity To Ġ= ĠgetLast City () ĊĠĠĠĠĠĠĠ Ġvar Ġtext Ġ= Ġ" Ðĺ Ñī Ñĥ ĠÐ¿ Ð¾Ð¿ ÑĥÑĤ Ñĩ Ð¸ ÐºÐ° ĠÐ² Ġ$ city To Ġ\ n ${ get Dates ()} ${ getB ud getText ()} ${ getInfo Text ()} ${ get Maps Link ( city Ar rived , Ġcity To )}" ĊĠĠĠĠĠĠĠ Ġif Ġ( text . length Ġ< ĠMIN _ LEN G HT _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ+= Ġget Hash Tags ( text . length ) ĊĠĠĠĠĠĠĠ Ġval Ġlink Uri Ġ= Ġ" https :// play . google . com / store / apps / details ? id = ru . a 1 0 2 4 bits . by the way . release & hl =${ getCurrent Locale ( activity )} & referrer =${ main User ?. id }" ĊĠĠĠĠĠĠĠ Ġval Ġtext Size Ġ= ĠgetText Size ( city Ar rived , Ġcity To ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Ġ= Ġdraw Text To Bitmap ( context Ġ= Ġactivity . base Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg Res Id Ġ= ĠR . drawable . template _ for _ post ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Size Ġ= Ġtext Size , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext 1 Ġ= Ġcity Ar rived , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext 2 Ġ= Ġcity To ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! vk . start ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvk . post To Wall ( activity , Ġtext , Ġlink Uri Ġ= Ġlink Uri ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! vk . start ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvk . post To Wall ( activity , Ġtext , Ġbitmap , Ġlink Uri ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġbitmap Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvk . destroy Dialog () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Maps Link ( city Ar rived : ĠString , Ġcity To : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n https :// www . google . ru / maps / dir /$ city Ar rived /$ city To Ġ\ n \ n " ĊĊĠĠĠ Ġprivate Ġfun Ġget Info Text (): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( add Info User . text . isNotEmpty () Ġ&& Ġadd Info User . text . length Ġ< ĠMIN _ LEN G HT _ INFO _ TEXT _ FOR _ POST ) Ġadd Info User . text . toString (). plus ("\ n ") Ġelse Ġ"" ĊĊĊĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat (" dd . MM . yyyy ", ĠLocale . US ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Dates (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġdates [ END _ DATE ] Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġdates [ START _ DATE ] Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( start Ġ== Ġ 0 L Ġ&& Ġend Ġ== Ġ 0 L ) Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( start Ġ== Ġ 0 L ) Ġreturn Ġ" ÐĶ Ð°ÑĤ Ñĭ : ĠÐ´Ð¾ Ġ${ end . format Dates ( format )}\ n " ĊĠĠĠĠĠĠĠ Ġif Ġ( end Ġ== Ġ 0 L ) Ġreturn Ġ" ÐĶ Ð°ÑĤ Ñĭ : ĠÑģ Ġ${ start . format Dates ( format )}\ n " ĊĠĠĠĠĠĠĠ Ġreturn Ġ" ÐĶ Ð°ÑĤ Ñĭ : Ġ". plus ( start . format Dates ( format )). plus (" Ġ- Ġ"). plus ( end . format Dates ( format )). plus ("\ n ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget B ud getText (): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( budget Ġ> Ġ 0 ) Ġ" Ðĳ Ñİ Ð´ Ð¶ ÐµÑĤ : Ġ". plus ( budget . toString ()). plus (" $\ n ") Ġelse Ġ"" ĊĊĠĠĠ Ġprivate Ġfun ĠgetText Size ( text 1 : ĠString , Ġtext 2 : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text 1 . length Ġ> Ġ 2 4 Ġ|| Ġtext 2 . length Ġ>= Ġ 2 4 ) Ġ 2 5 Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text 1 . length Ġ> Ġ 2 2 Ġ|| Ġtext 2 . length Ġ>= Ġ 2 2 ) Ġ 2 9 Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text 1 . length Ġ> Ġ 2 0 Ġ|| Ġtext 2 . length Ġ>= Ġ 2 0 ) Ġ 3 1 Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text 1 . length Ġ> Ġ 1 9 Ġ|| Ġtext 2 . length Ġ>= Ġ 1 9 ) Ġ 3 2 Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text 1 . length Ġ> Ġ 1 8 Ġ|| Ġtext 2 . length Ġ>= Ġ 1 8 ) Ġ 3 5 Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text 1 . length Ġ> Ġ 1 6 Ġ|| Ġtext 2 . length Ġ>= Ġ 1 6 ) Ġ 4 2 Ġelse Ġ 4 8 ĊĊĊĠĠĠ Ġprivate Ġfun Ġdraw Text To Bitmap ( context : ĠContext , Ġg Res Id : ĠInt , Ġtext Size : ĠInt Ġ= Ġ 5 0 , Ġtext 1 : ĠString , Ġtext 2 : ĠString ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġcontext . resources ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġresources . display Metrics . density ĊĠĠĠĠĠĠĠ Ġvar Ġbitmap Ġ= ĠBitmap Factory . decode Resource ( resources , Ġg Res Id ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġbitmap Config Ġ= Ġbitmap . config ; ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġdefault Ġbitmap Ġconfig Ġif Ġnone ĊĠĠĠĠĠĠĠ Ġif Ġ( bitmap Config Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbitmap Config Ġ= Ġandroid . graphics . Bitmap . Config . ARGB _ 8 8 8 8 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġresource Ġbit maps Ġare Ġim utable , ĊĠĠĠĠĠĠĠ Ġ// Ġso Ġwe Ġneed Ġto Ġconvert Ġit Ġto Ġmutable Ġone ĊĠĠĠĠĠĠĠ Ġbitmap Ġ= Ġbitmap . copy ( bitmap Config , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( bitmap ) ĊĠĠĠĠĠĠĠ Ġ// Ġnew Ġant ial ised ĠPaint ĊĠĠĠĠĠĠĠ Ġval Ġpaint Ġ= ĠPaint ( Paint . ANTI _ ALIAS _ FLAG ) ĊĠĠĠĠĠĠĠ Ġpaint . color Ġ= ĠColor . rgb ( 9 3 , Ġ 1 0 1 , Ġ 6 7 ) ĊĠĠĠĠĠĠĠ Ġ// Ġtext Ġsize Ġin Ġpixels ĊĠĠĠĠĠĠĠ Ġpaint . text Size Ġ= Ġ( text Size Ġ* Ġscale ). round ToInt (). toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġfont Face Ġ= ĠResources Compat . getFont ( context , ĠR . font . ac ro bat ) ĊĠĠĠĠĠĠĠ Ġpaint . type face Ġ= ĠType face . create ( font Face , ĠType face . NORMAL ) ĊĠĠĠĠĠĠĠ Ġ// Ġtext Ġshadow ĊĠĠĠĠĠĠĠ Ġpaint . set Shadow Layer ( 1 f , Ġ 0 f , Ġ 1 f , ĠColor . WHITE ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġdraw Ġtext Ġto Ġthe ĠCanvas Ġcenter ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠRect () ĊĠĠĠĠĠĠĠ Ġpaint . getText Bounds ( text 1 , Ġ 0 , Ġtext 1 . length , Ġbounds ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġ( bitmap . width Ġ- Ġbounds . width ()) Ġ/ Ġ 2 f Ġ- Ġ(( bitmap . width Ġ/ Ġ 1 0 0 ) Ġ* Ġ 1 2 . 8 9 f ) Ġ// Ġthis Ġpercent Ġof Ġimage ĊĠĠĠĠĠĠĠ Ġvar Ġy Ġ= Ġ( bitmap . height Ġ+ Ġbounds . height ()) Ġ/ Ġ 2 f Ġ- Ġ(( bitmap . height Ġ/ Ġ 1 0 0 ) Ġ* Ġ 2 . 7 2 f ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text ( text 1 , Ġx , Ġy , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġpaint . getText Bounds ( text 2 , Ġ 0 , Ġtext 2 . length , Ġbounds ) ĊĊĠĠĠĠĠĠĠ Ġx Ġ= Ġ(( bitmap . width Ġ- Ġbounds . width ()) Ġ/ Ġ 2 f ) Ġ- Ġ(( bitmap . width Ġ/ Ġ 1 0 0 ) Ġ* Ġ 1 2 . 8 9 f ) ĊĠĠĠĠĠĠĠ Ġy Ġ= Ġ( bitmap . height Ġ+ Ġbounds . height ()) Ġ/ Ġ 2 f Ġ+ Ġ(( bitmap . height Ġ/ Ġ 1 0 0 ) Ġ* Ġ 5 . 4 5 f ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Text ( text 2 , Ġx , Ġy , Ġpaint ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetCurrent Locale ( context : ĠContext ): ĠLocale Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . configuration . locales [ 0 ]; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . configuration . locale ; ĊĊĠĠĠ Ġprivate Ġfun Ġget Hash Tags ( len : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Tag Text Ġ= ĠStringBuilder ("# by the way Ġ") ĊĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# Ð¿ Ð¾ Ð¸Ñģ Ðº Ð¿ Ð¾Ð¿ ÑĥÑĤ Ñĩ Ð¸Ðº Ð¾Ð² Ġ") ĊĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# Ð¸ Ñī ÑĥÐ¿ Ð¾Ð¿ ÑĥÑĤ Ñĩ Ð¸ ÐºÐ° Ġ") ĊĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# "). append ( text City From . text . toString ()). append (" Ġ") ĊĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# "). append ( getLast City ()). append (" 2 0 1 8 Ġ") ĊĠĠĠĠĠĠĠ Ġif Ġ( method Icons [ Method . H ITCH H IK ING . link ]?. is Activated Ġ== Ġtrue Ġ&& Ġlen Ġ< Ġ 1 2 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# Ð°Ð² ÑĤÐ¾ ÑģÑĤ Ð¾Ð¿ Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# h itch h ik ing 2 0 1 8 Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( method Icons [ Method . TRAIN . link ]?. is Activated Ġ== Ġtrue Ġ&& Ġlen Ġ< Ġ 1 4 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# Ð½ Ð°Ð¿ Ð¾ ÐµÐ· Ð´Ðµ Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( method Icons [ Method . PL ANE . link ]?. is Activated Ġ== Ġtrue Ġ&& Ġlen Ġ< Ġ 1 5 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhash Tag Text . append ("# Ñģ Ð°Ð¼ Ð¾Ð» ÐµÑĤ Ð¾Ð¼ Ġ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġhash Tag Text . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetLast City (): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( MODE _ TWO _ C ITY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City . text . toString () ĊĊĠĠĠ Ġprivate Ġfun Ġadd New City () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ add _ new _ city ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġshow 3 C ities Block () ĊĠĠĠĠĠĠĠ Ġ// clear Ġold Ġdata Ġfor Ġnew Ġfield ĊĠĠĠĠĠĠĠ Ġcity Two LatLng Ġ= Ġcity To LatLng ĊĠĠĠĠĠĠĠ Ġcity To LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcities [ LAST _ INDEX _ C ITY ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcities [ TWO _ INDEX _ C ITY ] Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdates [ TWO _ DATE ] Ġ= Ġdates [ END _ DATE ] Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Last City () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ remove _ new _ city ", Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġadd _ city . text Ġ= ĠgetString ( R . string . add _ city ) ĊĠĠĠĠĠĠĠ Ġnew _ cities _ block . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġtext City To . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtext Date From . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġline 2 . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġline 3 . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġline 1 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġline 1 _ one . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġtext New City . setText ("") ĊĠĠĠĠĠĠĠ Ġdate Finish . setText ("") ĊĊĠĠĠĠĠĠĠ Ġtext City To . text Ġ= Ġtext City Middle Two . text ĊĠĠĠĠĠĠĠ Ġtext Date From . text Ġ= Ġdate Start Two . text ĊĠĠĠĠĠĠĠ Ġtext Date From . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġtext City Middle Two . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġdate Start Two . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġcities [ TWO _ INDEX _ C ITY ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcities [ LAST _ INDEX _ C ITY ] Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcities . remove ( TWO _ INDEX _ C ITY ) ĊĠĠĠĠĠĠĠ Ġdates [ END _ DATE ] Ġ= Ġdates [ TWO _ DATE ] Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġdates . remove ( TWO _ DATE ) ĊĠĠĠĠĠĠĠ Ġcity To LatLng Ġ= Ġcity Two LatLng ĊĠĠĠĠĠĠĠ Ġcity Two LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġset Markers ( LAST _ C ITY _ POINT ) ĊĠĠĠĠĠĠĠ Ġget Routes () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow 3 C ities Block () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd _ city . text Ġ= ĠgetString ( R . string . remove _ city ) ĊĠĠĠĠĠĠĠ Ġnew _ cities _ block . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtext Date From . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġtext City To . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġdate Start Two . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġline 2 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġline 3 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġline 1 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġline 1 _ one . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtext City Middle Two . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġtext City Middle Two . text Ġ= Ġtext City To . text ĊĠĠĠĠĠĠĠ Ġdate Start Two . text Ġ= Ġtext Date From . text ĊĠĠĠĠĠĠĠ Ġdate Start Two . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġdate Finish . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġdate Start Two . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Date Dialog ( START _ DATE , Ġdate Start Two ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ date _ from _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdate Start Two . setOn Touch Listener ( Date Utils . on Date Touch ) ĊĊĠĠĠĠĠĠĠ Ġdate Finish . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Date Dialog ( END _ DATE , Ġdate Finish ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ date _ to _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdate Finish . setOn Touch Listener ( Date Utils . on Date Touch ) ĊĊĠĠĠĠĠĠĠ Ġtext Date Ar rived . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Date Dialog ( TWO _ DATE , Ġtext Date Ar rived ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ date _ mid le _ click ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext Date Ar rived . setOn Touch Listener ( Date Utils . on Date Touch ) ĊĊĠĠĠĠĠĠĠ Ġtext City From . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent For Search ( PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ city _ from _ change ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtext New City . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent For Search ( PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ TO _ NEW _ C ITY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ city _ to _ change ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtext City Middle Two . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Intent For Search ( PLACE _ AUTO COMPLETE _ REQUEST _ CODE _ TEXT _ FROM _ MIDDLE _ C ITY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ city _ ml _ change ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View ?. on Stop () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap View ?. on Destroy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Clean Ġup Ġresources Ġfrom Ġgoogle Ġmap Ġto Ġprevent Ġmemory Ġle aks . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Stop Ġtracking Ġcurrent Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( google Map Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Map ?. clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Crash . report ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Low Memory () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Low Memory () ĊĠĠĠĠĠĠĠ Ġmap View ?. on Low Memory () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTextView . after TextChanged ( after TextChanged : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( editable : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġafter TextChanged . invoke ( editable . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Intent For Search ( code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Filter Ġ= ĠAuto complete Filter . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType Filter ( Autocomplete Filter . TYPE _ FILTER _ C ITIES ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType Filter ( Autocomplete Filter . TYPE _ FILTER _ REGION S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠPlace Autocomplete . Intent Builder ( Place Autocomplete . MODE _ OVER LAY ). set Filter ( type Filter ). build ( activity ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġcode ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠGoogle Play Services Repair able Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠGoogle Play Services Not Available Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Date Dialog ( key : ĠString , Ġview : ĠEditText ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view . text . contains (" Ġ Ġ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdates [ key ] Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . set Compound Draw ables ( null , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠCalendar . getInstance () Ġ// current Ġtime Ġby Ġdefault ĊĠĠĠĠĠĠĠ Ġif Ġ( dates [ key ] Ġ?: Ġ 0 L Ġ> Ġ 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . time In Millis Ġ= Ġdates [ key ] Ġ?: Ġdate . time In Millis ĊĊĠĠĠĠĠĠĠ Ġdate Dialog Ġ= ĠCalendar DatePicker Dialog Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set First DayOfWeek ( Calendar . MON DAY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Theme Custom ( R . style . By the way DatePicker Dialog Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pre selected Date ( date . get ( Calendar . YEAR ), Ġdate . get ( Calendar . MONTH ), Ġdate . get ( Calendar . DAY _ OF _ MONTH )) ĊĊĠĠĠĠĠĠĠ Ġval Ġcurrent Date Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( key Ġ== ĠEND _ DATE Ġ&& Ġdates [ START _ DATE ] Ġ!= Ġnull ) Ġdates [ START _ DATE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 Ġelse ĠSystem . currentTimeMillis () ĊĊĠĠĠĠĠĠĠ Ġdate Dialog . setDate Range ( Month Adapter . Calendar Day ( current Date ), Ġnull ) ĊĠĠĠĠĠĠĠ Ġdate Dialog . setOn Date Set Listener Ġ{ Ġ_, Ġyear , Ġmonth OfYear , Ġday OfMonth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setText ( StringBuilder (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( day OfMonth ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( context . resources . getString Array ( R . array . months _ array )[ month OfYear ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append (" Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( year ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdates [ key ] Ġ= ĠDate Utils . getLong From Date ( day OfMonth , Ġmonth OfYear , Ġyear ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile State HashMap [ DAT ES ] Ġ= Ġdates . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdate Dialog . show ( activity . support FragmentManager , Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend UserInfo ToServer () Ġ{ ĊĠĠĠĠĠĠĠ Ġcount Trip Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ ĠviewModel ?. send UserData ( get HashMap User (), Ġuid , Ġmain User ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( soc Net . size Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Tips For Empty Social Link () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchecking City Text (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġerror String Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġtext City From . error Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtext New City . error Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtext City To . error Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( text City From . text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . error Ġ= ĠgetString ( R . string . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror String Ġ= ĠgetString ( R . string . fill _ required _ fields ) Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . city _ from ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . error Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( text City To . text . isEmpty () Ġ&& ĠMODE _ TWO _ C ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . error Ġ= ĠgetString ( R . string . yes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror String Ġ+= ĠgetString ( R . string . fill _ required _ fields ) Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . city _ to ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . error Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( text New City . text . isEmpty () Ġ&& Ġ! MODE _ TWO _ C ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City . error Ġ= ĠgetString ( R . string . yes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror String Ġ+= ĠgetString ( R . string . fill _ required _ fields ) Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . city _ to ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City . error Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġif Ġ( text City Middle Two . text . isEmpty () Ġ&& Ġ! MODE _ TWO _ C ITY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City Middle Two . error Ġ= ĠgetString ( R . string . yes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror String Ġ+= ĠgetString ( R . string . fill _ required _ fields ) Ġ+ Ġ" Ġ" Ġ+ ĠgetString ( R . string . city _ to ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City Middle Two . error Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġtext City From . parent . request Child Focus ( text City From , Ġtext City From ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Different Location City ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror String Ġ+= Ġ" Ġ" Ġ+ ĠgetString ( R . string . fill _ diff _ cities ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ city _ equals _ err ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( error String . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , Ġerror String , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Different Location City (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ(( city To LatLng . hashCode () Ġ== Ġcity From LatLng . hashCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ( city To LatLng . hashCode () Ġ== Ġcity Two LatLng . hashCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ( city Two LatLng . hashCode () Ġ== Ġcity From LatLng . hashCode ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow ErrorResponse () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this @ My Profile Fragment . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . error _ update ), ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ error _ update ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ error _ update ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Block Travel Information () Ġ{ ĊĠĠĠĠĠĠĠ Ġdirection . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġmap layout . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġmethod Moving . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġlayout Travel Method . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġmoney fort rip . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġapp in The Air Enter . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġvk App . visibility Ġ= Ġif Ġ(! vk App Is Installed ()) ĠView . GONE Ġelse ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġdescription profile . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġbutton Remove Travel Info . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġbutton Save Travel Info . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Block New Trip () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd New Trip . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġgray Line . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Information Edit Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Alert Ġ= ĠAlertDialog . Builder ( activity ). create () ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . custom _ dialog _ profile _ in for am tion , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġsimple Alert . setView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġval Ġname Choose Ġ= Ġdialog View . findViewById < View >( R . id . dialog _ name ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġname Choose . setText ( name ) ĊĠĠĠĠĠĠĠ Ġval ĠlastName Choose Ġ= Ġdialog View . findViewById < View >( R . id . dialog _ last _ name ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ ĠlastName Choose . setText ( lastName ) ĊĠĠĠĠĠĠĠ Ġval Ġcity Choose Ġ= Ġdialog View . findViewById < View >( R . id . dialog _ city ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġcity Choose . setText ( city ) ĊĊĠĠĠĠĠĠĠ Ġval Ġman Ġ= Ġdialog View . findViewById < RadioButton >( R . id . man ) ĊĠĠĠĠĠĠĠ Ġval Ġwoman Ġ= Ġdialog View . findViewById < RadioButton >( R . id . w oman ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsex Choose Ġ= Ġdialog View . findViewById < Radio Group >( R . id . sex ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sex Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsex Choose . check ( man . id ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( sex Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsex Choose . check ( w oman . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġyears View Ġ= Ġdialog View . findViewById < EditText >( R . id . years View ) ĊĠĠĠĠĠĠĠ Ġyears View . setText ( age . toString Or Blank ()) ĊĠĠĠĠĠĠĠ Ġyears View . filters Ġ= ĠarrayOf ( Decimal Input Filter ()) ĊĊĠĠĠĠĠĠĠ Ġsimple Alert . set Button ( AlertDialog . BUTTON _ POSITIVE , ĠgetString ( R . string . save ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsex Ġ= Ġif Ġ( man . isChecked ) Ġ 1 Ġelse Ġif Ġ( w oman . isChecked ) Ġ 2 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ( name Choose . text . toString ()). capitalize () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ( lastName Choose . text . toString ()). capitalize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġ( city Choose . text . toString ()). capitalize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= Ġ( years View . text . toString Or Zero ()). toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername . text Ġ= ĠStringBuilder ( name ). append (" Ġ"). append ( lastName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity view . text Ġ= Ġif Ġ( city . isNotEmpty ()) Ġcity Ġelse ĠgetString ( R . string . native _ city ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Age Sex ( age , Ġsex ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsaving UserData ( name , ĠlastName , Ġcity , Ġage , Ġsex ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Alert . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĠgetString ( R . string . cancel ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsimple Alert . hide () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġvar Ġenter Counter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġname Choose . setOn Key Listener ( View . On Key Listener Ġ{ Ġ_, ĠkeyCode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenter Counter Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Choose . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Key Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠlastName Choose . setOn Key Listener ( View . On Key Listener Ġ{ Ġ_, ĠkeyCode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenter Counter Ġ= Ġif Ġ( enter Counter Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Choose . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Key Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġcity Choose . setOn Key Listener ( View . On Key Listener Ġ{ Ġ_, ĠkeyCode , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( keyCode Ġ== ĠKeyEvent . KEYCODE _ ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( enter Counter Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( city Choose . window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġenter Counter Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Key Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Alert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsaving UserData ( name : ĠString , ĠlastName : ĠString , Ġcity : ĠString , Ġage : ĠInt , Ġsex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhash Map Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNAME Ġto Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLAST NAME Ġto ĠlastName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY Ġto Ġcity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA GE Ġto Ġage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS EX Ġto Ġsex ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠviewModel ?. send UserData ( hash Map , Ġuid , Ġmain User ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Dialog Wh ats App ( social Network Link : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( activity ). create () ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog . is Showing ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġdialog . setTitle ( getString ( R . string . social _ title _ wp )) ĊĠĠĠĠĠĠĠ Ġdialog . setMessage ( getString ( R . string . social _ text _ wp )) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . custom _ dialog _ profile _ add _ wp , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog . setView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). setText ( main User ?. phone ) ĊĠĠĠĠĠĠĠ Ġsocial Values [ social Network Link ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĠgetString ( R . string . remove ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove S oc Net ( social Network Link ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdialog . set Button ( AlertDialog . BUTTON _ POSITIVE , ĠgetString ( R . string . save ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Link Ġ= Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). text . toString (). replace ("\\ s ". to Regex (), Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! new Link . isNumber Phone ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). error Ġ= ĠgetString ( R . string . fill _ phone _ invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Link Ġin Ġdefault Social Values . values ) Ġreturn @ set Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd New S oc Link ( social Network Link , Ġnew Link ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). after TextChanged Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalid Ġ= Ġit . isNumber Phone () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! valid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). error Ġ= ĠgetString ( R . string . fill _ phone _ invalid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . get Button ( AlertDialog . BUTTON _ POSITIVE )?. isEnabled Ġ= Ġvalid ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Dialog Telegram ( social Network Link Key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( activity ). create () ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog . is Showing ) Ġreturn ĊĠĠĠĠĠĠĠ Ġdialog . setTitle ( getString ( R . string . social _ title _ tg )) ĊĠĠĠĠĠĠĠ Ġdialog . setMessage ( getString ( R . string . social _ text _ tg )) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . custom _ dialog _ profile _ add _ tg , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog . setView ( dialog View ) ĊĊĠĠĠĠĠĠĠ Ġsocial Values [ social Network Link Key ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĠgetString ( R . string . remove ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove S oc Net ( social Network Link Key ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdialog . set Button ( AlertDialog . BUTTON _ POSITIVE , ĠgetString ( R . string . save ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Link Ġ= Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). text . toString (). replace ("\\ s ". to Regex (), Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Link Ġin Ġdefault Social Values . values ) Ġreturn @ set Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd New S oc Link ( social Network Link Key , Ġnew Link ) ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). after TextChanged Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalid Ġ= Ġit . isNumber Phone () Ġ|| Ġit . startsWith ("@ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! valid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). error Ġ= ĠgetString ( R . string . fill _ phone _ invalid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Dialog VK ( social Network Link Key : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( activity ). create () ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog . is Showing ) Ġreturn ĊĠĠĠĠĠĠĠ Ġdialog . setTitle ( getString ( R . string . social _ title _ vk )) ĊĠĠĠĠĠĠĠ Ġdialog . setMessage ( getString ( R . string . social _ text _ vk )) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . custom _ dialog _ profile _ add _ vk , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog . setView ( dialog View ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( should Vk Button Show ( social Network Link Key )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < Button >( R . id . vk App Sin ch ). visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġdialog View . findViewById < Button >( R . id . vk App Sin ch ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsin ch Vk () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsocial Values [ social Network Link Key ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). setText ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĠgetString ( R . string . remove ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove S oc Net ( social Network Link Key ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdialog . set Button ( AlertDialog . BUTTON _ POSITIVE , ĠgetString ( R . string . save ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Link Ġ= Ġdialog View . findViewById < EditText >( R . id . soc Link Text )?. text . toString (). replace ("\\ s ". to Regex (), Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Link Ġin Ġdefault Social Values . values ) Ġreturn @ set Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd New S oc Link ( social Network Link Key , Ġnew Link ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshould Vk Button Show ( social Network Link Key : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! vk App Is Installed () Ġ|| ĠV KS dk . is LoggedIn () Ġ|| Ġis Link Not Default ( social Network Link Key ) ĊĊĊĠĠĠ Ġprivate Ġfun Ġvk App Is Installed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpm Ġ= Ġactivity . package Manager ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm . get Package Info (" com . vk ont ak te . android ", ĠPackage Manager . GET _ ACTIV ITIES ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ; ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Link Not Default ( key : ĠString ) Ġ= Ġ!( social Values [ key ] Ġin Ġdefault Social Values . values ) ĊĊĠĠĠ Ġval Ġvk : ĠVK Ġby Ġlazy Ġ{ ĠVK () Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsin ch Vk () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ vk _ sin ch ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! vk . start ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Already ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Dialog ( social Network : ĠSocial Network ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Alert Ġ= ĠAlertDialog . Builder ( activity ). create () ĊĠĠĠĠĠĠĠ Ġsimple Alert . setTitle ( getString ( R . string . social _ links )) ĊĠĠĠĠĠĠĠ Ġsimple Alert . setMessage ( getString ( R . string . social _ text )) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . custom _ dialog _ profile _ soc _ network , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġsimple Alert . setView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġvar Ġsoc Value Done Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġsocial Values [ social Network . link ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoc Value Done Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( social Network Ġ== ĠSocial Network . TG Ġ&& Ġsoc Value Done . length Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoc Value Done Ġ= Ġnumber Phone ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). setText ( soc Value Done ) ĊĊĠĠĠĠĠĠĠ Ġsimple Alert . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĠgetString ( R . string . remove ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove S oc Net ( social Network . link ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsimple Alert . set Button ( AlertDialog . BUTTON _ POSITIVE , ĠgetString ( R . string . save ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Link Ġ= Ġdialog View . findViewById < EditText >( R . id . soc Link Text ). text . toString (). replace ("\\ s ". to Regex (), Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Link Ġin Ġdefault Social Values . values ) Ġreturn @ set Button ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd New S oc Link ( social Network . link , Ġnew Link ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Alert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd New S oc Link ( social Network Link : ĠString , Ġnew Link : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsoc Net [ social Network Link ] Ġ= Ġnew Link ĊĠĠĠĠĠĠĠ ĠviewModel ?. save Links ( soc Net , Ġuid , ĠSocial Response ( social Network Link , Ġnew Link ), Ġmain User ) ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ save _ links ", Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove S oc Net ( social Network Link : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ remove _ links ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġsoc Net . remove ( social Network Link ) ĊĠĠĠĠĠĠĠ ĠviewModel ?. save Links ( soc Net , Ġuid , ĠSocial Response ( social Network Link ), Ġmain User ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen AlertDialog ( callback : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsimple Alert Ġ= ĠAlertDialog . Builder ( activity ). create () ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . confirm _ dialog , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġsimple Alert . setView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġdialog View . text Message . text Ġ= ĠgetString ( R . string . text _ confirm _ remove _ trip ) ĊĠĠĠĠĠĠĠ Ġsimple Alert . set Button ( AlertDialog . BUTTON _ POSITIVE , ĠgetString ( R . string . yes ), Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Alert . set Button ( AlertDialog . BUTTON _ NEGATIVE , ĠgetString ( R . string . no ), Ġ{ Ġ_, Ġ_ Ġ-> Ġ}) ĊĠĠĠĠĠĠĠ Ġsimple Alert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange S oc Icons Active ( social Network Link : ĠString , Ġnew Link : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsocial Values [ social Network Link ] Ġ= Ġnew Link ĊĠĠĠĠĠĠĠ Ġwhen Ġ( social Network Link ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . VK . link Ġ-> Ġvk Icon . setImage Resource ( R . drawable . ic _ vk _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . CS . link Ġ-> Ġcs Icon . setImage Resource ( R . drawable . ic _ cs _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . FB . link Ġ-> Ġfb con . setImage Resource ( R . drawable . ic _ fb _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . WH ATS APP . link Ġ-> Ġwh ats App Icon . setImage Resource ( R . drawable . ic _ whats _ icon _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . TG . link Ġ-> Ġtg Icon . setImage Resource ( R . drawable . ic _ tg _ color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange S oc Icons Dis Active ( social Network Link : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠ Ġsoc Net . remove ( social Network Link ) ĊĠĠĠĠĠĠĠ Ġdefault Social Values [ social Network Link ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocial Values [ social Network Link ] Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( social Network Link ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . VK . link Ġ-> Ġvk Icon . setImage Resource ( R . drawable . ic _ vk _ gray ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . CS . link Ġ-> Ġcs Icon . setImage Resource ( R . drawable . ic _ cs _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . FB . link Ġ-> Ġfb con . setImage Resource ( R . drawable . ic _ fb _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . WH ATS APP . link Ġ-> Ġwh ats App Icon . setImage Resource ( R . drawable . ic _ whats _ icon _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . TG . link Ġ-> Ġtg Icon . setImage Resource ( R . drawable . tg _ grey ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Block Travel In for am tion () Ġ{ ĊĠĠĠĠĠĠĠ Ġdirection . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġtext City From . setText ("") ĊĠĠĠĠĠĠĠ Ġtext City To . setText ("") ĊĠĠĠĠĠĠĠ Ġtext Date Ar rived . setText ("") ĊĠĠĠĠĠĠĠ Ġtext Date From . setText ("") ĊĠĠĠĠĠĠĠ Ġadd Info User . setText ("") ĊĠĠĠĠĠĠĠ Ġmap layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġmethod Moving . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġmethod Text Views . values . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. is Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmethod Icons . values . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. is Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġapp in The Air Enter . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġvk App . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġlayout Travel Method . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġmoney fort rip . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġdisplay Price Travel . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġdescription profile . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġbutton Remove Travel Info . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġbutton Save Travel Info . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Block Add Trip () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd New Trip . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġgray Line . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Age Sex ( user Age : ĠInt , Ġuser Sex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgender Ġ= Ġwhen Ġ( user Sex ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠgetString ( R . string . gender _ male ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠgetString ( R . string . gender _ female ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user Sex Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsex Ġ= Ġuser Sex ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Age Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsex And Age . text Ġ= ĠStringBuilder ( gender ). append (", Ġ"). append ( user Age ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsex And Age . text Ġ= ĠStringBuilder ( gender ). append (", Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . age ) Ġ+ Ġ" Ġ"). append ( user Age ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user Age Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġage Ġ= Ġuser Age ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Sex Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsex And Age . text Ġ= ĠStringBuilder ( gender ). append (", Ġ"). append ( user Age ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsex And Age . text Ġ= ĠStringBuilder ( getString ( R . string . sex ) Ġ+ Ġ", Ġ"). append ( user Age ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠREAD _ REQUEST _ CODE Ġ= Ġ 4 2 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠF ires Ġan Ġintent Ġto Ġspin Ġup Ġthe Ġ" file Ġcho oser " ĠUI Ġand Ġselect Ġan Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġperform File Search () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠACTION _ OPEN _ DOCUMENT Ġis Ġthe Ġintent Ġto Ġchoose Ġa Ġfile Ġvia Ġthe Ġsystem 's Ġfile ĊĠĠĠĠĠĠĠ Ġ// Ġbrowser . ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ OPEN _ DOCUMENT ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠFilter Ġto Ġonly Ġshow Ġresults Ġthat Ġcan Ġbe Ġ" opened ", Ġsuch Ġas Ġa ĊĠĠĠĠĠĠĠ Ġ// Ġfile Ġ( as Ġopposed Ġto Ġa Ġlist Ġof Ġcontacts Ġor Ġtime zones ) ĊĠĠĠĠĠĠĠ Ġintent . add Category ( Intent . CATEGORY _ OP ENABLE ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠFilter Ġto Ġshow Ġonly Ġimages , Ġusing Ġthe Ġimage ĠMIME Ġdata Ġtype . ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġone Ġwanted Ġto Ġsearch Ġfor Ġo gg Ġvor bis Ġfiles , Ġthe Ġtype Ġwould Ġbe Ġ" audio / ogg ". ĊĠĠĠĠĠĠĠ Ġ// ĠTo Ġsearch Ġfor Ġall Ġdocuments Ġavailable Ġvia Ġinstalled Ġstorage Ġproviders , ĊĠĠĠĠĠĠĠ Ġ// Ġit Ġwould Ġbe Ġ"* /* ". ĊĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" image /* " ĊĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREAD _ REQUEST _ CODE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Image Profile ( link : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( link . isNotBlank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġg lide ?. load ( link ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . apply ( RequestOptions . circle Crop Transform ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . into ( image _ avatar ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage _ avatar . setImage Drawable ( Context Compat . get Drawable ( activity , ĠR . drawable . ic _ add _ user _ to _ social _ network )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Profile ( user : ĠUser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Image Profile ( user . url Photo ) ĊĠĠĠĠĠĠĠ Ġimage _ avatar . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ click _ avatar ", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperform File Search () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcity From LatLng Ġ= Ġuser . city From LatLng ĊĠĠĠĠĠĠĠ Ġcity To LatLng Ġ= Ġuser . city To LatLng ĊĠĠĠĠĠĠĠ Ġcity Two LatLng Ġ= Ġuser . city Two LatLng ĊĊĠĠĠĠĠĠĠ Ġprofile State HashMap . clear () ĊĠĠĠĠĠĠĠ ĠlastName Ġ= Ġuser . lastName ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġuser . name ĊĠĠĠĠĠĠĠ Ġnumber Phone Ġ= Ġuser . phone ĊĊĠĠĠĠĠĠĠ Ġtravel led Statistics . visibility Ġ= Ġif Ġ( user . flight Hours Ġ== Ġ 0 L ) ĠView . GONE Ġelse ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġtravel led Countries . text Ġ= Ġuser . countries . toString () ĊĠĠĠĠĠĠĠ Ġflight Hours . text Ġ= Ġuser . flight Hours . toString () ĊĠĠĠĠĠĠĠ Ġflight Distance . text Ġ= Ġuser . ki lo meters . toString () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user . city . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity view . text Ġ= Ġuser . city ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcity Ġ= Ġuser . city ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcount Trip Ġ= Ġuser . count Trip ĊĊĠĠĠĠĠĠĠ Ġif Ġ( count Trip Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Block Add Trip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Block Travel In for am tion () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Block New Trip () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Block Travel Information () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user . cities . size Ġ== Ġ 1 Ġ|| Ġuser . cities . size Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . setText ( user . cities [ FIRST _ INDEX _ C ITY ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City To . setText ( user . cities [ LAST _ INDEX _ C ITY ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcities Ġ= Ġuser . cities ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( user . cities . size Ġ== Ġ 3 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE _ TWO _ C ITY Ġ= Ġfalse Ġ// ĠÐĴ ÐºÐ»ÑİÑĩ Ð°ÐµÐ¼ ĠÑĢ ÐµÐ¶ Ð¸Ð¼ ĠÑĤÑĢ ÐµÑħ ĠÐ³ Ð¾ÑĢ Ð¾Ð´ Ð¾Ð² . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow 3 C ities Block () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City From . setText ( user . cities [ FIRST _ INDEX _ C ITY ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext City Middle Two . setText ( user . cities [ TWO _ INDEX _ C ITY ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext New City . setText ( user . cities [ LAST _ INDEX _ C ITY ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcities Ġ= Ġuser . cities ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user . dates . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . cities . size Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . dates [ START _ DATE ] Ġ!= Ġnull Ġ&& Ġuser . dates [ START _ DATE ] Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Date From . setText ( format . format ( Date ( user . dates [ START _ DATE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Date From . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . dates [ END _ DATE ] Ġ!= Ġnull Ġ&& Ġuser . dates [ END _ DATE ] Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Date Ar rived . setText ( format . format ( Date ( user . dates [ END _ DATE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Date Ar rived . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐĶ Ð»Ñı ĠÑģÐ» ÑĥÑĩ Ð°Ñı ĠÐº Ð¾Ð³Ð´Ð° ĠÑĥ ĠÐ½Ð° Ñģ ĠÑĤ ÑĢÐ¸ ĠÐ³ Ð¾ÑĢ Ð¾Ð´Ð° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . dates [ START _ DATE ] Ġ!= Ġnull Ġ&& Ġuser . dates [ START _ DATE ] Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Start Two . setText ( format . format ( Date ( user . dates [ START _ DATE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Start Two . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . dates [ END _ DATE ] Ġ!= Ġnull Ġ&& Ġuser . dates [ END _ DATE ] Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Finish . setText ( format . format ( Date ( user . dates [ END _ DATE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Finish . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user . dates [ TWO _ DATE ] Ġ!= Ġnull Ġ&& Ġuser . dates [ TWO _ DATE ] Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Date Ar rived . setText ( format . format ( Date ( user . dates [ TWO _ DATE ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Date Ar rived . set Compound Draw ables With Intr insic Bounds ( 0 , Ġ 0 , ĠR . drawable . ic _ close _ vector , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdates Ġ= Ġuser . dates ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfill Age Sex ( user . age , Ġuser . sex ) ĊĠĠĠĠĠĠĠ Ġset Markers ( LAST _ C ITY _ POINT ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user . route . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroute String Ġ= Ġuser . route ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdraw Polyline () ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobtain Direction () Ġ// ĠÐ´Ð»Ñı ĠÑģÑĤ ÑĢÐ° Ñħ Ð¾Ð² ÐºÐ¸ . ĠÐķÑģÐ»Ð¸ ĠÐ¼ Ð°ÑĪ ÑĢÑĥ ÑĤÐ° ĠÐ½ ÐµÑĤ , ĠÑĤÐ¾ ĠÐ¿ Ñĭ ÑĤ Ð°ÐµÐ¼ Ñı ĠÐ¿Ð¾Ð»ÑĥÑĩ Ð¸ÑĤÑĮ ĠÐµÐ³Ð¾ . ĊĊĠĠĠĠĠĠĠ Ġage Ġ= Ġuser . age ĊĊĊĊĠĠĠĠĠĠĠ Ġfor Ġ( name Ġin Ġuser . social Network ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsoc Net [ name . key ] Ġ= Ġname . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( name . key ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . VK . link Ġ-> Ġvk Icon . setImage Resource ( R . drawable . ic _ vk _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . CS . link Ġ-> Ġcs Icon . setImage Resource ( R . drawable . ic _ cs _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . FB . link Ġ-> Ġfb con . setImage Resource ( R . drawable . ic _ fb _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . WH ATS APP . link Ġ-> Ġwh ats App Icon . setImage Resource ( R . drawable . ic _ whats _ icon _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSocial Network . TG . link Ġ-> Ġtg Icon . setImage Resource ( R . drawable . ic _ tg _ color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name . key Ġin Ġsocial Values ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocial Values [ name . key ] Ġ= Ġname . value ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user . token . isEmpty () Ġ|| Ġ( activity Ġas ĠMenu Activity ). need Update Token ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel ?. update F cm Token () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user . social Network . size Ġ== Ġ 0 Ġ&& Ġuser . count Trip Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Tips For Empty Social Link () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmethods . put All ( user . method ) ĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ METHO DS ] Ġ= Ġmethods . hashCode (). toString () ĊĊĠĠĠĠĠĠĠ Ġuser . method . keys . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Icons [ it ]?. is Activated Ġ= Ġuser . method [ it ] Ġ== Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( user . budget Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Ġ= Ġuser . budget ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Price Travel . text Ġ= ĠStringBuilder ( getString ( R . string . type _ money )). append ( budget ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbudget Position Ġ= Ġuser . budget Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Price Travel . progress Ġ= Ġbudget Position ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ ADD _ INFO ] Ġ= Ġuser . add Information ĊĠĠĠĠĠĠĠ Ġsave Profile State () ĊĠĠĠĠĠĠĠ Ġadd Info User . setText ( user . add Information ) ĊĠĠĠĠĠĠĠ Ġadd Info User . clear Focus () ĊĊĠĠĠĠĠĠĠ Ġval Ġnavigation View Ġ= Ġactivity . findViewById < Navigation View >( R . id . nav _ view ) ĊĠĠĠĠĠĠĠ Ġval Ġh View Ġ= Ġnavigation View . getHeader View ( 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcity Name Ġ= Ġh View . findViewById < TextView >( R . id . menu _ city _ name ) ĊĠĠĠĠĠĠĠ Ġcity Name . text Ġ= Ġuser . city ĊĠĠĠĠĠĠĠ Ġval ĠfullName Ġ= Ġh View . findViewById < TextView >( R . id . menu _ fullname ) ĊĠĠĠĠĠĠĠ ĠfullName . text Ġ= ĠStringBuilder (). append ( user . name ). append (" Ġ"). append ( user . lastName ) ĊĠĠĠĠĠĠĠ Ġusername . text Ġ= ĠStringBuilder ( user . name ). append (" Ġ"). append ( user . lastName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Tips For Empty Social Link () Ġ{ ĊĠĠĠĠĠĠĠ ĠSocial Tips Dialog (). show ( fragment Manager , Ġ" Tips ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObject Animator . of Int ( scroll Profile , Ġ" scroll Y ", Ġheader profile . bottom ). set Duration ( 6 5 0 L ). start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġremove Trip () Ġ{ ĊĠĠĠĠĠĠĠ Ġcount Trip Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġbudget Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmethods . clear () ĊĠĠĠĠĠĠĠ Ġcities . clear () ĊĠĠĠĠĠĠĠ Ġcity From LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcity To LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġcity Two LatLng Ġ= ĠGeo Point ( 0 . 0 , Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠ Ġdates . clear () ĊĠĠĠĠĠĠĠ Ġgoogle Map ?. clear () ĊĠĠĠĠĠĠĠ Ġroute String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ ĠviewModel ?. send UserData ( get HashMap User (), Ġuid , Ġmain User ) ĊĠĠĠĠĠĠĠ Ġhide Block Travel In for am tion () ĊĠĠĠĠĠĠĠ Ġshow Block Add Trip () ĊĠĠĠĠĠĠĠ Ġtext Date Ar rived . set Compound Draw ables ( null , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġtext Date From . set Compound Draw ables ( null , Ġnull , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Profile State () Ġ{ ĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ DAT ES ] Ġ= Ġdates . toString () ĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ BU D GET ] Ġ= Ġbudget . toString () ĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ BU D GET _ POSITION ] Ġ= Ġbudget Position . toString () ĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ C ITY _ FROM ] Ġ= Ġcity From LatLng . hashCode (). toString () ĊĠĠĠĠĠĠĠ Ġprofile State HashMap [ C ITY _ TO ] Ġ= Ġcity To LatLng . hashCode (). toString () ĊĠĠĠĠĠĠĠ Ġold Profile State Ġ= Ġprofile State HashMap . hashCode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget HashMap User (): ĠHashMap < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( budget Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ budget _ more _ 0 ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġif Ġ( add Info User . text . toString (). isNotBlank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Firebase Analytics . log Event ("${ TAG _ ANAL YT ICS }_ add _ info ", Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġval Ġhash Map Ġ= ĠHashMap < String , ĠAny >() ĊĊĠĠĠĠĠĠĠ Ġhash Map [ C ITIES ] Ġ= Ġcities ĊĠĠĠĠĠĠĠ Ġhash Map [ METHOD ] Ġ= Ġmethods ĊĠĠĠĠĠĠĠ Ġhash Map [ DAT ES ] Ġ= Ġdates ĊĠĠĠĠĠĠĠ Ġhash Map [ ROUTE ] Ġ= Ġroute String ĊĠĠĠĠĠĠĠ Ġhash Map [ BU D GET ] Ġ= Ġbudget ĊĠĠĠĠĠĠĠ Ġhash Map [ BU D GET _ POSITION ] Ġ= Ġbudget Position ĊĠĠĠĠĠĠĠ Ġhash Map [ C ITY _ FROM ] Ġ= Ġcity From LatLng ĊĠĠĠĠĠĠĠ Ġhash Map [ C ITY _ TWO ] Ġ= Ġcity Two LatLng ĊĠĠĠĠĠĠĠ Ġhash Map [ C ITY _ TO ] Ġ= Ġcity To LatLng ĊĠĠĠĠĠĠĠ Ġhash Map [ ADD _ INFO ] Ġ= Ġadd Info User . text . toString () ĊĠĠĠĠĠĠĠ Ġhash Map [ COUNT _ TR IP ] Ġ= Ġcount Trip ĊĠĠĠĠĠĠĠ Ġhash Map [ SE X ] Ġ= Ġsex ĊĠĠĠĠĠĠĠ Ġhash Map [ AGE ] Ġ= Ġage ĊĠĠĠĠĠĠĠ Ġhash Map [ NAME ] Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġhash Map [ LAST NAME ] Ġ= ĠlastName ĊĠĠĠĠĠĠĠ Ġhash Map [ C ITY ] Ġ= Ġcity ĊĠĠĠĠĠĠĠ Ġreturn Ġhash Map ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprofile Changed ( force : ĠBoolean ? Ġ= Ġnull , Ġremove Focus : ĠBoolean ? Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( remove Focus Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Info User . clear Focus () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( count Trip Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġchanged : ĠBoolean Ġ= Ġprofile State HashMap . hashCode () Ġ!= Ġold Profile State ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforce ?. let Ġ{ Ġchanged Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMenu Activity ). profile Changed Ġ= Ġchanged ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobtain Direction () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel ?. get Route ( city From LatLng Ġ= Ġcity From LatLng , Ġcity To LatLng Ġ= Ġcity To LatLng , Ġway point Ġ= Ġcity Two LatLng ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ