package Ġcom . example . gam ja . gam j aph oto app Ċ Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroid . os . Handler Ċ import Ġandroid . support . v 4 . content . Context Compat . startActivity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġkotlinx . android . synt hetic . main . gam ja _ card view . view .* Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . Buffered InputStream Ċ import Ġjava . io . IOException Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . Malformed URLException Ċ import Ġjava . net . URL Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ Ċ class ĠShort Info ( private Ġvar Ġc : ĠContext , Ġprivate Ġvar Ġresult : ĠString , Ġprivate Ġvar Ġmy GridView : ĠGrid View ) Ġ: ĠAsync Task < Void , ĠVoid , ĠBoolean >() Ġ{ ĊĊĊĠĠĠ Ġprivate Ġvar Ġpictures Ġ= ĠArrayList < Photo >() ĊĊĠĠĠ Ġoverride Ġfun Ġon Pre Execute () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pre Execute () ĊĊĠĠĠĠĠĠĠ ĠToast . makeText ( c , Ġ" ëį°ìĿ´íĦ° Ġê°Ģ ìł¸ ìĺ¤ ëĬĶ Ġì¤ĳ ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġvoid s : ĠVoid ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpar Sing () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Execute ( is Parsed : ĠBoolean ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( is Parsed ) ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( is Parsed !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy GridView . adapter Ġ= ĠMr Adapter ( c , Ġpictures ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( c , Ġ" ìłķ ë³´ ë¥¼ Ġë¶Ī ëŁ¬ ìĺ ¬ ĠìĪĺ ĠìĹĨ ìĬµëĭĪëĭ¤ .", ĠToast . LENGTH _ LONG ). show () ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġ Ġfun Ġpar Sing (): Boolean { ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult . replace (" json F lickr Api (", Ġ""); ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult . replace (" )", Ġ""); ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= ĠJSONObject ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphotos Ġ= ĠjsonObject . getJSONObject (" photos ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= Ġphotos . get JSONArray (" photo ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpictures . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 Ġuntil Ġjson Array . length ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone Photo Ġ= Ġjson Array . getJSONObject ( i ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġone Photo . getString (" title ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġone Photo . getString (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecret Ġ= Ġone Photo . getString (" secret ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver Ġ= Ġone Photo . getString (" server ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfarm Ġ= Ġone Photo . getString (" farm ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphoto Url : String Ġ= Ġ" http :// farm "+ Ġfarm Ġ+ ". static flickr . com /"+ Ġserver Ġ+ "/ "+ Ġid Ġ+ "_ "+ Ġsecret Ġ+ "_ t . jpg " ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠURL ( photoUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcon Ġ= Ġurl . open Connection () Ġas ĠHttp URLConnection ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . request Method Ġ= Ġ" GET " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . connect Timeout Ġ= Ġ 1 5 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . read Timeout Ġ= Ġ 1 5 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . do Input Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( con . response Code Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput StreamReader Ġ= ĠBuffered InputStream ( con . inputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap : Bitmap Ġ= ĠBitmap Factory . decode Stream ( input StreamReader ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput StreamReader . close () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone Picture Ġ= ĠPhoto ( bitmap Ġ, title , Ġid , Ġsecret , Ġserver , Ġfarm ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpictures . add ( one Picture ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠMal formed URLException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠIOException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠPhoto ( private Ġvar Ġbitmap : Bitmap ?, Ġprivate Ġvar Ġtitle : String , Ġprivate Ġvar Ġid : String , Ġprivate Ġvar Ġsecret : String , Ġprivate Ġvar Ġserver : String , Ġprivate Ġvar Ġfarm : String ){ ĊĠĠĠĠĠĠĠ Ġfun Ġget Bitmap (): Bitmap ? { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbitmap ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġget Title (): String { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtitle ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġget ID (): String { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġid ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġget Secret (): String { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsecret ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġget Server (): String { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġserver ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġget Farm (): String { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfarm ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMr Adapter ( private Ġvar Ġc : ĠContext , Ġprivate Ġvar Ġpictures : ArrayList < Photo >) Ġ: ĠBase Adapter () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpictures . size ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem ( pos : ĠInt ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpictures [ pos ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Id ( pos : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpos . to Long () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget View ( i : ĠInt , Ġview : ĠView ?, Ġview Group : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠconvertView Ġ= Ġview ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( convert View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView Ġ= ĠLayoutInflater . from ( c ). inflate ( R . layout . gam ja _ card view , Ġview Group , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Txt Ġ= ĠconvertView !!. photo Title Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Small Ġ= ĠconvertView !!. photo Small Ġas ĠImageView ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġone Picture Ġ= Ġthis . getItem ( i ) Ġas ĠPhoto ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Txt . text Ġ= Ġone Picture . getTitle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Small . setImage Bitmap ( one Picture . get Bitmap ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠconvertView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( c , one Picture . getID (), Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( c Ġ, ĠDetail Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" title ", Ġone Picture . getTitle ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" id ", Ġone Picture . getID ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" secret ", Ġone Picture . get Secret ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" server ", Ġone Picture . getServer ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" farm ", Ġone Picture . getF arm ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠconvertView ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }