summaryrefslogtreecommitdiffstats
path: root/core/java/android/provider/CallLog.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/provider/CallLog.java')
-rw-r--r--core/java/android/provider/CallLog.java69
1 files changed, 10 insertions, 59 deletions
diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java
index 0202f91..08209fa 100644
--- a/core/java/android/provider/CallLog.java
+++ b/core/java/android/provider/CallLog.java
@@ -24,17 +24,13 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.database.Cursor;
-import android.location.Country;
-import android.location.CountryDetector;
import android.net.Uri;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.ContactsContract.CommonDataKinds.Callable;
import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.DataUsageFeedback;
import android.telecomm.PhoneAccountHandle;
-import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import com.android.internal.telephony.CallerInfo;
@@ -389,10 +385,12 @@ public class CallLog {
public static Uri addCall(CallerInfo ci, Context context, String number,
int presentation, int callType, int features, PhoneAccountHandle accountHandle,
long start, int duration, Long dataUsage) {
+ // FIXME using -1 as subId instead of SubscriptionManager.INVALID_SUB_ID
return addCall(ci, context, number, presentation, callType, features, accountHandle,
start, duration, dataUsage, false);
}
+
/**
* Adds a call to the call log.
*
@@ -408,6 +406,7 @@ public class CallLog {
* @param accountHandle The accountHandle object identifying the provider of the call
* @param start time stamp for the call in milliseconds
* @param duration call duration in seconds
+ * @param subId the subscription id.
* @param dataUsage data usage for the call in bytes, null if data usage was not tracked for
* the call.
* @param addForAllUsers If true, the call is added to the call log of all currently
@@ -465,6 +464,7 @@ public class CallLog {
values.put(PHONE_ACCOUNT_COMPONENT_NAME, accountComponentString);
values.put(PHONE_ACCOUNT_ID, accountId);
values.put(NEW, Integer.valueOf(1));
+
if (callType == MISSED_TYPE) {
values.put(IS_READ, Integer.valueOf(0));
}
@@ -505,13 +505,12 @@ public class CallLog {
if (cursor != null) {
try {
if (cursor.getCount() > 0 && cursor.moveToFirst()) {
- final String dataId = cursor.getString(0);
- updateDataUsageStatForData(resolver, dataId);
- if (duration >= MIN_DURATION_FOR_NORMALIZED_NUMBER_UPDATE_MS
- && callType == Calls.OUTGOING_TYPE
- && TextUtils.isEmpty(ci.normalizedNumber)) {
- updateNormalizedNumber(context, resolver, dataId, number);
- }
+ final Uri feedbackUri = DataUsageFeedback.FEEDBACK_URI.buildUpon()
+ .appendPath(cursor.getString(0))
+ .appendQueryParameter(DataUsageFeedback.USAGE_TYPE,
+ DataUsageFeedback.USAGE_TYPE_CALL)
+ .build();
+ resolver.update(feedbackUri, new ContentValues(), null, null);
}
} finally {
cursor.close();
@@ -584,53 +583,5 @@ public class CallLog {
+ " LIMIT -1 OFFSET 500)", null);
return result;
}
-
- private static void updateDataUsageStatForData(ContentResolver resolver, String dataId) {
- final Uri feedbackUri = DataUsageFeedback.FEEDBACK_URI.buildUpon()
- .appendPath(dataId)
- .appendQueryParameter(DataUsageFeedback.USAGE_TYPE,
- DataUsageFeedback.USAGE_TYPE_CALL)
- .build();
- resolver.update(feedbackUri, new ContentValues(), null, null);
- }
-
- /**
- * Update the normalized phone number for the given dataId in the ContactsProvider, based
- * on the user's current country.
- */
- private static void updateNormalizedNumber(Context context, ContentResolver resolver,
- String dataId, String number) {
- if (TextUtils.isEmpty(number) || TextUtils.isEmpty(dataId)) {
- return;
- }
-
- final String countryIso = getCurrentCountryIso(context);
- if (TextUtils.isEmpty(countryIso)) {
- return;
- }
-
- final String normalizedNumber = PhoneNumberUtils.formatNumberToE164(number,
- getCurrentCountryIso(context));
- if (TextUtils.isEmpty(normalizedNumber)) {
- return;
- }
-
- final ContentValues values = new ContentValues();
- values.put(Phone.NORMALIZED_NUMBER, normalizedNumber);
- resolver.update(Data.CONTENT_URI, values, Data._ID + "=?", new String[] {dataId});
- }
-
- private static String getCurrentCountryIso(Context context) {
- String countryIso = null;
- final CountryDetector detector = (CountryDetector) context.getSystemService(
- Context.COUNTRY_DETECTOR);
- if (detector != null) {
- final Country country = detector.detectCountry();
- if (country != null) {
- countryIso = country.getCountryIso();
- }
- }
- return countryIso;
- }
}
}