summaryrefslogtreecommitdiff
path: root/LoopbackApp
diff options
context:
space:
mode:
authorninatai <ninatai@google.com>2015-05-12 14:16:11 -0700
committerninatai <ninatai@google.com>2015-05-12 14:16:11 -0700
commit8940c03baa51593af9388e7ba817939a3117a73f (patch)
tree38b7ee04c856e58108f05617666950eedb60e192 /LoopbackApp
parent52c1ca141c8b79de11ed5e77a3995a99b5850b47 (diff)
downloaddrrickorang-8940c03baa51593af9388e7ba817939a3117a73f.tar.gz
Now when the file path is not found, the path will not show up on Toast (instead of app crashes directly).
Diffstat (limited to 'LoopbackApp')
-rw-r--r--LoopbackApp/app/src/main/AndroidManifest.xml2
-rw-r--r--LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java37
2 files changed, 29 insertions, 10 deletions
diff --git a/LoopbackApp/app/src/main/AndroidManifest.xml b/LoopbackApp/app/src/main/AndroidManifest.xml
index cc57817..079f6e9 100644
--- a/LoopbackApp/app/src/main/AndroidManifest.xml
+++ b/LoopbackApp/app/src/main/AndroidManifest.xml
@@ -32,6 +32,8 @@
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.STORAGE" />
<application
android:label="@string/app_name"
diff --git a/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java b/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java
index 97cbb78..3a5acb0 100644
--- a/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java
+++ b/LoopbackApp/app/src/main/java/org/drrickorang/loopback/LoopbackActivity.java
@@ -24,6 +24,7 @@ import android.database.Cursor;
import android.provider.MediaStore;
import android.os.ParcelFileDescriptor;
+
import java.io.FileDescriptor;
import android.media.AudioManager;
@@ -353,10 +354,16 @@ public class LoopbackActivity extends Activity {
//save to a given uri... local file?
Uri uri = Uri.parse("file://mnt/sdcard/"+fileName+".wav");
- File file = new File(getPath(uri));
- mFilePathWav = file.getAbsolutePath();
+ String temp = getPath1(uri);
+ // for some devices it cannot find the path
+ if (temp != null) {
+ File file = new File(temp);
+ mFilePathWav = file.getAbsolutePath();
+ } else {
+ mFilePathWav = "";
+ }
saveToWavefile(uri);
Uri uri2 = Uri.parse("file://mnt/sdcard/"+fileName+".png");
@@ -374,8 +381,13 @@ public class LoopbackActivity extends Activity {
if (resultData != null) {
uri = resultData.getData();
- File file = new File(getPath(uri));
- mFilePathWav = file.getAbsolutePath();
+ String temp = getPath1(uri);
+ if (temp != null) {
+ File file = new File(temp);
+ mFilePathWav = file.getAbsolutePath();
+ } else {
+ mFilePathWav = "";
+ }
saveToWavefile(uri);
}
@@ -397,13 +409,16 @@ public class LoopbackActivity extends Activity {
}
}
- // method to get the file path from uri
- public String getPath(Uri uri)
+ // method to get the file path from uri. Doesn't work for all devices
+ public String getPath1(Uri uri)
{
- String[] p = {MediaStore.Images.Media.DATA};
- Cursor cursor1 = getContentResolver().query(uri, p, null, null, null);
- if (cursor1 == null)
- return null;
+ String[] projection = {MediaStore.Images.Media.DATA};
+ Cursor cursor1 = getContentResolver().query(uri, projection, null, null, null);
+ if (cursor1 == null) {
+ // cursor1.close();
+ return uri.getPath();
+ }
+
int ColumnIndex = cursor1.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor1.moveToFirst();
String path = cursor1.getString(ColumnIndex);
@@ -411,6 +426,8 @@ public class LoopbackActivity extends Activity {
return path;
}
+
+
/** Called when the user clicks the button */
public void onButtonZoomOutFull(View view) {