十八摸 v1.2.0版本的 MD5 值为:124d0569983b1a978779bc818002364d

以下内容为反编译后的 MarkdownView.java 源代码,内容仅作参考


package es.dmoral.markdownview;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.v4.media.Ctry;
import android.util.AttributeSet;
import android.util.Base64;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import l5.Cfor;
public class MarkdownView extends WebView {
    public static final int f10081super = 0;
    public l5.Cdo f10082break;
    public String f10083catch;
    public boolean f10084class;
    public boolean f10085const;
    public Cif f10086final;

    public class Cdo extends WebViewClient {
        public Cdo() {
        }

        @Override
        public void onPageFinished(WebView webView, String str) {
            String str2;
            BufferedInputStream bufferedInputStream;
            StringBuilder sb;
            super.onPageFinished(webView, str);
            if (str.equals("file:///android_asset/html/container.html")) {
                MarkdownView markdownView = MarkdownView.this;
                String str3 = markdownView.f10083catch;
                Matcher matcher = Pattern.compile("!\\[(.*)\\]\\((.*)\\)").matcher(str3);
                if (matcher.find()) {
                    String group = matcher.group(2);
                    if (!(group.startsWith("http://") || group.startsWith("https://"))) {
                        ?? r11 = ".jpg";
                        if (group.endsWith(".png") || group.endsWith(".jpg") || group.endsWith(".jpeg") || group.endsWith(".gif")) {
                            if (group.endsWith(".png")) {
                                str2 = "data:image/png;base64,";
                            } else if (group.endsWith(".jpg") || group.endsWith(".jpeg")) {
                                str2 = "data:image/jpg;base64,";
                            } else {
                                str2 = group.endsWith(".gif") ? "data:image/gif;base64," : "";
                            }
                            if (!str2.isEmpty()) {
                                File file = new File(group);
                                int length = (int) file.length();
                                byte[] bArr = new byte[length];
                                try {
                                    try {
                                        bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
                                        try {
                                            bufferedInputStream.read(bArr, 0, length);
                                            try {
                                                bufferedInputStream.close();
                                                r11 = bufferedInputStream;
                                            } catch (IOException e7) {
                                                e = e7;
                                                sb = new StringBuilder();
                                                sb.append("IOException:");
                                                sb.append(e);
                                                Log.e("MarkdownView", sb.toString());
                                                StringBuilder m168new = Ctry.m168new(str2);
                                                m168new.append(Base64.encodeToString(bArr, 2));
                                                str3 = str3.replace(group, m168new.toString());
                                                l5.Cdo cdo = markdownView.f10082break;
                                                markdownView.evaluateJavascript(String.format("render('%s', %b, '%s', '%s', %d)", str3.replace("\n", "\\\\n").replace("'", "\\'").replace("\r", ""), Boolean.valueOf(markdownView.f10085const), cdo.f12639do, cdo.f12640if, 0), new Cfor(markdownView));
                                            }
                                        } catch (FileNotFoundException e8) {
                                            e = e8;
                                            Log.e("MarkdownView", "FileNotFoundException:" + e);
                                            r11 = bufferedInputStream;
                                            if (bufferedInputStream != null) {
                                                try {
                                                    bufferedInputStream.close();
                                                    r11 = bufferedInputStream;
                                                } catch (IOException e9) {
                                                    e = e9;
                                                    sb = new StringBuilder();
                                                    sb.append("IOException:");
                                                    sb.append(e);
                                                    Log.e("MarkdownView", sb.toString());
                                                    StringBuilder m168new2 = Ctry.m168new(str2);
                                                    m168new2.append(Base64.encodeToString(bArr, 2));
                                                    str3 = str3.replace(group, m168new2.toString());
                                                    l5.Cdo cdo2 = markdownView.f10082break;
                                                    markdownView.evaluateJavascript(String.format("render('%s', %b, '%s', '%s', %d)", str3.replace("\n", "\\\\n").replace("'", "\\'").replace("\r", ""), Boolean.valueOf(markdownView.f10085const), cdo2.f12639do, cdo2.f12640if, 0), new Cfor(markdownView));
                                                }
                                            }
                                            StringBuilder m168new22 = Ctry.m168new(str2);
                                            m168new22.append(Base64.encodeToString(bArr, 2));
                                            str3 = str3.replace(group, m168new22.toString());
                                            l5.Cdo cdo22 = markdownView.f10082break;
                                            markdownView.evaluateJavascript(String.format("render('%s', %b, '%s', '%s', %d)", str3.replace("\n", "\\\\n").replace("'", "\\'").replace("\r", ""), Boolean.valueOf(markdownView.f10085const), cdo22.f12639do, cdo22.f12640if, 0), new Cfor(markdownView));
                                        } catch (IOException e10) {
                                            e = e10;
                                            Log.e("MarkdownView", "IOException:" + e);
                                            r11 = bufferedInputStream;
                                            if (bufferedInputStream != null) {
                                                try {
                                                    bufferedInputStream.close();
                                                    r11 = bufferedInputStream;
                                                } catch (IOException e11) {
                                                    e = e11;
                                                    sb = new StringBuilder();
                                                    sb.append("IOException:");
                                                    sb.append(e);
                                                    Log.e("MarkdownView", sb.toString());
                                                    StringBuilder m168new222 = Ctry.m168new(str2);
                                                    m168new222.append(Base64.encodeToString(bArr, 2));
                                                    str3 = str3.replace(group, m168new222.toString());
                                                    l5.Cdo cdo222 = markdownView.f10082break;
                                                    markdownView.evaluateJavascript(String.format("render('%s', %b, '%s', '%s', %d)", str3.replace("\n", "\\\\n").replace("'", "\\'").replace("\r", ""), Boolean.valueOf(markdownView.f10085const), cdo222.f12639do, cdo222.f12640if, 0), new Cfor(markdownView));
                                                }
                                            }
                                            StringBuilder m168new2222 = Ctry.m168new(str2);
                                            m168new2222.append(Base64.encodeToString(bArr, 2));
                                            str3 = str3.replace(group, m168new2222.toString());
                                            l5.Cdo cdo2222 = markdownView.f10082break;
                                            markdownView.evaluateJavascript(String.format("render('%s', %b, '%s', '%s', %d)", str3.replace("\n", "\\\\n").replace("'", "\\'").replace("\r", ""), Boolean.valueOf(markdownView.f10085const), cdo2222.f12639do, cdo2222.f12640if, 0), new Cfor(markdownView));
                                        }
                                    } catch (Throwable th) {
                                        th = th;
                                        if (r11 != 0) {
                                            try {
                                                r11.close();
                                            } catch (IOException e12) {
                                                Log.e("MarkdownView", "IOException:" + e12);
                                            }
                                        }
                                        throw th;
                                    }
                                } catch (FileNotFoundException e13) {
                                    e = e13;
                                    bufferedInputStream = null;
                                } catch (IOException e14) {
                                    e = e14;
                                    bufferedInputStream = null;
                                } catch (Throwable th2) {
                                    th = th2;
                                    r11 = 0;
                                    if (r11 != 0) {
                                    }
                                    throw th;
                                }
                                StringBuilder m168new22222 = Ctry.m168new(str2);
                                m168new22222.append(Base64.encodeToString(bArr, 2));
                                str3 = str3.replace(group, m168new22222.toString());
                            }
                        }
                    }
                }
                l5.Cdo cdo22222 = markdownView.f10082break;
                markdownView.evaluateJavascript(String.format("render('%s', %b, '%s', '%s', %d)", str3.replace("\n", "\\\\n").replace("'", "\\'").replace("\r", ""), Boolean.valueOf(markdownView.f10085const), cdo22222.f12639do, cdo22222.f12640if, 0), new Cfor(markdownView));
            }
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView webView, String str) {
            if (MarkdownView.this.f10084class) {
                MarkdownView.this.getContext().startActivity(new Intent("android.intent.action.VIEW", Uri.parse(str)));
                return true;
            }
            return false;
        }
    }

