diff --git a/app/build.gradle b/app/build.gradle index d29ffec..05048a7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 9 targetSdkVersion 23 // 24+ file:// unable to open - versionCode 257 - versionName "3.2.0" + versionCode 258 + versionName "3.2.1" } signingConfigs { release { @@ -55,5 +55,5 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.github.axet:android-audio-library:1.0.94' // compile project(':android-audio-library') + compile 'com.github.axet:android-audio-library:1.0.96' // compile project(':android-audio-library') } diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java index 44d55f4..f76abf2 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java @@ -40,6 +40,7 @@ import android.widget.Toast; import com.github.axet.androidlibrary.animations.MarginBottomAnimation; import com.github.axet.androidlibrary.sound.AudioTrack; import com.github.axet.androidlibrary.widgets.AppCompatThemeActivity; +import com.github.axet.androidlibrary.widgets.OpenFileDialog; import com.github.axet.audiolibrary.app.RawSamples; import com.github.axet.audiolibrary.app.Sound; import com.github.axet.audiolibrary.encoders.Encoder; @@ -632,7 +633,7 @@ public class RecordingActivity extends AppCompatThemeActivity { @Override public void run() { stopRecording(); - storage.delete(storage.getTempRecording()); + Storage.delete(storage.getTempRecording()); finish(); } }, null); @@ -969,6 +970,7 @@ public class RecordingActivity extends AppCompatThemeActivity { } } catch (RuntimeException e) { Error(e); + return; } } @@ -1001,7 +1003,11 @@ public class RecordingActivity extends AppCompatThemeActivity { if (shared.getBoolean(MainApplication.PREFERENCE_SKIP, false)) encoder.filters.add(new SkipSilenceFilter(getInfo())); - RecordingService.startService(this, Storage.getDocumentName(targetUri), thread != null, encoder != null); + encoding(encoder, fly, last); + } + + void encoding(final FileEncoder encoder, final OnFlyEncoding fly, final Runnable last) { + RecordingService.startService(this, Storage.getDocumentName(fly.targetUri), thread != null, encoder != null); final ProgressDialog d = new ProgressDialog(this); d.setTitle(R.string.encoding_title); @@ -1020,7 +1026,7 @@ public class RecordingActivity extends AppCompatThemeActivity { }, new Runnable() { @Override public void run() { // success - Storage.delete(in); // delete raw recording + Storage.delete(encoder.in); // delete raw recording last.run(); @@ -1087,6 +1093,29 @@ public class RecordingActivity extends AppCompatThemeActivity { finish(); } }); + final File in = storage.getTempRecording(); + if (in.length() > 0) { + builder.setNeutralButton(R.string.save_as_wav, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + final OpenFileDialog d = new OpenFileDialog(RecordingActivity.this, OpenFileDialog.DIALOG_TYPE.FOLDER_DIALOG); + d.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + OnFlyEncoding fly = new OnFlyEncoding(storage, storage.getNewFile(d.getCurrentPath(), "wav"), getInfo()); + FileEncoder encoder = new FileEncoder(RecordingActivity.this, in, fly); + encoding(encoder, fly, new Runnable() { + @Override + public void run() { + finish(); + } + }); + } + }); + d.show(); + } + }); + } builder.show(); } diff --git a/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java b/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java index 26f32e3..127e29a 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java +++ b/app/src/main/java/com/github/axet/audiorecorder/app/Storage.java @@ -50,4 +50,20 @@ public class Storage extends com.github.axet.audiolibrary.app.Storage { } } + public File getNewFile(File path, String ext) { + SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(context); + + String format = "%s"; + + format = shared.getString(MainApplication.PREFERENCE_FORMAT, format); + + format = getFormatted(format, new Date()); + + File f = path; + if (!f.exists() && !f.mkdirs()) { + throw new RuntimeException("Unable to create: " + path); + } + return getNextFile(f, format, ext); + } + } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 640eaf8..4c4fca8 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -65,4 +65,5 @@ Encoding on fly disable editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 30db138..7188c1b 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -59,4 +59,5 @@ Η ενεργοποίηση της άμεσης κωδικοποίησης απενεργοποιεί την επεξεργασία και την ανάκτηση από κατάρευση παύση (αποσύνδεση bluetooth) Αναζήτηση + Save as WAV diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 699b5e4..4b0f94d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -65,4 +65,5 @@ Encoding on fly disable editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2c98ba7..4a5c8ae 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -65,4 +65,5 @@ Encoding on fly disable editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b178785..4965e2b 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -65,4 +65,5 @@ Encoding on fly disable editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index a817173..a335cb0 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -65,4 +65,5 @@ Encoding on fly disable editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 61de50e..e3db2e5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -65,4 +65,5 @@ Кодирование на лету Кодирование на лету отключает редактирование и восстановление в случае ошибок Поиск + Save as WAV diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 845311d..f8278f7 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -65,4 +65,5 @@ Encoding on fly disable editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3534dc9..acfe787 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -102,4 +102,5 @@ Enabling encoding on fly disables editing, and crash recovery pause (bluetooth disconnected) Search + Save as WAV