Adding proper chat capability icons to contact detail
Change-Id: I4d9e01e08a8d70bb6e1591f92436a5ab7c194be6
diff --git a/src/com/android/contacts/ContactPresenceIconUtil.java b/src/com/android/contacts/ContactPresenceIconUtil.java
index 1a2d58e..81a1bed 100644
--- a/src/com/android/contacts/ContactPresenceIconUtil.java
+++ b/src/com/android/contacts/ContactPresenceIconUtil.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.graphics.drawable.Drawable;
+import android.provider.ContactsContract.CommonDataKinds.Im;
import android.provider.ContactsContract.StatusUpdates;
/**
@@ -26,7 +27,7 @@
public class ContactPresenceIconUtil {
/**
* Get the presence icon resource according the status.
- *
+ *
* @return null means don't show the status icon.
*/
public static Drawable getPresenceIcon (Context context, int status) {
@@ -45,4 +46,41 @@
return null;
}
}
+
+ public static Drawable getCapabilityIcon(Context context, int status, int chatCapability) {
+ int resourceId = 0;
+ if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
+ switch(status) {
+ case StatusUpdates.AVAILABLE:
+ resourceId = android.R.drawable.presence_video_online;
+ break;
+ case StatusUpdates.IDLE:
+ case StatusUpdates.AWAY:
+ resourceId = android.R.drawable.presence_video_away;
+ break;
+ case StatusUpdates.DO_NOT_DISTURB:
+ resourceId = android.R.drawable.presence_video_busy;
+ break;
+ }
+ } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
+ switch(status) {
+ case StatusUpdates.AVAILABLE:
+ resourceId = android.R.drawable.presence_audio_online;
+ break;
+ case StatusUpdates.IDLE:
+ case StatusUpdates.AWAY:
+ resourceId = android.R.drawable.presence_audio_away;
+ break;
+ case StatusUpdates.DO_NOT_DISTURB:
+ resourceId = android.R.drawable.presence_audio_busy;
+ break;
+ }
+ }
+
+ if (resourceId != 0) {
+ return context.getResources().getDrawable(resourceId);
+ }
+
+ return null;
+ }
}