summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSai Cheemalapati <saicheems@google.com>2014-07-14 15:06:17 -0700
committerSai Cheemalapati <saicheems@google.com>2014-07-15 15:25:43 -0700
commitcee1e65f0c411e35c4521922c3e9def13e01fe64 (patch)
treef1bbb4dcf920738a0c79e2669261a4a2be77b84e
parent434dbcc2f581619f79a691e1a39c5e69003a9d16 (diff)
downloadandroid_packages_apps_Dialer-cee1e65f0c411e35c4521922c3e9def13e01fe64.tar.gz
android_packages_apps_Dialer-cee1e65f0c411e35c4521922c3e9def13e01fe64.tar.bz2
android_packages_apps_Dialer-cee1e65f0c411e35c4521922c3e9def13e01fe64.zip
Added a dialog to confirm caller id reporting.
Database and call log are now updated when user confirms. Bug: 11150383 Change-Id: Iafaca2172f2d44a6edf8514f7d900888dab9cf0e
-rw-r--r--src/com/android/dialer/calllog/CallLogActivity.java2
-rw-r--r--src/com/android/dialer/calllog/CallLogAdapter.java31
-rw-r--r--src/com/android/dialer/calllog/CallLogFragment.java21
-rw-r--r--src/com/android/dialer/list/ListsFragment.java2
-rw-r--r--src/com/android/dialerbind/ObjectFactory.java17
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogAdapterTest.java2
6 files changed, 54 insertions, 21 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;
}
}
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index f3679d4ed..b7f06d31c 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -212,7 +212,7 @@ public class CallLogAdapterTest extends AndroidTestCase {
public TestCallLogAdapter(Context context, CallFetcher callFetcher,
ContactInfoHelper contactInfoHelper) {
- super(context, callFetcher, contactInfoHelper, null, false);
+ super(context, callFetcher, contactInfoHelper, null, null, false);
}
@Override