Add delete action to voicemail in call log.

+ Cleanup some asset and variable naming.

Bug: 21239168
Change-Id: I4c99484bee1fcd300857cf44080c38e19a98cb5a
diff --git a/res/drawable-hdpi/ic_delete_wht_24dp.png b/res/drawable-hdpi/ic_delete_24dp.png
similarity index 100%
rename from res/drawable-hdpi/ic_delete_wht_24dp.png
rename to res/drawable-hdpi/ic_delete_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_delete_wht_24dp.png b/res/drawable-mdpi/ic_delete_24dp.png
similarity index 100%
rename from res/drawable-mdpi/ic_delete_wht_24dp.png
rename to res/drawable-mdpi/ic_delete_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_delete_wht_24dp.png b/res/drawable-xhdpi/ic_delete_24dp.png
similarity index 100%
rename from res/drawable-xhdpi/ic_delete_wht_24dp.png
rename to res/drawable-xhdpi/ic_delete_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_delete_wht_24dp.png b/res/drawable-xxhdpi/ic_delete_24dp.png
similarity index 100%
rename from res/drawable-xxhdpi/ic_delete_wht_24dp.png
rename to res/drawable-xxhdpi/ic_delete_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_delete_wht_24dp.png b/res/drawable-xxxhdpi/ic_delete_24dp.png
similarity index 100%
rename from res/drawable-xxxhdpi/ic_delete_wht_24dp.png
rename to res/drawable-xxxhdpi/ic_delete_24dp.png
Binary files differ
diff --git a/res/drawable/ic_calllog_delete.xml b/res/drawable/ic_calllog_delete.xml
deleted file mode 100644
index 2f9f0ae..0000000
--- a/res/drawable/ic_calllog_delete.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
-    android:src="@drawable/ic_delete_wht_24dp"
-    android:gravity="center"
-    android:tint="@color/actionbar_icon_color" />
diff --git a/res/layout/voicemail_playback_layout.xml b/res/layout/voicemail_playback_layout.xml
index 96feba6..97bb5f8 100644
--- a/res/layout/voicemail_playback_layout.xml
+++ b/res/layout/voicemail_playback_layout.xml
@@ -27,11 +27,6 @@
         android:layout_height="80dp"
         android:layout_marginTop="@dimen/call_detail_button_spacing">
 
-        <!-- SeekBar left-right margin decreased from redlines 72dp by 8dp to account for
-             half thumb width (thumb is 16dp).
-             Vertically, SeekBar and rate buttons should be below centre, position achieved by
-             making them centred but giving a difference between top and bottom padding,
-             difference is currently 10dp. -->
         <SeekBar
             android:id="@+id/playback_seek"
             android:layout_width="match_parent"
@@ -61,15 +56,12 @@
 
     </RelativeLayout>
 
-    <!-- Playback, speakerphone buttons. -->
-    <LinearLayout
-        android:id="@+id/buttons_linear_layout"
+    <LinearLayout android:id="@+id/buttons_linear_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal">
 
-        <ImageButton
-            android:id="@+id/playback_start_stop"
+        <ImageButton android:id="@+id/playback_start_stop"
             android:layout_width="match_parent"
             android:layout_height="58dp"
             android:layout_marginEnd="@dimen/call_detail_button_spacing"
@@ -78,8 +70,7 @@
             android:src="@drawable/ic_hold_pause"
             android:contentDescription="@string/voicemail_play_start_pause" />
 
-        <ImageButton
-            android:id="@+id/playback_speakerphone"
+        <ImageButton android:id="@+id/playback_speakerphone"
             android:layout_width="match_parent"
             android:layout_height="58dp"
             android:layout_weight="1"
@@ -87,6 +78,15 @@
             android:src="@drawable/ic_speakerphone_on"
             android:contentDescription="@string/description_playback_speakerphone" />
 
+        <ImageButton android:id="@+id/delete_voicemail"
+            android:layout_width="match_parent"
+            android:layout_height="58dp"
+            android:layout_weight="1"
+            android:background="?android:attr/selectableItemBackground"
+            android:src="@drawable/ic_delete_24dp"
+            android:tint="@color/voicemail_playback_icon_tint"
+            android:contentDescription="@string/recentCalls_trashVoicemail" />
+
     </LinearLayout>
 
 </LinearLayout>
diff --git a/res/menu/call_details_options.xml b/res/menu/call_details_options.xml
index a48687e..b98ec9e 100644
--- a/res/menu/call_details_options.xml
+++ b/res/menu/call_details_options.xml
@@ -14,23 +14,21 @@
      limitations under the License.
 -->
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
-    <item
-        android:id="@+id/menu_trash"
-        android:icon="@drawable/ic_calllog_delete"
+
+    <item android:id="@+id/menu_trash"
+        android:icon="@drawable/ic_delete_24dp"
         android:showAsAction="ifRoom"
         android:title="@string/recentCalls_trashVoicemail"
