All Jawk Sample Scripts

HelloWorld

BEGIN{
  print("Hello, world!");
}

CopySample

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  text = "";
  text = text "import com.googlecode.rpc.*;\n";
  text = text "BEGIN{\n";
  text = text "  droid = new Android();\n";
  text = text "  droid.call(\"makeToast\",\"using Jawk\");\n";
  text = text "  droid.call(\"vibrate\");\n";
  text = text "  droid.call(\"notify\",\"using Jawk\",\"Message\");\n";
  text = text "\#line comment\n";
  text = text "  printf(\"using Jawk printf\\n\")\n";
  text = text "  print(\"using Jawk print\")\n";
  text = text "}\n";

  droid.call("dialogGetInput","Sample","using Jawk",text);
  response = droid.call("dialogGetResponse");
  result = response.get("result");
  if (result.get("which").equals("positive")) {
    droid.call("setClipboard",result.get("value"));
    droid.call("makeToast",result.get("value"));
  } else {
    droid.call("makeToast","Copy canceled");
  }
}

DatePicker

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("makeToast","Input your birthday");
  now = java.util.Calendar.getInstance();
  year = now.get(now.YEAR);
  month = now.get(now.MONTH)+1;
  day = now.get(now.DAY_OF_MONTH);
  droid.call("dialogCreateDatePicker",year,month,day);
  droid.call("dialogShow");
  response = droid.call("dialogGetResponse").get("result");
  droid.call("dialogDismiss");
  age = year-response.get("year");
  truth = 0;
  if ( month<response.get("month") ) {
    truth = 1;
  } else if ( month==response.get("month") ) {
    if ( day<response.get("day") ) {
      truth = 1;
    }
  }
  if (truth == 1) {
    age--;
  }
  droid.call("dialogCreateAlert","Dialog","Age:" age);
  droid.call("dialogSetPositiveButtonText","OK");
  droid.call("dialogShow");
  droid.call("dialogGetResponse");
  droid.call("dialogDismiss");
}

Dialog

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("dialogCreateAlert","Dialog", "with Jawk");
  droid.call("dialogSetPositiveButtonText","Yes");
  droid.call("dialogSetNegativeButtonText","No");
  droid.call("dialogSetNeutralButtonText","Cancel");
  droid.call("dialogShow");
  response = droid.call("dialogGetResponse");
  result = response.get("result").get("which");
  droid.call("dialogDismiss");
  droid.call("makeToast",result);
}

DualToneMultiFrequency

import com.googlecode.rpc.*;

function gTone(number,duration){
  droid.call("generateDtmfTones",number,duration);
}

BEGIN{
  droid = new Android();
  numbers = new String []{"3","2","1233","3","22","2","39","9","3","2","1233","3","22","3","2","1"};
  durations = new int [] {384,128,256,512,256,512,256,512,384,128,256,512,256,384,128,1024};

  for(i=0;i<numbers.length;i++){
    printf numbers[i]
    gTone(numbers[i],durations[i]);
  }
  print("");
}

GetInput

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("dialogGetInput","dialogGetInput","using Jawk");
  response = droid.call("dialogGetResponse");
  result = response.get("result");
  if (result.get("which").equals("positive")) {
    droid.call("notify","dialogGetInput using Jawk",result.get("value"));
  } else {
    droid.call("makeToast","dialogGetInput using Jawk:" result.get("which"));
  }
}

HorizontalProgress

import com.googlecode.rpc.*;
import java.util.Date;

function stop(msec){
  start = new Date();
  msec+=start.getTime();
  while(true){
    end = new Date();
    if(msec<=end.getTime()){
      break;
    }
  }
}

BEGIN{
  droid = new Android();
  droid.call("dialogCreateHorizontalProgress","Horizontal","using Jawk");
  droid.call("dialogShow");

  value = 0;
  while(value < 100){
    value = value+1;
    stop(10);
    droid.call("dialogSetCurrentProgress",value);
  }

  droid.call("dialogDismiss");
}

LaunchBrowser

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.android.browser.BrowserActivity");
}

LaunchCalculator

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.android.calculator2.Calculator");
}

LaunchCalendar

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.android.calendar.LaunchActivity");
}

LaunchGallery

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.cooliris.media.Gallery");
}

LaunchMusic

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.android.music.MediaPlaybackActivityStarter");
}

LaunchSetting

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.android.settings.Settings");
}

LaunchSoundRecorder

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("launch","com.android.soundrecorder.SoundRecorder");
}

