package Ġcom . example . t area api weather david . fragments Ċ Ċ import Ġcom . example . t area api weather david . R Ċ import Ġcom . example . t area api weather david . pojo . Attributes C ities Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . toolbox . JsonObject Request Ċ import Ġcom . android . vol ley . toolbox . Vol ley Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġorg . json . JSONException Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠCompare Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġone List Ġ= ĠMutable LiveData < ArrayList < Attributes C ities >>() ĊĠĠĠ Ġprivate Ġvar Ġsecond List Ġ= ĠMutable LiveData < ArrayList < Attributes C ities >>() ĊĠĠĠ Ġprivate Ġval Ġme API Ġ= Ġ" c 8 9 8 6 d 0 1 d 0 4 6 f 2 8 9 b 7 2 8 0 a 5 ef bf 5 0 b 6 0 " ĊĠĠĠ Ġprivate Ġval Ġlang Ġ= Ġ" es " ĊĠĠĠ Ġprivate Ġval Ġunits Ġ= Ġ" metric " ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : LayoutInflater , Ġcontainer : ViewGroup ?, ĠsavedInstanceState : Bundle ? ĊĠĠĠ Ġ): View ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġinflater . inflate ( R . layout . compare _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġnavigation : Compare Args Ġby Ġnav Args () ĊĠĠĠĠĠĠĠ Ġval Ġfirst City Compare Ġ= Ġnavigation . First City ĊĠĠĠĠĠĠĠ Ġval Ġsecond City Compare Ġ= Ġnavigation . Second City ĊĠĠĠĠĠĠĠ Ġget First City ( v , Ġfirst City Compare , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġget Second City ( v , Ġsecond City Compare , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget First City ( v : View , Ġcity : String , Ġorder City : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon First Ġ= Ġv . findViewById < ImageView >( R . id . imageView First ) ĊĠĠĠĠĠĠĠ Ġval Ġdescription First Ġ= Ġv . findViewById < TextView >( R . id . textView Description First ) ĊĠĠĠĠĠĠĠ Ġval Ġname First Ġ= Ġv . findViewById < TextView >( R . id . textView name First ) ĊĠĠĠĠĠĠĠ Ġval Ġtemperature First Ġ= Ġv . findViewById < TextView >( R . id . textView temperature First ) ĊĠĠĠĠĠĠĠ Ġval Ġfeels Like First Ġ= Ġv . findViewById < TextView >( R . id . textView fe els like First ) ĊĠĠĠĠĠĠĠ Ġval Ġtemp Max First Ġ= Ġv . findViewById < TextView >( R . id . textView temp Max First ) ĊĠĠĠĠĠĠĠ Ġval Ġtemp Min First Ġ= Ġv . findViewById < TextView >( R . id . textView temp Min First ) ĊĠĠĠĠĠĠĠ Ġval Ġhum idity First Ġ= Ġv . findViewById < TextView >( R . id . textView humidity First ) ĊĠĠĠĠĠĠĠ Ġval Ġpressure First Ġ= Ġv . findViewById < TextView >( R . id . textView pressure First ) ĊĠĠĠĠĠĠĠ Ġval Ġspeed First Ġ= Ġv . findViewById < TextView >( R . id . textView velocity First ) ĊĠĠĠĠĠĠĠ Ġval Ġall First Ġ= Ġv . findViewById < TextView >( R . id . textView all First ) ĊĠĠĠĠĠĠĠ Ġval Ġcountry First Ġ= Ġv . findViewById < TextView >( R . id . textView country First ) ĊĠĠĠĠĠĠĠ Ġget Api Open Weather ( city , Ġorder City ) ĊĠĠĠĠĠĠĠ Ġone List . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone Str : String Ġ= Ġone List . value ! ![ 0 ]. description . substring ( 0 , Ġ 1 ). toUpperCase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond Str : String Ġ= Ġone List . value ! ![ 0 ]. description . substring ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthree Str Ġ= Ġone Str Ġ+ Ġsecond Str ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription First . text Ġ= Ġthree Str ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load (" https :// open weather map . org / img / w /" Ġ+ Ġone List . value ! ![ 0 ]. icon Ġ+ Ġ". png "). into ( icon First ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname First . text Ġ= Ġone List . value ! ![ 0 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature First . text Ġ= Ġone List . value ! ![ 0 ]. temperature . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeels Like First . text Ġ= Ġ" S ens aciÃ³n ĠtÃ© rm ica : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. fe els Like . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Max First . text Ġ= Ġ" M Ãģ X IM AS : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. temp Max . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Min First . text Ġ= Ġ" M Ãį NIM AS : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. temp Min . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpressure First . text Ġ= Ġ" PRE SI Ãĵ N : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. pressure . toString () Ġ+ Ġ" h PA " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhum idity First . text Ġ= Ġ" HU MED AD : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. humidity . toString () Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeed First . text Ġ= Ġ" VE LOC ID AD : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. speed Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall First . text Ġ= Ġ" N UB ES : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. all Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry First . text Ġ= Ġ" PA Ãį S : Ġ" Ġ+ Ġone List . value ! ![ 0 ]. country ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Second City ( v : View , Ġcity : String , Ġorder City : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġicon Second Ġ= Ġv . findViewById < ImageView >( R . id . imageView Second ) ĊĠĠĠĠĠĠĠ Ġval Ġdescription Second Ġ= Ġv . findViewById < TextView >( R . id . textView Description Second ) ĊĠĠĠĠĠĠĠ Ġval Ġname Second Ġ= Ġv . findViewById < TextView >( R . id . textView name Second ) ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Second Ġ= Ġv . findViewById < TextView >( R . id . textView temperature Second ) ĊĠĠĠĠĠĠĠ Ġval Ġfeels Like Second Ġ= Ġv . findViewById < TextView >( R . id . textView fe els like Second ) ĊĠĠĠĠĠĠĠ Ġval Ġtemp Max Second Ġ= Ġv . findViewById < TextView >( R . id . textView temp Max Second ) ĊĠĠĠĠĠĠĠ Ġval Ġtemp Min Second Ġ= Ġv . findViewById < TextView >( R . id . textView temp Min Second ) ĊĠĠĠĠĠĠĠ Ġval Ġpressure Second Ġ= Ġv . findViewById < TextView >( R . id . textView pressure Second ) ĊĠĠĠĠĠĠĠ Ġval Ġhum idity Second Ġ= Ġv . findViewById < TextView >( R . id . textView humidity Second ) ĊĠĠĠĠĠĠĠ Ġval Ġspeed Second Ġ= Ġv . findViewById < TextView >( R . id . textView velocity Second ) ĊĠĠĠĠĠĠĠ Ġval Ġall Second Ġ= Ġv . findViewById < TextView >( R . id . textView all Second ) ĊĠĠĠĠĠĠĠ Ġval Ġcountry Second Ġ= Ġv . findViewById < TextView >( R . id . textView country Second ) ĊĠĠĠĠĠĠĠ Ġget Api Open Weather ( city , Ġorder City ) ĊĠĠĠĠĠĠĠ Ġsecond List . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone List : String Ġ= Ġsecond List . value ! ![ 0 ]. description . substring ( 0 , Ġ 1 ). toUpperCase ( Locale . ROOT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond Str : String Ġ= Ġsecond List . value ! ![ 0 ]. description . substring ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthree Str Ġ= Ġone List Ġ+ Ġsecond Str ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load (" https :// open weather map . org / img / w /" Ġ+ Ġsecond List . value ! ![ 0 ]. icon Ġ+ Ġ". png "). into ( icon Second ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Second . text Ġ= Ġthree Str ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Second . text Ġ= Ġsecond List . value ! ![ 0 ]. name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Second . text Ġ= Ġsecond List . value ! ![ 0 ]. temperature . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeels Like Second . text Ġ= Ġ" S ens aciÃ³n ĠtÃ© rm ica : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. fe els Like . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Max Second . text Ġ= Ġ" M Ãģ X IM AS : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. temp Max . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Min Second . text Ġ= Ġ" M Ãį NIM AS : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. temp Min . toString () Ġ+ Ġ" Â° C " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpressure Second . text Ġ= Ġ" PRE SI Ãĵ N : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. pressure . toString () Ġ+ Ġ" h PA " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhum idity Second . text Ġ= Ġ" HU MED AD : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. humidity . toString () Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Second . text Ġ= Ġ" VE LOC ID AD : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. speed Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġall Second . text Ġ= Ġ" N UB ES : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. all Ġ+ Ġ"% " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Second . text Ġ= Ġ" PA Ãį S : Ġ" Ġ+ Ġsecond List . value ! ![ 0 ]. country ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Api Open Weather ( name City : String , Ġorder City : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// api . open weather map . org / data / 2 . 5 / weather ? q =$ name City & lang =$ lang & units =$ units & appid =$ me API " ĊĠĠĠĠĠĠĠ Ġval Ġrequest Queue Ġ= ĠVol ley . new Request Queue ( require Context ()) ĊĠĠĠĠĠĠĠ Ġvar Ġicon : String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġdescription : String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġname : String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġtemperature : Int Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġvar Ġfeels Like : Int Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġvar Ġtemp Max : Int Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġvar Ġtemp Min : Int Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġvar Ġhum idity : Int Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġvar Ġpressure : Int Ġ= Ġ 6 ĊĠĠĠĠĠĠĠ Ġvar Ġspeed : String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġall : String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġcountry : String Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠJsonObject Request ( Request . Method . GET , Ġurl , Ġnull , Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Ġ= Ġresponse . opt JSONObject (" main ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwind Ġ= Ġresponse . opt JSONObject (" wind ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclouds Ġ= Ġresponse . opt JSONObject (" clouds ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsys Ġ= Ġresponse . opt JSONObject (" sys ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < Attributes C ities >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweather Ġ= Ġresponse . opt JSONArray (" weather ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġresponse . getString (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġweather . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġweather Ġ= Ġweather . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġweather . getString (" icon ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġweather . getString (" description ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemperature Ġ= Ġmain . getInt (" temp ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeels Like Ġ= Ġmain . getInt (" fe els _ like ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Max Ġ= Ġmain . getInt (" temp _ max ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Min Ġ= Ġmain . getInt (" temp _ min ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpressure Ġ= Ġmain . getInt (" pressure ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhum idity Ġ= Ġmain . getInt (" humidity ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Ġ= Ġwind . getString (" speed ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Ġ= Ġclouds . getString (" all ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcountry Ġ= Ġsys . getString (" country ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Attributes C ities ( icon , Ġname , Ġdescription , Ġtemperature , Ġfeels Like , Ġtemp Max , Ġtemp Min , Ġpressure , Ġhum idity , Ġspeed , Ġall , Ġcountry )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order City Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġone List . value Ġ= Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( order City Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond List . value Ġ= Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : JSONException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġrequest Queue . add ( request ) ĊĠĠĠ Ġ} Ċ }