diff options
Diffstat (limited to 'src/com/android/dialer/calllog/CallLogAdapter.java')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogAdapter.java | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java index d70a40dea..16be30871 100644 --- a/src/com/android/dialer/calllog/CallLogAdapter.java +++ b/src/com/android/dialer/calllog/CallLogAdapter.java @@ -89,6 +89,11 @@ public class CallLogAdapter extends GroupingListAdapter public void fetchCalls(); } + /** Implements onClickListener for the report button. */ + public interface OnReportButtonClickListener { + public void onReportButtonClick(String number); + } + /** * Stores a phone number of a call with the country code where it originally occurred. * <p> @@ -133,6 +138,7 @@ public class CallLogAdapter extends GroupingListAdapter private final ContactInfoHelper mContactInfoHelper; private final CallFetcher mCallFetcher; private final Toast mReportedToast; + private final OnReportButtonClickListener mOnReportButtonClickListener; private ViewTreeObserver mViewTreeObserver = null; /** @@ -344,7 +350,7 @@ public class CallLogAdapter extends GroupingListAdapter public CallLogAdapter(Context context, CallFetcher callFetcher, ContactInfoHelper contactInfoHelper, CallItemExpandedListener callItemExpandedListener, - boolean isCallLog) { + OnReportButtonClickListener onReportButtonClickListener, boolean isCallLog) { super(context); mContext = context; @@ -353,6 +359,7 @@ public class CallLogAdapter extends GroupingListAdapter mIsCallLog = isCallLog; mCallItemExpandedListener = callItemExpandedListener; + mOnReportButtonClickListener = onReportButtonClickListener; mReportedToast = Toast.makeText(mContext, R.string.toast_caller_id_reported, Toast.LENGTH_SHORT); @@ -697,10 +704,6 @@ public class CallLogAdapter extends GroupingListAdapter // when the user expands the actions ViewStub. } - // Restore expansion state of the row on rebind. Inflate the actions ViewStub if required, - // and set its visibility state accordingly. - expandOrCollapseActions(callLogItemView, isExpanded(rowId)); - // Lookup contacts with this number NumberWithCountryIso numberCountryIso = new NumberWithCountryIso(number, countryIso); ExpirableCache.CachedValue<ContactInfo> cachedInfo = @@ -759,6 +762,10 @@ public class CallLogAdapter extends GroupingListAdapter views.reported = info.isBadData; views.isExternal = mContactInfoHelper.isExternal(info.sourceType); + // Restore expansion state of the row on rebind. Inflate the actions ViewStub if required, + // and set its visibility state accordingly. + expandOrCollapseActions(callLogItemView, isExpanded(rowId)); + if (TextUtils.isEmpty(name)) { details = new PhoneCallDetails(number, numberPresentation, formattedNumber, countryIso, geocode, callTypes, date, @@ -949,10 +956,9 @@ public class CallLogAdapter extends GroupingListAdapter views.reportButtonView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - mReportedToast.show(); - ((CallLogListItemViews) callLogItem.getTag()).reported = true; - v.setVisibility(View.GONE); - // TODO: Set the entry as reported in the database. + if (mOnReportButtonClickListener != null) { + mOnReportButtonClickListener.onReportButtonClick(views.number); + } } }); } @@ -1014,6 +1020,8 @@ public class CallLogAdapter extends GroupingListAdapter if (views.isExternal && !views.reported) { views.reportButtonView.setVisibility(View.VISIBLE); + } else { + views.reportButtonView.setVisibility(View.GONE); } } @@ -1413,4 +1421,9 @@ public class CallLogAdapter extends GroupingListAdapter return mContext.getResources().getString(R.string.call_log_header_other); } } + + public void onBadDataReported(String number) { + mContactInfoCache.expireAll(); + mReportedToast.show(); + } } |