package Ġcom . man zo . s lang . extensions Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġandroid . text . Html Ċ import Ġandroid . text . Sp anned Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroid . util . Log Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġorg . json . JSON Tok ener Ċ import Ġjava . io . Unsupported EncodingException Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠUsed Ġin Ġ[ String . find MAC ] Ċ Ġ*/ Ċ const Ġval ĠREG EX _ MAC _ ADDRESS Ġ= Ġ" ([ \\ da - fA - f ]{ 2 } [:- ]){ 5 }[ \\ da - fA - f ]{ 2 }" ĊĊ Ċ /** Ċ Ġ* ĠAltern ative Ġconstructor Ġfor Ġ[ String . replace ] Ċ Ġ*/ Ċ fun ĠString . replace ( var arg Ġtargets : ĠString , Ġreplacement : ĠString , Ġignore Case : ĠBoolean Ġ= Ġfalse ) Ġ= ĊĠĠĠ Ġreplace ( targets . toList (), Ġreplacement , Ġignore Case ) ĊĊ Ċ /** Ċ Ġ* ĠReplace Ġall Ġthe Ġtargets Ġwith Ġthe Ġprovided Ġreplacement Ċ Ġ*/ Ċ fun ĠString . replace ( targets : ĠList < String >, Ġreplacement : ĠString , Ġignore Case : ĠBoolean Ġ= Ġfalse ): ĠString Ġ{ ĊĠĠĠ Ġvar Ġeval Ġ= Ġthis ĊĠĠĠ Ġfor Ġ( v Ġin Ġtargets ) Ġeval Ġ= Ġeval . replace ( v , Ġreplacement , Ġignore Case ) ĊĠĠĠ Ġreturn Ġeval Ċ } Ċ Ċ /** Ċ Ġ* ĠRemove Ġtargets Ġfrom Ġthe Ġstring Ċ Ġ*/ Ċ fun ĠString . remove ( var arg Ġtargets : ĠString , Ġignore Case : ĠBoolean Ġ= Ġfalse ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġreplace ( targets . toList (), Ġ"", Ġignore Case ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRemove Ġtarget Ġregex Ġmatches Ġfrom Ġthe Ġstring Ċ Ġ*/ Ċ fun ĠString . remove ( target : ĠRegex ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġreplace ( target , Ġ"") Ċ } Ċ Ċ /** Ċ Ġ* Check Ġif Ġstring Ġcontains Ġone Ġor Ġmore Ġof Ġthe Ġqueries . Ċ Ġ*@ param Ġmust Contain All Ġif Ġtrue , Ġcheck Ġif Ġcontains ĠALL Ġthe Ġqueries . Ċ Ġ*/ Ċ fun ĠString . contains ( var arg Ġqueries : ĠString , Ġignore Case : ĠBoolean Ġ= Ġfalse , Ġmust Contain All : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( must Contain All ) Ġ{ ĊĠĠĠĠĠĠĠ Ġqueries . forEach Ġ{ Ġquery Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontains ( query Ġas ĠCharSequence , Ġignore Case ). take If Ġ{ Ġit Ġ} Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Any Of ( queries . toList (), Ġignore Case Ġ= Ġignore Case ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠEncode ĠString Ġto Ġbase 6 4 Ċ Ġ*/ Ċ fun ĠString . to Base 6 4 (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġto ByteArray ( charset (" UTF - 8 ")). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBase 6 4 . encode ToString ( this , ĠBase 6 4 . NO _ WRAP ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe 1 . log Error () ĊĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠDecode ĠString Ġfrom Ġbase 6 4 Ċ Ġ*/ Ċ fun ĠString . from Base 6 4 (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠString ( Base 6 4 . decode ( this , ĠBase 6 4 . DEFAULT )) ĊĠĠĠ Ġ} Ġcatch Ġ( e 1 : ĠUnsupported EncodingException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe 1 . log Error () ĊĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠExtension Ġfunction Ġfor Ġneg ating Ġis Null Or Blank Ċ Ġ*/ Ċ fun ĠString ?. isNotNull Or Blank () Ġ= Ġ! isNull Or Blank () Ċ Ċ /** Ċ Ġ* ĠExtension Ġfunction Ġfor Ġneg ating Ġis Null Or Blank Ċ Ġ*/ Ċ fun ĠCharSequence ?. isNotNull Or Blank () Ġ= Ġ! isNull Or Blank () Ċ Ċ /** Ċ Ġ* ĠWrite Ġstring Ġto Ġa Ġtarget Ġfile . ĠCreates Ġthe Ġfile Ġif Ġneeded . Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ param Ġcontext ĠContext Ċ Ġ* Ġ@ param Ġfilename ĠString Ċ Ġ* Ġ@ param Ġappend ĠBoolean Ċ Ġ* Ġ@ return ĠFile Ċ Ġ*/ Ċ fun ĠString . writeTo Internal File ( context : ĠContext , Ġfilename : ĠString , Ġappend : ĠBoolean Ġ= Ġfalse ) Ġ= ĊĠĠĠ Ġcontext . get Internal File ( filename ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( append ) Ġappend Text ( this @ writeTo Internal File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġwrite Text ( this @ writeTo Internal File ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊ Ċ /** Ċ Ġ* ĠExtension Ġmethod Ġfor ĠString Ġtypes Ġfor Ġcapital izing Ġfirst Ġletter Ġin Ġevery Ġword Ċ Ġ*/ Ċ fun ĠString . capitalize Words (): ĠString Ġ{ ĊĠĠĠ Ġvar Ġoutput Ġ= Ġ"" ĊĊĠĠĠ Ġto LowerCase ( Locale . getDefault ()). split (" Ġ"). to Mutable List (). forEach Ġ{ Ġword Ġ-> ĊĠĠĠĠĠĠĠ Ġoutput Ġ+= Ġif Ġ( output Ġ== Ġ"") Ġword . capitalize () Ġelse Ġ" Ġ" Ġ+ Ġword . capitalize () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġoutput Ċ } ĊĊ Ċ /** Ċ Ġ* ĠTr unc ates Ġthe Ġstring Ġto Ġthe Ġspecified Ġlength Ġnumber Ġof Ġcharacters Ċ Ġ*/ Ċ fun ĠString . truncate To ( len : ĠInt ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( length Ġ> Ġlen ) Ġsubstring ( len ) Ġ+ Ġ" âĢ¦ " ĊĠĠĠ Ġelse Ġthis Ċ } ĊĊ Ċ /** Ċ Ġ* ĠPretty Ġprints Ġa Ġprovided ĠJson Ġstring . ĠThrows Ġexception Ġif Ġstring Ġis Ġnot Ġcorrect ĠJson . Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ param Ġindent Spaces ĠInt Ċ Ġ* Ġ@ return ĠString Ċ Ġ*/ Ċ fun ĠString . json Pretty Print ( indent Spaces : ĠInt Ġ= Ġ 2 ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠJSON Tok ener ( this ). next Value (). let Ġ{ Ġtoken Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( token ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJSONObject Ġ-> ĠJSONObject ( this ). toString ( indent Spaces ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠJSONArray ( this ). toString ( indent Spaces ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġe . log Error () ĊĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġfirst Ġmac Ġaddress Ġin Ġthe Ġstring , Ġor Ġempty . Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ return ĠString Ċ Ġ*/ Ċ fun ĠString . find MAC () Ġ= ĠREG EX _ MAC _ ADDRESS . to Regex (). find ( this )?. value Ġ?: Ġ"" Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġfirst Ġmac Ġaddress Ġin Ġthe Ġstring , Ġor Ġnull . Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ return ĠString Ċ Ġ*/ Ċ fun ĠString . find MAC OrNull () Ġ= ĠREG EX _ MAC _ ADDRESS . to Regex (). find ( this )?. value ĊĊ Ċ /** Ċ Ġ* ĠLogs Ġthe Ġstring Ġas Ġexception . Ċ Ġ* Ġ@ receiver ĠException Ċ Ġ*/ Ċ fun ĠString . log Error ( tag : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠ ĠLog . e ( tag , Ġthis ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġdisplay able Ġstyled Ġtext Ġfrom Ġthe Ġprovided ĠHTML Ġstring Ċ Ġ* Ġ@ receiver ĠString Ċ Ġ* Ġ@ return ĠSp anned Ċ Ġ*/ Ċ @ SuppressWarnings (" deprecation ") Ċ fun ĠString . to Html Sp anned (): ĠSp anned Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠ ĠHtml . from Html ( this , ĠHtml . FROM _ HTML _ MODE _ LEG ACY ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠHtml . from Html ( this ) ĊĠĠĠ Ġ} Ċ } Ċ