package org.opensatnav.util;
import org.opensatnav.OpenSatNavConstants;
import org.opensatnav.R;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
public class BugReportHelper {
private Context context;
public BugReportHelper(Context context) {
this.context = context;
}
public String getRevision() {
// Try meta data of package
Bundle md = null;
try {
md = context.getPackageManager().getApplicationInfo(
context.getPackageName(), PackageManager.GET_META_DATA).metaData;
} catch (NameNotFoundException e) {
Log.e(OpenSatNavConstants.LOG_TAG, "Package name not found", e);
}
if (md != null) {
// if numeric revision
int rev = md.getInt(OpenSatNavConstants.REVISION_METADATA);
if (rev != 0)
return "" + rev;
else if (!TextUtils.isEmpty(md
.getString(OpenSatNavConstants.REVISION_METADATA))) {
// if string rev
return md.getString(OpenSatNavConstants.REVISION_METADATA);
}
}
return "Unknown";
}
public String getVersionName() {
return context.getString(R.string.app_name) + " " + getVersionNumber();
}
public String getVersionNumber() {
String version = "Unknown version";
try {
PackageInfo pi = context.getPackageManager().getPackageInfo(
context.getPackageName(), 0);
version = pi.versionName;
} catch (PackageManager.NameNotFoundException e) {
}
return version;
}
}