summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer')
-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;
+ }
}