diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-05-17 16:16:41 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-05-17 16:16:41 +0200 |
| commit | e2d03264f63d644d72c369120d542969723398a1 (patch) | |
| tree | 0f45d5c89e74928c42386c8dbf79b54030b39099 /main/src/cgeo/geocaching/utils | |
| parent | a32ebb0d12e3501b57c043d0912230acd807b228 (diff) | |
| download | cgeo-e2d03264f63d644d72c369120d542969723398a1.zip cgeo-e2d03264f63d644d72c369120d542969723398a1.tar.gz cgeo-e2d03264f63d644d72c369120d542969723398a1.tar.bz2 | |
#3818: enable memory dumps on demand
Diffstat (limited to 'main/src/cgeo/geocaching/utils')
| -rw-r--r-- | main/src/cgeo/geocaching/utils/DebugUtils.java | 45 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/ShareUtils.java | 30 |
2 files changed, 75 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/utils/DebugUtils.java b/main/src/cgeo/geocaching/utils/DebugUtils.java new file mode 100644 index 0000000..4bbc74f --- /dev/null +++ b/main/src/cgeo/geocaching/utils/DebugUtils.java @@ -0,0 +1,45 @@ +package cgeo.geocaching.utils; + +import cgeo.geocaching.CgeoApplication; +import cgeo.geocaching.R; + +import org.eclipse.jdt.annotation.NonNull; + +import android.content.Context; +import android.os.Environment; +import android.widget.Toast; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + +public class DebugUtils { + + private DebugUtils() { + // utility class + } + + public static void createMemoryDump(final @NonNull Context context) { + try { + final Date now = new Date(); + final SimpleDateFormat fileNameDateFormat = new SimpleDateFormat( + "yyyy-MM-dd_hh-mm", Locale.US); + File file = FileUtils.getUniqueNamedFile(Environment + .getExternalStorageDirectory().getPath() + + File.separatorChar + + "cgeo_dump_" + + fileNameDateFormat.format(now) + ".hprof"); + android.os.Debug.dumpHprofData(file.getPath()); + Toast.makeText(CgeoApplication.getInstance() + .getApplicationContext(), + context.getString(R.string.init_memory_dumped, + file.getAbsolutePath()), + Toast.LENGTH_LONG).show(); + ShareUtils.share(context, file, R.string.init_memory_dump); + } catch (IOException e) { + Log.e("createMemoryDump", e); + } + } +} diff --git a/main/src/cgeo/geocaching/utils/ShareUtils.java b/main/src/cgeo/geocaching/utils/ShareUtils.java new file mode 100644 index 0000000..b587547 --- /dev/null +++ b/main/src/cgeo/geocaching/utils/ShareUtils.java @@ -0,0 +1,30 @@ +package cgeo.geocaching.utils; + +import org.eclipse.jdt.annotation.NonNull; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; + +import java.io.File; + +public class ShareUtils { + private ShareUtils() { + // utility class + } + + public static void share(final Context context, final @NonNull File file, + final @NonNull String mimeType, final int titleResourceId) { + final Intent shareIntent = new Intent(); + shareIntent.setAction(Intent.ACTION_SEND); + shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); + shareIntent.setType(mimeType); + context.startActivity(Intent.createChooser(shareIntent, + context.getString(titleResourceId))); + } + + public static void share(final Context context, final @NonNull File file, + final int titleResourceId) { + share(context, file, "*/*", titleResourceId); + } +} |
