package Ġk ib aan . android . util Ċ Ċ import Ġk ib aan . android . extension . url Encoded Ċ import Ġk ib aan . android . ios .* Ċ import Ġk ib aan . android . value object . KeyValue Ċ Ċ /** Ċ Ġ* Ġkey = value ãģ® & ãģ¤ ãģª ãģ İ å½¢å¼ı ãģ® ãĤ¯ ãĤ¨ ãĥª Ċ Ġ*/ Ċ open Ġclass ĠURL Query Ġ{ ĊĊĠĠĠ Ġopen Ġval Ġstring Value : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġkey Values . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġitem Ġ= Ġit . key . url Encoded ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . value ?. url Encoded ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ+= Ġ" =${ value }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ĊĠĠĠĠĠĠĠ Ġ}. joined ( separator Ġ= Ġ"& ") ĊĊĠĠĠ Ġvar Ġkey Values : ĠMutable List < KeyValue > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġconstructor () ĊĊĠĠĠ Ġconstructor ( string : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Ġ= Ġstring ?. trim () Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġkey Values Ġ= Ġstring ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. components ( separated By Ġ= Ġ"& ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpairs Ġ= Ġit . components ( separated By Ġ= Ġ"=" ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġpairs [ 0 ]. re moving Percent Encoding ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġif Ġ( 1 Ġ< Ġpairs . size ) Ġpairs [ 1 ]. re moving Percent Encoding Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKey Value ( key Ġ= Ġkey , Ġvalue Ġ= Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( var arg Ġelements : ĠPair < String , ĠString ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . key Values Ġ= Ġelements . map Ġ{ ĠKey Value ( it . first , Ġit . second ) Ġ}. to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( key Values : ĠList < KeyValue >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . key Values Ġ= Ġkey Values . to Mutable List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( key : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġkey Values . first OrNull Ġ{ Ġit . key Ġ== Ġkey Ġ} ?. value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġset ( key : ĠString , Ġvalue : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Value Ġ= ĠKey Value ( key Ġ= Ġkey , Ġvalue Ġ= Ġvalue ) ĊĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġkey Values . index OrNull Ġ{ Ġit . key Ġ== Ġkey Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( offset Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Values [ offset ] Ġ= Ġkey Value ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Values . append ( key Value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġstring Value Custom Encoded ( encoder : Ġ( String ) Ġ-> ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġkey Values . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġitem Ġ= Ġencoder ( it . key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġit . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ+= Ġ" =${ encoder ( value )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ĊĠĠĠĠĠĠĠ Ġ}. joined ( separator Ġ= Ġ"& ") ĊĠĠĠ Ġ} Ċ Ċ } Ċ