package Ġch . r my . android . http _ shortcuts . script ing . actions . types Ċ Ċ import Ġandroidx . core . net . to Uri Ċ import Ġch . r my . android . framework . extensions . map If Ċ import Ġch . r my . android . http _ shortcuts . script ing . Action Alias Ċ import Ġch . r my . android . http _ shortcuts . script ing . actions . Action DTO Ċ Ċ class ĠPlay Sound ActionType Ġ: ĠBase ActionType () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠTYPE ĊĊĠĠĠ Ġoverride Ġfun Ġfrom DTO ( action DTO : ĠAction DTO ) Ġ= ĠPlay Sound Action ( ĊĠĠĠĠĠĠĠ Ġsound Uri Ġ= Ġnormalize ( action DTO . getString ( KEY _ SOUND _ URI )) ?. to Uri (), ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Alias () Ġ= ĠAction Alias ( ĊĠĠĠĠĠĠĠ Ġfunction Name Ġ= ĠFUNCTION _ NAME , ĊĠĠĠĠĠĠĠ Ġparameters Ġ= ĠlistOf ( KEY _ SOUND _ URI ), ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTYPE Ġ= Ġ" play _ sound " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFUNCTION _ NAME Ġ= Ġ" play Sound " ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ SOUND _ URI Ġ= Ġ" uri " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġnormalize ( uri String : ĠString ?): ĠString ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri String ?. map If (! uri String . contains (" :// ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCONTENT _ PREFIX Ġ+ Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCONTENT _ PREFIX Ġ= Ġ" content ://" ĊĠĠĠ Ġ} Ċ } Ċ