和通讯录 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;
    }
}