package Ġcom . l igh train . android . util Ċ Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . l igh train . android . model . Result Response Ċ import Ġcom . l igh train . android . model . Up Load Response Ċ import Ġcom . l igh train . android . model . Up Load Response Exception Ċ import Ġcom . l igh train . android . model . Video Bean Ċ import Ġcom . l igh train . android . model . weather . City Ċ import Ġcom . l igh train . android . model . weather . Count y Ċ import Ġcom . l igh train . android . model . weather . Province Ċ import Ġik id ou . reflect . Type Builder Ċ import Ġik id ou . reflect . Type Token Ċ import Ġorg . json . JSONArray Ċ Ċ object ĠJson Util Ġ{ ĊĠĠĠ Ġprivate Ġval Ġgson Ġ= ĠGson () ĊĊĠĠĠ Ġ// è§£æŀĲ Object ç±»åŀĭçļĦ è¿ĶåĽŀ æķ°æį® ĊĠĠĠ Ġfun Ġ< T > getResult Response ( data : String , clazz : Class < T >): Result Response < T >{ ĊĠĠĠĠĠĠĠ Ġval Ġtype = Type Builder . newInstance ( Result Response :: class . java )// Type Builder æĿ¥ è§£åĨ³ java ä¸Ń æ³Ľ åŀĭ æĵ ¦ éĻ¤ éĹ®é¢ĺ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Type Param ( clazz ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( data , Ġtype ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// è§£æŀĲ Array ç±»åŀĭçļĦ è¿ĶåĽŀ æķ°æį® ĊĠĠĠ Ġfun Ġ< T > get Array Result Response ( data : String , clazz : Class < T >): Result Response < List < T >> { ĊĠĠĠĠĠĠĠ Ġval Ġtype = Type Builder . newInstance ( Result Response :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. begin SubType ( List :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Type Param ( clazz ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end SubType () Ġ// ç»ĵæĿŁ ĠList < clazz > Ġ éĥ¨åĪĨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ// object Ġ: ĠType Token < List < T >>() {}. type ĊĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( data , Ġtype ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// è§£æŀĲ åľ°åĿĢ ( çľģ ãĢģ å¸Ĥ ãĢģ åĮº ) ĊĠĠĠ Ġfun Ġget Province Response ( data : ĠString ): List < Province >{ ĊĠĠĠĠĠĠĠ Ġval Ġlist = ArrayList < Province >() ĊĠĠĠĠĠĠĠ Ġval Ġall Pro vin ces = JSONArray ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġnum = Ġ 0 Ġuntil Ġall Pro vin ces . length () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġnum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovince Object = all Pro vin ces . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Province ( province Object . getString (" name "), province Object . getInt (" id "))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget City Response ( data : ĠString , province Id : Int ): List < City >{ ĊĠĠĠĠĠĠĠ Ġval Ġlist = ArrayList < City >() ĊĠĠĠĠĠĠĠ Ġval Ġall Pro vin ces = JSONArray ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġnum = Ġ 0 Ġuntil Ġall Pro vin ces . length () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġnum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovince Object = all Pro vin ces . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( City ( province Object . getString (" name "), province Object . getInt (" id "), province Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Count y Response ( data : ĠString , city Id : Int ): List < Count y >{ ĊĠĠĠĠĠĠĠ Ġval Ġlist = ArrayList < Count y >() ĊĠĠĠĠĠĠĠ Ġval Ġall Pro vin ces = JSONArray ( data ) ĊĠĠĠĠĠĠĠ Ġval Ġnum = Ġ 0 Ġuntil Ġall Pro vin ces . length () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġnum ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovince Object = all Pro vin ces . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Count y ( province Object . getString (" name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovince Object . getString (" weather _ id "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// è§£æŀĲ Upload ï¼Ī åıĪ æĭ į äºĳ ï¼ī è¿ĶåĽŀ æŃ£ç¡® æķ°æį® ĊĠĠĠ Ġfun Ġget Upload Response ( data : ĠString ): Up Load Response { ĊĠĠĠĠĠĠĠ Ġval Ġtype = Type Builder . newInstance ( Up Load Response :: class . java ). build () ĊĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( data , Ġtype ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Upload Response Exception ( msg : String ): Up Load Response Exception { ĊĠĠĠĠĠĠĠ Ġval Ġtype = Type Builder . newInstance ( Up Load Response Exception :: class . java ). build () ĊĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( msg , Ġtype ) ĊĠĠĠ Ġ} Ċ // ĠĠĠ Ġ// è§£æŀĲ åıĪ æĭ į äºĳ çŁŃ ä¿¡ éªĮè¯ģ Ċ // ĠĠĠ Ġfun Ġget Upload Message Response ( data : ĠString ): String { Ċ // ĠĠĠĠĠĠĠ Ġval Ġtype = Type Builder . newInstance ( Up Load Response :: class . java ). build () Ċ // ĠĠĠĠĠĠĠ Ġval Ġlist = ArrayList < Count y >() Ċ // ĠĠĠĠĠĠĠ Ġval Ġall Pro vin ces = JSONArray ( data ) Ċ // ĠĠĠĠĠĠĠ Ġval Ġnum = Ġ 0 Ġuntil Ġall Pro vin ces . length () Ċ // ĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġnum ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovince Object = all Pro vin ces . getJSONObject ( i ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Count y ( province Object . getString (" name "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovince Object . getString (" weather _ id "), Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcity Id )) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( data , Ġtype ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġfun Ġget Upload Message Response Exception ( msg : String ): Up Load Response Exception { Ċ // ĠĠĠĠĠĠĠ Ġval Ġtype = Type Builder . newInstance ( Up Load Response Exception :: class . java ). build () Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( msg , Ġtype ) Ċ // ĠĠĠ Ġ} Ċ }