package Ġcom . wh iz sid . subtitle adjust . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroid . widget . Filter Ċ import Ġandroid . widget . TextView Ċ import Ġcom . wh iz sid . subtitle adjust . R Ċ import Ġcom . wh iz sid . subtitle adjust . database . DB Open Helper Ċ import Ġcom . wh iz sid . subtitle adjust . database . Subtitle Model Ċ import Ġcom . wh iz sid . subtitle adjust . lib . Subtitle Ċ Ċ class ĠSub title Auto Suggest Adapter Ġ( context : ĠContext , Ġview ResourceId : ĠInt ) ĊĠĠĠ Ġ: Array Adapter < Subtitle >( context , view ResourceId ){ ĊĊĠĠĠ Ġvar Ġsuggestions : ĠMutable List < Subtitle > Ġ= Ġmutable ListOf () ĊĠĠĠ Ġprivate Ġvar Ġinflater : ĠLayoutInflater Ġ= Ġcontext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĊĊĠĠĠ Ġinner Ġclass ĠSub title Filter Ġ: ĠFilter () Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġperform Filtering ( constraint : ĠCharSequence ?): ĠFilter Results Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= ĠFilter Results () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( constraint != null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuggestions . clear () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Helper Ġ= ĠDB Open Helper ( context , null ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearched Ġ= Ġdb Helper . search ( Subtitle Model , constraint . toString (). toLowerCase (), 3 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearched . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuggestions . add ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults . values Ġ= Ġsuggestions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults . count Ġ= Ġsuggestions . count () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġpublish Results ( constraint : ĠCharSequence ?, Ġresults : ĠFilter Results ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( results ?. values != Ġnull && results . count > 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Invalid ated () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsubtitle Filter Ġ= ĠSub title Filter () ĊĊĠĠĠ Ġoverride Ġfun Ġget Filter (): ĠFilter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubtitle Filter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuggestions . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠSub title ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuggestions [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuggestions [ position ]. get Incremental Index (). to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġinflater . inflate ( R . layout . subtitle _ item , parent , false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontent TextView Ġ= Ġitem . findViewById < TextView >( R . id . sub Title Item Content ) ĊĠĠĠĠĠĠĠ Ġval Ġtime TextView Ġ= Ġitem . findViewById < TextView >( R . id . subtitle Item Time ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsubtitle Ġ= Ġsuggestions [ position ] ĊĊĠĠĠĠĠĠĠ Ġcontent TextView . text Ġ= Ġsubtitle . getContent () ĊĠĠĠĠĠĠĠ Ġtime TextView . text Ġ= Ġ"${ subtitle . get StartTime ()} Ġ- Ġ${ subtitle . get EndTime () }" ĊĊĠĠĠĠĠĠĠ Ġreturn Ġitem ĊĠĠĠ Ġ} Ċ }