MediaVolume

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  vol = droid.call("getMediaVolume").get("result");
  maxvol = droid.call("getMaxMediaVolume").get("result");
  droid.call("dialogCreateSeekBar",vol,maxvol,"Media volume","");
  droid.call("dialogSetPositiveButtonText","OK");
  droid.call("dialogSetNegativeButtonText","Cancel");
  droid.call("dialogShow");
  result = droid.call("dialogGetResponse").get("result");
  droid.call("dialogDismiss");
  if (result.get("which").equals("positive")) {
    droid.call("setMediaVolume",result.get("progress"));
    vol = droid.call("getMediaVolume").get("result");
    droid.call("makeToast","Volume:" vol);
  } else {
    droid.call("makeToast","Cancel pressed");
  }
}

Notify

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("notify","Notify using Jawk","Message");
}

OptionsMenu

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  print("Press Menu Button");
  droid.call("addOptionsMenuItem","From Jawk","menu",1,"ic_menu_info_details");
  droid.call("addOptionsMenuItem","Exit Jawk","menu",2,"ic_menu_close_clear_cancel");
  while(true){
    event = droid.call("eventWaitFor","menu");
    if (event.get("result").get("data") == 1) {
      droid.call("makeToast","Selected Add Menu");
    } else if (event.get("result").get("data") == 2) {
      break;
    }
  }
  droid.call("clearOptionsMenu");
  key = "com.googlecode.android_scripting.extra.SCRIPT_PATH";
  intent = droid.call("getIntent");
  droid.call("makeToast",intent.get("result").get("extras").get(key) " is done");
}

PackageCui

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  pack = droid.call("getRunningPackages").get("result");
  print pack.length()
  for (i = 0;i<pack.length();i++) {
    printf "%d.%s/ver.%s\n",(i+1),pack.get(i),droid.call("getPackageVersion",pack.get(i)).get("result")
  }
}

PhoneCall

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("phoneCallNumber","117");
}

QR

import com.googlecode.rpc.*;
import org.json.*;
BEGIN{
  droid = new Android();
  action = "com.google.zxing.client.android.ENCODE";
  extras = new JSONObject();
  extras.put("ENCODE_TYPE","TEXT_TYPE");
  extras.put("ENCODE_DATA","Jawk");
  intent = droid.call("makeIntent",action,null,null,extras).get("result");
  droid.call("startActivityIntent",intent);
}

RecognizeSpeech

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  text = droid.call("recognizeSpeech");
  droid.call("makeToast",text.get("result"));
  droid.call("notify","Recognize Speech using Jawk",text.get("result"));
  print text.get("result")
}

Scancode

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("scanBarcode");
  clip = droid.call("getClipboard");
  text = clip.get("result");
  droid.call("makeToast",text);
}

Search

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("search","Jawk");
}

SendEmail

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("sendEmail","sl4@email.fake","sendEmail","using Jawk");
}

ShowFilename

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  key = "com.googlecode.android_scripting.extra.SCRIPT_PATH";
  intent = droid.call("getIntent");
  droid.call("makeToast",intent.get("result").get("extras").get(key));
}

ShowThis

import com.googlecode.rpc.*;
import java.io.*;

function load_text(name){
  size = 1024;
  fih = new BufferedReader(new InputStreamReader(new FileInputStream(name)),size);
  text = "";
  line = "";
  while((line = fih.readLine())!=null){
    text = text line;
    text = text "\n";
  }
  fih.close();
  return text;
}

BEGIN{
  droid = new Android();
  key = "com.googlecode.android_scripting.extra.SCRIPT_PATH";
  intent = droid.call("getIntent");
  print load_text(intent.get("result").get("extras").get(key))
}

ShowWeb

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("webViewShow","http://www.google.com");
}

Speak

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  result = droid.call("ttsSpeak","Speak using Jawk");
}

SpinnerProgress

import com.googlecode.rpc.*;
import java.util.Date;

function stop(msec){
  start = new Date();
  msec+=start.getTime();
  while(true){
    end = new Date();
    if(msec<=end.getTime()){
      break;
    }
  }
}

BEGIN{
  droid = new Android();
  droid.call("dialogCreateSpinnerProgress","Spinner","using Jawk");
  droid.call("dialogShow");
  stop(2000);
  droid.call("dialogDismiss");
}

StartRingtone

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("startActivity","android.intent.action.RINGTONE_PICKER");
}

Toast

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("makeToast","Toast using Jawk");
}

Vibrate

import com.googlecode.rpc.*;
BEGIN{
  droid = new Android();
  droid.call("makeToast","Vibrate using Jawk");
  droid.call("vibrate");
}
return