package Ġcom . blue hub . fast mixer . common . repositories Ċ Ċ import Ġandroid . media . Audio DeviceInfo Ċ import Ġandroid . media . Audio Manager Ċ import Ġandroid . os . Build Ċ import Ġandroidx . annotation . Requires Api Ċ Ċ class ĠAudio Repository Ġ{ ĊĠĠĠ Ġvar Ġaudio Manager : ĠAudio Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġis Head phone Connected (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġusb Head setType Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Audio DeviceInfo . TYPE _ USB _ HEAD SET ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġaudio Manager ?. let Ġ{ Ġmanager Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevices Ġ= Ġmanager . get Devices ( Audio Manager . GET _ DEVICES _ OUTPUT S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Types Ġ= ĠarrayOf ( Audio DeviceInfo . TYPE _ WI RED _ HEAD SET , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAudio DeviceInfo . TYPE _ WI RED _ HEAD PH ONES ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). plus ( usb Head setType ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevices . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġdevice Types Ġ-> Ġreturn @ is Head phone Connected Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Bluetooth Head set Connected (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġaudio Manager ?. let Ġ{ Ġmanager Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevices Ġ= Ġmanager . get Devices ( Audio Manager . GET _ DEVICES _ OUTPUT S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Types Ġ= ĠarrayOf ( Audio DeviceInfo . TYPE _ BL U ETO OTH _ A 2 DP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAudio DeviceInfo . TYPE _ BL U ETO OTH _ SCO ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevices . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġdevice Types Ġ-> Ġreturn @ is Bluetooth Head set Connected Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }