All JScheme Sample Scripts

HelloWorld

(.println System.out$ "Hello, world!")
(exit)

CopySample

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(define text "")
(set! text (string-append text "(import \"com.googlecode.rpc.*\")\n"))
(set! text (string-append text "(define droid (com.googlecode.rpc.Android.))\n"))
(set! text (string-append text "(.call droid \"makeToast\" \"Toast using JScheme\")\n"))
(set! text (string-append text "(.call droid \"vibrate\")\n"))
(set! text (string-append text "(.call droid \"notify\" \"Notify using JScheme\" \"Message\")\n"))
(set! text (string-append text ";line comment\n"))
(set! text (string-append text "(display \"using JScheme display\")\n"))
(set! text (string-append text "(newline)\n"))
(set! text (string-append text "(.println System.out$ \"using JScheme println\")\n"))
(set! text (string-append text "(exit)\n"))
(.call droid "dialogGetInput" "Sample" "using JScheme" text)
(define response (.call droid "dialogGetResponse"))
(define result (.get response "result"))
(if (.equals (.get result "which") "positive")
  (begin
    (.call droid "setClipboard" (.get result "value"))
    (.call droid "makeToast" (.get result "value"))
  )
  (.call droid "makeToast" "Copy canceled")
)
(exit)

DatePicker

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "makeToast" "Input your birthday")
(define now (Calendar.getInstance))
(define year (.get now (.YEAR$ now)))
(define month (+ (.get now (.MONTH$ now)) 1))
(define day (.get now (.DAY_OF_MONTH$ now)))
(.call droid "dialogCreateDatePicker" year month day)
(.call droid "dialogShow")
(define response (.get (.call droid "dialogGetResponse") "result"))
(.call droid "dialogDismiss")
(define age (- year (.get response "year")))
(if (or (< month (.get response "month")) (and (= month (.get response "month")) (< day (.get response "day"))))
 (set! age (- age 1))
)
(.call droid "dialogCreateAlert" "Dialog" (string-append "Age:" age))
(.call droid "dialogSetPositiveButtonText" "OK")
(.call droid "dialogShow")
(.call droid "dialogGetResponse")
(.call droid "dialogDismiss")
(exit)

Dialog

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "dialogCreateAlert" "Dialog" "with JScheme")
(.call droid "dialogSetPositiveButtonText" "Yes")
(.call droid "dialogSetNegativeButtonText" "No")
(.call droid "dialogSetNeutralButtonText" "Cancel")
(.call droid "dialogShow")
(define response (.call droid "dialogGetResponse"))
(define result (.get (.get response "result") "which") )
(.call droid "dialogDismiss")
(.call droid "makeToast" result)
(exit)

DualToneMultiFrequency

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(define numbers (vector 
  "3" "2" "1233" "3" "22" "2" "39" "9" "3" "2" "1233" "3" "22" "3" "2" "1"
))
(define durations (vector 
  384 128 256 512 256 512 256 512 384 128 256 512 256 384 128 1024
))

(define gTone (lambda (number duration)
    (.call droid "generateDtmfTones" number duration)
))

(let loop ((i 0))
  (if (> (vector-length numbers) i)
    (begin
      (.println System.out$ (vector-ref numbers i))
      (gTone (vector-ref numbers i) (vector-ref durations i))
      (loop (+ i 1))
    )
  )
)
(exit)

GetInput

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "dialogGetInput" "dialogGetInput" "using JScheme")
(define response (.call droid "dialogGetResponse"))
(define result (.get response "result"))
(if (.equals (.get result "which") "positive")
  (.call droid "notify" "dialogGetInput using JScheme" (.get result "value"))
  (.call droid "makeToast" 
    (string-append "dialogGetInput using JScheme:" (.get result "which"))
  )
)
(exit)

HorizontalProgress

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))

(define sleep (lambda (msec)
  (set! msec (+ msec (.getTime (java.util.Date.))))
  (let loop ()
    (if (> msec (.getTime (java.util.Date.)))
      (loop)
    )
  )
))

(.call droid "dialogCreateHorizontalProgress" "Horizontal" "using JScheme")
(.call droid "dialogShow")

(set! value 0)
(let loop ()
  (begin
    (set! value (+ value 1))
    (if (> value 100)
      ()
      (begin
        (.call droid "dialogSetCurrentProgress" value)
        (sleep 10)
        (loop)
      )
    )
  )
)

(.call droid "dialogDismiss")
(exit)

LaunchBrowser

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.android.browser.BrowserActivity")
(exit)

LaunchCalculator

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.android.calculator2.Calculator")
(exit)

LaunchCalendar

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.android.calendar.LaunchActivity")
(exit)

LaunchGallery

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.cooliris.media.Gallery")
(exit)

LaunchMusic

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.android.music.MediaPlaybackActivityStarter")
(exit)

LaunchSetting

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.android.settings.Settings")
(exit)

LaunchSoundRecorder

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "launch" "com.android.soundrecorder.SoundRecorder")
(exit)

