Merge "Lookup badge member variables correctly during bindBadge" into lmp-mr1-dev
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 5e762c7..99bf386 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -1059,31 +1059,34 @@
             final ViewStub stub = (ViewStub) view.findViewById(R.id.link_stub);
             if (UriUtils.isEncodedContactUri(info.lookupUri)) {
                 if (stub != null) {
-                    final View inflated = stub.inflate();
-                    inflated.setVisibility(View.VISIBLE);
-                    mBadgeContainer = inflated.findViewById(R.id.badge_link_container);
-                    mBadgeImageView = (ImageView) inflated.findViewById(R.id.badge_image);
-                    mBadgeText = (TextView) inflated.findViewById(R.id.badge_text);
+                    mBadgeContainer = stub.inflate();
+                } else {
+                    mBadgeContainer = view.findViewById(R.id.badge_container);
                 }
 
-                mBadgeContainer.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        final Intent intent =
-                                DialtactsActivity.getAddNumberToContactIntent(details.number);
-                        DialerUtils.startActivityWithErrorToast(mContext, intent,
-                                R.string.add_contact_not_available);
-                    }
-                });
+                mBadgeContainer.setVisibility(View.VISIBLE);
+                mBadgeImageView = (ImageView) mBadgeContainer.findViewById(R.id.badge_image);
+                mBadgeText = (TextView) mBadgeContainer.findViewById(R.id.badge_text);
+
+                final View clickableArea = mBadgeContainer.findViewById(R.id.badge_link_container);
+                if (clickableArea != null) {
+                    clickableArea.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            final Intent intent =
+                                    DialtactsActivity.getAddNumberToContactIntent(details.number);
+                            DialerUtils.startActivityWithErrorToast(mContext, intent,
+                                    R.string.add_contact_not_available);
+                        }
+                    });
+                }
                 mBadgeImageView.setImageResource(R.drawable.ic_person_add_24dp);
                 mBadgeText.setText(R.string.recentCalls_addToContact);
             } else {
                 // Hide badge if it was previously shown.
-                if (stub == null) {
-                    final View container = view.findViewById(R.id.badge_container);
-                    if (container != null) {
-                        container.setVisibility(View.GONE);
-                    }
+                mBadgeContainer = view.findViewById(R.id.badge_container);
+                if (mBadgeContainer != null) {
+                    mBadgeContainer.setVisibility(View.GONE);
                 }
             }
         }