diff options
author | Sai Cheemalapati <saicheems@google.com> | 2014-07-14 15:06:17 -0700 |
---|---|---|
committer | Sai Cheemalapati <saicheems@google.com> | 2014-07-15 15:25:43 -0700 |
commit | cee1e65f0c411e35c4521922c3e9def13e01fe64 (patch) | |
tree | f1bbb4dcf920738a0c79e2669261a4a2be77b84e /src/com/android/dialer/calllog/CallLogAdapter.java | |
parent | 434dbcc2f581619f79a691e1a39c5e69003a9d16 (diff) |
Added a dialog to confirm caller id reporting.
Database and call log are now updated when user confirms.
Bug: 11150383
Change-Id: Iafaca2172f2d44a6edf8514f7d900888dab9cf0e
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 f4b9f3a94..199b0b03a 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, @@ -943,10 +950,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); + } } }); } @@ -993,6 +999,8 @@ public class CallLogAdapter extends GroupingListAdapter ); if (views.isExternal && !views.reported) { views.reportButtonView.setVisibility(View.VISIBLE); + } else { + views.reportButtonView.setVisibility(View.GONE); } } @@ -1392,4 +1400,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(); + } } |