diff options
author | Yorke Lee <yorkelee@google.com> | 2013-11-08 14:46:52 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-11-08 14:46:52 -0800 |
commit | c51392d773e77376f182781bb2405a5043809fda (patch) | |
tree | 55717e81ae1ed2efec7860fa0163917cecd5e8f5 | |
parent | 65f6ccecf1ff3b0777973e3c719f72a6f7023bc6 (diff) | |
parent | a5b38196f759a6e96703ecf8b5cee437fe0e9bde (diff) |
am a5b38196: am d20f843e: Merge "Treat unknown call types as missed calls" into klp-dev
* commit 'a5b38196f759a6e96703ecf8b5cee437fe0e9bde':
Treat unknown call types as missed calls
4 files changed, 17 insertions, 6 deletions
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java index 52435aafe..8af3b82bb 100644 --- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java +++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java @@ -150,7 +150,7 @@ public class CallDetailHistoryAdapter extends BaseAdapter { DateUtils.FORMAT_SHOW_WEEKDAY | DateUtils.FORMAT_SHOW_YEAR); dateView.setText(dateValue); // Set the duration - if (callType == Calls.MISSED_TYPE || callType == Calls.VOICEMAIL_TYPE) { + if (Calls.VOICEMAIL_TYPE == callType || CallTypeHelper.isMissedCallType(callType)) { durationView.setVisibility(View.GONE); } else { durationView.setVisibility(View.VISIBLE); diff --git a/src/com/android/dialer/calllog/CallLogGroupBuilder.java b/src/com/android/dialer/calllog/CallLogGroupBuilder.java index 1e4684e8f..213f1e774 100644 --- a/src/com/android/dialer/calllog/CallLogGroupBuilder.java +++ b/src/com/android/dialer/calllog/CallLogGroupBuilder.java @@ -78,8 +78,7 @@ public class CallLogGroupBuilder { shouldGroup = false; } else { // Incoming, outgoing, and missed calls group together. - shouldGroup = (callType == Calls.INCOMING_TYPE || callType == Calls.OUTGOING_TYPE || - callType == Calls.MISSED_TYPE); + shouldGroup = callType != Calls.VOICEMAIL_TYPE; } if (shouldGroup) { diff --git a/src/com/android/dialer/calllog/CallTypeHelper.java b/src/com/android/dialer/calllog/CallTypeHelper.java index 0f9b737f7..1c4f44f23 100644 --- a/src/com/android/dialer/calllog/CallTypeHelper.java +++ b/src/com/android/dialer/calllog/CallTypeHelper.java @@ -64,7 +64,7 @@ public class CallTypeHelper { return mVoicemailName; default: - throw new IllegalArgumentException("invalid call type: " + callType); + return mMissedName; } } @@ -86,7 +86,15 @@ public class CallTypeHelper { return mNewVoicemailColor; default: - throw new IllegalArgumentException("invalid call type: " + callType); + // Don't highlight calls of unknown types. They are treated as missed calls by + // the rest of the UI, but since they will never be marked as read by + // {@link CallLogQueryHandler}, just don't ever highlight them anyway. + return null; } } + + public static boolean isMissedCallType(int callType) { + return (callType != Calls.INCOMING_TYPE && callType != Calls.OUTGOING_TYPE && + callType != Calls.VOICEMAIL_TYPE); + } } diff --git a/src/com/android/dialer/calllog/CallTypeIconsView.java b/src/com/android/dialer/calllog/CallTypeIconsView.java index e83512861..a65f2c279 100644 --- a/src/com/android/dialer/calllog/CallTypeIconsView.java +++ b/src/com/android/dialer/calllog/CallTypeIconsView.java @@ -86,7 +86,11 @@ public class CallTypeIconsView extends View { case Calls.VOICEMAIL_TYPE: return mResources.voicemail; default: - throw new IllegalArgumentException("invalid call type: " + callType); + // It is possible for users to end up with calls with unknown call types in their + // call history, possibly due to 3rd party call log implementations (e.g. to + // distinguish between rejected and missed calls). Instead of crashing, just + // assume that all unknown call types are missed calls. + return mResources.missed; } } |