-        android:onClick="onMenuTrashVoicemail"
-    />
-    <item
-        android:id="@+id/menu_remove_from_call_log"
-        android:icon="@drawable/ic_calllog_delete"
+        android:onClick="onMenuTrashVoicemail" />
+
+    <item android:id="@+id/menu_remove_from_call_log"
+        android:icon="@drawable/ic_delete_24dp"
         android:showAsAction="ifRoom"
         android:title="@string/recentCalls_removeFromRecentList"
-        android:onClick="onMenuRemoveFromCallLog"
-    />
-    <item
-        android:id="@+id/menu_edit_number_before_call"
+        android:onClick="onMenuRemoveFromCallLog" />
+
+    <item android:id="@+id/menu_edit_number_before_call"
         android:title="@string/recentCalls_editNumberBeforeCall"
-        android:onClick="onMenuEditNumberBeforeCall"
-    />
+        android:onClick="onMenuEditNumberBeforeCall" />
+
 </menu>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 86ac9be..c1e71e1 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -39,6 +39,8 @@
     <!-- Tint of the recent card phone icon -->
     <color name="recent_call_log_item_phone_icon_tint">#000000</color>
 
+    <color name="voicemail_playback_icon_tint">#8e8e8e</color>
+
     <!--
          Colour of voicemail progress bar to the right of position indicator.
          Same as the background color of the dialer
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
index 703004d..0313f40 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
@@ -37,6 +37,7 @@
 
 import com.android.common.io.MoreCloseables;
 import com.android.dialer.R;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil;
 
 import com.google.common.base.Preconditions;
 
@@ -124,7 +125,7 @@
     /**
      * Handle state changes when the user manipulates the seek bar.
      */
-    private final OnSeekBarChangeListener seekBarChangeListener = new OnSeekBarChangeListener() {
+    private final OnSeekBarChangeListener mSeekBarChangeListener = new OnSeekBarChangeListener() {
         @Override
         public void onStartTrackingTouch(SeekBar seekBar) {
             if (mPresenter != null) {
@@ -148,7 +149,7 @@
     /**
      * Click listener to toggle speakerphone.
      */
-    private final View.OnClickListener speakerphoneListener = new View.OnClickListener() {
+    private final View.OnClickListener mSpeakerphoneListener = new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             if (mPresenter != null) {
@@ -160,7 +161,7 @@
     /**
      * Click listener to play or pause voicemail playback.
      */
-    private final View.OnClickListener startStopButtonListener = new View.OnClickListener() {
+    private final View.OnClickListener mStartStopButtonListener = new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             if (mPresenter == null) {
@@ -175,6 +176,16 @@
         }
     };
 
+    private final View.OnClickListener mDeleteButtonListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View view ) {
+            if (mPresenter == null) {
+                return;
+            }
+            CallLogAsyncTaskUtil.deleteVoicemail(mContext, mPresenter.getVoicemailUri(), null);
+        }
+    };
+
     private Context mContext;
     private VoicemailPlaybackPresenter mPresenter;
 
@@ -183,6 +194,7 @@
     private SeekBar mPlaybackSeek;
     private ImageButton mStartStopButton;
     private ImageButton mPlaybackSpeakerphone;
+    private ImageButton mDeleteButton;
     private TextView mPlaybackPosition;
 
     private PositionUpdater mPositionUpdater;
@@ -212,11 +224,13 @@
         mPlaybackSeek = (SeekBar) findViewById(R.id.playback_seek);
         mStartStopButton = (ImageButton) findViewById(R.id.playback_start_stop);
         mPlaybackSpeakerphone = (ImageButton) findViewById(R.id.playback_speakerphone);
+        mDeleteButton = (ImageButton) findViewById(R.id.delete_voicemail);
         mPlaybackPosition = (TextView) findViewById(R.id.playback_position_text);
 
-        mPlaybackSeek.setOnSeekBarChangeListener(seekBarChangeListener);
-        mStartStopButton.setOnClickListener(startStopButtonListener);
-        mPlaybackSpeakerphone.setOnClickListener(speakerphoneListener);
+        mPlaybackSeek.setOnSeekBarChangeListener(mSeekBarChangeListener);
+        mStartStopButton.setOnClickListener(mStartStopButtonListener);
+        mPlaybackSpeakerphone.setOnClickListener(mSpeakerphoneListener);
+        mDeleteButton.setOnClickListener(mDeleteButtonListener);
     }
 
     @Override
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
index 99d2734..ebe45a1 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
@@ -556,6 +556,10 @@
         return mAudioManager.isSpeakerphoneOn();
     }
 
+    public Uri getVoicemailUri() {
+        return mVoicemailUri;
+    }
+
     private static synchronized ScheduledExecutorService getScheduledExecutorServiceInstance() {
         if (mScheduledExecutorService == null) {
             mScheduledExecutorService = Executors.newScheduledThreadPool(NUMBER_OF_THREADS_IN_POOL);