summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2017-11-15 14:16:43 -0800
committerzachh <zachh@google.com>2017-11-18 07:30:22 +0000
commit8dab453962327e01c6f2e2a22d61540d1c3d6f47 (patch)
tree9e5f615daff70c09ac87f433ae16876f5b7d4079 /java
parent43073477f2f737d02976c593548a1bfa87f7031f (diff)
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
Diffstat (limited to 'java')
-rw-r--r--java/com/android/dialer/dialpadview/DialpadFragment.java2
-rw-r--r--java/com/android/dialer/dialpadview/res/layout/dialpad_fragment.xml1
-rw-r--r--java/com/android/dialer/widget/FloatingActionButtonController.java12
3 files changed, 10 insertions, 5 deletions
diff --git a/java/com/android/dialer/dialpadview/DialpadFragment.java b/java/com/android/dialer/dialpadview/DialpadFragment.java
index e85b57e33..8d11bcbe3 100644
--- a/java/com/android/dialer/dialpadview/DialpadFragment.java
+++ b/java/com/android/dialer/dialpadview/DialpadFragment.java
@@ -643,7 +643,7 @@ public class DialpadFragment extends Fragment
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 2f62e1407..2e6b6eca0 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 a0c4e6ddd..dde4d44ce 100644
--- a/java/com/android/dialer/widget/FloatingActionButtonController.java
+++ b/java/com/android/dialer/widget/FloatingActionButtonController.java
@@ -18,7 +18,7 @@ package com.android.dialer.widget;
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 @@ public class FloatingActionButtonController {
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 class FloatingActionButtonController {
}
}
- 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);
}
}