Merge "Copy isEmailAddress"
am: ed384ad6aa
Change-Id: I501de6f68a3b6b49ffad17f7ee8b932ed84cdc8d
This commit is contained in:
@@ -18,13 +18,16 @@ package com.android.internal.telephony;
|
||||
|
||||
import android.annotation.UnsupportedAppUsage;
|
||||
import android.os.Build;
|
||||
import android.provider.Telephony;
|
||||
import android.telephony.SmsMessage;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Patterns;
|
||||
|
||||
import com.android.internal.telephony.GsmAlphabet.TextEncodingDetails;
|
||||
|
||||
import java.text.BreakIterator;
|
||||
import java.util.Arrays;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Base class declaring the specific methods and members for SmsMessage.
|
||||
@@ -32,6 +35,10 @@ import java.util.Arrays;
|
||||
*/
|
||||
public abstract class SmsMessageBase {
|
||||
|
||||
// Copied from Telephony.Mms.NAME_ADDR_EMAIL_PATTERN
|
||||
public static final Pattern NAME_ADDR_EMAIL_PATTERN =
|
||||
Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
|
||||
|
||||
@UnsupportedAppUsage
|
||||
public SmsMessageBase() {
|
||||
}
|
||||
@@ -356,6 +363,31 @@ public abstract class SmsMessageBase {
|
||||
}
|
||||
}
|
||||
|
||||
private static String extractAddrSpec(String messageHeader) {
|
||||
Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(messageHeader);
|
||||
|
||||
if (match.matches()) {
|
||||
return match.group(2);
|
||||
}
|
||||
return messageHeader;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the message header string indicates that the message is from a email address.
|
||||
*
|
||||
* @param messageHeader message header
|
||||
* @return {@code true} if it's a message from an email address, {@code false} otherwise.
|
||||
*/
|
||||
public static boolean isEmailAddress(String messageHeader) {
|
||||
if (TextUtils.isEmpty(messageHeader)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String s = extractAddrSpec(messageHeader);
|
||||
Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
|
||||
return match.matches();
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to parse this message as an email gateway message
|
||||
* There are two ways specified in TS 23.040 Section 3.8 :
|
||||
@@ -376,11 +408,11 @@ public abstract class SmsMessageBase {
|
||||
* -or-
|
||||
* 2. [x@y][ ]/[body]
|
||||
*/
|
||||
String[] parts = mMessageBody.split("( /)|( )", 2);
|
||||
if (parts.length < 2) return;
|
||||
mEmailFrom = parts[0];
|
||||
mEmailBody = parts[1];
|
||||
mIsEmail = Telephony.Mms.isEmailAddress(mEmailFrom);
|
||||
String[] parts = mMessageBody.split("( /)|( )", 2);
|
||||
if (parts.length < 2) return;
|
||||
mEmailFrom = parts[0];
|
||||
mEmailBody = parts[1];
|
||||
mIsEmail = isEmailAddress(mEmailFrom);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user