    public interface Cif {
        void mo1746do();

        void mo1747if();
    }

    public MarkdownView(Context context) {
        super(context);
        this.f10084class = true;
        this.f10085const = true;
        m4157do();
    }

    @SuppressLint({"SetJavaScriptEnabled"})
    public final void m4157do() {
        this.f10082break = new l5.Cdo("css/bootstrap.css", "css/highlight/github.css");
        getSettings().setJavaScriptEnabled(true);
        getSettings().setAllowUniversalAccessFromFileURLs(true);
        getSettings().setMixedContentMode(0);
        setWebViewClient(new Cdo());
    }

    @Override
    public void onDetachedFromWindow() {
        this.f10086final = null;
        super.onDetachedFromWindow();
    }

    public void setCodeScrollEnabled(boolean z6) {
        this.f10085const = z6;
    }

    public void setCurrentConfig(l5.Cdo cdo) {
        this.f10082break = cdo;
    }

    public void setOnMarkdownRenderingListener(Cif cif) {
        this.f10086final = cif;
    }

    public void setOpenUrlInBrowser(boolean z6) {
        this.f10084class = z6;
    }

    public MarkdownView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        this.f10084class = true;
        this.f10085const = true;
        m4157do();
    }

    public MarkdownView(Context context, AttributeSet attributeSet, int i7) {
        super(context, attributeSet, i7);
        this.f10084class = true;
        this.f10085const = true;
        m4157do();
    }
}