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 | |
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')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogActivity.java | 2 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/CallLogAdapter.java | 31 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/CallLogFragment.java | 21 | ||||
-rw-r--r-- | src/com/android/dialer/list/ListsFragment.java | 2 | ||||
-rw-r--r-- | src/com/android/dialerbind/ObjectFactory.java | 17 |
5 files changed, 53 insertions, 20 deletions
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java index 13d5f0356..f743f7ab5 100644 --- a/src/com/android/dialer/calllog/CallLogActivity.java +++ b/src/com/android/dialer/calllog/CallLogActivity.java @@ -179,4 +179,4 @@ public class CallLogActivity extends Activity implements CallLogQueryHandler.Lis public void onCallsFetched(Cursor statusCursor) { // Do nothing. Implemented to satisfy CallLogQueryHandler.Listener. } -}
\ No newline at end of file +} 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(); + } } diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java index 1668895ef..852370566 100644 --- a/src/com/android/dialer/calllog/CallLogFragment.java +++ b/src/com/android/dialer/calllog/CallLogFragment.java @@ -20,6 +20,7 @@ import android.animation.Animator; import android.animation.ValueAnimator; import android.animation.Animator.AnimatorListener; import android.app.Activity; +import android.app.DialogFragment; import android.app.KeyguardManager; import android.app.ListFragment; import android.content.Context; @@ -65,7 +66,7 @@ import java.util.List; * (all, missed or voicemails), specify it in the constructor. */ public class CallLogFragment extends ListFragment - implements CallLogQueryHandler.Listener, + implements CallLogQueryHandler.Listener, CallLogAdapter.OnReportButtonClickListener, CallLogAdapter.CallFetcher, CallLogAdapter.CallItemExpandedListener { private static final String TAG = "CallLogFragment"; @@ -178,7 +179,6 @@ public class CallLogFragment extends ListFragment @Override public void onCreate(Bundle state) { super.onCreate(state); - if (state != null) { mCallTypeFilter = state.getInt(KEY_FILTER_TYPE, mCallTypeFilter); mLogLimit = state.getInt(KEY_LOG_LIMIT, mLogLimit); @@ -187,8 +187,8 @@ public class CallLogFragment extends ListFragment } String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity()); - mAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this, new ContactInfoHelper( - getActivity(), currentCountryIso), this, true); + mAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this, + new ContactInfoHelper(getActivity(), currentCountryIso), this, this, true); setListAdapter(mAdapter); mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(), this, mLogLimit); @@ -666,4 +666,17 @@ public class CallLogFragment extends ListFragment return null; } + + public void onBadDataReported(String number) { + mAdapter.onBadDataReported(number); + mAdapter.notifyDataSetChanged(); + } + + public void onReportButtonClick(String number) { + DialogFragment df = ObjectFactory.getReportDialogFragment(number); + if (df != null) { + df.setTargetFragment(this, 0); + df.show(getActivity().getFragmentManager(), "report_dialog"); + } + } } diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java index e94555e2f..103eef780 100644 --- a/src/com/android/dialer/list/ListsFragment.java +++ b/src/com/android/dialer/list/ListsFragment.java @@ -220,7 +220,7 @@ public class ListsFragment extends Fragment implements CallLogQueryHandler.Liste this, 1); final String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity()); mCallLogAdapter = ObjectFactory.newCallLogAdapter(getActivity(), this, - new ContactInfoHelper(getActivity(), currentCountryIso), null, false); + new ContactInfoHelper(getActivity(), currentCountryIso), null, null, false); mMergedAdapter = new ShortcutCardsAdapter(getActivity(), this, mCallLogAdapter); } diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java index 97863116b..54a5821df 100644 --- a/src/com/android/dialerbind/ObjectFactory.java +++ b/src/com/android/dialerbind/ObjectFactory.java @@ -18,10 +18,12 @@ package com.android.dialerbind; import static com.android.dialer.calllog.CallLogAdapter.CallFetcher; +import android.app.DialogFragment; import android.content.Context; import com.android.dialer.calllog.CallLogAdapter; import com.android.dialer.calllog.CallLogAdapter.CallItemExpandedListener; +import com.android.dialer.calllog.CallLogAdapter.OnReportButtonClickListener; import com.android.dialer.calllog.ContactInfoHelper; import com.android.dialer.service.CachedNumberLookupService; @@ -43,10 +45,15 @@ public class ObjectFactory { * @param isCallLog Is this call log adapter being used on the call log? * @return Instance of CallLogAdapter. */ - public static CallLogAdapter newCallLogAdapter(Context context, CallFetcher callFetcher, - ContactInfoHelper contactInfoHelper, CallItemExpandedListener callItemExpandedListener, - boolean isCallLog) { - return new CallLogAdapter(context, callFetcher, contactInfoHelper, callItemExpandedListener, - isCallLog); + public static CallLogAdapter newCallLogAdapter(Context context, + CallFetcher callFetcher, ContactInfoHelper contactInfoHelper, + CallItemExpandedListener callItemExpandedListener, + OnReportButtonClickListener onReportButtonClickListener, boolean isCallLog) { + return new CallLogAdapter(context, callFetcher, contactInfoHelper, + callItemExpandedListener, onReportButtonClickListener, isCallLog); + } + + public static DialogFragment getReportDialogFragment(String number) { + return null; } } |