Dialpad FAB no longer loses it's icon on fragment resume.

There must be a bug in FloatingActionButton because when you call
setImageDrawable multiple times (possibly with the same drawable/icon), the FAB
renders with no icon present. That's why the icon would disappear in
Fragment#onResume.

Bug: 69006360
Test: manual
PiperOrigin-RevId: 175878924
Change-Id: I1c36be3f9aeb003410f0bdbb9d52b5a483262f03
diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java
index e85b57e..8d11bcb 100644
--- a/java/com/android/dialer/dialpadview/DialpadFragment.java
+++ b/java/com/android/dialer/dialpadview/DialpadFragment.java
@@ -643,7 +643,7 @@
       iconId = R.drawable.ic_wifi_calling;
     }
     mFloatingActionButtonController.changeIcon(
-        res.getDrawable(iconId, null), res.getString(R.string.description_dial_button));
+        iconId, res.getString(R.string.description_dial_button));
 
     mDialpadQueryListener =
         FragmentUtils.getParentUnsafe(this, OnDialpadQueryChangedListener.class);
diff --git a/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml b/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
index 2f62e14..2e6b6ec 100644
--- a/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
+++ b/java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml
@@ -66,6 +66,7 @@
       android:layout_centerHorizontal="true"
       android:contentDescription="@string/description_dial_button"
       android:src="@drawable/quantum_ic_call_vd_theme_24"
+      android:tint="#ffffff"
       app:backgroundTint="@color/dialpad_fab_green"
       app:colorControlNormal="#ffffff"
       app:elevation="@dimen/floating_action_button_translation_z"/>
diff --git a/java/com/android/dialer/widget/FloatingActionButtonController.java b/java/com/android/dialer/widget/FloatingActionButtonController.java
index a0c4e6d..dde4d44 100644
--- a/java/com/android/dialer/widget/FloatingActionButtonController.java
+++ b/java/com/android/dialer/widget/FloatingActionButtonController.java
@@ -18,7 +18,7 @@
 
 import android.app.Activity;
 import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
+import android.support.annotation.DrawableRes;
 import android.support.design.widget.FloatingActionButton;
 import android.support.design.widget.FloatingActionButton.OnVisibilityChangedListener;
 import android.view.View;
@@ -39,6 +39,7 @@
   private final int mFloatingActionButtonMarginRight;
   private final FloatingActionButton mFab;
   private final Interpolator mFabInterpolator;
+  private int mFabIconId = -1;
   private int mScreenWidth;
 
   public FloatingActionButtonController(Activity activity, FloatingActionButton fab) {
@@ -82,9 +83,12 @@
     }
   }
 
-  public void changeIcon(Drawable icon, String description) {
-    if (mFab.getDrawable() != icon || !mFab.getContentDescription().equals(description)) {
-      mFab.setImageDrawable(icon);
+  public void changeIcon(@DrawableRes int iconId, String description) {
+    if (this.mFabIconId != iconId) {
+      mFab.setImageResource(iconId);
+      this.mFabIconId = iconId;
+    }
+    if (!mFab.getContentDescription().equals(description)) {
       mFab.setContentDescription(description);
     }
   }