package Ġcom . example . sun ny weather kt . ui . fav our ite Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Base Adapter Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroidx . work . Data Ċ import Ġcom . example . sun ny weather kt . R Ċ import Ġcom . example . sun ny weather kt . Util . startActivity Ċ import Ġcom . example . sun ny weather kt . logic . Repository Ċ import Ġcom . example . sun ny weather kt . logic . model . Place Resp on sing Ċ import Ġcom . example . sun ny weather kt . logic . model . Real Time Response Ċ import Ġcom . example . sun ny weather kt . logic . model . get Sky Ċ import Ġcom . example . sun ny weather kt . ui . weather . Weather Activity Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . yan zh en j ie . recyclerview . Expand able Adapter Ċ import Ġcom . yan zh en j ie . recyclerview . Swipe RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . now .* Ċ Ċ class ĠF avour ite Adapter ( val Ġfragment : F avour ite Fragment , val Ġweather : Mutable Map < Place Resp on sing . Place , Real Time Response . Real Time >): RecyclerView . Adapter < F avour ite Adapter . Holder > (){ ĊĠĠĠ Ġlateinit Ġvar Ġlist : List < Place Resp on sing . Place > ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview = LayoutInflater . from ( parent . context ). inflate ( R . layout . fav our ite _ item , parent , false ) ĊĠĠĠĠĠĠĠ Ġreturn ĠH older ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠH older , Ġposition : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġlist Ġ= ArrayList < Place Resp on sing . Place >( weather . keys ) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĬĬ weather Ġ éĩĮ çļĦ Ġkeys Ġ éĥ½ æĭ¿ åĩºæĿ¥ ï¼Į æĶ¾ åħ¥ ä¸Ģä¸ª Array list Ġä¸Ń ĊĠĠĠĠĠĠĠ Ġval Ġname = list [ position ]. name ĊĠĠĠĠĠĠĠ Ġholder . place Name . text = name ĊĠĠĠĠĠĠĠ Ġholder . temperature Info . text = Ġweather [ list [ position ]] !!. temperature . toString ()+" Â° C " ĠĠĠĠĠĠĠĠĠ Ġ// éĢļè¿ĩ key Ġ å¾ĹåĪ° Ġvalue ï¼Į Ġ Ġ åĽłä¸º åľ¨ F avour ite Frag Ġ éĩĮéĿ¢ åĪ¤æĸŃ äºĨ weather Ġä¸į ä¸º null , Ġ æīĢä»¥ æķ ¢ ç¡¬ æ°Ķ çļĦ çĶ¨ Ġ!! ĊĠĠĠĠĠĠĠ Ġholder . sky Info . text = Ġweather [ list [ position ]] !!. sky con ĊĠĠĠĠĠĠĠ Ġholder . sky Icon . setImage Resource ( get Sky ( weather [ list [ position ]] !!. sky con ). icon ) ĊĊĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclick Position = holder . adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlng = list [ click Position ]. location . lng ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat = list [ click Position ]. location . lat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname = list [ click Position ]. name ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Weather Activity >( fragment . context !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" location _ lng ", lng ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" location _ lat ", lat ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" place _ name ", name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" place ", ĠGson (). toJson ( list [ click Position ])) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRepository . save Place ( list [ click Position ]) ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ²¡æľī çĶ¨ Ġview model Ġï¼Į èĢĮ çĽ´æİ¥ ä»»æĦı ä¸Ģä¸ª view model ĠçĶ¨ ĠRepository Ġ éĩĮ çļĦ åĩ½æķ° äºĨ ãĢĤ Ġ å¥½ ï¼Į åĿ ı ï¼Ł ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () = weather . size ĊĊĠĠĠ Ġinner Ġclass ĠH older ( view : View ): RecyclerView . ViewHolder ( view ){ ĊĠĠĠĠĠĠĠ Ġval Ġplace Name = view . findViewById ( R . id . place Info ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġsky Icon = view . findViewById ( R . id . sky Icon ) as ĠImageView ĊĠĠĠĠĠĠĠ Ġval Ġsky Info = view . findViewById ( R . id . sky Info ) as ĠTextView ĊĠĠĠĠĠĠĠ Ġval Ġtemperature Info = view . findViewById ( R . id . temperature Info ) as ĠTextView ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