Make QuickContactActivity look at the sourceBounds property of Intent as well.
diff --git a/src/com/android/contacts/ui/QuickContactActivity.java b/src/com/android/contacts/ui/QuickContactActivity.java
index d17e3be..b5e445f 100644
--- a/src/com/android/contacts/ui/QuickContactActivity.java
+++ b/src/com/android/contacts/ui/QuickContactActivity.java
@@ -65,13 +65,30 @@
final Bundle extras = intent.getExtras();
// Read requested parameters for displaying
- final Rect target = (Rect)extras.getParcelable(QuickContact.EXTRA_TARGET_RECT);
+ final Rect target = getTargetRect(intent);
final int mode = extras.getInt(QuickContact.EXTRA_MODE, QuickContact.MODE_MEDIUM);
final String[] excludeMimes = extras.getStringArray(QuickContact.EXTRA_EXCLUDE_MIMES);
mQuickContact.show(lookupUri, target, mode, excludeMimes);
}
+ private Rect getTargetRect(Intent intent) {
+ Rect target = intent.getSourceBounds();
+ if (target != null) {
+ return target;
+ }
+ final Bundle extras = intent.getExtras();
+ try {
+ target = (Rect)extras.getParcelable(QuickContact.EXTRA_TARGET_RECT);
+ if (target != null) {
+ return target;
+ }
+ } catch (ClassCastException ex) {
+ // fall through
+ }
+ return new Rect(0, 0, 0, 0);
+ }
+
/** {@inheritDoc} */
@Override
public void onBackPressed() {