// Path: old-library-with-sample/src/main/java/com/rocko/common/DebugLog.java
// public class DebugLog {
//     /**
//      * Log输出所在类
//      */
//     private static String className;
//     /**
//      * Log输出所在方法
//      */
//     private static String methodName;
//     /**
//      * Log输出所行号
//      */
//     private static int lineNumber;
// 
//     private DebugLog() {
//     }
// 
//     /**
//      * 是否可Debug状态
//      *
//      * @return
//      */
//     public static boolean isDebuggable() {
//         return BuildConfig.DEBUG;
//     }
// 
//     /**
//      * 创建Log输出的基本信息
//      *
//      * @param log
//      * @return
//      */
//     private static String createLog(String log) {
//         StringBuffer buffer = new StringBuffer();
//         buffer.append("[");
//         buffer.append(methodName);
//         buffer.append("()");
//         buffer.append(" line:");
//         buffer.append(lineNumber);
//         buffer.append("] ");
//         buffer.append(log);
//         return buffer.toString();
//     }
// 
//     /**
//      * 取得输出所在位置的信息 className methodName lineNumber
//      *
//      * @param sElements
//      */
//     private static void getMethodNames(StackTraceElement[] sElements) {
//         className = sElements[1].getFileName().split("\\.")[0];
//         methodName = sElements[1].getMethodName();
//         lineNumber = sElements[1].getLineNumber();
//     }
// 
//     public static void e(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.e(className, createLog(message));
//     }
// 
//     public static void i(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.i(className, createLog(message));
//     }
// 
//     public static void d(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.d(className, createLog(message));
//     }
// 
//     public static void v(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.v(className, createLog(message));
//     }
// 
//     public static void w(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.w(className, createLog(message));
//     }
// 
//     public static void wtf(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.wtf(className, createLog(message));
//     }
// 
// }


import android.app.Activity;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.inputmethod.InputMethodManager;
import com.rocko.common.DebugLog;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
     * @return
     */
    public static int getDefaultStatusBarHeight(Context context) {
        int result = 0;
        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = context.getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

    /**
     * 获取本机IP地址
     *
     * @return
     */
    public static String getLocalIpAddress() {
        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces(); en.hasMoreElements(); ) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf
                        .getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                        return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
// Path: old-library-with-sample/src/main/java/com/rocko/common/DebugLog.java
// public class DebugLog {
//     /**
//      * Log输出所在类
//      */
//     private static String className;
//     /**
//      * Log输出所在方法
//      */
//     private static String methodName;
//     /**
//      * Log输出所行号
//      */
//     private static int lineNumber;
// 
//     private DebugLog() {
//     }
// 
//     /**
//      * 是否可Debug状态
//      *
//      * @return
//      */
//     public static boolean isDebuggable() {
//         return BuildConfig.DEBUG;
//     }
// 
//     /**
//      * 创建Log输出的基本信息
//      *
//      * @param log
//      * @return
//      */
//     private static String createLog(String log) {
//         StringBuffer buffer = new StringBuffer();
//         buffer.append("[");
//         buffer.append(methodName);
//         buffer.append("()");
//         buffer.append(" line:");
//         buffer.append(lineNumber);
//         buffer.append("] ");
//         buffer.append(log);
//         return buffer.toString();
//     }
// 
//     /**
//      * 取得输出所在位置的信息 className methodName lineNumber
//      *
//      * @param sElements
//      */
//     private static void getMethodNames(StackTraceElement[] sElements) {
//         className = sElements[1].getFileName().split("\\.")[0];
//         methodName = sElements[1].getMethodName();
//         lineNumber = sElements[1].getLineNumber();
//     }
// 
//     public static void e(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.e(className, createLog(message));
//     }
// 
//     public static void i(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.i(className, createLog(message));
//     }
// 
//     public static void d(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.d(className, createLog(message));
//     }
// 
//     public static void v(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.v(className, createLog(message));
//     }
// 
//     public static void w(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.w(className, createLog(message));
//     }
// 
//     public static void wtf(String message) {
//         if (!isDebuggable())
//             return;
// 
//         getMethodNames(new Throwable().getStackTrace());
//         Log.wtf(className, createLog(message));
//     }
// 
// }


// Path: old-library-with-sample/src/main/java/com/rocko/utils/PhoneUtils.java
import android.app.Activity;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.inputmethod.InputMethodManager;
import com.rocko.common.DebugLog;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

     * @return
     */
    public static int getDefaultStatusBarHeight(Context context) {
        int result = 0;
        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = context.getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

    /**
     * 获取本机IP地址
     *
     * @return
     */
    public static String getLocalIpAddress() {
        try {
            for (Enumeration<NetworkInterface> en = NetworkInterface
                    .getNetworkInterfaces(); en.hasMoreElements(); ) {
                NetworkInterface intf = en.nextElement();
                for (Enumeration<InetAddress> enumIpAddr = intf
                        .getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                    InetAddress inetAddress = enumIpAddr.nextElement();
                    if (!inetAddress.isLoopbackAddress()) {
                        return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
            DebugLog.e(ex.getMessage());