From 7f7a33b2f3556afd3fa3c2ab8ddc41de4f5282bd Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Mon, 25 Mar 2019 20:54:55 +0300 Subject: [PATCH] fix rec on fly free space --- .../activities/RecordingActivity.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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 3f7b5a4..c738a76 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 @@ -705,23 +705,29 @@ public class RecordingActivity extends AppCompatThemeActivity { void setState(String s) { long free = 0; - try { - free = Storage.getFree(recording.storage.getTempRecording()); - } catch (RuntimeException e) { // IllegalArgumentException - } - final SharedPreferences shared = PreferenceManager.getDefaultSharedPreferences(this); int rate = Integer.parseInt(shared.getString(AudioApplication.PREFERENCE_RATE, "")); int m = Sound.getChannels(this); int c = Sound.DEFAULT_AUDIOFORMAT == AudioFormat.ENCODING_PCM_16BIT ? 2 : 1; - long perSec = c * m * rate; + long perSec; String ext = shared.getString(AudioApplication.PREFERENCE_ENCODING, ""); - if (shared.getBoolean(AudioApplication.PREFERENCE_FLY, false)) + if (shared.getBoolean(AudioApplication.PREFERENCE_FLY, false)) { perSec = Factory.getEncoderRate(ext, recording.sampleRate); + try { + free = Storage.getFree(this, recording.targetUri); + } catch (RuntimeException e) { // IllegalArgumentException + } + } else { // raw file on tmp device + perSec = c * m * rate; + try { + free = Storage.getFree(recording.storage.getTempRecording()); + } catch (RuntimeException e) { // IllegalArgumentException + } + } long sec = free / perSec * 1000;