From 11e41baac63a42d7ddb7ba2cab40ee55443d262f Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Mon, 21 Apr 2014 12:39:20 -0700 Subject: Overriding application icon with activity icon where available. Change-Id: I03ee8f806b3853183db7f96e71f1684c72b79c57 --- packages/SystemUI/res/layout/recents_task_view.xml | 7 ------- .../systemui/recents/RecentsTaskLoader.java | 5 ++++- .../com/android/systemui/recents/model/Task.java | 5 +++-- .../systemui/recents/views/TaskBarView.java | 22 +++++++++------------- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/packages/SystemUI/res/layout/recents_task_view.xml b/packages/SystemUI/res/layout/recents_task_view.xml index 7f640328cd9e..4442bca85915 100644 --- a/packages/SystemUI/res/layout/recents_task_view.xml +++ b/packages/SystemUI/res/layout/recents_task_view.xml @@ -63,13 +63,6 @@ android:maxLines="2" android:ellipsize="marquee" android:fadingEdge="horizontal" /> - diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java index fd0f6d12dc4f..da265e1754ef 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsTaskLoader.java @@ -415,7 +415,10 @@ public class RecentsTaskLoader { ActivityInfo info = ssp.getActivityInfo(t.baseIntent.getComponent(), t.userId); String activityLabel = (t.activityLabel == null ? ssp.getActivityLabel(info) : t.activityLabel.toString()); - Bitmap activityIcon = t.activityIcon; + BitmapDrawable activityIcon = null; + if (t.activityIcon != null) { + activityIcon = new BitmapDrawable(res, t.activityIcon); + } boolean isForemostTask = (i == (taskCount - 1)); // Create a new task diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java index ff062f6c4231..1566a49d3421 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java @@ -18,6 +18,7 @@ package com.android.systemui.recents.model; import android.content.Intent; import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; @@ -69,8 +70,8 @@ public class Task { public TaskKey key; public Drawable applicationIcon; + public Drawable activityIcon; public String activityLabel; - public Bitmap activityIcon; public Bitmap thumbnail; public boolean isActive; public int userId; @@ -82,7 +83,7 @@ public class Task { } public Task(int id, boolean isActive, Intent intent, String activityTitle, - Bitmap activityIcon, int userId) { + BitmapDrawable activityIcon, int userId) { this.key = new TaskKey(id, intent, userId); this.activityLabel = activityTitle; this.activityIcon = activityIcon; diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java index c9a6d67eb561..124f11e3dd4b 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskBarView.java @@ -31,7 +31,6 @@ class TaskBarView extends FrameLayout { Task mTask; ImageView mApplicationIcon; - ImageView mActivityIcon; TextView mActivityDescription; public TaskBarView(Context context) { @@ -54,23 +53,22 @@ class TaskBarView extends FrameLayout { protected void onFinishInflate() { // Initialize the icon and description views mApplicationIcon = (ImageView) findViewById(R.id.application_icon); - mActivityIcon = (ImageView) findViewById(R.id.activity_icon); mActivityDescription = (TextView) findViewById(R.id.activity_description); } /** Binds the bar view to the task */ void rebindToTask(Task t, boolean animate) { mTask = t; - if (t.applicationIcon != null) { + // If an activity icon is defined, then we use that as the primary icon to show in the bar, + // otherwise, we fall back to the application icon + if (t.activityIcon != null) { + mApplicationIcon.setImageDrawable(t.activityIcon); + } else if (t.applicationIcon != null) { mApplicationIcon.setImageDrawable(t.applicationIcon); - mActivityDescription.setText(t.activityLabel); - if (t.activityIcon != null) { - mActivityIcon.setImageBitmap(t.activityIcon); - mActivityIcon.setVisibility(View.VISIBLE); - } - if (animate) { - // XXX: Investigate how expensive it will be to create a second bitmap and crossfade - } + } + mActivityDescription.setText(t.activityLabel); + if (animate) { + // XXX: Investigate how expensive it will be to create a second bitmap and crossfade } } @@ -78,8 +76,6 @@ class TaskBarView extends FrameLayout { void unbindFromTask() { mTask = null; mApplicationIcon.setImageDrawable(null); - mActivityIcon.setImageBitmap(null); - mActivityIcon.setVisibility(View.INVISIBLE); mActivityDescription.setText(""); } } -- cgit v1.2.3-59-g8ed1b