MiscUtil.java 源代码


package com.x8zs.plugin.utils;

import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import android.text.ClipboardManager;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
import androidx.exifinterface.media.ExifInterface;
import com.umeng.analytics.pro.bx;
import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import org.json.JSONArray;

public class MiscUtil {
    public static void copy2Clipboard(Context context, String str) {
        ((ClipboardManager) context.getSystemService("clipboard")).setText(str);
    }

    public static String formatBytes(long j6) {
        if (j6 == 0) {
            return "0B";
        }
        String[] strArr = {"B", "K", "M", "G", ExifInterface.GPS_DIRECTION_TRUE, "P", ExifInterface.LONGITUDE_EAST, "Z", "Y"};
        double d6 = j6;
        double d7 = 1024;
        int floor = (int) Math.floor(Math.log(d6) / Math.log(d7));
        return String.format("%.2f%s", Double.valueOf(d6 / Math.pow(d7, floor)), strArr[floor]);
    }

    public static double getRound(double d6) {
        return Math.round(d6 * 100.0d) / 100.0d;
    }

    public static String hex(byte[] bArr) {
        char[] cArr = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
        char[] cArr2 = new char[bArr.length * 2];
        for (int i6 = 0; i6 < bArr.length; i6++) {
            byte b6 = bArr[i6];
            int i7 = i6 * 2;
            cArr2[i7] = cArr[(b6 >> 4) & 15];
            cArr2[i7 + 1] = cArr[b6 & bx.f20591m];
        }
        return new String(cArr2);
    }

    public static void hideSoftKeyboard(Context context, View view) {
        ((InputMethodManager) context.getSystemService("input_method")).hideSoftInputFromWindow(view.getWindowToken(), 0);
    }

    public static boolean isActivityInvalid(Activity activity) {
        if (activity == null || activity.isFinishing() || activity.isDestroyed()) {
            return true;
        }
        return false;
    }

    public static boolean isDebugMode(Context context) {
        try {
            if ((context.getApplicationInfo().flags & 2) == 0) {
                return false;
            }
            return true;
        } catch (Throwable unused) {
            return false;
        }
    }

    public static boolean isEmail(String str) {
        return Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$").matcher(str).matches();
    }

    public static boolean isEmpty(List<?> list) {
        return list == null || list.size() == 0;
    }

    public static boolean isFullScreen(Activity activity) {
        return (activity.getWindow().getAttributes().flags & 1024) == 1024;
    }

    public static boolean isListEqual(List<?> list, List<?> list2) {
        if (list == null) {
            if (list2 == null) {
                return true;
            }
            return false;
        }
        if (list2 == null || list.size() != list2.size()) {
            return false;
        }
        int size = list.size();
        for (int i6 = 0; i6 < size; i6++) {
            Object obj = list.get(i6);
            Object obj2 = list2.get(i6);
            if (obj != null || obj2 != null) {
                if (obj == null && obj2 != null) {
                    return false;
                }
                if ((obj != null && obj2 == null) || !obj.equals(obj2)) {
                    return false;
                }
            }
        }
        return true;
    }

    public static String join(List<String> list, String str) {
        StringBuilder sb = new StringBuilder();
        for (int i6 = 0; i6 < list.size(); i6++) {
            sb.append(list.get(i6));
            if (i6 != list.size() - 1) {
                sb.append(str);
            }
        }
        return sb.toString();
    }

    public static void jsonArrayStr2ListStr(JSONArray jSONArray, List<String> list) {
        if (jSONArray == null) {
            return;
        }
        for (int i6 = 0; i6 < jSONArray.length(); i6++) {
            list.add(jSONArray.getString(i6));
        }
    }

    public static void listStr2JsonArray(List<String> list, JSONArray jSONArray) {
        if (isEmpty(list)) {
            return;
        }
        for (int i6 = 0; i6 < list.size(); i6++) {
            jSONArray.put(i6, list.get(i6));
        }
    }

    public static String md5(String str) {
        try {
            return hex(MessageDigest.getInstance("MD5").digest(str.getBytes()));
        } catch (Throwable th) {
            th.printStackTrace();
            return "";
        }
    }

    public static Uri resourceIdToUri(Context context, int i6) {
        return Uri.parse("android.resource://" + context.getPackageName() + "/" + i6);
    }

    public static void showDebugToast(Context context, String str, int i6) {
        if (isDebugMode(context)) {
            Toast.makeText(context, str, i6).show();
        }
    }

    public static void showSoftKeyboard(Context context, View view) {
        ((InputMethodManager) context.getSystemService("input_method")).showSoftInput(view, 2);
    }

    public static void sleep(long j6) {
        try {
            Thread.sleep(j6);
        } catch (Throwable th) {
            th.printStackTrace();
        }
    }

    public static List<String> split(String str, String str2) {
        if (TextUtils.isEmpty(str)) {
            return new ArrayList();
        }
        return Arrays.asList(str.split(str2));
    }

    public static String md5(File file) {
        FileInputStream fileInputStream = null;
        try {
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            byte[] bArr = new byte[8192];
            FileInputStream fileInputStream2 = new FileInputStream(file);
            while (true) {
                try {
                    int read = fileInputStream2.read(bArr);
                    if (read > 0) {
                        messageDigest.update(bArr, 0, read);
                    } else {
                        String replace = String.format("%32s", new BigInteger(1, messageDigest.digest()).toString(16)).replace(' ', '0');
                        IOUtil.close(fileInputStream2);
                        return replace;
                    }
                } catch (Throwable th) {
                    th = th;
                    fileInputStream = fileInputStream2;
                    try {
                        th.printStackTrace();
                        IOUtil.close(fileInputStream);
                        return "";
                    } catch (Throwable th2) {
                        IOUtil.close(fileInputStream);
                        throw th2;
                    }
                }
            }
        } catch (Throwable th3) {
            th = th3;
        }
    }
}