diff options
author | linus_lee <llee@cyngn.com> | 2015-01-05 12:45:34 -0800 |
---|---|---|
committer | Linus Lee <llee@cyngn.com> | 2015-01-06 01:32:33 +0000 |
commit | 0aa14c90ab580d1f7185235d2613238235f2ce70 (patch) | |
tree | 1f1c9a0560d372cc4a6c097f674b7ea7d77e3034 /src/com/android/dialer/calllog | |
parent | 5406f450138cd7e2f355fe6aed6f6df5dab737f1 (diff) | |
download | android_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-x | src/com/android/dialer/calllog/CallLogQueryHandler.java | 50 | ||||
-rw-r--r-- | src/com/android/dialer/calllog/SpinnerContent.java | 9 |
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); |