// Created by plusminus on 22:41:12 - 15.08.2008
package org.androad.util;
import java.util.ArrayList;
import org.osmdroid.util.GeoPoint;
import org.androad.util.constants.Constants;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.telephony.TelephonyManager;
import android.util.Log;
public class Util {
// ===========================================================
// Constants
// ===========================================================
private static final String IMEI_HASHED_DEFAULT = "CUSTOM_BUILD_NO_IMEI_AVAILABLE";
// ===========================================================
// Fields
// ===========================================================
private static String IMEI_HASHED;
// ===========================================================
// Constructors
// ===========================================================
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
// ===========================================================
// Methods
// ===========================================================
public static int getVersionNumber(final Context ctx) {
try {
final PackageInfo pi = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0);
return pi.versionCode;
} catch (final PackageManager.NameNotFoundException e) {
Log.e(Constants.DEBUGTAG, "Package name not found", e);
return Constants.NOT_SET;
}
}
public static String getVersionName(final Context ctx) {
try {
final PackageInfo pi = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), 0);
return pi.versionName;
} catch (final PackageManager.NameNotFoundException e) {
Log.e(Constants.DEBUGTAG, "Package name not found", e);
return "0";
}
}
public static String getDeviceIDHashed(final Context ctx) {
if(IMEI_HASHED == null){
try{
final TelephonyManager tm = (TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE);
final String imei = tm.getDeviceId();
IMEI_HASHED = MD5.hash(imei);
}catch(Throwable t){
/* Workaround for custom builds, that deliver no IMEI or are not MD5 capable. */
IMEI_HASHED = IMEI_HASHED_DEFAULT + "_"+ System.currentTimeMillis();
}
}
return IMEI_HASHED;
}
public static String merge(final String[] src, final String seperator){
return merge(src, 0, src.length, seperator);
}
public static String merge(final String[] src, final int start, final int length, final String seperator){
final StringBuilder sb = new StringBuilder();
for (int i = start; i < length; i++) {
sb.append(src[i]).append(seperator);
}
sb.setLength(sb.length() - seperator.length());
return sb.toString();
}
public static ArrayList<GeoPoint> cloneDeep(final ArrayList<GeoPoint> wayPoints) {
final ArrayList<GeoPoint> out = new ArrayList<GeoPoint>();
for (final GeoPoint gp : wayPoints) {
out.add((GeoPoint) gp.clone());
}
return out;
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}