package Ġio . case y . mus ik cube . remote . service . websocket . model . impl . remote Ċ Ċ import Ġio . case y . mus ik cube . remote . service . playback . impl . remote . Metadata Ċ import Ġio . case y . mus ik cube . remote . service . websocket . model . IT rack Ċ import Ġorg . json . JSONObject Ċ Ċ class ĠRemote Track ( val Ġjson : ĠJSONObject ) Ġ: ĠI Track Ġ{ ĊĠĠĠ Ġoverride Ġval Ġid : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Long ( Metadata . Track . ID , Ġ- 1 ) ĊĠĠĠ Ġoverride Ġval Ġexternal Id : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . EXTERNAL _ ID , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġuri : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . URI , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġtitle : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . TITLE , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġalbum : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . AL BU M , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġalbum Id : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Long ( Metadata . Track . AL BU M _ ID , Ġ- 1 ) ĊĠĠĠ Ġoverride Ġval Ġalbum Artist : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . AL BU M _ AR TI ST , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġalbum Artist Id : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Long ( Metadata . Track . AL BU M _ AR TI ST _ ID , Ġ- 1 ) ĊĠĠĠ Ġoverride Ġval Ġgenre : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . GEN RE , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġtrack Num : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Int ( Metadata . Track . TRACK _ NUM , Ġ 0 ) ĊĠĠĠ Ġoverride Ġval Ġgenre Id : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Long ( Metadata . Track . GEN RE _ ID , Ġ- 1 ) ĊĠĠĠ Ġoverride Ġval Ġartist : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt String ( Metadata . Track . AR TI ST , Ġ"") ĊĠĠĠ Ġoverride Ġval Ġartist Id : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Long ( Metadata . Track . AR TI ST _ ID , Ġ- 1 ) ĊĠĠĠ Ġoverride Ġval Ġthumbnail Id : ĠLong ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġjson . opt Long ( Metadata . Track . TH UMB NA IL _ ID , Ġ- 1 ) ĊĊĠĠĠ Ġoverride Ġfun Ġget CategoryId ( category Type : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Key Ġ= ĠC ATEG ORY _ NAME _ TO _ ID [ category Type ] ĊĠĠĠĠĠĠĠ Ġif Ġ( id Key Ġ!= Ġnull Ġ&& Ġid Key . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson . opt Long ( id Key , Ġ- 1 L ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 L ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoJson (): ĠJSONObject Ġ= ĠJSONObject ( json . toString ()) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠC ATEG ORY _ NAME _ TO _ ID : ĠMap < String , ĠString > Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetadata . Category . AL BU M _ AR TI ST Ġto ĠMetadata . Track . AL BU M _ AR TI ST _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetadata . Category . GEN RE Ġto ĠMetadata . Track . GEN RE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetadata . Category . AR TI ST Ġto ĠMetadata . Track . AR TI ST _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetadata . Category . AL BU M Ġto ĠMetadata . Track . AL BU M _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetadata . Category . PLAY LIST S Ġto ĠMetadata . Track . AL BU M _ ID ) ĊĠĠĠ Ġ} Ċ } Ċ