package Ġorg . opp ia . android . util . parser Ċ Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . style . Clickable Span Ċ import Ġandroid . view . View Ċ import Ġorg . opp ia . android . util . logging . Console Logger Ċ import Ġorg . xml . sax . Attributes Ċ Ċ /** ĠThe Ġcustom Ġtag Ġcorresponding Ġto Ġ[ Concept Card Tag Handler ]. Ġ*/ Ċ const Ġval ĠCUSTOM _ CONCEPT _ CARD _ TAG Ġ= Ġ" opp ia - non interactive - skill review " Ċ Ċ // Ġhttps :// mo ham med l akk ad sh aw . com / blog / handling - custom - tags - in - android - using - html - tag handler . html / Ċ class ĠConcept Card Tag Handler ( ĊĠ Ġprivate Ġval Ġlistener : ĠConcept Card Link ClickListener , ĊĠ Ġprivate Ġval Ġconsole Logger : ĠConsole Logger Ċ ) Ġ: ĠCustom Html Content Handler . Custom Tag Handler Ġ{ ĊĠ Ġoverride Ġfun Ġhandle Tag ( ĊĠĠĠ Ġattributes : ĠAttributes , ĊĠĠĠ Ġopen Index : ĠInt , ĊĠĠĠ Ġclose Index : ĠInt , ĊĠĠĠ Ġoutput : ĠEdit able , ĊĠĠĠ Ġimage Retriever : ĠCustom Html Content Handler . Image Retriever ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġ// ĠReplace Ġthe Ġcustom Ġtag Ġwith Ġa Ġclick able Ġpiece Ġof Ġtext Ġbased Ġon Ġthe Ġtag 's Ġcustom izations . ĊĠĠĠ Ġval Ġskill Id Ġ= Ġattributes . get Json StringValue (" skill _ id - with - value ") ĊĠĠĠ Ġval Ġtext Ġ= Ġattributes . get Json StringValue (" text - with - value ") ĊĠĠĠ Ġif Ġ( skill Id Ġ!= Ġnull Ġ&& Ġtext Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġsp ann able Builder Ġ= ĠSp ann able StringBuilder ( text ) ĊĠĠĠĠĠ Ġsp ann able Builder . set Span ( ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠClick able Span () Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Concept Card Link Clicked ( view , Ġskill Id ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġ/* Ġstart = Ġ*/ Ġ 0 , Ġ/* Ġend = Ġ*/ Ġtext . length , ĠSp ann able . SPAN _ INCL USIVE _ EXCL USIVE ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġoutput . replace ( open Index , Ġclose Index , Ġsp ann able Builder ) ĊĠĠĠ Ġ} Ġelse Ġconsole Logger . e (" Concept Card Tag Handler ", Ġ" Failed Ġto Ġparse Ġconcept Ġcard Ġtag ") ĊĠ Ġ} ĊĊĠ Ġ/** ĠListener Ġcalled Ġwhen Ġconcept Ġcard Ġlinks Ġare Ġclicked . Ġ*/ ĊĠ Ġinterface ĠConcept Card Link ClickListener Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġa Ġconcept Ġcard Ġlink Ġis Ġcalled Ġin Ġthe Ġspecified Ġview Ġcorresponding Ġto Ġthe ĊĠĠĠĠ Ġ* Ġspecified Ġskill ĠID . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġon Concept Card Link Clicked ( view : ĠView , Ġskill Id : ĠString ) ĊĠ Ġ} Ċ } Ċ