diff options
Diffstat (limited to 'java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java')
-rw-r--r-- | java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java | 39 |
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 |