package com.juns.wechat.common;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.http.message.BasicNameValuePair;
import android.Manifest;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.preference.PreferenceManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.WindowManager;
import android.widget.Toast;
import com.juns.wechat.R;
public class Utils {
public static void showLongToast(Context context, String pMsg) {
Toast.makeText(context, pMsg, Toast.LENGTH_LONG).show();
}
public static void showShortToast(Context context, String pMsg) {
Toast.makeText(context, pMsg, Toast.LENGTH_SHORT).show();
}
/**
* 关闭 Activity
*
* @param activity
*/
public static void finish(Activity activity) {
activity.finish();
activity.overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
}
/**
* 打开Activity
*
* @param activity
* @param cls
* @param name
*/
public static void start_Activity(Activity activity, Class<?> cls,
BasicNameValuePair... name) {
Intent intent = new Intent();
intent.setClass(activity, cls);
if (name != null)
for (int i = 0; i < name.length; i++) {
intent.putExtra(name[i].getName(), name[i].getValue());
}
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.push_left_in,
R.anim.push_left_out);
}
/**
* 判断是否有网络
*/
public static boolean isNetworkAvailable(Context context) {
if (context.checkCallingOrSelfPermission(Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
return false;
} else {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
Log.w("Utility", "couldn't get connectivity manager");
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].isAvailable()) {
Log.d("Utility", "network is available");
return true;
}
}
}
}
}
Log.d("Utility", "network is not available");
return false;
}
/**
* 发送文字通知
*
* @param context
* @param Msg
* @param Title
* @param content
* @param i
*/
@SuppressWarnings("deprecation")
public static void sendText(Context context, String Msg, String Title,
String content, Intent i) {
NotificationManager mn = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher,
Msg, System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL;
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, i,
PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, Title, content, contentIntent);
mn.notify(0, notification);
}
/**
* 移除SharedPreference
*
* @param context
* @param key
*/
public static final void RemoveValue(Context context, String key) {
Editor editor = getSharedPreference(context).edit();
editor.remove(key);
boolean result = editor.commit();
if (!result) {
Log.e("移除Shared", "save " + key + " failed");
}
}
private static final SharedPreferences getSharedPreference(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
/**
* 获取SharedPreference 值
*
* @param context
* @param key
* @return
*/
public static final String getValue(Context context, String key) {
return getSharedPreference(context).getString(key, "");
}
public static final Boolean getBooleanValue(Context context, String key) {
return getSharedPreference(context).getBoolean(key, false);
}
public static final void putBooleanValue(Context context, String key,
boolean bl) {
Editor edit = getSharedPreference(context).edit();
edit.putBoolean(key, bl);
edit.commit();
}
public static final int getIntValue(Context context, String key) {
return getSharedPreference(context).getInt(key, 0);
}
public static final long getLongValue(Context context, String key,
long default_data) {
return getSharedPreference(context).getLong(key, default_data);
}
public static final boolean putLongValue(Context context, String key,
Long value) {
Editor editor = getSharedPreference(context).edit();
editor.putLong(key, value);
return editor.commit();
}
public static final Boolean hasValue(Context context, String key) {
return getSharedPreference(context).contains(key);
}
/**
* 设置SharedPreference 值
*
* @param context
* @param key
* @param value
*/
public static final boolean putValue(Context context, String key,
String value) {
value = value == null ? "" : value;
Editor editor = getSharedPreference(context).edit();
editor.putString(key, value);
boolean result = editor.commit();
if (!result) {
return false;
}
return true;
}
/**
* 设置SharedPreference 值
*
* @param context
* @param key
* @param value
*/
public static final boolean putIntValue(Context context, String key,
int value) {
Editor editor = getSharedPreference(context).edit();
editor.putInt(key, value);
boolean result = editor.commit();
if (!result) {
return false;
}
return true;
}
public static Date stringToDate(String str) {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm");
Date date = null;
try {
// Fri Feb 24 00:00:00 CST 2012
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* 验证邮箱
*
* @param email
* @return
*/
public static boolean isEmail(String email) {
String str = "^([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})(\\]?)$";
Pattern p = Pattern.compile(str);
Matcher m = p.matcher(email);
return m.matches();
}
/**
* 验证手机号
*
* @param mobiles
* @return
*/
public static boolean isMobileNO(String mobiles) {
Pattern p = Pattern
.compile("^((13[0-9])|(15[^4,\\D])|(17[^4,\\D])|(18[0-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
return m.matches();
}
/**
* 验证是否是数字
*
* @param str
* @return
*/
public static boolean isNumber(String str) {
Pattern pattern = Pattern.compile("[0-9]*");
java.util.regex.Matcher match = pattern.matcher(str);
if (match.matches() == false) {
return false;
} else {
return true;
}
}
/**
* 获取版本号
*
* @return 当前应用的版本号
*/
public static String getVersion(Context context) {
try {
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(context.getPackageName(),
0);
String version = info.versionName;
return version;
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
private static float sDensity = 0;
/**
* DP转换为像素
*
* @param context
* @param nDip
* @return
*/
public static int dipToPixel(Context context, int nDip) {
if (sDensity == 0) {
final WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
sDensity = dm.density;
}
return (int) (sDensity * nDip);
}
}