summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorqqzhou <qqzhou@codeaurora.org>2014-09-23 17:59:12 +0800
committerMatt Garnes <matt@cyngn.com>2014-11-13 17:48:06 -0800
commit8ca6530da4d0e70d07f867619983e7265391b24f (patch)
tree1cd96b10578913c5f2d8971ffe31a02ebc186e7d /src
parentf4b468af012e2e8968b86739ea2194be8bc75027 (diff)
downloadandroid_packages_apps_Dialer-8ca6530da4d0e70d07f867619983e7265391b24f.tar.gz
android_packages_apps_Dialer-8ca6530da4d0e70d07f867619983e7265391b24f.tar.bz2
android_packages_apps_Dialer-8ca6530da4d0e70d07f867619983e7265391b24f.zip
Dialer: add support for duration type in call detail
We use one config to control whether show duration type "active duration" or "call out duration" in call detail. Change-Id: I0b07404995b5ed0cf0ff9c5cb12914461ce28424
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/CallDetailActivity.java7
-rwxr-xr-x[-rw-r--r--]src/com/android/dialer/PhoneCallDetails.java18
-rw-r--r--src/com/android/dialer/calllog/CallDetailHistoryAdapter.java20
-rwxr-xr-x[-rw-r--r--]src/com/android/dialer/calllog/CallLogAdapter.java0
4 files changed, 40 insertions, 5 deletions
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 5715572c8..a371e0884 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -220,7 +220,8 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
CallLog.Calls.PHONE_ACCOUNT_ID,
CallLog.Calls.FEATURES,
CallLog.Calls.DATA_USAGE,
- CallLog.Calls.TRANSCRIPTION
+ CallLog.Calls.TRANSCRIPTION,
+ CallLog.Calls.DURATION_TYPE
};
static final int DATE_COLUMN_INDEX = 0;
@@ -235,6 +236,7 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
static final int FEATURES = 9;
static final int DATA_USAGE = 10;
static final int TRANSCRIPTION_COLUMN_INDEX = 11;
+ static final int DURATION_TYPE_COLUMN_INDEX = 12;
@Override
protected void onCreate(Bundle icicle) {
@@ -553,6 +555,7 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
String countryIso = callCursor.getString(COUNTRY_ISO_COLUMN_INDEX);
final String geocode = callCursor.getString(GEOCODED_LOCATION_COLUMN_INDEX);
final String transcription = callCursor.getString(TRANSCRIPTION_COLUMN_INDEX);
+ final int durationType = callCursor.getInt(DURATION_TYPE_COLUMN_INDEX);
final String accountLabel = PhoneAccountUtils.getAccountLabel(this,
PhoneAccountUtils.getAccount(
@@ -605,7 +608,7 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe
formattedNumber, countryIso, geocode,
new int[]{ callType }, date, duration,
nameText, numberType, numberLabel, lookupUri, photoUri, sourceType,
- accountLabel, null, features, dataUsage, transcription);
+ accountLabel, null, features, dataUsage, transcription, durationType);
} finally {
if (callCursor != null) {
callCursor.close();
diff --git a/src/com/android/dialer/PhoneCallDetails.java b/src/com/android/dialer/PhoneCallDetails.java
index ba049a2d7..2de5f5f32 100644..100755
--- a/src/com/android/dialer/PhoneCallDetails.java
+++ b/src/com/android/dialer/PhoneCallDetails.java
@@ -86,6 +86,10 @@ public class PhoneCallDetails {
* Voicemail transcription
*/
public final String transcription;
+ /**
+ * Duration type for this call.
+ */
+ public final int durationType;
/**
* Create the details for a call, with empty defaults specified for extra fields that are
@@ -116,6 +120,19 @@ public class PhoneCallDetails {
int numberType, CharSequence numberLabel, Uri contactUri,
Uri photoUri, int sourceType, String accountLabel, Drawable accountIcon, int features,
Long dataUsage, String transcription) {
+ this(number, numberPresentation, formattedNumber, countryIso, geocode,
+ callTypes, date, duration, name, numberType, numberLabel, contactUri,
+ photoUri, sourceType, accountLabel, accountIcon, features, dataUsage,
+ transcription, Calls.DURATION_TYPE_ACTIVE);
+ }
+
+ /** Create the details for a call with a number associated with a contact. */
+ public PhoneCallDetails(CharSequence number, int numberPresentation,
+ CharSequence formattedNumber, String countryIso, String geocode,
+ int[] callTypes, long date, long duration, CharSequence name,
+ int numberType, CharSequence numberLabel, Uri contactUri,
+ Uri photoUri, int sourceType, String accountLabel, Drawable accountIcon, int features,
+ Long dataUsage, String transcription, int durationType) {
this.number = number;
this.numberPresentation = numberPresentation;
this.formattedNumber = formattedNumber;
@@ -135,5 +152,6 @@ public class PhoneCallDetails {
this.features = features;
this.dataUsage = dataUsage;
this.transcription = transcription;
+ this.durationType = durationType;
}
}
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
index d53f77f8a..e1bd15794 100644
--- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
+++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
@@ -140,7 +140,8 @@ public class CallDetailHistoryAdapter extends BaseAdapter {
durationView.setVisibility(View.GONE);
} else {
durationView.setVisibility(View.VISIBLE);
- durationView.setText(formatDurationAndDataUsage(details.duration, details.dataUsage));
+ durationView.setText(
+ formatDurationAndDataUsage(details.duration, details.dataUsage, details.durationType));
}
return result;
@@ -166,7 +167,8 @@ public class CallDetailHistoryAdapter extends BaseAdapter {
* @param dataUsage Data usage in bytes, or null if not specified.
* @return String containing call duration and data usage.
*/
- private CharSequence formatDurationAndDataUsage(long elapsedSeconds, Long dataUsage) {
+ private CharSequence formatDurationAndDataUsage(long elapsedSeconds, Long dataUsage,
+ int durationType) {
CharSequence duration = formatDuration(elapsedSeconds);
if (dataUsage != null) {
@@ -176,7 +178,19 @@ public class CallDetailHistoryAdapter extends BaseAdapter {
return DialerUtils.join(mContext.getResources(), mDurationItems);
} else {
- return duration;
+ boolean enabled = mContext.getResources().getBoolean(R.bool.call_durationtype_enabled);
+ if (enabled) {
+ switch (durationType) {
+ case Calls.DURATION_TYPE_ACTIVE:
+ return mContext.getString(R.string.call_duration_active) + duration;
+ case Calls.DURATION_TYPE_CALLOUT:
+ return mContext.getString(R.string.call_duration_call_out) + duration;
+ default:
+ return duration;
+ }
+ } else {
+ return duration;
+ }
}
}
}
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 589d80ec2..589d80ec2 100644..100755
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java