From 0c5fb5926ac9b9e9ce593054adf2cc96950101ac Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Mon, 12 May 2014 13:34:54 -0700 Subject: Changing colors of the incoming and outgoing call icons. Removed separate drawables for the different variations and instead rely on a single white icon which gets colored and rotated as needed. Bug: 13962594 Change-Id: Id35efd7f2675bf118b3895e98933ce43f90423d1 --- res/drawable-hdpi/ic_call_arrow.png | Bin 0 -> 538 bytes res/drawable-hdpi/ic_call_incoming_holo_dark.png | Bin 574 -> 0 bytes res/drawable-hdpi/ic_call_missed_holo_dark.png | Bin 569 -> 0 bytes res/drawable-hdpi/ic_call_outgoing_holo_dark.png | Bin 585 -> 0 bytes res/drawable-mdpi/ic_call_arrow.png | Bin 0 -> 455 bytes res/drawable-mdpi/ic_call_incoming_holo_dark.png | Bin 458 -> 0 bytes res/drawable-mdpi/ic_call_missed_holo_dark.png | Bin 456 -> 0 bytes res/drawable-mdpi/ic_call_outgoing_holo_dark.png | Bin 446 -> 0 bytes res/drawable-xhdpi/ic_call_arrow.png | Bin 0 -> 627 bytes res/drawable-xhdpi/ic_call_incoming_holo_dark.png | Bin 662 -> 0 bytes res/drawable-xhdpi/ic_call_missed_holo_dark.png | Bin 657 -> 0 bytes res/drawable-xhdpi/ic_call_outgoing_holo_dark.png | Bin 701 -> 0 bytes res/drawable-xxhdpi/ic_call_arrow.png | Bin 0 -> 1203 bytes res/drawable-xxhdpi/ic_call_incoming_holo_dark.png | Bin 1272 -> 0 bytes res/drawable-xxhdpi/ic_call_missed_holo_dark.png | Bin 1272 -> 0 bytes res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png | Bin 1295 -> 0 bytes res/values/colors.xml | 6 ++ .../android/dialer/calllog/CallTypeIconsView.java | 71 ++++++++++++++++++++- 18 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 res/drawable-hdpi/ic_call_arrow.png delete mode 100644 res/drawable-hdpi/ic_call_incoming_holo_dark.png delete mode 100644 res/drawable-hdpi/ic_call_missed_holo_dark.png delete mode 100644 res/drawable-hdpi/ic_call_outgoing_holo_dark.png create mode 100644 res/drawable-mdpi/ic_call_arrow.png delete mode 100644 res/drawable-mdpi/ic_call_incoming_holo_dark.png delete mode 100644 res/drawable-mdpi/ic_call_missed_holo_dark.png delete mode 100644 res/drawable-mdpi/ic_call_outgoing_holo_dark.png create mode 100644 res/drawable-xhdpi/ic_call_arrow.png delete mode 100644 res/drawable-xhdpi/ic_call_incoming_holo_dark.png delete mode 100644 res/drawable-xhdpi/ic_call_missed_holo_dark.png delete mode 100644 res/drawable-xhdpi/ic_call_outgoing_holo_dark.png create mode 100644 res/drawable-xxhdpi/ic_call_arrow.png delete mode 100644 res/drawable-xxhdpi/ic_call_incoming_holo_dark.png delete mode 100644 res/drawable-xxhdpi/ic_call_missed_holo_dark.png delete mode 100644 res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png diff --git a/res/drawable-hdpi/ic_call_arrow.png b/res/drawable-hdpi/ic_call_arrow.png new file mode 100644 index 000000000..14a33e39f Binary files /dev/null and b/res/drawable-hdpi/ic_call_arrow.png differ diff --git a/res/drawable-hdpi/ic_call_incoming_holo_dark.png b/res/drawable-hdpi/ic_call_incoming_holo_dark.png deleted file mode 100644 index 8351f4805..000000000 Binary files a/res/drawable-hdpi/ic_call_incoming_holo_dark.png and /dev/null differ diff --git a/res/drawable-hdpi/ic_call_missed_holo_dark.png b/res/drawable-hdpi/ic_call_missed_holo_dark.png deleted file mode 100644 index 7c17c3010..000000000 Binary files a/res/drawable-hdpi/ic_call_missed_holo_dark.png and /dev/null differ diff --git a/res/drawable-hdpi/ic_call_outgoing_holo_dark.png b/res/drawable-hdpi/ic_call_outgoing_holo_dark.png deleted file mode 100644 index 3b9e0f8a9..000000000 Binary files a/res/drawable-hdpi/ic_call_outgoing_holo_dark.png and /dev/null differ diff --git a/res/drawable-mdpi/ic_call_arrow.png b/res/drawable-mdpi/ic_call_arrow.png new file mode 100644 index 000000000..169cf2934 Binary files /dev/null and b/res/drawable-mdpi/ic_call_arrow.png differ diff --git a/res/drawable-mdpi/ic_call_incoming_holo_dark.png b/res/drawable-mdpi/ic_call_incoming_holo_dark.png deleted file mode 100644 index 8dcb350bc..000000000 Binary files a/res/drawable-mdpi/ic_call_incoming_holo_dark.png and /dev/null differ diff --git a/res/drawable-mdpi/ic_call_missed_holo_dark.png b/res/drawable-mdpi/ic_call_missed_holo_dark.png deleted file mode 100644 index af030cf13..000000000 Binary files a/res/drawable-mdpi/ic_call_missed_holo_dark.png and /dev/null differ diff --git a/res/drawable-mdpi/ic_call_outgoing_holo_dark.png b/res/drawable-mdpi/ic_call_outgoing_holo_dark.png deleted file mode 100644 index 38a01b7a6..000000000 Binary files a/res/drawable-mdpi/ic_call_outgoing_holo_dark.png and /dev/null differ diff --git a/res/drawable-xhdpi/ic_call_arrow.png b/res/drawable-xhdpi/ic_call_arrow.png new file mode 100644 index 000000000..6f1366018 Binary files /dev/null and b/res/drawable-xhdpi/ic_call_arrow.png differ diff --git a/res/drawable-xhdpi/ic_call_incoming_holo_dark.png b/res/drawable-xhdpi/ic_call_incoming_holo_dark.png deleted file mode 100644 index 8eb5f3d8b..000000000 Binary files a/res/drawable-xhdpi/ic_call_incoming_holo_dark.png and /dev/null differ diff --git a/res/drawable-xhdpi/ic_call_missed_holo_dark.png b/res/drawable-xhdpi/ic_call_missed_holo_dark.png deleted file mode 100644 index 6d09a4e95..000000000 Binary files a/res/drawable-xhdpi/ic_call_missed_holo_dark.png and /dev/null differ diff --git a/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png b/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png deleted file mode 100644 index 636050403..000000000 Binary files a/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png and /dev/null differ diff --git a/res/drawable-xxhdpi/ic_call_arrow.png b/res/drawable-xxhdpi/ic_call_arrow.png new file mode 100644 index 000000000..0364ee015 Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_arrow.png differ diff --git a/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png b/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png deleted file mode 100644 index 12769173b..000000000 Binary files a/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png and /dev/null differ diff --git a/res/drawable-xxhdpi/ic_call_missed_holo_dark.png b/res/drawable-xxhdpi/ic_call_missed_holo_dark.png deleted file mode 100644 index 8919fd3c9..000000000 Binary files a/res/drawable-xxhdpi/ic_call_missed_holo_dark.png and /dev/null differ diff --git a/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png b/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png deleted file mode 100644 index 192bbf6a3..000000000 Binary files a/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png and /dev/null differ diff --git a/res/values/colors.xml b/res/values/colors.xml index fa0fc3409..e771f0ae1 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -103,4 +103,10 @@ #b3b3b3 + + + #ff2e58 + + + #2aad6f diff --git a/src/com/android/dialer/calllog/CallTypeIconsView.java b/src/com/android/dialer/calllog/CallTypeIconsView.java index a65f2c279..125ba6f29 100644 --- a/src/com/android/dialer/calllog/CallTypeIconsView.java +++ b/src/com/android/dialer/calllog/CallTypeIconsView.java @@ -17,7 +17,11 @@ package com.android.dialer.calllog; import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.PorterDuff; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.provider.CallLog.Calls; import android.util.AttributeSet; @@ -112,19 +116,80 @@ public class CallTypeIconsView extends View { } private static class Resources { + + /** + * Drawable representing an incoming answered call. + */ public final Drawable incoming; + + /** + * Drawable respresenting an outgoing call. + */ public final Drawable outgoing; + + /** + * Drawable representing an incoming missed call. + */ public final Drawable missed; + + /** + * Drawable representing a voicemail. + */ public final Drawable voicemail; + + /** + * The margin to use for icons. + */ public final int iconMargin; + /** + * Configures the call icon drawables. + * A single white call arrow which points down and left is used as a basis for all of the + * call arrow icons, applying rotation and colors as needed. + * + * @param context The current context. + */ public Resources(Context context) { final android.content.res.Resources r = context.getResources(); - incoming = r.getDrawable(R.drawable.ic_call_incoming_holo_dark); - outgoing = r.getDrawable(R.drawable.ic_call_outgoing_holo_dark); - missed = r.getDrawable(R.drawable.ic_call_missed_holo_dark); + + incoming = r.getDrawable(R.drawable.ic_call_arrow); + incoming.setColorFilter(r.getColor(R.color.answered_call), PorterDuff.Mode.MULTIPLY); + + // Create a rotated instance of the call arrow for outgoing calls. + outgoing = getRotatedDrawable(r, R.drawable.ic_call_arrow, 180f); + outgoing.setColorFilter(r.getColor(R.color.answered_call), PorterDuff.Mode.MULTIPLY); + + // Need to make a copy of the arrow drawable, otherwise the same instance colored + // above will be recolored here. + missed = r.getDrawable(R.drawable.ic_call_arrow).mutate(); + missed.setColorFilter(r.getColor(R.color.missed_call), PorterDuff.Mode.MULTIPLY); + voicemail = r.getDrawable(R.drawable.ic_call_voicemail_holo_dark); iconMargin = r.getDimensionPixelSize(R.dimen.call_log_icon_margin); } + + /** + * Retrieves a copy of the specified drawable resource, rotated by a specified angle. + * + * @param resources The current resources. + * @param resourceId The resource ID of the drawable to rotate. + * @param angle The angle of rotation. + * @return Rotated drawable. + */ + private Drawable getRotatedDrawable( + android.content.res.Resources resources, int resourceId, float angle) { + + // Get the original drawable and make a copy which will be rotated. + Bitmap original = BitmapFactory.decodeResource(resources, resourceId); + Bitmap rotated = Bitmap.createBitmap( + original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888); + + // Perform the rotation. + Canvas tempCanvas = new Canvas(rotated); + tempCanvas.rotate(angle, original.getWidth()/2, original.getHeight()/2); + tempCanvas.drawBitmap(original, 0, 0, null); + + return new BitmapDrawable(resources,rotated); + } } } -- cgit v1.2.3