diff --git a/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageActivity.java b/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageActivity.java index 5a2158718..0acae6b69 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/revealable/ViewOnceMessageActivity.java @@ -36,9 +36,6 @@ public class ViewOnceMessageActivity extends PassphraseRequiredActionBarActivity private static final String KEY_MESSAGE_ID = "message_id"; private static final String KEY_URI = "uri"; - private static final int OVERLAY_TIMEOUT_S = 2; - private static final int FADE_OUT_DURATION_MS = 200; - private ImageView image; private VideoPlayer video; private View closeButton; @@ -46,20 +43,14 @@ public class ViewOnceMessageActivity extends PassphraseRequiredActionBarActivity private ViewOnceMessageViewModel viewModel; private Uri uri; - private int updateCounter; - private final Handler handler = new Handler(Looper.getMainLooper()); private final Runnable durationUpdateRunnable = () -> { - long timeLeft = TimeUnit.MILLISECONDS.toSeconds(video.getDuration()) - updateCounter; + long timeLeft = TimeUnit.MILLISECONDS.toSeconds(video.getDuration() - video.getPlaybackPosition()); long minutes = timeLeft / 60; long seconds = timeLeft % 60; + duration.setText(getString(R.string.ViewOnceMessageActivity_video_duration, minutes, seconds)); - updateCounter++; - if (updateCounter > OVERLAY_TIMEOUT_S) { - animateOutOverlay(); - } else { - scheduleDurationUpdate(); - } + scheduleDurationUpdate(); }; public static Intent getIntent(@NonNull Context context, long messageId, @NonNull Uri uri) { @@ -108,7 +99,6 @@ public class ViewOnceMessageActivity extends PassphraseRequiredActionBarActivity @Override public void onPlayerReady() { - updateCounter = 0; handler.post(durationUpdateRunnable); } @@ -163,13 +153,8 @@ public class ViewOnceMessageActivity extends PassphraseRequiredActionBarActivity .into(image); } - private void animateOutOverlay() { - duration.animate().alpha(0f).setDuration(200).start(); - closeButton.animate().alpha(0f).setDuration(200).start(); - } - private void scheduleDurationUpdate() { - handler.postDelayed(durationUpdateRunnable, 1000L); + handler.postDelayed(durationUpdateRunnable, 100); } private void cancelDurationUpdate() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java b/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java index ce7f7286d..0d38a618a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/video/VideoPlayer.java @@ -135,6 +135,13 @@ public class VideoPlayer extends FrameLayout { return 0L; } + public long getPlaybackPosition() { + if (this.exoPlayer != null) { + return this.exoPlayer.getCurrentPosition(); + } + return 0L; + } + public void setWindow(@Nullable Window window) { this.window = window; }