package com.marshalchen.common.commonUtils.basicUtils; import android.app.ActivityManager; import android.app.AlertDialog; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Parcelable; import com.marshalchen.common.commonUtils.logUtils.Logs; import java.text.DecimalFormat; import java.util.*; /** * Some Useful Utils * <p>{@link #judgeNotNull(String, String...)}</p> * <p>{@link #judgeNotNull(Object)}</p> * <p>{@link #getVersionName(android.content.Context)}</p> * <p>{@link #getVersionCode(android.content.Context)}</p> * <p>{@link #iterateHashMap(java.util.HashMap)}</p> * <p>{@link #iterateListHashMap(java.util.List)}</p> * <p>{@link #sendIntent(android.content.Context, Class)}</p> * <p>{@link #sendIntent(android.content.Context, Class, String, android.os.Parcelable)}</p> * <p>{@link #getSharedPreferences(android.content.Context, String, String)}</p> * <p>{@link #putSharedPreferences(android.content.Context, String, String, String)}</p> */ public class BasicUtils { /** * Print all items of HashMap * * @param hashMap */ public static void iterateHashMap(HashMap<String, Object> hashMap) { for (Map.Entry<String, Object> entry : hashMap.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); Logs.d("key: " + key + " " + "value: " + value.toString()); } } /** * Print all items of HashMap,avoid ConcurrentModificationExceptions * * @param hashMap */ public static void iterateHashMapConcurrent(HashMap<String, Object> hashMap) { Iterator<Map.Entry<String, Object>> iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, Object> entry = iterator.next(); Logs.d("key: " + entry.getKey() + " " + "value: " + entry.getValue().toString()); // iterator.remove(); // avoids ConcurrentModificationException } } public static void iterateListHashMap(List list) { //support concurrent try { for (Iterator it = list.iterator(); it.hasNext(); ) { iterateHashMapConcurrent((HashMap) it.next()); } } catch (Exception e) { e.printStackTrace(); Logs.e(e.getMessage()); } } /** * get the version name which defines in AndroidManifest.xml * * @param context * @return */ public static String getVersionName(Context context) { String version = ""; try { // get packagemanager PackageManager packageManager = context.getPackageManager(); // getPackageName()--your current package name,0 means get package info PackageInfo packInfo = packageManager.getPackageInfo(context .getPackageName(), 0); version = packInfo.versionName; } catch (Exception e) { e.printStackTrace(); Logs.e(e.getMessage()); } finally { return version; } } /** * get the version code which defines in AndroidManifest.xml * * @param context * @return */ public static int getVersionCode(Context context) { int version = 0; try { // get packagemanager PackageManager packageManager = context.getPackageManager(); // getPackageName()--your current package name,0 means get package info PackageInfo packInfo = packageManager.getPackageInfo(context .getPackageName(), 0); version = packInfo.versionCode; } catch (Exception e) { e.printStackTrace(); Logs.e(e.getMessage()); } finally { return version; } } /** * Format the int number as your want * * @param num * @param formatAs * @return * @throws Exception */ public static String formatNumber(int num, String formatAs) throws Exception { DecimalFormat df = new DecimalFormat(formatAs); String str2 = df.format(num); return str2; } /** * Launch a new activity. You will not receive any information about when the activity exits. * * @param context * @param classes */ public static void sendIntent(Context context, Class classes) { Intent intent = new Intent(); intent.setClass(context, classes); context.startActivity(intent); } /** * Launch a new activity with two pairs of extended String type data. * * @param context * @param classes * @param key * @param value * @param anotherKey * @param anotherValue */ public static void sendIntent(Context context, Class classes, String key, String value, String anotherKey, String anotherValue) { Intent intent = new Intent(); intent.setClass(context, classes); intent.putExtra(key, value); intent.putExtra(anotherKey, anotherValue); context.startActivity(intent); } /** * Launch a new activity with one pair of extended String type data. * * @param context * @param classes * @param key * @param value */ public static void sendIntent(Context context, Class classes, String key, String value) { Intent intent = new Intent(); intent.setClass(context, classes); intent.putExtra(key, value); context.startActivity(intent); } /** * Launch a new activity with one Parcelable data. * * @param context * @param classes * @param key * @param value */ public static void sendIntent(Context context, Class classes, String key, Parcelable value) { Intent intent = new Intent(); intent.setClass(context, classes); intent.putExtra(key, value); context.startActivity(intent); } /** * Launch a new activity with ArrayList data. * * @param context * @param classes * @param key * @param value */ public static void sendIntent(Context context, Class classes, String key, ArrayList<? extends Parcelable> value) { Intent intent = new Intent(); intent.setClass(context, classes); intent.putParcelableArrayListExtra(key, value); context.startActivity(intent); } /** * Launch a new activity with one ArrayList data and one pair of String data. * * @param context * @param classes * @param key * @param value * @param anotherKey * @param anotherValue */ public static void sendIntent(Context context, Class classes, String key, ArrayList<? extends Parcelable> value, String anotherKey, String anotherValue) { Intent intent = new Intent(); intent.setClass(context, classes); intent.putParcelableArrayListExtra(key, value); intent.putExtra(anotherKey, anotherValue); context.startActivity(intent); } /** * Retrieve a String value from the preferences. * * @param context * @param fileName * @param parameterName * @return Returns the preference value if it exists, or "". * @throws ClassCastException Throws ClassCastException if there is a preference with this name that is not a String. */ public static String getSharedPreferences(Context context, String fileName, String parameterName) throws ClassCastException { SharedPreferences sp = context.getSharedPreferences(fileName, 0); String parameter = sp.getString(parameterName, ""); return parameter; } /** * See also {@link #getSharedPreferences(android.content.Context, String, String)} * * @param context * @param fileName * @param parameterName * @param otherDefaultReturns * @return Returns the preference value if it exists, or otherDefaultReturns. */ public static String getSharedPreferences(Context context, String fileName, String parameterName, String otherDefaultReturns) { SharedPreferences sp = context.getSharedPreferences(fileName, 0); String parameter = sp.getString(parameterName, otherDefaultReturns); return parameter; } /** * Set a String value in the preferences editor, to be written back once commit() or apply() are called. * * @param context * @param fileName * @param parameterName * @param parameterValue */ public static void putSharedPreferences(Context context, String fileName, String parameterName, String parameterValue) { SharedPreferences.Editor sharedDate = context.getSharedPreferences(fileName, 0).edit(); sharedDate.putString(parameterName, parameterValue); sharedDate.commit(); } /** * Set a String value in the preferences editor with a HashMap<String, String> parameter * * @param context * @param fileName * @param hashMap */ public static void putSharedPreferences(Context context, String fileName, HashMap<String, String> hashMap) { SharedPreferences.Editor sharedDate = context.getSharedPreferences(fileName, 0).edit(); if (BasicUtils.judgeNotNull(hashMap)) { Iterator iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator.next(); Object key = entry.getKey(); Object value = entry.getValue(); sharedDate.putString(key.toString(), value.toString()); } } sharedDate.commit(); } /** * @param string * @return * @see #judgeNotNull(String, String...) */ public static boolean judgeNotNull(String string) { return string != null && !string.equals("") && !string.equals("null") ? true : false; } /** * Judge if a variable of String or String[] is null or "" * * @param string * @param strings * @return */ public static boolean judgeNotNull(String string, String... strings) { boolean flag = true; if (!(string != null && string.trim().length() > 0 && !string.equals("null") && !string.trim().equals(""))) return false; for (String s : strings) { if (s == null || string.trim().length() == 0 || s.equals("null")) { flag = false; break; } } return flag; } /** * Judge if a variable of byte[] is not null and the length of it is above 1 * * @param bytes * @return */ public static boolean judgeNotNull(byte[] bytes) { return bytes != null && bytes.length >= 1; } /** * Judge if the size of a map is above 1 * * @param map * @return */ public static boolean judgeNotNull(Map map) { return map != null && map.size() > 0 ? true : false; } /** * Judge if the size of a list is above 1 * * @param list * @return */ public static boolean judgeNotNull(List list) { //return list != null && list.size() > 0 ? true : false; return judgeNotNull(list, (Class<?>) null); } /** * @param list * @param lists * @return * @see #judgeNotNull(java.util.List) */ public static boolean judgeNotNull(List list, List... lists) { boolean flag = true; if (list == null || list.size() == 0) return false; if (judgeNotNull(lists)) for (List l : lists) { if (l == null || l.size() == 0) { flag = false; return false; } } return flag; } /** * Judge if the Object is null * * @param object * @return */ public static boolean judgeNotNull(Object object) { if (object == null) return false; return true; } /** * Judge if the Objects are all defined. * * @param object * @param objects * @return */ public static boolean judgeNotNull(Object object, Object... objects) { boolean flag = true; if (object == null) return false; for (Object o : objects) { if (o == null) { flag = false; return flag; } } return flag; } /** * Check if the service is running * * @param context * @param cls * @return */ public static boolean isServiceRunning(Context context, Class<?> cls) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> services = activityManager .getRunningServices(Integer.MAX_VALUE); for (ActivityManager.RunningServiceInfo serviceInfo : services) { ComponentName componentName = serviceInfo.service; String serviceName = componentName.getClassName(); if (serviceName.equals(cls.getName())) { return true; } } return false; } /** * Compare two object * if v1 > v2 return 1 * if v1 is not null, v2 is null return 1 * if v1 = v2, return 0 * if v1 is null, v2 is null return 0 * if v1 < v2, return -1 * if v1 is null, v2 is not null return -1 * <p/> * return v1.{@link Comparable#compareTo(Object)} * * @param v1 * @param v2 * @return */ public static <V> int compare(V v1, V v2) { return v1 == null ? (v2 == null ? 0 : -1) : (v2 == null ? 1 : ((Comparable) v1).compareTo(v2)); } }