/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 9 ĠE ug ene ĠGl ush ank ov Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . net char . common . extensions Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . style . Clickable Span Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . net . to Uri Ċ import Ġandroidx . drawer layout . widget . Drawer Layout Ċ Ċ /** Ċ Ġ* ĠHel ps Ġto Ġset Ġclick able Ġpart Ġin Ġtext . Ċ Ġ* Ċ Ġ* ĠDon 't Ġforget Ġto Ġset Ġandroid : textColor Link ="@ color / link " Ġ( click Ġselector ) Ġand Ċ Ġ* Ġandroid : textColor Highlight ="@ color / window _ background " Ġ( background Ġcolor Ġwhile Ġclicks ) Ċ Ġ* Ġin Ġthe ĠTextView Ġwhere Ġyou Ġwill Ġuse Ġthis . Ċ Ġ*/ Ċ fun ĠSp ann able . with Clickable Span ( click able Part : ĠString , ĠonClick Listener : Ġ() Ġ-> ĠUnit ): ĠSp ann able Ġ{ ĊĠĠĠ Ġval Ġclick able Span Ġ= Ġobject Ġ: ĠClick able Span () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( widget : ĠView ) Ġ= ĠonClick Listener . invoke () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġclick able Part Start Ġ= ĠindexOf ( click able Part ) ĊĠĠĠ Ġset Span ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick able Span , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick able Part Start , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick able Part Start Ġ+ Ġclick able Part . length , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġthis Ċ } ĊĊ Ċ fun ĠString . to Web Uri (): ĠUri Ġ{ ĊĠĠĠ Ġreturn Ġ( if Ġ( startsWith (" http :// ") Ġ|| Ġstart sWith (" https :// ")) Ġthis Ġelse Ġ" https :// $ this "). to Uri () Ċ } Ċ Ċ inline Ġfun Ġconsume ( f : Ġ() Ġ-> ĠUnit ): ĠBoolean Ġ{ ĊĠĠĠ Ġf () ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ inline Ġfun ĠDraw er Layout . consume ( f : Ġ() Ġ-> ĠUnit ): ĠBoolean Ġ{ ĊĠĠĠ Ġf () ĊĠĠĠ Ġclose Draw ers () ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ inline Ġfun Ġ< T > ĠSequence < T >. sum By Long ( selector : Ġ( T ) Ġ-> ĠLong ): ĠLong Ġ{ ĊĠĠĠ Ġvar Ġsum Ġ= Ġ 0 L ĊĠĠĠ Ġfor Ġ( element Ġin Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsum Ġ+= Ġselector ( element ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsum Ċ } Ċ Ċ // inline Ġfun Ġ< re ified ĠC Ġ: ĠCollection < T >, Ġre ified ĠT Ġ: ĠAny > ĠM oshi . collection Adapter (): ĠJson Adapter < C > Ġ{ Ċ // ĠĠĠ Ġval Ġparame tri zed Type Ġ= ĠTypes . new Parameterized Type ( C :: class . java , ĠT :: class . java ) Ċ // ĠĠĠ Ġreturn Ġthis . adapter < C >( parametri zed Type ) Ċ //}