' Android SL4A Interface
'
' ScriptBasic Open Source Project
'
' Contributors:
'   John Spikowski (JRS)
'
MODULE DVM

OPEN "localhost:9999" FOR SOCKET AS #1

id = 1

FUNCTION JSON2SB(a)
  LOCAL r,t,x
  LINE INPUT #1, r
  r = CHOMP(r)
  r = MID(r,2)
  r = LEFT(r,LEN(r) - 1)
  r = REPLACE(r, "\"", "")
  SPLITA r BY "," TO t
  FOR x = 0 to UBOUND(t)
    a{LEFT(t[x],INSTR(t[x],":")-1)} = MID(t[x],INSTR(t[x],":")+1)
  NEXT
  IF a{"error"} <> "null" THEN
    JSON2SB = undef
  ELSE
    JSON2SB = a{"result"}
  END IF
  id += 1
END FUNCTION


' *************
' PhoneFacade *
' *************

FUNCTION getPhoneType
  PRINT #1,"""{"id":""" & id & ""","method":"getPhoneType","params":[]}\n"""
  getPhoneType = JSON2SB(response)
END FUNCTION


' ****************
' SettingsFacade *
' ****************

FUNCTION getScreenBrightness
  PRINT #1,"""{"id":""" & id & ""","method":"getScreenBrightness","params":[]}\n"""
  getScreenBrightness = JSON2SB(response)
END FUNCTION

FUNCTION checkAirplaneMode
  PRINT #1,"""{"id":""" & id & ""","method":"checkAirplaneMode","params":[]}\n"""
  checkAirplaneMode = JSON2SB(response)
END FUNCTION

FUNCTION checkRingerSilentMode
  PRINT #1,"""{"id":""" & id & ""","method":"checkRingerSilentMode","params":[]}\n"""
  checkRingerSilentMode = JSON2SB(response)
END FUNCTION

FUNCTION checkScreenOn
  PRINT #1,"""{"id":""" & id & ""","method":"checkScreenOn","params":[]}\n"""
  checkScreenOn = JSON2SB(response)
END FUNCTION

FUNCTION getMaxMediaVolume
  PRINT #1,"""{"id":""" & id & ""","method":"getMaxMediaVolume","params":[]}\n"""
  getMaxMediaVolume = JSON2SB(response)
END FUNCTION

FUNCTION getMaxRingerVolume
  PRINT #1,"""{"id":""" & id & ""","method":"getMaxRingerVolume","params":[]}\n"""
  getMaxRingerVolume = JSON2SB(response)
END FUNCTION

FUNCTION getMediaVolume
  PRINT #1,"""{"id":""" & id & ""","method":"getMediaVolume","params":[]}\n"""
  getMediaVolume = JSON2SB(response)
END FUNCTION

FUNCTION getRingerVolume
  PRINT #1,"""{"id":""" & id & ""","method":"getRingerVolume","params":[]}\n"""
  getRingerVolume = JSON2SB(response)
END FUNCTION

FUNCTION getScreenTimeout
  PRINT #1,"""{"id":""" & id & ""","method":"getScreenTimeout","params":[]}\n"""
  getScreenTimeout = JSON2SB(response)
END FUNCTION

FUNCTION getVibrateMode(ringer)
  LOCAL source
  IF ringer = undef THEN
    source = 0
  ELSE IF ringer = TRUE THEN
    source = 1
  ELSE
    source = 0
  END IF
  PRINT #1,"""{"id":""" & id & ""","method":"getVibrateMode","params":[""" & source & """]}\n"""
  getVibrateMode = JSON2SB(response)
END FUNCTION

SUB notify(title,msg)
  PRINT #1,"""{"id":1,"method":"notify","params":[\"""" & title & """\",\"""" & msg & """\"]}\n"""
END SUB
 
END MODULE

