summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2018-01-26 22:26:29 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-01-26 22:26:29 +0000
commite5f1e62682bec9f7bfa019b1820328fe98fa45bf (patch)
tree5e53c4dd5bbfcde694c8a177473d2e0c0f5edb65 /java/com/android/dialer/voicemail/listui/NewVoicemailMediaPlayerView.java
parentf0d56cafa4c8284cd83f23e08877f6a5cf0c5fac (diff)
parent351cbcf3aed969db9b03fbcfc941cf3e086b0720 (diff)
Merge changes If1ecc3b4,Ied1b369d,I4e492279,I30a4b7fe
* changes: Disable phone icon for unknown numbers in NUI Voicemail Pressing dial with an empty dialpad now queries the last number in NUI. Disable seekbar user seeking Add voice search to NUI.
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