和通讯录 v4.2.0版本的 MD5 值为:f213fa766dccbfebde0dd8add5534518
以下内容为反编译后的 o.java 源代码,内容仅作参考
package com.chinamobile.contacts.im.mms139;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils;
import android.text.util.Linkify;
import com.chinamobile.contacts.im.contacts.c.y;
import com.chinamobile.contacts.im.mms2.data.RecipientIdCache;
import com.chinamobile.contacts.im.mms2.ui.NotificationManagerPopMain;
import com.chinamobile.contacts.im.mms2.view.MessageItem;
import com.chinamobile.contacts.im.utils.bm;
import com.chinamobile.contacts.im.utils.bw;
import com.iflytek.speech.VoiceWakeuperAidl;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class o {
public static Pattern f2535a = Pattern.compile("(?ms)\\[(.+)\\]\\w{2}:(.*?) \\w{2}:(.*?)<\\w+> \\w{4}(.*?)\\[(.+)\\]");
public static Pattern f2536b = Pattern.compile("(?ms)\\[(.*?)\\]\\w{2}:(.*?)\r\n\\w{2}:(.*?)<.*?>\r\n\\w{4}(.+?)\r\n\\[.*?\\]*");
public static Pattern c = Pattern.compile("(?ms)\\[(.*?)\\]\\w{2}:(.*?),\\w{4}(.*?) \\[.*?\\]");
public static Pattern d = Pattern.compile("(?ms)\\[(.*?)\\]\\w{2}:(.*?)\\[.*?\\]");
public static Pattern e = Pattern.compile("(?ms)(【(.*?)】|\\[(.*?)\\])\\w{2}:(.++)");
public static Pattern f = Pattern.compile("(?ms)\\w{2}:(.*?)\r\n(.++)");
public static Pattern g = Pattern.compile("(?ms)\\[(.*?)\\]\\w{2}:(.*?)\n\\w{2}:(.*?)<\\w++>\n\\w{4}(.*?)\n\\[.*?\\]");
public static Pattern h = Pattern.compile("(?ms)\\w{2}:(.*?)\n? Url:(.++)");
public static Pattern i = Pattern.compile("(?ms)\\[(.*?)\\]:(.*?)点击查看(.*?);?\\w{2}:(.++)");
public static Pattern j = Pattern.compile("(?ms)\\[(.*?)\\]:(.++)");
public static Pattern k = Pattern.compile("\\w\n发件人:(\\.+)");
public static Pattern l = Pattern.compile("(?ms)\\[(.*?)\\]:(.++)");
public static final Linkify.MatchFilter m = new p();
private a b(MessageItem messageItem) {
a aVar = new a();
aVar.f2511a = messageItem.mThreadId;
aVar.f2512b = messageItem.mMsgId;
aVar.d = messageItem.mBody;
aVar.h = messageItem.date;
aVar.g = messageItem.mAddress;
return aVar;
}
public a a(MessageItem messageItem) {
a a2 = q.a(messageItem.mMsgId);
if (a2 != null) {
bm.d("su", a2.toString());
} else {
a2 = b(messageItem);
a(a2);
try {
q.a(a2);
} catch (IllegalStateException e2) {
e2.printStackTrace();
}
}
return a2;
}
public void a(a aVar) {
boolean z;
String str;
y b2;
if (!aVar.g().contains("<未完>")) {
z = false;
} else {
z = true;
}
Matcher matcher = f2535a.matcher(aVar.g());
Matcher matcher2 = c.matcher(aVar.g());
Matcher matcher3 = d.matcher(aVar.g());
Matcher matcher4 = e.matcher(aVar.g());
Matcher matcher5 = f.matcher(aVar.g());
Matcher matcher6 = g.matcher(aVar.g());
Matcher matcher7 = h.matcher(aVar.g());
Matcher matcher8 = i.matcher(aVar.g());
Matcher matcher9 = f2536b.matcher(aVar.g());
Matcher matcher10 = j.matcher(aVar.g());
k.matcher(aVar.g());
if (c(aVar.g()).booleanValue()) {
int indexOf = aVar.g().indexOf("发件人:");
int indexOf2 = aVar.g().indexOf("主题:");
int indexOf3 = aVar.g().indexOf("附件:");
int indexOf4 = aVar.g().indexOf("正文:");
int indexOf5 = aVar.g().indexOf("查看:");
try {
aVar.b(d(aVar.g().substring(indexOf + 4, indexOf2)));
String substring = aVar.g().substring(indexOf2 + 3, indexOf3);
aVar.a(a(aVar.g().substring(indexOf4, aVar.g().length()), bw.c, new String[]{"http://", "https://", "rtsp://"}, m, null));
aVar.c(substring + VoiceWakeuperAidl.PARAMS_SEPARATE + aVar.g().substring(indexOf3 + 3, indexOf4));
if (z) {
aVar.d(aVar.g().substring(indexOf4 + 3, indexOf5 - 6).replaceAll("\n", ""));
} else {
aVar.d(aVar.g().substring(indexOf4 + 3, indexOf5 - 5).replaceAll("\n", ""));
}
} catch (Exception e2) {
}
} else if (b(aVar.g()).booleanValue()) {
int indexOf6 = aVar.g().indexOf("发件人:");
int indexOf7 = aVar.g().indexOf("主题:");
int indexOf8 = aVar.g().indexOf("正文:");
int indexOf9 = aVar.g().indexOf("查看:");
bm.b("su", "k:" + indexOf8 + " n:" + indexOf9);
try {
aVar.b(d(aVar.g().substring(indexOf6 + 4, indexOf7)));
aVar.c(aVar.g().substring(indexOf7 + 3, indexOf8));
aVar.a(a(aVar.g().substring(indexOf9, aVar.g().length()), bw.c, new String[]{"http://", "https://", "rtsp://"}, m, null));
if (z) {
String substring2 = aVar.g().substring(indexOf8 + 3, indexOf9 - 5);
bm.b("su", "bPart: " + z + " group3: " + substring2);
aVar.d(substring2.replaceAll("\n", ""));
} else {
String substring3 = aVar.g().substring(indexOf8 + 3, indexOf9 - 4);
bm.b("su", "bPart: " + z + " group3: " + substring3);
aVar.d(substring3.replaceAll("\n", ""));
}
if (aVar.g().endsWith("<")) {
aVar.d(aVar.g().replaceAll("<", ""));
}
} catch (Exception e3) {
}
} else if (matcher6.find()) {
aVar.b(d(matcher6.group(1)));
aVar.c(matcher6.group(2));
aVar.d(matcher6.group(3).replaceAll("\n", ""));
aVar.a(matcher6.group(4));
} else if (matcher.find()) {
aVar.b(d(matcher.group(1)));
aVar.c(matcher.group(2));
aVar.d(matcher.group(3).replaceAll("\n", ""));
aVar.a(matcher.group(4));
} else if (matcher9.find()) {
aVar.b(d(matcher9.group(1)));
aVar.c(matcher9.group(2));
aVar.d(matcher9.group(3).replaceAll("\n", ""));
aVar.a(matcher9.group(4));
} else if (matcher2.find()) {
aVar.b(d(matcher2.group(1)));
aVar.c(matcher2.group(2).replaceAll("\n", ""));
aVar.d("<完>点击读取邮件");
aVar.a(matcher2.group(3));
} else if (matcher3.find()) {
aVar.b(matcher3.group(1));
aVar.c(matcher3.group(2).replaceAll("\n", ""));
aVar.d("<完>点击读取邮件");
} else if (matcher4.find()) {
String group = matcher4.group(2);
String group2 = matcher4.group(3);
if (group != null) {
aVar.b(group);
} else {
aVar.b(group2);
}
aVar.d(matcher4.group(4).replaceAll("\n", ""));
} else if (matcher7.find()) {
String group3 = matcher7.group(1);
String group4 = matcher7.group(2);
aVar.c(group3.replaceAll("\n", ""));
aVar.a(group4);
aVar.b("wap push");
aVar.d("<完>点击读取邮件");
} else if (matcher8.find()) {
aVar.b(matcher8.group(1));
aVar.c(matcher8.group(2));
aVar.a(matcher8.group(3));
aVar.d(matcher8.group(4).replaceAll("\n", ""));
} else if (matcher5.find()) {
String group5 = matcher5.group(1);
String group6 = matcher5.group(2);
aVar.c(group5.replaceAll("\n", ""));
aVar.a(group6);
aVar.d("<完>点击读取邮件");
} else if (matcher10.find()) {
String group7 = matcher10.group(1);
String group8 = matcher10.group(2);
aVar.b(group7.replaceAll("\n", ""));
aVar.d(group8);
}
if (aVar.f() == null) {
aVar.c("(无主题)");
}
if (aVar.g() == null) {
aVar.d("(无内容)");
} else {
String g2 = aVar.g();
if (!g2.equals("<完>点击读取邮件")) {
if (z) {
str = g2 + "<未完>点击读信";
} else {
str = g2 + "<完>点击读信";
}
aVar.d(str);
}
}
if (aVar.a() == null) {
aVar.a("http://y.10086.cn/");
}
if (aVar.d() != null) {
String d2 = aVar.d();
if (d2.length() > 10 && e(d2) && (b2 = com.chinamobile.contacts.im.contacts.b.f.a().b(d2)) != null && !TextUtils.isEmpty(b2.f())) {
aVar.b(d2 + "(" + b2.f() + ")");
}
}
}
private Boolean b(String str) {
return str != null && str.contains("发件人:") && str.contains("主题:") && str.contains("正文:") && str.contains("查看:");
}
private Boolean c(String str) {
return str != null && str.contains("发件人:") && str.contains("主题:") && str.contains("附件:") && str.contains("正文:") && str.contains("查看:") && str.contains("附件:");
}
private String d(String str) {
return TextUtils.isEmpty(str) ? "" : str.replace("紧急][", "[紧急]");
}
private boolean e(String str) {
return Pattern.compile("[0-9]*").matcher(str).matches();
}
public static boolean a(String str) {
if (!RecipientIdCache.preFixFor139Exception.equals(str)) {
return false;
}
return true;
}
public static void a(Context context) {
if (NotificationManagerPopMain.a(context, "cn.cj.pe").booleanValue()) {
new Intent();
Intent launchIntentForPackage = context.getPackageManager().getLaunchIntentForPackage("cn.cj.pe");
launchIntentForPackage.setFlags(337641472);
context.startActivity(launchIntentForPackage);
return;
}
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.setData(Uri.parse("http://pushemail.10086.cn"));
context.startActivity(intent);
}
private String a(String str, Pattern pattern, String[] strArr, Linkify.MatchFilter matchFilter, Linkify.TransformFilter transformFilter) {
String str2 = null;
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
int start = matcher.start();
int end = matcher.end();
if (matchFilter == null || matchFilter.acceptMatch(str, start, end)) {
str2 = a(matcher.group(0), strArr, matcher, transformFilter);
}
}
bm.b("su", "url----->>" + str2);
return str2;
}
private String a(String str, String[] strArr, Matcher matcher, Linkify.TransformFilter transformFilter) {
boolean z = true;
String transformUrl = transformFilter != null ? transformFilter.transformUrl(matcher, str) : str;
int i2 = 0;
while (true) {
if (i2 >= strArr.length) {
z = false;
break;
}
if (!transformUrl.regionMatches(true, 0, strArr[i2], 0, strArr[i2].length())) {
i2++;
} else {
if (!transformUrl.regionMatches(false, 0, strArr[i2], 0, strArr[i2].length())) {
transformUrl = strArr[i2] + transformUrl.substring(strArr[i2].length());
}
}
}
if (!z) {
return strArr[0] + transformUrl;
}
return transformUrl;
}
}