diff --git a/assets/gap.js b/assets/gap.js
index 7380b106..3b481fb9 100644
--- a/assets/gap.js
+++ b/assets/gap.js
@@ -351,6 +351,12 @@ var Device = {
},
getDuration: function(file) {
return window.DroidGap.getDurationAudio(file);
+ },
+ setAudioOutputDevice: function(output){
+ window.DroidGap.setAudioOutputDevice(output);
+ },
+ getAudioOutputDevice: function (){
+ return window.DroidGap.getAudioOutputDevice();
}
},
information: {
diff --git a/assets/index.html b/assets/index.html
index 7ad8f82d..1f16d66a 100644
--- a/assets/index.html
+++ b/assets/index.html
@@ -146,7 +146,17 @@ audio = function(func)
} else
if (func == 'getDuration') {
$('posdur').value = Device.audio.getDuration($('audioFile').value);
- }
+ }else
+ if (func == 'setEarpiece') {
+ Device.audio.setAudioOutputDevice(func);
+ } else
+ if (func == 'setSpeaker') {
+ Device.audio.setAudioOutputDevice(func);
+ }else
+ if (func == 'getAudioOutputDevice') {
+ $('audoutput').value = Device.audio.getAudioOutputDevice();
+ }
+
}
phInformation = function(){
@@ -392,6 +402,18 @@ addLoadEvent(initGap);
getPosition
+
+
diff --git a/src/com/nitobi/phonegap/AudioHandler.java b/src/com/nitobi/phonegap/AudioHandler.java
index 5289236c..ae89ef72 100644
--- a/src/com/nitobi/phonegap/AudioHandler.java
+++ b/src/com/nitobi/phonegap/AudioHandler.java
@@ -2,6 +2,7 @@ package com.nitobi.phonegap;
import java.io.File;
+import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnErrorListener;
@@ -18,9 +19,11 @@ public class AudioHandler implements OnCompletionListener, OnPreparedListener, O
private boolean isPlaying = false;
private String recording;
private String saveFile;
+ private Context mCtx;
- public AudioHandler(String file) {
+ public AudioHandler(String file, Context ctx) {
this.recording = file;
+ this.mCtx = ctx;
}
public void startRecording(String file){
@@ -87,7 +90,6 @@ public class AudioHandler implements OnCompletionListener, OnPreparedListener, O
}
}
- @Override
public void onCompletion(MediaPlayer mPlayer) {
mPlayer.stop();
mPlayer.release();
@@ -154,4 +156,25 @@ public class AudioHandler implements OnCompletionListener, OnPreparedListener, O
Log.e("AUDIO onError", "error " + arg1 + " " + arg2);
return false;
}
+
+ protected void setAudioOutputDevice(String output){
+ System.out.println ("Change audio setting to be "+output);
+ AudioManager audiMgr = (AudioManager) mCtx.getSystemService(Context.AUDIO_SERVICE);
+ if (output.contains("Speaker"))
+ audiMgr.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_SPEAKER, AudioManager.ROUTE_ALL);
+ else if (output.contains("Earpiece")){
+ audiMgr.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
+ }else
+ System.out.println("input error");
+
+ }
+ protected int getAudioOutputDevice(){
+ AudioManager audiMgr = (AudioManager) mCtx.getSystemService(Context.AUDIO_SERVICE);
+ if (audiMgr.getRouting(AudioManager.MODE_NORMAL) == AudioManager.ROUTE_EARPIECE)
+ return 1;
+ else if (audiMgr.getRouting(AudioManager.MODE_NORMAL) == AudioManager.ROUTE_SPEAKER)
+ return 2;
+ else
+ return -1;
+ }
}
diff --git a/src/com/nitobi/phonegap/PhoneGap.java b/src/com/nitobi/phonegap/PhoneGap.java
index b14a9868..79d1994d 100644
--- a/src/com/nitobi/phonegap/PhoneGap.java
+++ b/src/com/nitobi/phonegap/PhoneGap.java
@@ -51,6 +51,7 @@ public class PhoneGap{
protected LocationProvider provider;
SmsListener mSmsListener;
DirectoryManager fileManager;
+ AudioHandler audio;
public PhoneGap(Context ctx, Handler handler, WebView appView) {
this.mCtx = ctx;
@@ -60,6 +61,7 @@ public class PhoneGap{
mNetwork = new NetworkListener(ctx);
mSmsListener = new SmsListener(ctx,mAppView);
fileManager = new DirectoryManager();
+ audio = new AudioHandler("/sdcard/tmprecording.mp3", ctx);
}
public void updateAccel(){
@@ -248,48 +250,96 @@ public class PhoneGap{
http.get(url, file);
}
+<<<<<<< HEAD:android/src/com/nitobi/phonegap/PhoneGap.java
/*
* TODO: FIX! These should not be returning arbitrary Strings!
*/
public String testSaveLocationExists(){
+=======
+ /**
+ * Check if SD card is ready and already mounted
+ * TODO: JavaScript Call backs for success and error handling
+ */
+ public int testSaveLocationExists(){
+>>>>>>> 6959002f1187829f33e279633e0446cc750ab6d3:android/src/com/nitobi/phonegap/PhoneGap.java
if (fileManager.testSaveLocationExists())
- return "SD Card available";
+ return 0;
else
- return "SD Card unavailable";
+ return 1;
}
+<<<<<<< HEAD:android/src/com/nitobi/phonegap/PhoneGap.java
public String testFileExists(String file){
if (fileManager.testFileExists(file))
return "File exists";
+=======
+
+ /**
+ * Check if a specific directory of file exists
+ * TODO: JavaScript Call backs for success and error handling
+ */
+ public int testDirOrFileExists(String file){
+ if (fileManager.isDirtoryOrFileExists(file))
+ return 0;
+>>>>>>> 6959002f1187829f33e279633e0446cc750ab6d3:android/src/com/nitobi/phonegap/PhoneGap.java
else
- return "No this file";
+ return 1;
}
+<<<<<<< HEAD:android/src/com/nitobi/phonegap/PhoneGap.java
public String deleteDirectory (String dir){
if (fileManager.deleteDirectory(dir))
return "Completed";
+=======
+ /**
+ * Delete a specific directory.
+ * Everyting in side the directory would be gone.
+ * TODO: JavaScript Call backs for success and error handling
+ */
+ public int deleteDirectory (String dir){
+ if (fileManager.deleteDir(dir))
+ return 0;
+>>>>>>> 6959002f1187829f33e279633e0446cc750ab6d3:android/src/com/nitobi/phonegap/PhoneGap.java
else
- return "Not completed";
+ return 1;
}
+<<<<<<< HEAD:android/src/com/nitobi/phonegap/PhoneGap.java
public String deleteFile (String file){
+=======
+ /**
+ * Delete a specific file.
+ * TODO: JavaScript Call backs for success and error handling
+ */
+ public int deleteFile (String file){
+>>>>>>> 6959002f1187829f33e279633e0446cc750ab6d3:android/src/com/nitobi/phonegap/PhoneGap.java
if (fileManager.deleteFile(file))
- return "Completed";
+ return 0;
else
- return "Not completed";
+ return 1;
}
+<<<<<<< HEAD:android/src/com/nitobi/phonegap/PhoneGap.java
public String createDirectory(String dir){
if (fileManager.createDirectory(dir))
return "Completed";
+=======
+ /**
+ * Create a new directory.
+ * TODO: JavaScript Call backs for success and error handling
+ */
+ public int createDirectory(String dir){
+ if (fileManager.createDirectory(dir))
+ return 0;
+>>>>>>> 6959002f1187829f33e279633e0446cc750ab6d3:android/src/com/nitobi/phonegap/PhoneGap.java
else
- return "Not completed";
+ return 1;
}
/**
* AUDIO
* TODO: Basic functions done but needs more work on error handling and call backs, remove record hack
*/
- AudioHandler audio = new AudioHandler("/sdcard/tmprecording.mp3");
+
public void startRecordingAudio(String file)
{
/* for this to work the recording needs to be specified in the constructor,
@@ -325,6 +375,13 @@ public class PhoneGap{
return(audio.getDuration(file));
}
+ public void setAudioOutputDevice(String output){
+ audio.setAudioOutputDevice(output);
+ }
+ public int getAudioOutputDevice(){
+ return audio.getAudioOutputDevice();
+ }
+
public String getLine1Number() {
TelephonyManager tm =
(TelephonyManager)mCtx.getSystemService(Context.TELEPHONY_SERVICE);