Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/org/adblockplus/android/CrashReportDialog.java

Issue 5697499218051072: Usage of new API, cleanups (reduced) (Closed)
Patch Set: Removed another whitespace change Created April 28, 2014, 8:36 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2014 Eyeo GmbH 3 * Copyright (C) 2006-2014 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 28 matching lines...) Expand all
39 import android.view.View; 39 import android.view.View;
40 import android.view.Window; 40 import android.view.Window;
41 import android.widget.EditText; 41 import android.widget.EditText;
42 import android.widget.Toast; 42 import android.widget.Toast;
43 43
44 /** 44 /**
45 * Shows crash report dialog asking user to submit crash report together with co mments. 45 * Shows crash report dialog asking user to submit crash report together with co mments.
46 */ 46 */
47 public final class CrashReportDialog extends Activity 47 public final class CrashReportDialog extends Activity
48 { 48 {
49 private final static String TAG = "CrashReportDialog"; 49 private static final String TAG = Utils.getTag(CrashReportDialog.class);
50
50 private String report; 51 private String report;
51 52
52 @Override 53 @Override
53 protected void onCreate(Bundle savedInstanceState) 54 protected void onCreate(final Bundle savedInstanceState)
54 { 55 {
55 super.onCreate(savedInstanceState); 56 super.onCreate(savedInstanceState);
56 requestWindowFeature(Window.FEATURE_LEFT_ICON); 57 requestWindowFeature(Window.FEATURE_LEFT_ICON);
57 setContentView(R.layout.crashreport); 58 setContentView(R.layout.crashreport);
58 59
59 Bundle extras = getIntent().getExtras(); 60 final Bundle extras = getIntent().getExtras();
60 if (extras == null) 61 if (extras == null)
61 { 62 {
62 finish(); 63 finish();
63 return; 64 return;
64 } 65 }
65 report = extras.getString("report"); 66 report = extras.getString("report");
66 67
67 getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.d rawable.ic_dialog_alert); 68 getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, android.R.d rawable.ic_dialog_alert);
68 } 69 }
69 70
70 public void onOk(View v) 71 public void onOk(final View v)
71 { 72 {
72 String comment = ((EditText) findViewById(R.id.comments)).getText().toString (); 73 final String comment = ((EditText) findViewById(R.id.comments)).getText().to String();
73 74
74 try 75 try
75 { 76 {
76 String[] reportLines = report.split(System.getProperty("line.separator")); 77 final String[] reportLines = report.split(System.getProperty("line.separat or"));
77 int api = Integer.parseInt(reportLines[0]); 78 final int api = Integer.parseInt(reportLines[0]);
78 int build = Integer.parseInt(reportLines[1]); 79 final int build = Integer.parseInt(reportLines[1]);
79 80
80 XmlSerializer xmlSerializer = Xml.newSerializer(); 81 final XmlSerializer xmlSerializer = Xml.newSerializer();
81 StringWriter writer = new StringWriter(); 82 final StringWriter writer = new StringWriter();
82 83
83 xmlSerializer.setOutput(writer); 84 xmlSerializer.setOutput(writer);
84 xmlSerializer.startDocument("UTF-8", true); 85 xmlSerializer.startDocument("UTF-8", true);
85 xmlSerializer.startTag("", "crashreport"); 86 xmlSerializer.startTag("", "crashreport");
86 xmlSerializer.attribute("", "version", "1"); 87 xmlSerializer.attribute("", "version", "1");
87 xmlSerializer.attribute("", "api", String.valueOf(api)); 88 xmlSerializer.attribute("", "api", String.valueOf(api));
88 xmlSerializer.attribute("", "build", String.valueOf(build)); 89 xmlSerializer.attribute("", "build", String.valueOf(build));
89 xmlSerializer.startTag("", "error"); 90 xmlSerializer.startTag("", "error");
90 xmlSerializer.attribute("", "type", reportLines[2]); 91 xmlSerializer.attribute("", "type", reportLines[2]);
91 xmlSerializer.startTag("", "message"); 92 xmlSerializer.startTag("", "message");
92 xmlSerializer.text(reportLines[3]); 93 xmlSerializer.text(reportLines[3]);
93 xmlSerializer.endTag("", "message"); 94 xmlSerializer.endTag("", "message");
94 xmlSerializer.startTag("", "stacktrace"); 95 xmlSerializer.startTag("", "stacktrace");
95 Pattern p = Pattern.compile("\\|"); 96 final Pattern p = Pattern.compile("\\|");
96 boolean hasCause = false; 97 boolean hasCause = false;
97 int i = 4; 98 int i = 4;
98 while (i < reportLines.length) 99 while (i < reportLines.length)
99 { 100 {
100 if ("cause".equals(reportLines[i])) 101 if ("cause".equals(reportLines[i]))
101 { 102 {
102 xmlSerializer.endTag("", "stacktrace"); 103 xmlSerializer.endTag("", "stacktrace");
103 xmlSerializer.startTag("", "cause"); 104 xmlSerializer.startTag("", "cause");
104 hasCause = true; 105 hasCause = true;
105 i++; 106 i++;
106 xmlSerializer.attribute("", "type", reportLines[i]); 107 xmlSerializer.attribute("", "type", reportLines[i]);
107 i++; 108 i++;
108 xmlSerializer.startTag("", "message"); 109 xmlSerializer.startTag("", "message");
109 xmlSerializer.text(reportLines[i]); 110 xmlSerializer.text(reportLines[i]);
110 i++; 111 i++;
111 xmlSerializer.endTag("", "message"); 112 xmlSerializer.endTag("", "message");
112 xmlSerializer.startTag("", "stacktrace"); 113 xmlSerializer.startTag("", "stacktrace");
113 continue; 114 continue;
114 } 115 }
115 Log.e(TAG, "Line: " + reportLines[i]); 116 Log.e(TAG, "Line: " + reportLines[i]);
116 String[] element = TextUtils.split(reportLines[i], p); 117 final String[] element = TextUtils.split(reportLines[i], p);
117 xmlSerializer.startTag("", "frame"); 118 xmlSerializer.startTag("", "frame");
118 xmlSerializer.attribute("", "class", element[0]); 119 xmlSerializer.attribute("", "class", element[0]);
119 xmlSerializer.attribute("", "method", element[1]); 120 xmlSerializer.attribute("", "method", element[1]);
120 xmlSerializer.attribute("", "isnative", element[2]); 121 xmlSerializer.attribute("", "isnative", element[2]);
121 xmlSerializer.attribute("", "file", element[3]); 122 xmlSerializer.attribute("", "file", element[3]);
122 xmlSerializer.attribute("", "line", element[4]); 123 xmlSerializer.attribute("", "line", element[4]);
123 xmlSerializer.endTag("", "frame"); 124 xmlSerializer.endTag("", "frame");
124 i++; 125 i++;
125 } 126 }
126 xmlSerializer.endTag("", "stacktrace"); 127 xmlSerializer.endTag("", "stacktrace");
127 if (hasCause) 128 if (hasCause)
128 xmlSerializer.endTag("", "cause"); 129 xmlSerializer.endTag("", "cause");
129 xmlSerializer.endTag("", "error"); 130 xmlSerializer.endTag("", "error");
130 xmlSerializer.startTag("", "comment"); 131 xmlSerializer.startTag("", "comment");
131 xmlSerializer.text(comment); 132 xmlSerializer.text(comment);
132 xmlSerializer.endTag("", "comment"); 133 xmlSerializer.endTag("", "comment");
133 xmlSerializer.endTag("", "crashreport"); 134 xmlSerializer.endTag("", "crashreport");
134 xmlSerializer.endDocument(); 135 xmlSerializer.endDocument();
135 136
136 String xml = writer.toString(); 137 final String xml = writer.toString();
137 HttpClient httpclient = new DefaultHttpClient(); 138 final HttpClient httpclient = new DefaultHttpClient();
138 HttpPost httppost = new HttpPost(getString(R.string.crash_report_url)); 139 final HttpPost httppost = new HttpPost(getString(R.string.crash_report_url ));
139 httppost.setHeader("Content-Type", "text/xml; charset=UTF-8"); 140 httppost.setHeader("Content-Type", "text/xml; charset=UTF-8");
140 httppost.addHeader("X-Adblock-Plus", "yes"); 141 httppost.addHeader("X-Adblock-Plus", "yes");
141 httppost.setEntity(new StringEntity(xml)); 142 httppost.setEntity(new StringEntity(xml));
142 HttpResponse httpresponse = httpclient.execute(httppost); 143 final HttpResponse httpresponse = httpclient.execute(httppost);
143 StatusLine statusLine = httpresponse.getStatusLine(); 144 final StatusLine statusLine = httpresponse.getStatusLine();
144 Log.e(TAG, statusLine.getStatusCode() + " " + statusLine.getReasonPhrase() ); 145 Log.e(TAG, statusLine.getStatusCode() + " " + statusLine.getReasonPhrase() );
145 Log.e(TAG, EntityUtils.toString(httpresponse.getEntity())); 146 Log.e(TAG, EntityUtils.toString(httpresponse.getEntity()));
146 if (statusLine.getStatusCode() != 200) 147 if (statusLine.getStatusCode() != 200)
147 throw new ClientProtocolException(); 148 throw new ClientProtocolException();
148 String response = EntityUtils.toString(httpresponse.getEntity()); 149 final String response = EntityUtils.toString(httpresponse.getEntity());
149 if (!"saved".equals(response)) 150 if (!"saved".equals(response))
150 throw new ClientProtocolException(); 151 throw new ClientProtocolException();
151 deleteFile(CrashHandler.REPORT_FILE); 152 deleteFile(CrashHandler.REPORT_FILE);
152 } 153 }
153 catch (ClientProtocolException e) 154 catch (final ClientProtocolException e)
154 { 155 {
155 Log.e(TAG, "Failed to submit a crash", e); 156 Log.e(TAG, "Failed to submit a crash", e);
156 Toast.makeText(this, R.string.msg_crash_submission_failure, Toast.LENGTH_L ONG).show(); 157 Toast.makeText(this, R.string.msg_crash_submission_failure, Toast.LENGTH_L ONG).show();
157 } 158 }
158 catch (IOException e) 159 catch (final IOException e)
159 { 160 {
160 Log.e(TAG, "Failed to submit a crash", e); 161 Log.e(TAG, "Failed to submit a crash", e);
161 Toast.makeText(this, R.string.msg_crash_submission_failure, Toast.LENGTH_L ONG).show(); 162 Toast.makeText(this, R.string.msg_crash_submission_failure, Toast.LENGTH_L ONG).show();
162 } 163 }
163 catch (Exception e) 164 catch (final Exception e)
164 { 165 {
165 Log.e(TAG, "Failed to create report", e); 166 Log.e(TAG, "Failed to create report", e);
166 // Assuming corrupted report file, just silently deleting it 167 // Assuming corrupted report file, just silently deleting it
167 deleteFile(CrashHandler.REPORT_FILE); 168 deleteFile(CrashHandler.REPORT_FILE);
168 } 169 }
169 finish(); 170 finish();
170 } 171 }
171 172
172 public void onCancel(View v) 173 public void onCancel(final View v)
173 { 174 {
174 deleteFile(CrashHandler.REPORT_FILE); 175 deleteFile(CrashHandler.REPORT_FILE);
175 finish(); 176 finish();
176 } 177 }
177 } 178 }
OLDNEW
« no previous file with comments | « src/org/adblockplus/android/CrashHandler.java ('k') | src/org/adblockplus/android/HelpfulCheckBoxPreference.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld