summaryrefslogtreecommitdiff
path: root/src/de/blinkt/openvpn/SendDumpFragment.java
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2013-02-28 17:43:12 +0100
committerArne Schwabe <arne@rfc2549.org>2013-02-28 17:43:12 +0100
commitc2d2473b1618a9a002344ec6be1e67004fdb1f94 (patch)
tree26e6080ee9aaa63de6d55ec0983d840ed65e423a /src/de/blinkt/openvpn/SendDumpFragment.java
parent428ef31f6a1de54cd6e3c20264f5ab411a076aaa (diff)
New Layout for main screen
Diffstat (limited to 'src/de/blinkt/openvpn/SendDumpFragment.java')
-rw-r--r--src/de/blinkt/openvpn/SendDumpFragment.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/de/blinkt/openvpn/SendDumpFragment.java b/src/de/blinkt/openvpn/SendDumpFragment.java
new file mode 100644
index 00000000..0ff7f48f
--- /dev/null
+++ b/src/de/blinkt/openvpn/SendDumpFragment.java
@@ -0,0 +1,100 @@
+package de.blinkt.openvpn;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+
+public class SendDumpFragment extends Fragment implements OnClickListener {
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+
+ View v = inflater.inflate(R.layout.fragment_senddump, container, false);
+ v.findViewById(R.id.senddump).setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ emailMiniDumps();
+ }
+ });
+ return v;
+ }
+
+ public void emailMiniDumps()
+ {
+ //need to "send multiple" to get more than one attachment
+ final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
+ emailIntent.setType("*/*");
+ emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
+ new String[]{"Arne Schwabe <arne@rfc2549.org>"});
+
+ String version;
+ String name="ics-openvpn";
+ try {
+ PackageInfo packageinfo = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), 0);
+ version = packageinfo.versionName;
+ name = packageinfo.applicationInfo.name;
+ } catch (NameNotFoundException e) {
+ version = "error fetching version";
+ }
+
+
+ emailIntent.putExtra(Intent.EXTRA_SUBJECT, String.format("%s %s Minidump",name,version));
+
+ emailIntent.putExtra(Intent.EXTRA_TEXT, "Please describe the issue you have experienced");
+
+ ArrayList<Uri> uris = new ArrayList<Uri>();
+
+ File ldump = getLastestDump(getActivity());
+ if(ldump==null) {
+ OpenVPN.logError("No Minidump found!");
+ }
+
+ uris.add(Uri.parse("content://de.blinkt.openvpn.FileProvider/" + ldump.getName()));
+ uris.add(Uri.parse("content://de.blinkt.openvpn.FileProvider/" + ldump.getName() + ".log"));
+
+ emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+ emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
+ startActivity(emailIntent);
+ }
+
+ static public File getLastestDump(Context c) {
+ long newestDumpTime=0;
+ File newestDumpFile=null;
+
+ for(File f:c.getCacheDir().listFiles()) {
+ if(!f.getName().endsWith(".dmp"))
+ continue;
+
+ if (newestDumpTime < f.lastModified()) {
+ newestDumpTime = f.lastModified();
+ newestDumpFile=f;
+ }
+ }
+ // Ignore old dumps
+ //if(System.currentTimeMillis() - 48 * 60 * 1000 > newestDumpTime )
+ //return null;
+
+ return newestDumpFile;
+ }
+
+
+
+ @Override
+ public void onClick(View v) {
+ // TODO Auto-generated method stub
+
+ }
+}