summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2014-05-12 13:34:54 -0700
committerTyler Gunn <tgunn@google.com>2014-05-12 13:34:54 -0700
commit0c5fb5926ac9b9e9ce593054adf2cc96950101ac (patch)
tree648860d888d86d98f1f00f4fb364c2f3404edb83
parent861fd2a2737051843582c4261567342016853868 (diff)
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
-rw-r--r--res/drawable-hdpi/ic_call_arrow.pngbin0 -> 538 bytes
-rw-r--r--res/drawable-hdpi/ic_call_incoming_holo_dark.pngbin574 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_call_missed_holo_dark.pngbin569 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_call_outgoing_holo_dark.pngbin585 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_call_arrow.pngbin0 -> 455 bytes
-rw-r--r--res/drawable-mdpi/ic_call_incoming_holo_dark.pngbin458 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_call_missed_holo_dark.pngbin456 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_call_outgoing_holo_dark.pngbin446 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_call_arrow.pngbin0 -> 627 bytes
-rw-r--r--res/drawable-xhdpi/ic_call_incoming_holo_dark.pngbin662 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_call_missed_holo_dark.pngbin657 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_call_outgoing_holo_dark.pngbin701 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_call_arrow.pngbin0 -> 1203 bytes
-rw-r--r--res/drawable-xxhdpi/ic_call_incoming_holo_dark.pngbin1272 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_call_missed_holo_dark.pngbin1272 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_call_outgoing_holo_dark.pngbin1295 -> 0 bytes
-rw-r--r--res/values/colors.xml6
-rw-r--r--src/com/android/dialer/calllog/CallTypeIconsView.java71
18 files changed, 74 insertions, 3 deletions
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
--- /dev/null
+++ b/res/drawable-hdpi/ic_call_arrow.png
Binary files 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
--- a/res/drawable-hdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-hdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-hdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files 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
--- /dev/null
+++ b/res/drawable-mdpi/ic_call_arrow.png
Binary files 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
--- a/res/drawable-mdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-mdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-mdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files 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
--- /dev/null
+++ b/res/drawable-xhdpi/ic_call_arrow.png
Binary files 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
--- a/res/drawable-xhdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-xhdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-xhdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files 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
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_call_arrow.png
Binary files 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
--- a/res/drawable-xxhdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-xxhdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files 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
--- a/res/drawable-xxhdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files 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 @@
<!-- Color of action text for expanded call log entries which is disabled. -->
<color name="call_log_disabled_text">#b3b3b3</color>
+
+ <!-- Color for missed call icons. -->
+ <color name="missed_call">#ff2e58</color>
+
+ <!-- Color for answered or outgoing call icons. -->
+ <color name="answered_call">#2aad6f</color>
</resources>
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);
+ }
}
}