summaryrefslogtreecommitdiffstats
path: root/src/com/android/dialer/calllog
diff options
context:
space:
mode:
authorlinus_lee <llee@cyngn.com>2015-01-05 12:45:34 -0800
committerLinus Lee <llee@cyngn.com>2015-01-06 01:32:33 +0000
commit0aa14c90ab580d1f7185235d2613238235f2ce70 (patch)
tree1f1c9a0560d372cc4a6c097f674b7ea7d77e3034 /src/com/android/dialer/calllog
parent5406f450138cd7e2f355fe6aed6f6df5dab737f1 (diff)
downloadandroid_packages_apps_Dialer-0aa14c90ab580d1f7185235d2613238235f2ce70.tar.gz
android_packages_apps_Dialer-0aa14c90ab580d1f7185235d2613238235f2ce70.tar.bz2
android_packages_apps_Dialer-0aa14c90ab580d1f7185235d2613238235f2ce70.zip
Separate blacklist from missed filter in history/stats
Change-Id: I50e2467b7ac8568c6956c2dbc085985fd2f34d99 (cherry picked from commit 2f4890478123a3b6a9ba0a8b23f9a290f6c4ec73)
Diffstat (limited to 'src/com/android/dialer/calllog')
-rwxr-xr-xsrc/com/android/dialer/calllog/CallLogQueryHandler.java50
-rw-r--r--src/com/android/dialer/calllog/SpinnerContent.java9
2 files changed, 8 insertions, 51 deletions
diff --git a/src/com/android/dialer/calllog/CallLogQueryHandler.java b/src/com/android/dialer/calllog/CallLogQueryHandler.java
index 293c21e7c..b2399b9ea 100755
--- a/src/com/android/dialer/calllog/CallLogQueryHandler.java
+++ b/src/com/android/dialer/calllog/CallLogQueryHandler.java
@@ -159,49 +159,7 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
/** Fetches the list of calls in the call log. */
private void fetchCalls(int token, int callType, boolean newOnly, long newerThan) {
- // We need to check for NULL explicitly otherwise entries with where READ is NULL
- // may not match either the query or its negation.
- // We consider the calls that are not yet consumed (i.e. IS_READ = 0) as "new".
- StringBuilder where = new StringBuilder();
- List<String> selectionArgs = Lists.newArrayList();
-
- if (newOnly) {
- where.append(Calls.NEW);
- where.append(" = 1");
- }
-
- if (callType > CALL_TYPE_ALL) {
- if (where.length() > 0) {
- where.append(" AND ");
- }
- // Add a clause to fetch only items of type voicemail.
- where.append(String.format("(%s = ?)", Calls.TYPE));
- // Add a clause to fetch only items newer than the requested date
- selectionArgs.add(Integer.toString(callType));
- if (callType == Calls.MISSED_TYPE) {
- // also query for blacklisted calls as they are 'missed'
- where.append(" OR ");
- where.append(String.format("(%s = ?)", Calls.TYPE));
- selectionArgs.add(Integer.toString(Calls.BLACKLIST_TYPE));
- }
- }
-
- if (newerThan > 0) {
- if (where.length() > 0) {
- where.append(" AND ");
- }
- where.append(String.format("(%s > ?)", Calls.DATE));
- selectionArgs.add(Long.toString(newerThan));
- }
-
- final int limit = (mLogLimit == -1) ? NUM_LOGS_TO_DISPLAY : mLogLimit;
- final String selection = where.length() > 0 ? where.toString() : null;
- Uri uri = Calls.CONTENT_URI_WITH_VOICEMAIL.buildUpon()
- .appendQueryParameter(Calls.LIMIT_PARAM_KEY, Integer.toString(limit))
- .build();
- startQuery(token, null, uri,
- CallLogQuery._PROJECTION, selection, selectionArgs.toArray(EMPTY_STRING_ARRAY),
- Calls.DEFAULT_SORT_ORDER);
+ fetchCalls(token, callType, newOnly, newerThan, CALL_SUB_ALL);
}
private void fetchCalls(int token, int callType, boolean newOnly,
@@ -225,12 +183,6 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
where.append(String.format("(%s = ?)", Calls.TYPE));
// Add a clause to fetch only items newer than the requested date
selectionArgs.add(Integer.toString(callType));
- if (callType == Calls.MISSED_TYPE) {
- // also query for blacklisted calls as they are 'missed'
- where.append(" OR ");
- where.append(String.format("(%s = ?)", Calls.TYPE));
- selectionArgs.add(Integer.toString(Calls.BLACKLIST_TYPE));
- }
}
if (slotId > CALL_SUB_ALL) {
diff --git a/src/com/android/dialer/calllog/SpinnerContent.java b/src/com/android/dialer/calllog/SpinnerContent.java
index 614b594db..9679dd5db 100644
--- a/src/com/android/dialer/calllog/SpinnerContent.java
+++ b/src/com/android/dialer/calllog/SpinnerContent.java
@@ -42,7 +42,8 @@ public class SpinnerContent {
private static final int INDEX_CALL_TYPE_INCOMING = 1;
private static final int INDEX_CALL_TYPE_OUTGOING = 2;
private static final int INDEX_CALL_TYPE_MISSED = 3;
- private static final int INDEX_CALL_TYPE_VOICEMAIL = 4;
+ private static final int INDEX_CALL_TYPE_BLACKLIST = 4;
+ private static final int INDEX_CALL_TYPE_VOICEMAIL = 5;
public static void setSpinnerContentValue(Spinner spinner, int value) {
for (int i = 0, count = spinner.getCount(); i < count; i++) {
@@ -93,7 +94,7 @@ public class SpinnerContent {
public static List<SpinnerContent> setupStatusFilterContent(Context context,
boolean voicemailAvailable) {
// Didn't show the voice mail item if not available.
- int statusCount = voicemailAvailable ? 5 : 4;
+ int statusCount = voicemailAvailable ? 6 : 5;
ArrayList<SpinnerContent> values = new ArrayList<SpinnerContent>(statusCount);
for (int i = 0; i < statusCount; i++) {
int value = CallLogQueryHandler.CALL_TYPE_ALL;
@@ -115,6 +116,10 @@ public class SpinnerContent {
value = CallLog.Calls.MISSED_TYPE;
label = context.getString(R.string.call_log_missed_header);
break;
+ case INDEX_CALL_TYPE_BLACKLIST:
+ value = CallLog.Calls.BLACKLIST_TYPE;
+ label = context.getString(R.string.call_log_blacklist_header);
+ break;
case INDEX_CALL_TYPE_VOICEMAIL:
value = CallLog.Calls.VOICEMAIL_TYPE;
label = context.getString(R.string.call_log_voicemail_header);