From d4de956e3a154ecba4df10f1a57c8b79ec94a3b1 Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Tue, 15 Mar 2016 17:22:50 +0300 Subject: [PATCH] fix progress --- .../activities/MainActivity.java | 22 ++++++++++++------- .../activities/RecordingActivity.java | 4 ++++ 2 files changed, 18 insertions(+), 8 deletions(-) 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 68ffafc..18c0576 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 @@ -276,7 +276,7 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr } player.start(); - updatePlayer(v, f); + updatePlayerRun(v, f); } void playerPause() { @@ -301,28 +301,28 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr } } - void updatePlayer(final View v, final File f) { - updatePlayerText(v, f); + void updatePlayerRun(final View v, final File f) { + boolean playing = updatePlayerText(v, f); if (updatePlayer != null) { handler.removeCallbacks(updatePlayer); updatePlayer = null; } - if (player == null || !player.isPlaying()) { + if (!playing) { return; } updatePlayer = new Runnable() { @Override public void run() { - updatePlayer(v, f); + updatePlayerRun(v, f); } }; handler.postDelayed(updatePlayer, 200); } - void updatePlayerText(final View v, final File f) { + boolean updatePlayerText(final View v, final File f) { ImageView i = (ImageView) v.findViewById(R.id.recording_player_play); final boolean playing = player != null && player.isPlaying(); @@ -344,7 +344,10 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (player == null && progress != 0) + if (!fromUser) + return; + + if (player == null) playerPlay(v, f); if (player != null) { @@ -366,9 +369,12 @@ public class MainActivity extends AppCompatActivity implements AbsListView.OnScr }); start.setText(MainApplication.formatDuration(c)); - bar.setProgress(c); bar.setMax(d); + bar.setKeyProgressIncrement(1); + bar.setProgress(c); end.setText("-" + MainApplication.formatDuration(d - c)); + + return playing; } } 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 9f4209f..fd7da1f 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 @@ -357,6 +357,10 @@ public class RecordingActivity extends AppCompatActivity { pause.setImageResource(R.drawable.ic_pause_24dp); + if (thread != null) { + thread.interrupt(); + } + thread = new Thread(new Runnable() { @Override public void run() {