diff --git a/app/build.gradle b/app/build.gradle index b6348b6..7a6ec12 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.github.axet.audiorecorder" minSdkVersion 9 targetSdkVersion 29 - versionCode 348 - versionName "3.3.23" + versionCode 349 + versionName "3.3.24" } signingConfigs { release { diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java index 55b20e1..f27bc06 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/MainActivity.java @@ -179,7 +179,7 @@ public class MainActivity extends AppCompatThemeActivity { } } text.setText(AudioApplication.formatSize(getContext(), current.getAverageSpeed() * info.bps / Byte.SIZE) + getContext().getString(R.string.per_second)); - super.setProgress((int) (cur * getMax() / total)); + super.setProgress(total == 0 ? 0 : (int) (cur * getMax() / total)); } } @@ -357,42 +357,33 @@ public class MainActivity extends AppCompatThemeActivity { } @Override - public void handleMessage(Message msg) { - super.handleMessage(msg); - if (msg.what == EncodingStorage.UPDATE) { - Intent intent = (Intent) msg.obj; - final Uri targetUri = intent.getParcelableExtra("targetUri"); - final RawSamples.Info info; - try { - info = new RawSamples.Info(intent.getStringExtra("info")); - } catch (JSONException e) { - throw new RuntimeException(e); - } - if (snackbar == null || !snackbar.isShownOrQueued()) { - snackbar = Snackbar.make(fab, printEncodings(targetUri), Snackbar.LENGTH_LONG); - snackbar.setDuration(Snackbar.LENGTH_INDEFINITE); - snackbar.getView().setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - show(targetUri, info); - EncodingService.startIfPending(context); - } - }); - snackbar.show(); - } else { - snackbar.setText(printEncodings(targetUri)); - snackbar.show(); - } + public void onUpdate(final Uri targetUri, final RawSamples.Info info) { + super.onUpdate(targetUri, info); + if (snackbar == null || !snackbar.isShownOrQueued()) { + snackbar = Snackbar.make(fab, printEncodings(targetUri), Snackbar.LENGTH_LONG); + snackbar.setDuration(Snackbar.LENGTH_INDEFINITE); + snackbar.getView().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + show(targetUri, info); + EncodingService.startIfPending(context); + } + }); + snackbar.show(); + } else { + snackbar.setText(printEncodings(targetUri)); + snackbar.show(); } - if (msg.what == EncodingStorage.DONE) { - Intent intent = (Intent) msg.obj; - final Uri targetUri = intent.getParcelableExtra("targetUri"); - recordings.load(false, null); - if (snackbar != null && snackbar.isShownOrQueued()) { - snackbar.setText(printEncodings(targetUri)); - snackbar.setDuration(Snackbar.LENGTH_SHORT); - snackbar.show(); - } + } + + @Override + public void onDone(Uri targetUri) { + super.onDone(targetUri); + recordings.load(false, null); + if (snackbar != null && snackbar.isShownOrQueued()) { + snackbar.setText(printEncodings(targetUri)); + snackbar.setDuration(Snackbar.LENGTH_SHORT); + snackbar.show(); } } 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 847a8c7..2a62621 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 @@ -96,6 +96,7 @@ public class RecordingActivity extends AppCompatThemeActivity { ScreenReceiver screen; RecordingStorage recording; + File encoding; RecordingReceiver receiver; @@ -1002,12 +1003,19 @@ public class RecordingActivity extends AppCompatThemeActivity { return; } - final File encoding = EncodingService.startEncoding(this, in, recording.targetUri, recording.getInfo()); - if (recordSoundIntent != null) { if (progress != null) progress.close(); progress = new MainActivity.ProgressHandler() { + @Override + public void onUpdate(Uri targetUri, RawSamples.Info info) { + super.onUpdate(targetUri, info); + if (progress == null) { + show(targetUri, info); + progress.setCancelable(false); + } + } + @Override public void onDone(Uri targetUri) { super.onDone(targetUri); @@ -1030,11 +1038,10 @@ public class RecordingActivity extends AppCompatThemeActivity { } }; progress.registerReceiver(this); - progress.show(recording.targetUri, recording.getInfo()); - progress.progress.setCancelable(false); } else { done.run(); } + encoding = EncodingService.startEncoding(this, in, recording.targetUri, recording.getInfo()); } @Override