MediaVolume

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(define vol (.get (.call droid "getMediaVolume") "result"))
(define maxvol (.get (.call droid "getMaxMediaVolume") "result"))
(.call droid "dialogCreateSeekBar" vol maxvol "Media volume" "")
(.call droid "dialogSetPositiveButtonText" "OK")
(.call droid "dialogSetNegativeButtonText" "Cancel")
(.call droid "dialogShow")
(define response (.call droid "dialogGetResponse"))
(define result (.get response "result"))
(.call droid "dialogDismiss")
(if (.equals (.get result "which") "positive")
  ( begin
    (.call droid "setMediaVolume" (.get result "progress"))
    (define vol (.get (.call droid "getMediaVolume") "result"))
    (.call droid "makeToast" (string-append "Volume:" vol))
  )
  (.call droid "makeToast" "Cancel pressed")
)
(exit)

Notify

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "notify" "Notify using JScheme" "Message")
(exit)

OptionsMenu

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.println System.out$ "Press Menu Button")
(.call droid "addOptionsMenuItem" "From JScheme" "menu" 1 "ic_menu_info_details")
(.call droid "addOptionsMenuItem" "Exit JScheme" "menu" 2 "ic_menu_close_clear_cancel")
(let loop ()
  (begin
    (define event (.call droid "eventWaitFor" "menu"))
    (if (= (.get (.get event "result") "data") 1)
        (.call droid "makeToast" "Selected Add Menu")
    )
    (if (= (.get (.get event "result") "data") 2)
      ()
      (loop)
    )
  )
)

(.call droid "clearOptionsMenu")
(define key "com.googlecode.android_scripting.extra.SCRIPT_PATH")
(define intent (.call droid "getIntent"))
(define scriptname (.get (.get (.get intent "result") "extras") key))
(set! text (string-append scriptname " is done"))
(.call droid "makeToast" text)
(exit)

PackageCui

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(define pack (.get (.call droid "getRunningPackages") "result"))

(let loop ((i 0))
  (if (< i (.length pack))
    (begin
      (.println System.out$ 
        (string-append 
          (string-append 
            (string-append 
              (string-append (+ i 1) 
              ".") 
            (.get pack i))
          "/ver.")
        (.get (.call droid "getPackageVersion" (.get pack i)) "result"))
      )
      (loop (+ i 1))
    )
  )
)
(exit)

PhoneCall

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "phoneCallNumber" "117")
(exit)

QR

(import "com.googlecode.rpc.*")
(import "org.json.*")
(define droid (com.googlecode.rpc.Android.))
(define action "com.google.zxing.client.android.ENCODE")
(define extras (JSONObject.))
(.put extras "ENCODE_TYPE" "TEXT_TYPE")
(.put extras "ENCODE_DATA" "JScheme")
(define intent (.get (.call droid "makeIntent" action null null extras) "result"))
(.call droid "startActivityIntent" intent)
(exit)

RecognizeSpeech

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(define text (.get (.call droid "recognizeSpeech") "result"))
(.call droid "makeToast" text)
(.call droid "notify" "Recognize Speech using JScheme" text)
(.println System.out$ text)
(exit)

Scancode

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "scanBarcode")
(define clip (.call droid "getClipboard"))
(define text (.get clip "result"))
(.call droid "makeToast" text)
(exit)

Search

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "search" "JScheme")
(exit)

SendEmail

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "sendEmail" "sl4@email.fake" "sendEmail" "using JScheme")
(exit)

ShowFilename

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(define key "com.googlecode.android_scripting.extra.SCRIPT_PATH")
(define intent (.call droid "getIntent"))
(.call droid "makeToast" (.get (.get (.get intent "result") "extras") key))
(exit)

ShowThis

(import "com.googlecode.rpc.*")
(import "java.io.*")
(define droid (com.googlecode.rpc.Android.))

(define load_text (lambda (name)
  (set! size 1024)
  (set! text "")
  (set! fih (BufferedReader. (InputStreamReader. (FileInputStream. name)) size))
  (let loop ()
    (tryCatch 
      (begin 
        (set! line (.readLine fih)) 
        (set! text (string-append text (string-append line "\n")))
        (loop))
      (lambda(e) ())))
    (.close fih)))

(define key "com.googlecode.android_scripting.extra.SCRIPT_PATH")
(load_text(.get (.get (.get (.call droid "getIntent") "result") "extras") key))
(.println System.out$ text)
(exit)

ShowWeb

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "webViewShow" "http://www.google.com")
(exit)

Speak

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "ttsSpeak" "Speak using J Scheme")
(exit)

SpinnerProgress

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))

(define sleep (lambda (msec)
  (set! msec (+ msec (.getTime (java.util.Date.))))
  (let loop ()
    (if (> msec (.getTime (java.util.Date.)))
      (loop)
    )
  )
))

(.call droid "dialogCreateSpinnerProgress" "Spinner" "using JScheme")
(.call droid "dialogShow")
(sleep 2000)
(.call droid "dialogDismiss")
(exit)

StartRingtone

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "startActivity" "android.intent.action.RINGTONE_PICKER")
(exit)

Toast

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "makeToast" "Toast using JScheme")
(exit)

Vibrate

(import "com.googlecode.rpc.*")
(define droid (com.googlecode.rpc.Android.))
(.call droid "makeToast" "Vibrate using JScheme")
(.call droid "vibrate")
(exit)
return