UIUtil.java 源代码


package com.x8zs.plugin.utils;

import android.content.Context;
import android.graphics.Point;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import java.lang.reflect.Field;

public class UIUtil {
    public static View.OnClickListener getOnClickListener(View view) {
        return getOnClickListenerV14(view);
    }

    private static View.OnClickListener getOnClickListenerV(View view) {
        try {
            return (View.OnClickListener) Class.forName("android.view.View").getDeclaredField("mOnClickListener").get(view);
        } catch (ClassNotFoundException unused) {
            Log.e("Reflection", "Class Not Found.");
            return null;
        } catch (IllegalAccessException unused2) {
            Log.e("Reflection", "Illegal Access.");
            return null;
        } catch (NoSuchFieldException unused3) {
            Log.e("Reflection", "No Such Field.");
            return null;
        }
    }

    private static View.OnClickListener getOnClickListenerV14(View view) {
        Object obj;
        try {
            Field declaredField = Class.forName("android.view.View").getDeclaredField("mListenerInfo");
            if (declaredField != null) {
                declaredField.setAccessible(true);
                obj = declaredField.get(view);
            } else {
                obj = null;
            }
            Field declaredField2 = Class.forName("android.view.View$ListenerInfo").getDeclaredField("mOnClickListener");
            if (declaredField2 == null || obj == null) {
                return null;
            }
            return (View.OnClickListener) declaredField2.get(obj);
        } catch (ClassNotFoundException unused) {
            Log.e("Reflection", "Class Not Found.");
            return null;
        } catch (IllegalAccessException unused2) {
            Log.e("Reflection", "Illegal Access.");
            return null;
        } catch (NoSuchFieldException unused3) {
            Log.e("Reflection", "No Such Field.");
            return null;
        }
    }

    public static int getScreenHeight(Context context) {
        WindowManager windowManager = (WindowManager) context.getSystemService("window");
        Point point = new Point();
        windowManager.getDefaultDisplay().getSize(point);
        return point.y;
    }

    public static int getScreenWidth(Context context) {
        WindowManager windowManager = (WindowManager) context.getSystemService("window");
        Point point = new Point();
        windowManager.getDefaultDisplay().getSize(point);
        return point.x;
    }
}