From cfa24bb73224f41d71a1abf18ee497aee48b1abd Mon Sep 17 00:00:00 2001 From: yura f Date: Sun, 28 Oct 2018 22:27:42 +0300 Subject: [PATCH 1/3] Added milliseconds to record description and play dialog. Made SeekBar more smooth. --- .../adapters/FileViewerAdapter.java | 4 +++- .../fragments/PlaybackFragment.java | 22 ++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/danielkim/soundrecorder/adapters/FileViewerAdapter.java b/app/src/main/java/com/danielkim/soundrecorder/adapters/FileViewerAdapter.java index 1d1418cf..1462522e 100644 --- a/app/src/main/java/com/danielkim/soundrecorder/adapters/FileViewerAdapter.java +++ b/app/src/main/java/com/danielkim/soundrecorder/adapters/FileViewerAdapter.java @@ -61,9 +61,11 @@ public void onBindViewHolder(final RecordingsViewHolder holder, int position) { long minutes = TimeUnit.MILLISECONDS.toMinutes(itemDuration); long seconds = TimeUnit.MILLISECONDS.toSeconds(itemDuration) - TimeUnit.MINUTES.toSeconds(minutes); + long milliseconds = itemDuration - TimeUnit.MINUTES.toMillis(minutes) + - TimeUnit.SECONDS.toMillis(seconds); holder.vName.setText(item.getName()); - holder.vLength.setText(String.format("%02d:%02d", minutes, seconds)); + holder.vLength.setText(String.format("%02d:%02d:%03d", minutes, seconds, milliseconds)); holder.vDateAdded.setText( DateUtils.formatDateTime( mContext, diff --git a/app/src/main/java/com/danielkim/soundrecorder/fragments/PlaybackFragment.java b/app/src/main/java/com/danielkim/soundrecorder/fragments/PlaybackFragment.java index 09f12135..806ffaec 100644 --- a/app/src/main/java/com/danielkim/soundrecorder/fragments/PlaybackFragment.java +++ b/app/src/main/java/com/danielkim/soundrecorder/fragments/PlaybackFragment.java @@ -49,6 +49,7 @@ public class PlaybackFragment extends DialogFragment{ //stores minutes and seconds of the length of the file. long minutes = 0; long seconds = 0; + long milliseconds = 0; public PlaybackFragment newInstance(RecordingItem item) { PlaybackFragment f = new PlaybackFragment(); @@ -68,6 +69,8 @@ public void onCreate(Bundle savedInstanceState) { minutes = TimeUnit.MILLISECONDS.toMinutes(itemDuration); seconds = TimeUnit.MILLISECONDS.toSeconds(itemDuration) - TimeUnit.MINUTES.toSeconds(minutes); + milliseconds = itemDuration - TimeUnit.MINUTES.toMillis(minutes) + - TimeUnit.SECONDS.toMillis(seconds); } @Override @@ -104,7 +107,10 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { long minutes = TimeUnit.MILLISECONDS.toMinutes(mMediaPlayer.getCurrentPosition()); long seconds = TimeUnit.MILLISECONDS.toSeconds(mMediaPlayer.getCurrentPosition()) - TimeUnit.MINUTES.toSeconds(minutes); - mCurrentProgressTextView.setText(String.format("%02d:%02d", minutes,seconds)); + long milliseconds = mMediaPlayer.getCurrentPosition() - TimeUnit.MINUTES.toMillis(minutes) + - TimeUnit.SECONDS.toMillis(seconds); + + mCurrentProgressTextView.setText(String.format("%02d:%02d:%02d", minutes, seconds, milliseconds/10)); updateSeekBar(); @@ -131,7 +137,10 @@ public void onStopTrackingTouch(SeekBar seekBar) { long minutes = TimeUnit.MILLISECONDS.toMinutes(mMediaPlayer.getCurrentPosition()); long seconds = TimeUnit.MILLISECONDS.toSeconds(mMediaPlayer.getCurrentPosition()) - TimeUnit.MINUTES.toSeconds(minutes); - mCurrentProgressTextView.setText(String.format("%02d:%02d", minutes,seconds)); + long milliseconds = mMediaPlayer.getCurrentPosition() - TimeUnit.MINUTES.toMillis(minutes) + - TimeUnit.SECONDS.toMillis(seconds); + + mCurrentProgressTextView.setText(String.format("%02d:%02d:%02d", minutes, seconds, milliseconds/10)); updateSeekBar(); } } @@ -147,7 +156,7 @@ public void onClick(View v) { }); mFileNameTextView.setText(item.getName()); - mFileLengthTextView.setText(String.format("%02d:%02d", minutes,seconds)); + mFileLengthTextView.setText(String.format("%02d:%02d:%02d", minutes, seconds, milliseconds/10)); builder.setView(view); @@ -307,7 +316,10 @@ public void run() { long minutes = TimeUnit.MILLISECONDS.toMinutes(mCurrentPosition); long seconds = TimeUnit.MILLISECONDS.toSeconds(mCurrentPosition) - TimeUnit.MINUTES.toSeconds(minutes); - mCurrentProgressTextView.setText(String.format("%02d:%02d", minutes, seconds)); + long milliseconds = mCurrentPosition - TimeUnit.MINUTES.toMillis(minutes) + - TimeUnit.SECONDS.toMillis(seconds); + + mCurrentProgressTextView.setText(String.format("%02d:%02d:%02d", minutes, seconds, milliseconds/10)); updateSeekBar(); } @@ -315,6 +327,6 @@ public void run() { }; private void updateSeekBar() { - mHandler.postDelayed(mRunnable, 1000); + mHandler.postDelayed(mRunnable, 50); } } From 6c15de17abbe3c46c9062e11c03d7a9e21a998df Mon Sep 17 00:00:00 2001 From: yura f Date: Mon, 29 Oct 2018 01:40:29 +0300 Subject: [PATCH 2/3] Issue #101 fix. There was a RuntimeException from mRecord.stop() if you press stop button too fust. --- .../soundrecorder/RecordingService.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java b/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java index a8b36a18..f9a2834d 100644 --- a/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java +++ b/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java @@ -121,10 +121,19 @@ public void setFileNameAndPath(){ } public void stopRecording() { - mRecorder.stop(); - mElapsedMillis = (System.currentTimeMillis() - mStartingTimeMillis); - mRecorder.release(); - Toast.makeText(this, getString(R.string.toast_recording_finish) + " " + mFilePath, Toast.LENGTH_LONG).show(); + try { + mRecorder.stop(); + mRecorder.release(); + + mElapsedMillis = (System.currentTimeMillis() - mStartingTimeMillis); + Toast.makeText(this, getString(R.string.toast_recording_finish) + " " + mFilePath, Toast.LENGTH_LONG).show(); + + mDatabase.addRecording(mFileName, mFilePath, mElapsedMillis); + + } catch (Exception e) { + mRecorder.release(); + Log.e(LOG_TAG, "exception", e); + } //remove notification if (mIncrementTimerTask != null) { @@ -133,13 +142,6 @@ public void stopRecording() { } mRecorder = null; - - try { - mDatabase.addRecording(mFileName, mFilePath, mElapsedMillis); - - } catch (Exception e){ - Log.e(LOG_TAG, "exception", e); - } } private void startTimer() { From 843c16afa7342e8d98e41fb42f71237dd49a861b Mon Sep 17 00:00:00 2001 From: yura f Date: Mon, 29 Oct 2018 19:45:46 +0300 Subject: [PATCH 3/3] Revert "Issue #101 fix." This reverts commit 6c15de17abbe3c46c9062e11c03d7a9e21a998df. --- .../soundrecorder/RecordingService.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java b/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java index f9a2834d..a8b36a18 100644 --- a/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java +++ b/app/src/main/java/com/danielkim/soundrecorder/RecordingService.java @@ -121,19 +121,10 @@ public void setFileNameAndPath(){ } public void stopRecording() { - try { - mRecorder.stop(); - mRecorder.release(); - - mElapsedMillis = (System.currentTimeMillis() - mStartingTimeMillis); - Toast.makeText(this, getString(R.string.toast_recording_finish) + " " + mFilePath, Toast.LENGTH_LONG).show(); - - mDatabase.addRecording(mFileName, mFilePath, mElapsedMillis); - - } catch (Exception e) { - mRecorder.release(); - Log.e(LOG_TAG, "exception", e); - } + mRecorder.stop(); + mElapsedMillis = (System.currentTimeMillis() - mStartingTimeMillis); + mRecorder.release(); + Toast.makeText(this, getString(R.string.toast_recording_finish) + " " + mFilePath, Toast.LENGTH_LONG).show(); //remove notification if (mIncrementTimerTask != null) { @@ -142,6 +133,13 @@ public void stopRecording() { } mRecorder = null; + + try { + mDatabase.addRecording(mFileName, mFilePath, mElapsedMillis); + + } catch (Exception e){ + Log.e(LOG_TAG, "exception", e); + } } private void startTimer() {