From 68df2fcb012261e44cd7a8a35125fe1694652a5c Mon Sep 17 00:00:00 2001 From: dethstar Date: Sun, 13 Dec 2015 13:23:52 -0600 Subject: allow to see time left of a podcast by tapping on the position textview --- .../antennapod/activity/MediaplayerActivity.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index febaa68e5..1f2753b10 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -51,6 +51,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity protected SeekBar sbPosition; protected ImageButton butPlay; protected ImageButton butRev; + protected Boolean timeLeft = false; protected TextView txtvRev; protected ImageButton butFF; protected TextView txtvFF; @@ -411,8 +412,14 @@ public abstract class MediaplayerActivity extends ActionBarActivity if (currentPosition != PlaybackService.INVALID_TIME && duration != PlaybackService.INVALID_TIME && controller.getMedia() != null) { - txtvPosition.setText(Converter - .getDurationStringLong(currentPosition)); + if(timeLeft) { + txtvPosition.setText("-"+Converter + .getDurationStringLong(duration - currentPosition)); + } + else { + txtvPosition.setText(Converter + .getDurationStringLong(currentPosition)); + } txtvLength.setText(Converter.getDurationStringLong(duration)); updateProgressbarPosition(currentPosition, duration); } else { @@ -457,6 +464,13 @@ public abstract class MediaplayerActivity extends ActionBarActivity setContentView(getContentViewResourceId()); sbPosition = (SeekBar) findViewById(R.id.sbPosition); txtvPosition = (TextView) findViewById(R.id.txtvPosition); + + txtvPosition.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + timeLeft = !timeLeft; + } + }); txtvLength = (TextView) findViewById(R.id.txtvLength); butPlay = (ImageButton) findViewById(R.id.butPlay); butRev = (ImageButton) findViewById(R.id.butRev); -- cgit v1.2.3 From 394e1514b21114219e22fc6256289e409290b757 Mon Sep 17 00:00:00 2001 From: dethstar Date: Sun, 13 Dec 2015 14:27:31 -0600 Subject: use duration instead of progress to show time left, fix time left on seekbar changes --- .../antennapod/activity/MediaplayerActivity.java | 29 ++++++++++++++-------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index 1f2753b10..939b0cd75 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -1,8 +1,10 @@ package de.danoeh.antennapod.activity; import android.annotation.TargetApi; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.PixelFormat; import android.media.AudioManager; import android.net.Uri; @@ -412,15 +414,16 @@ public abstract class MediaplayerActivity extends ActionBarActivity if (currentPosition != PlaybackService.INVALID_TIME && duration != PlaybackService.INVALID_TIME && controller.getMedia() != null) { + txtvPosition.setText(Converter + .getDurationStringLong(currentPosition)); if(timeLeft) { - txtvPosition.setText("-"+Converter + txtvLength.setText("-"+Converter .getDurationStringLong(duration - currentPosition)); } else { - txtvPosition.setText(Converter - .getDurationStringLong(currentPosition)); + txtvLength.setText(Converter + .getDurationStringLong(duration)); } - txtvLength.setText(Converter.getDurationStringLong(duration)); updateProgressbarPosition(currentPosition, duration); } else { Log.w(TAG, "Could not react to position observer update because of invalid time"); @@ -465,13 +468,14 @@ public abstract class MediaplayerActivity extends ActionBarActivity sbPosition = (SeekBar) findViewById(R.id.sbPosition); txtvPosition = (TextView) findViewById(R.id.txtvPosition); - txtvPosition.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - timeLeft = !timeLeft; - } - }); txtvLength = (TextView) findViewById(R.id.txtvLength); + txtvLength.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + timeLeft = !timeLeft; + } + }); + butPlay = (ImageButton) findViewById(R.id.butPlay); butRev = (ImageButton) findViewById(R.id.butRev); txtvRev = (TextView) findViewById(R.id.txtvRev); @@ -612,6 +616,11 @@ public abstract class MediaplayerActivity extends ActionBarActivity if (controller != null) { prog = controller.onSeekBarProgressChanged(seekBar, progress, fromUser, txtvPosition); + if(timeLeft) { + int duration = controller.getDuration(); + txtvLength.setText("-"+Converter + .getDurationStringLong(duration - (int) (prog * duration))); + } } } -- cgit v1.2.3 From a24a1860ae68ae23c023229023ba2fd21947d792 Mon Sep 17 00:00:00 2001 From: dethstar Date: Sun, 13 Dec 2015 14:31:44 -0600 Subject: remove yet to be used imports and change from Boolean to boolean --- .../main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index 939b0cd75..9e5744f55 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -4,7 +4,6 @@ import android.annotation.TargetApi; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.content.SharedPreferences; import android.graphics.PixelFormat; import android.media.AudioManager; import android.net.Uri; @@ -53,7 +52,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity protected SeekBar sbPosition; protected ImageButton butPlay; protected ImageButton butRev; - protected Boolean timeLeft = false; + protected boolean timeLeft = false; protected TextView txtvRev; protected ImageButton butFF; protected TextView txtvFF; -- cgit v1.2.3 From ccca71012ae58acfa982eb567bc5d644d6b78b1c Mon Sep 17 00:00:00 2001 From: dethstar Date: Mon, 14 Dec 2015 15:01:19 -0600 Subject: fix: only replace onProgressChanged if prog is different from 0 --- .../main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index 9e5744f55..1c1b4ce7e 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -615,7 +615,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity if (controller != null) { prog = controller.onSeekBarProgressChanged(seekBar, progress, fromUser, txtvPosition); - if(timeLeft) { + if(timeLeft && prog!=0) { int duration = controller.getDuration(); txtvLength.setText("-"+Converter .getDurationStringLong(duration - (int) (prog * duration))); -- cgit v1.2.3 From 4619bff696188f8b6352969ba39b021857d0b52a Mon Sep 17 00:00:00 2001 From: dethstar Date: Mon, 14 Dec 2015 22:02:02 -0600 Subject: refactor to give a more descriptive name add variable value to sharedPreferences on change load the correct info on loadMediaInfo if the variable was set to true --- .../antennapod/activity/MediaplayerActivity.java | 24 ++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index 1c1b4ce7e..b27606539 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -4,6 +4,7 @@ import android.annotation.TargetApi; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.PixelFormat; import android.media.AudioManager; import android.net.Uri; @@ -44,6 +45,8 @@ import de.danoeh.antennapod.dialog.SleepTimerDialog; public abstract class MediaplayerActivity extends ActionBarActivity implements OnSeekBarChangeListener { private static final String TAG = "MediaplayerActivity"; + private static final String PREFS = "MediaPlayerActivityPreferences"; + private static final String PREF_SHOW_TIME_LEFT = "showTimeLeft"; protected PlaybackController controller; @@ -52,7 +55,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity protected SeekBar sbPosition; protected ImageButton butPlay; protected ImageButton butRev; - protected boolean timeLeft = false; + protected boolean showTimeLeft = false; protected TextView txtvRev; protected ImageButton butFF; protected TextView txtvFF; @@ -415,7 +418,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity && controller.getMedia() != null) { txtvPosition.setText(Converter .getDurationStringLong(currentPosition)); - if(timeLeft) { + if(showTimeLeft) { txtvLength.setText("-"+Converter .getDurationStringLong(duration - currentPosition)); } @@ -445,6 +448,8 @@ public abstract class MediaplayerActivity extends ActionBarActivity protected boolean loadMediaInfo() { Log.d(TAG, "loadMediaInfo()"); Playable media = controller.getMedia(); + SharedPreferences prefs = getSharedPreferences(PREFS, MODE_PRIVATE); + showTimeLeft = prefs.getBoolean(PREF_SHOW_TIME_LEFT,false); if (media != null) { txtvPosition.setText(Converter.getDurationStringLong((media .getPosition()))); @@ -455,6 +460,10 @@ public abstract class MediaplayerActivity extends ActionBarActivity float progress = ((float) media.getPosition()) / media.getDuration(); sbPosition.setProgress((int) (progress * sbPosition.getMax())); + if(showTimeLeft) { + txtvLength.setText("-"+Converter.getDurationStringLong((media + .getDuration()-media.getPosition()))); + } } return true; } else { @@ -467,11 +476,18 @@ public abstract class MediaplayerActivity extends ActionBarActivity sbPosition = (SeekBar) findViewById(R.id.sbPosition); txtvPosition = (TextView) findViewById(R.id.txtvPosition); + SharedPreferences prefs = getSharedPreferences(PREFS, MODE_PRIVATE); + SharedPreferences.Editor editor = prefs.edit(); + showTimeLeft = prefs.getBoolean(PREF_SHOW_TIME_LEFT,false); + Log.w("timeleft",showTimeLeft? "true":"false"); txtvLength = (TextView) findViewById(R.id.txtvLength); txtvLength.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - timeLeft = !timeLeft; + showTimeLeft = !showTimeLeft; + editor.putBoolean(PREF_SHOW_TIME_LEFT,showTimeLeft); + editor.commit(); + Log.w("timeleft on click",showTimeLeft? "true":"false"); } }); @@ -615,7 +631,7 @@ public abstract class MediaplayerActivity extends ActionBarActivity if (controller != null) { prog = controller.onSeekBarProgressChanged(seekBar, progress, fromUser, txtvPosition); - if(timeLeft && prog!=0) { + if(showTimeLeft && prog!=0) { int duration = controller.getDuration(); txtvLength.setText("-"+Converter .getDurationStringLong(duration - (int) (prog * duration))); -- cgit v1.2.3 From 83dbe4fe07a58a1ed48378cb77113a000c54aa8f Mon Sep 17 00:00:00 2001 From: dethstar Date: Sun, 20 Dec 2015 10:31:12 -0600 Subject: init editor onClick change log from warning to debug instantly reflect the user change onClick --- .../de/danoeh/antennapod/activity/MediaplayerActivity.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java index b27606539..ab3e2eb8d 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerActivity.java @@ -477,17 +477,25 @@ public abstract class MediaplayerActivity extends ActionBarActivity txtvPosition = (TextView) findViewById(R.id.txtvPosition); SharedPreferences prefs = getSharedPreferences(PREFS, MODE_PRIVATE); - SharedPreferences.Editor editor = prefs.edit(); showTimeLeft = prefs.getBoolean(PREF_SHOW_TIME_LEFT,false); - Log.w("timeleft",showTimeLeft? "true":"false"); + Log.d("timeleft",showTimeLeft? "true":"false"); txtvLength = (TextView) findViewById(R.id.txtvLength); txtvLength.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showTimeLeft = !showTimeLeft; + Playable media = controller.getMedia(); + if(showTimeLeft) { + txtvLength.setText("-"+Converter.getDurationStringLong((media + .getDuration()-media.getPosition()))); + }else{ + txtvLength.setText("-"+Converter.getDurationStringLong((media.getDuration()))); + } + + SharedPreferences.Editor editor = prefs.edit(); editor.putBoolean(PREF_SHOW_TIME_LEFT,showTimeLeft); editor.commit(); - Log.w("timeleft on click",showTimeLeft? "true":"false"); + Log.d("timeleft on click",showTimeLeft? "true":"false"); } }); -- cgit v1.2.3