summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java')
-rw-r--r--java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java39
1 files changed, 35 insertions, 4 deletions
diff --git a/java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java b/java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java
index 3becd271f..dd59712a4 100644
--- a/java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java
+++ b/java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java
@@ -20,6 +20,7 @@ import android.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
+import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.net.Uri;
import android.provider.VoicemailContract;
@@ -61,6 +62,8 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
private ImageButton deleteButton;
private TextView currentSeekBarPosition;
private SeekBar seekBarView;
+ private Drawable voicemailSeekHandleDisabled;
+
private TextView totalDurationView;
private TextView voicemailLoadingStatusView;
private Uri voicemailUri;
@@ -96,6 +99,11 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
deleteButton = findViewById(R.id.deleteButton);
totalDurationView = findViewById(R.id.playback_seek_total_duration);
voicemailLoadingStatusView = findViewById(R.id.playback_state_text);
+
+ voicemailSeekHandleDisabled =
+ getContext()
+ .getResources()
+ .getDrawable(R.drawable.ic_voicemail_seek_handle_disabled, getContext().getTheme());
}
private void setupListenersForMediaPlayerButtons() {
@@ -142,7 +150,9 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
Assert.isNotNull(voicemailEntryFromAdapter);
Uri uri = Uri.parse(voicemailEntryFromAdapter.voicemailUri());
+
numberVoicemailFrom = voicemailEntryFromAdapter.number().getRawInput().getNumber();
+
Assert.isNotNull(viewHolder);
Assert.isNotNull(uri);
Assert.isNotNull(listener);
@@ -167,6 +177,12 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
initializeMediaPlayerButtonsAndViews();
setupListenersForMediaPlayerButtons();
+ // TODO(uabdullah): Handle seekbar seeking properly (a bug)
+ seekBarView.setEnabled(false);
+ seekBarView.setThumb(voicemailSeekHandleDisabled);
+
+ updatePhoneIcon(numberVoicemailFrom);
+
// During the binding we only send a request to the adapter to tell us what the
// state of the media player should be and call that function.
// This could be the paused state, or the playing state of the resume state.
@@ -219,6 +235,23 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
}
}
+ /**
+ * Updates the phone icon depending if we can dial it or not.
+ *
+ * <p>Note: This must be called after the onClickListeners have been set, otherwise isClickable()
+ * state is not maintained.
+ */
+ private void updatePhoneIcon(@Nullable String numberVoicemailFrom) {
+ // TODO(uabdullah): Handle restricted/blocked numbers (a bug)
+ if (TextUtils.isEmpty(numberVoicemailFrom)) {
+ phoneButton.setEnabled(false);
+ phoneButton.setClickable(false);
+ } else {
+ phoneButton.setEnabled(true);
+ phoneButton.setClickable(true);
+ }
+ }
+
private final OnSeekBarChangeListener seekbarChangeListener =
new OnSeekBarChangeListener() {
@Override
@@ -466,11 +499,11 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
audioManager.setMode(AudioManager.STREAM_MUSIC);
if (audioManager.isSpeakerphoneOn()) {
LogUtil.i(
- "NewVoicemailMediaPlayer.phoneButtonListener", "speaker was on, turning it off");
+ "NewVoicemailMediaPlayer.speakerButtonListener", "speaker was on, turning it off");
audioManager.setSpeakerphoneOn(false);
} else {
LogUtil.i(
- "NewVoicemailMediaPlayer.phoneButtonListener", "speaker was off, turning it on");
+ "NewVoicemailMediaPlayer.speakerButtonListener", "speaker was off, turning it on");
audioManager.setSpeakerphoneOn(true);
}
// TODO(uabdullah): Handle colors of speaker icon when speaker is on and off.
@@ -478,8 +511,6 @@ public final class NewVoicemailMediaPlayerView extends LinearLayout {
};
// TODO(uabdullah): Add phone account handle (a bug)
- // TODO(uabdullah): If the call cannot be made then the phone icon should be greyed out
- // (a bug)
private final View.OnClickListener phoneButtonListener =
new View.OnClickListener() {
@Override