package com.reactnative.drwine.Utils;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.telephony.TelephonyManager;
import android.util.Log;

import java.util.UUID;

/**
 * Created by YinMenglong on 2017/3/8.
 */

public class Utils {

    /**
     * 返回UUID
     *
     * @return
     */
    public static String getUUID() {
        return UUID.randomUUID() + "";
    }

    /**
     * 获取手机型号 和系统
     * android.os.Build.VERSION.RELEASE获取版本号
     * android.os.Build.MODEL 获取手机型号
     */
    public static String getFeedback() {
        String str = android.os.Build.MODEL + "," + android.os.Build.VERSION.RELEASE;
        return str;
    }

    /**
     * 获取唯一序列号
     *
     * @param
     * @return String 序列号
     */
    public static String getPhoneXLH(Context context) {
        try {
            TelephonyManager TelephonyMgr = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            String szImei = TelephonyMgr.getDeviceId();
            return szImei;
        } catch (Exception e) {
            return "";
        }
    }

    /**
     * 获取版本号
     *
     * @param context
     * @return String 版本号
     */
    public static String getAppVersion(Context context) {
        String versionName = "";
        try {
            PackageManager pm = context.getPackageManager();
            PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
            versionName = pi.versionName;
            if (versionName == null || versionName.length() <= 0) {
                return "";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return versionName;
    }

    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * 获取系统栏高度
     *
     * @param context
     * @return
     */
    public static int getStatusBarHeight(Context context) {
        float statusBarHeight = -1;
        //获取status_bar_height资源的ID
        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            //根据资源ID获取响应的尺寸值
            statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
        }
        return px2dip(context,statusBarHeight);
    }


}
