package com.smartisanos.sidebar; import com.smartisanos.sidebar.util.BitmapUtils; import com.smartisanos.sidebar.util.ContactItem; import com.smartisanos.sidebar.util.ContactManager; import com.smartisanos.sidebar.util.DingDingContact; import com.smartisanos.sidebar.util.Utils; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.text.TextUtils; import android.util.Log; public class DingDingReceiver extends BroadcastReceiver { private static final String TAG = DingDingReceiver.class.getName(); @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); ContactManager cm = ContactManager.getInstance(context); if ("com.alibaba.android.rimet.ShortCutSelectResult".equals(action)) { String encodedUid = intent.getStringExtra("user_id_string"); //maybe null, old version doesn't contain this key String sendUserId = intent.getStringExtra("send_user_id"); // old version for name String displayName = intent.getStringExtra("name"); if (TextUtils.isEmpty(displayName)) { // new version for name displayName = intent.getStringExtra("intent_key_user_name"); } // old version for avatar Bitmap avatar = intent.getParcelableExtra("avatar"); if (avatar == null) { // new version for avatar avatar = intent.getParcelableExtra("intent_key_user_avatar"); } if (TextUtils.isEmpty(encodedUid) || TextUtils.isEmpty(displayName) || avatar == null || avatar.getWidth() <= 0 || avatar.getHeight() <= 0) { Log.e(TAG, "invalid data from dingding !"); return; } avatar = BitmapUtils.getContactAvatar(context, avatar); ContactItem ci = new DingDingContact(context, Utils.getUidFromIntent(intent), sendUserId, encodedUid, avatar, displayName); cm.addContact(ci); } } }