summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroldenburg <roldenburg@google.com>2017-07-12 11:38:26 -0700
committerEric Erfanian <erfanian@google.com>2017-07-13 14:00:05 -0700
commitd67712a9fcfb2b8802274ae2a8a10b8e403f661e (patch)
tree39e3deb7c4fe0716584d13ee200675c00f6bbcba
parent905b5862383011727756ab9e2926a0dda12d9ca9 (diff)
downloadandroid_packages_apps_Dialer-d67712a9fcfb2b8802274ae2a8a10b8e403f661e.tar.gz
android_packages_apps_Dialer-d67712a9fcfb2b8802274ae2a8a10b8e403f661e.tar.bz2
android_packages_apps_Dialer-d67712a9fcfb2b8802274ae2a8a10b8e403f661e.zip
Display correct string for Lightbringer calls in call details
Without this change, all video calls are referred to as just "video call". This CL uses the Lightbringer interface to allow customizing that text. Before: https://drive.google.com/open?id=0B7uuA4cyYX0xeVZCTGtMUUtoRVU After: https://drive.google.com/open?id=0B7uuA4cyYX0xMnFhbTBXMDI2VW8 Bug: 63138393 Test: CallTypeHelperTest PiperOrigin-RevId: 161692812 Change-Id: I36dc1a1fae96dddee91c5efb8892c4a6c7ef67ca
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java12
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsAdapter.java5
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java4
-rw-r--r--java/com/android/dialer/calldetails/proto/call_details_entries.proto1
-rw-r--r--java/com/android/dialer/calllogutils/CallTypeHelper.java28
-rw-r--r--java/com/android/dialer/lightbringer/Lightbringer.java9
-rw-r--r--java/com/android/dialer/lightbringer/stub/LightbringerStub.java13
7 files changed, 67 insertions, 5 deletions
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 4942184a2..41c9d6003 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -967,7 +967,7 @@ public class CallLogAdapter extends GroupingListAdapter
}
@MainThread
- private static CallDetailsEntries createCallDetailsEntries(Cursor cursor, int count) {
+ private CallDetailsEntries createCallDetailsEntries(Cursor cursor, int count) {
Assert.isMainThread();
int position = cursor.getPosition();
CallDetailsEntries.Builder entries = CallDetailsEntries.newBuilder();
@@ -980,6 +980,16 @@ public class CallLogAdapter extends GroupingListAdapter
.setDate(cursor.getLong(CallLogQuery.DATE))
.setDuration(cursor.getLong(CallLogQuery.DURATION))
.setFeatures(cursor.getInt(CallLogQuery.FEATURES));
+
+ String phoneAccountComponentName = cursor.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME);
+ if (getLightbringer().getPhoneAccountComponentName() != null
+ && getLightbringer()
+ .getPhoneAccountComponentName()
+ .flattenToString()
+ .equals(phoneAccountComponentName)) {
+ entry.setIsLightbringerCall(true);
+ }
+
entries.addEntries(entry.build());
cursor.moveToNext();
}
diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
index 48e9b6998..66a736c8d 100644
--- a/java/com/android/dialer/calldetails/CallDetailsAdapter.java
+++ b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
@@ -26,6 +26,7 @@ import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.calllogutils.CallTypeHelper;
import com.android.dialer.common.Assert;
import com.android.dialer.dialercontact.DialerContact;
+import com.android.dialer.lightbringer.LightbringerComponent;
import java.util.List;
/** Adapter for RecyclerView in {@link CallDetailsActivity}. */
@@ -48,7 +49,9 @@ final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
this.contact = Assert.isNotNull(contact);
this.callDetailsEntries = callDetailsEntries;
this.listener = listener;
- callTypeHelper = new CallTypeHelper(context.getResources());
+ callTypeHelper =
+ new CallTypeHelper(
+ context.getResources(), LightbringerComponent.get(context).getLightbringer());
}
@Override
diff --git a/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java
index 6ad158e8c..9c592fc5f 100644
--- a/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java
@@ -91,6 +91,7 @@ public class CallDetailsEntryViewHolder extends ViewHolder {
boolean isPulledCall =
(entry.getFeatures() & Calls.FEATURES_PULLED_EXTERNALLY)
== Calls.FEATURES_PULLED_EXTERNALLY;
+ boolean isLightbringerCall = entry.getIsLightbringerCall();
callTime.setTextColor(getColorForCallType(context, callType));
callTypeIcon.clear();
@@ -100,7 +101,8 @@ public class CallDetailsEntryViewHolder extends ViewHolder {
callTypeIcon.setShowWifi(
MotorolaUtils.shouldShowWifiIconInCallLog(context, entry.getFeatures()));
- callTypeText.setText(callTypeHelper.getCallTypeText(callType, isVideoCall, isPulledCall));
+ callTypeText.setText(
+ callTypeHelper.getCallTypeText(callType, isVideoCall, isPulledCall, isLightbringerCall));
callTime.setText(CallEntryFormatter.formatDate(context, entry.getDate()));
if (CallTypeHelper.isMissedCallType(callType)) {
callDuration.setVisibility(View.GONE);
diff --git a/java/com/android/dialer/calldetails/proto/call_details_entries.proto b/java/com/android/dialer/calldetails/proto/call_details_entries.proto
index 18bc931cb..587fd35bd 100644
--- a/java/com/android/dialer/calldetails/proto/call_details_entries.proto
+++ b/java/com/android/dialer/calldetails/proto/call_details_entries.proto
@@ -18,6 +18,7 @@ message CallDetailsEntries {
optional int64 duration = 5;
optional int64 data_usage = 6;
repeated enrichedcall.historyquery.proto.HistoryResult history_results = 7;
+ optional bool is_lightbringer_call = 8;
}
repeated CallDetailsEntry entries = 1;
diff --git a/java/com/android/dialer/calllogutils/CallTypeHelper.java b/java/com/android/dialer/calllogutils/CallTypeHelper.java
index d3b5b67d7..783f799f3 100644
--- a/java/com/android/dialer/calllogutils/CallTypeHelper.java
+++ b/java/com/android/dialer/calllogutils/CallTypeHelper.java
@@ -18,6 +18,7 @@ package com.android.dialer.calllogutils;
import android.content.res.Resources;
import com.android.dialer.compat.AppCompatConstants;
+import com.android.dialer.lightbringer.Lightbringer;
/** Helper class to perform operations related to call types. */
public class CallTypeHelper {
@@ -50,8 +51,12 @@ public class CallTypeHelper {
private final CharSequence mBlockedName;
/** Name used to identify calls which were answered on another device. */
private final CharSequence mAnsweredElsewhereName;
+ /** Name used to identify incoming lightbringer calls. */
+ private final CharSequence mIncomingLightbringerCall;
+ /** Name used to identify outgoing lightbringer calls. */
+ private final CharSequence mOutgoingLightbringerCall;
- public CallTypeHelper(Resources resources) {
+ public CallTypeHelper(Resources resources, Lightbringer lightbringer) {
// Cache these values so that we do not need to look them up each time.
mIncomingName = resources.getString(R.string.type_incoming);
mIncomingPulledName = resources.getString(R.string.type_incoming_pulled);
@@ -67,6 +72,18 @@ public class CallTypeHelper {
mRejectedName = resources.getString(R.string.type_rejected);
mBlockedName = resources.getString(R.string.type_blocked);
mAnsweredElsewhereName = resources.getString(R.string.type_answered_elsewhere);
+
+ if (lightbringer.getIncomingCallTypeText() != -1) {
+ mIncomingLightbringerCall = resources.getString(lightbringer.getIncomingCallTypeText());
+ } else {
+ mIncomingLightbringerCall = mIncomingVideoName;
+ }
+
+ if (lightbringer.getOutgoingCallTypeText() != -1) {
+ mOutgoingLightbringerCall = resources.getString(lightbringer.getOutgoingCallTypeText());
+ } else {
+ mOutgoingLightbringerCall = mOutgoingVideoName;
+ }
}
public static boolean isMissedCallType(int callType) {
@@ -77,13 +94,17 @@ public class CallTypeHelper {
}
/** Returns the text used to represent the given call type. */
- public CharSequence getCallTypeText(int callType, boolean isVideoCall, boolean isPulledCall) {
+ public CharSequence getCallTypeText(
+ int callType, boolean isVideoCall, boolean isPulledCall, boolean isLightbringerCall) {
switch (callType) {
case AppCompatConstants.CALLS_INCOMING_TYPE:
if (isVideoCall) {
if (isPulledCall) {
return mIncomingVideoPulledName;
} else {
+ if (isLightbringerCall) {
+ return mIncomingLightbringerCall;
+ }
return mIncomingVideoName;
}
} else {
@@ -99,6 +120,9 @@ public class CallTypeHelper {
if (isPulledCall) {
return mOutgoingVideoPulledName;
} else {
+ if (isLightbringerCall) {
+ return mOutgoingLightbringerCall;
+ }
return mOutgoingVideoName;
}
} else {
diff --git a/java/com/android/dialer/lightbringer/Lightbringer.java b/java/com/android/dialer/lightbringer/Lightbringer.java
index 669e571a0..9b8a18061 100644
--- a/java/com/android/dialer/lightbringer/Lightbringer.java
+++ b/java/com/android/dialer/lightbringer/Lightbringer.java
@@ -22,6 +22,7 @@ import android.content.Intent;
import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.StringRes;
import android.telecom.Call;
import android.telecom.PhoneAccountHandle;
@@ -56,4 +57,12 @@ public interface Lightbringer {
@Nullable
@MainThread
String getPackageName();
+
+ @StringRes
+ @MainThread
+ int getOutgoingCallTypeText();
+
+ @StringRes
+ @MainThread
+ int getIncomingCallTypeText();
}
diff --git a/java/com/android/dialer/lightbringer/stub/LightbringerStub.java b/java/com/android/dialer/lightbringer/stub/LightbringerStub.java
index 1cb3c1ff0..92230a49e 100644
--- a/java/com/android/dialer/lightbringer/stub/LightbringerStub.java
+++ b/java/com/android/dialer/lightbringer/stub/LightbringerStub.java
@@ -22,6 +22,7 @@ import android.content.Intent;
import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.StringRes;
import android.telecom.Call;
import android.telecom.PhoneAccountHandle;
import com.android.dialer.common.Assert;
@@ -97,4 +98,16 @@ public class LightbringerStub implements Lightbringer {
public String getPackageName() {
return null;
}
+
+ @StringRes
+ @Override
+ public int getOutgoingCallTypeText() {
+ return -1;
+ }
+
+ @StringRes
+ @Override
+ public int getIncomingCallTypeText() {
+ return -1;
+ }
}