package cn.rongcloud.im.utils;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Rect;
import android.location.LocationManager;
import android.net.Uri;
import android.text.TextUtils;
import android.view.WindowManager;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.rongcloud.im.model.SealSearchConversationResult;
import io.rong.imlib.model.SearchConversationResult;
/**
* Created by bob on 2015/2/2.
*/
public class CommonUtils {
/**
* 得到屏幕高度
*
* @param context
* @return
*/
public static int getScreenHeight(Activity context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int height = wm.getDefaultDisplay().getHeight();
return height;
}
/**
* 得到屏幕宽度
*
* @param context
* @return
*/
public static int getScreenWidth(Activity context) {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
return width;
}
/**
* 得到状态栏高度
*
* @param context
* @return
*/
public static int getStatusBarHeight(Activity context) {
int statusHeight = 0;
Rect frame = new Rect();
context.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
statusHeight = frame.top;
if (0 == statusHeight) {
Class<?> localClass;
try {
localClass = Class.forName("com.android.internal.R$dimen");
Object localObject = localClass.newInstance();
int i5 = Integer.parseInt(localClass.getField("status_bar_height").get(localObject).toString());
statusHeight = context.getResources().getDimensionPixelSize(i5);
} catch (Exception e) {
e.printStackTrace();
}
}
return statusHeight;
}
/**
* 获得当前的版本信息
*
* @return
*/
public static String[] getVersionInfo(Context context) {
String[] version = new String[2];
PackageManager packageManager = context.getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
version[0] = String.valueOf(packageInfo.versionCode);
version[1] = packageInfo.versionName;
return version;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return version;
}
/**
* 邮箱格式是否正确
*
* @param email
* @return
*/
public static boolean isEmail(String email) {
if (TextUtils.isEmpty(email))
return false;
String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
/**
* 是否开启 GPS
*
* @param context
* @return
*/
public static boolean isOpenGPS(Context context) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
boolean isGPSEnable = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean isNPEnable = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
return isGPSEnable || isNPEnable;
}
public static void openGPS(Context context) {
Intent GPSIntent = new Intent();
GPSIntent.setClassName("com.android.settings",
"com.android.settings.widget.SettingsAppWidgetProvider");
GPSIntent.addCategory("android.intent.category.ALTERNATIVE");
GPSIntent.setData(Uri.parse("custom:3"));
try {
PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send();
} catch (PendingIntent.CanceledException e) {
e.printStackTrace();
}
}
public static List<SealSearchConversationResult> convertSearchResult(List<SearchConversationResult> results) {
List<SealSearchConversationResult> list = new ArrayList<>();
for (SearchConversationResult result : results) {
SealSearchConversationResult sealSearchConversationResult = new SealSearchConversationResult();
sealSearchConversationResult.setConversation(result.getConversation());
sealSearchConversationResult.setMatchCount(result.getMatchCount());
list.add(sealSearchConversationResult);
}
return list;
}
}