Passing subscription info in the calls logic to log it properly
In order to log the subscription information in call history and call
log, the calls logic layer needs to pass the information between classes
in the process.
Bug: 15473965
Change-Id: I85ca5444e5881a8ceb0eb950dfc6385cacd045cf
diff --git a/src/com/android/telecomm/CallLogManager.java b/src/com/android/telecomm/CallLogManager.java
index 2dd6214..53d2072 100644
--- a/src/com/android/telecomm/CallLogManager.java
+++ b/src/com/android/telecomm/CallLogManager.java
@@ -21,6 +21,7 @@
import android.os.AsyncTask;
import android.provider.CallLog.Calls;
import android.telecomm.CallState;
+import android.telecomm.Subscription;
import android.telephony.PhoneNumberUtils;
import com.android.internal.telephony.PhoneConstants;
@@ -48,12 +49,14 @@
* @param durationInMillis Duration of the call (milliseconds).
*/
public AddCallArgs(Context context, ContactInfo contactInfo, String number,
- int presentation, int callType, long creationDate, long durationInMillis) {
+ int presentation, int callType, Subscription subscription,
+ long creationDate, long durationInMillis) {
this.context = context;
this.contactInfo = contactInfo;
this.number = number;
this.presentation = presentation;
this.callType = callType;
+ this.subscription = subscription;
this.timestamp = creationDate;
this.durationInSec = (int)(durationInMillis / 1000);
}
@@ -64,6 +67,7 @@
public final String number;
public final int presentation;
public final int callType;
+ public final Subscription subscription;
public final long timestamp;
public final int durationInSec;
}
@@ -111,8 +115,9 @@
Log.d(TAG, "logNumber set to: %s", Log.pii(logNumber));
final int presentation = getPresentation(call, contactInfo);
+ final Subscription subscription = call.getSubscription();
- logCall(contactInfo, logNumber, presentation, callLogType, creationTime, age);
+ logCall(contactInfo, logNumber, presentation, callLogType, subscription, creationTime, age);
}
/**
@@ -130,6 +135,7 @@
String number,
int presentation,
int callType,
+ Subscription subscription,
long start,
long duration) {
boolean isEmergencyNumber = PhoneNumberUtils.isLocalEmergencyNumber(mContext, number);
@@ -148,7 +154,7 @@
+ Log.pii(number) + "," + presentation + ", " + callType
+ ", " + start + ", " + duration);
AddCallArgs args = new AddCallArgs(mContext, contactInfo, number, presentation,
- callType, start, duration);
+ callType, subscription, start, duration);
logCallAsync(args);
} else {
Log.d(TAG, "Not adding emergency call to call log.");
@@ -220,7 +226,7 @@
try {
// May block.
result[i] = Calls.addCall(null, c.context, c.number, c.presentation,
- c.callType, c.timestamp, c.durationInSec);
+ c.callType, c.subscription, c.timestamp, c.durationInSec);
} catch (Exception e) {
// This is very rare but may happen in legitimate cases.
// E.g. If the phone is encrypted and thus write request fails, it may cause