Skip to content

Commit f67941b

Browse files
Version 1.0rc1
1 parent e7fd879 commit f67941b

40 files changed

+1357
-472
lines changed

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
# Backtrace
2+
<!--
23
[![Backtrace@release](https://img.shields.io/badge/Backtrace%40master-2.0.5-blue.svg)](https://www.nuget.org/packages/Backtrace)
3-
<!-- [![Build status](https://ci.appveyor.com/api/projects/status/o0n9sp0ydgxb3ktu?svg=true)](https://ci.appveyor.com/project/konraddysput/backtrace-csharp) -->
4+
[![Build status](https://ci.appveyor.com/api/projects/status/o0n9sp0ydgxb3ktu?svg=true)](https://ci.appveyor.com/project/konraddysput/backtrace-csharp)
5+
-->
46

7+
<!--
58
[![Backtrace@pre-release](https://img.shields.io/badge/Backtrace%40dev-2.0.6-blue.svg)](https://www.nuget.org/packages/Backtrace)
6-
<!-- [![Build status](https://ci.appveyor.com/api/projects/status/o0n9sp0ydgxb3ktu/branch/dev?svg=true)](https://ci.appveyor.com/project/konraddysput/backtrace-csharp/branch/dev) -->
9+
[![Build status](https://ci.appveyor.com/api/projects/status/o0n9sp0ydgxb3ktu/branch/dev?svg=true)](https://ci.appveyor.com/project/konraddysput/backtrace-csharp/branch/dev)
10+
-->
711

812

913

@@ -13,7 +17,7 @@
1317
## Usage
1418
```java
1519
// replace with your endpoint url and token
16-
BacktraceCredentials credentials = new BacktraceCredentials("https://myserver.sp.backtrace.io:6097/", "4dca18e8769d0f5d10db0d1b665e64b3d716f76bf182fbcdad5d1d8070c12db0");
20+
BacktraceCredentials credentials = new BacktraceCredentials("<endpoint-url>", "<token>");
1721
BacktraceClient backtraceClient = new BacktraceClient(getApplicationContext(), credentials);
1822

1923
try {
@@ -51,7 +55,7 @@ TODO
5155
# Running sample application
5256
## Android Studio <a name="sample-app-android-studio"></a>
5357

54-
- Open `MainActivity.java` class in **app\src\main\java\backtraceio\backtraceio** and replace `BacktraceCredential` constructor parameters with with your `Backtrace endpoint URL` (e.g. https://xxx.sp.backtrace.io:6098) and `submission token`:
58+
- Open `MainActivity.java` class in **app\src\main\java\backtraceio\backtraceio** and replace `BacktraceCredential` constructor parameters with your `Backtrace endpoint URL` (e.g. https://xxx.sp.backtrace.io:6098) and `submission token`:
5559

5660
```java
5761
BacktraceCredentials credentials = new BacktraceCredentials("https://myserver.sp.backtrace.io:6097/", "4dca18e8769d0f5d10db0d1b665e64b3d716f76bf182fbcdad5d1d8070c12db0");
@@ -152,7 +156,7 @@ backtraceClient.setOnBeforeSendEventListener(new OnBeforeSendEventListener() {
152156
## Reporting unhandled application exceptions
153157
`BacktraceClient` also supports reporting of unhandled application exceptions not captured by your try-catch blocks. To enable reporting of unhandled exceptions:
154158
```java
155-
new BacktraceExceptionHandler(getApplicationContext(), backtraceClient);
159+
BacktraceExceptionHandler.enable(backtraceClient);
156160
```
157161

158162
## Custom client and report classes <a name="documentation-customization"></a>

backtrace-library/build.gradle

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ android {
77
minSdkVersion 19
88
targetSdkVersion 28
99
versionCode 1
10-
versionName "1.0"
11-
10+
versionName "1.0rc1"
1211
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13-
1412
}
1513

1614
buildTypes {
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package backtraceio.library;
2+
3+
import android.content.Context;
4+
import android.support.test.InstrumentationRegistry;
5+
import android.support.test.runner.AndroidJUnit4;
6+
7+
import org.junit.Before;
8+
import org.junit.Test;
9+
import org.junit.runner.RunWith;
10+
11+
import java.util.ArrayList;
12+
import java.util.UUID;
13+
14+
import backtraceio.library.events.OnBeforeSendEventListener;
15+
import backtraceio.library.events.OnServerErrorEventListener;
16+
import backtraceio.library.events.RequestHandler;
17+
import backtraceio.library.models.BacktraceData;
18+
import backtraceio.library.models.BacktraceResult;
19+
import backtraceio.library.models.types.BacktraceResultStatus;
20+
21+
22+
import static org.junit.Assert.assertEquals;
23+
24+
/**
25+
* Instrumented test, which will execute on an Android device.
26+
*
27+
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
28+
*/
29+
@RunWith(AndroidJUnit4.class)
30+
public class EventsInstrumentedTest {
31+
private Context context;
32+
private BacktraceCredentials credentials;
33+
private final String resultMessage = "From request handler";
34+
35+
@Before
36+
public void setUp() {
37+
context = InstrumentationRegistry.getContext();
38+
credentials = new BacktraceCredentials("https://example-endpoint.com/", "");
39+
}
40+
41+
@Test
42+
public void useRequestHandler() {
43+
// GIVEN
44+
BacktraceClient backtraceClient = new BacktraceClient(context, credentials);
45+
RequestHandler rh = new RequestHandler() {
46+
@Override
47+
public BacktraceResult onRequest(BacktraceData data) {
48+
return new BacktraceResult(null, resultMessage, BacktraceResultStatus.Ok);
49+
}
50+
};
51+
backtraceClient.setOnRequestHandler(rh);
52+
53+
// WHEN
54+
BacktraceResult result = backtraceClient.send("test");
55+
56+
// THEN
57+
assertEquals(resultMessage, result.message);
58+
assertEquals(BacktraceResultStatus.Ok, result.status);
59+
}
60+
61+
@Test
62+
public void useBeforeSendAndRequestHandler() {
63+
// GIVEN
64+
final String attributeKey = UUID.randomUUID().toString();
65+
66+
BacktraceClient backtraceClient = new BacktraceClient(context, credentials);
67+
RequestHandler rh = new RequestHandler() {
68+
@Override
69+
public BacktraceResult onRequest(BacktraceData data) {
70+
return new BacktraceResult(null, data.attributes.get(attributeKey).toString(),
71+
BacktraceResultStatus.Ok);
72+
}
73+
};
74+
75+
backtraceClient.setOnRequestHandler(rh);
76+
backtraceClient.setOnBeforeSendEventListener(new OnBeforeSendEventListener() {
77+
@Override
78+
public BacktraceData onEvent(BacktraceData data) {
79+
data.attributes.put(attributeKey, resultMessage);
80+
return data;
81+
}
82+
});
83+
84+
// WHEN
85+
BacktraceResult result = backtraceClient.send("test");
86+
87+
// THEN
88+
assertEquals(resultMessage, result.message);
89+
assertEquals(BacktraceResultStatus.Ok, result.status);
90+
}
91+
92+
@Test
93+
public void useOnServerError() {
94+
// GIVEN
95+
BacktraceClient backtraceClient = new BacktraceClient(context, credentials);
96+
final ArrayList<Exception> exceptions = new ArrayList<>();
97+
backtraceClient.setOnServerErrorEventListener(new OnServerErrorEventListener() {
98+
@Override
99+
public void onEvent(Exception exception) {
100+
exceptions.add(exception);
101+
}
102+
});
103+
104+
// WHEN
105+
backtraceClient.send(new Exception("test"));
106+
107+
// THEN
108+
assertEquals(1, exceptions.size());
109+
}
110+
}

backtrace-library/src/androidTest/java/backtraceio/library/ExampleInstrumentedTest.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

backtrace-library/src/main/java/backtraceio/library/BacktraceClient.java

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,46 +3,82 @@
33
import android.content.Context;
44
import android.os.AsyncTask;
55

6-
import backtraceio.library.models.BacktraceData;
6+
import backtraceio.library.base.BacktraceBase;
77
import backtraceio.library.models.BacktraceResult;
8-
import backtraceio.library.models.base.BacktraceBase;
98
import backtraceio.library.models.json.BacktraceReport;
109

10+
/**
11+
* Backtrace Java Android Client
12+
*/
1113
public class BacktraceClient extends BacktraceBase {
12-
private BacktraceCredentials backtraceCredentials;
1314

14-
public BacktraceClient(Context context, BacktraceCredentials credentials)
15-
{
15+
/**
16+
* Initializing Backtrace client instance with BacktraceCredentials
17+
*
18+
* @param context application context
19+
* @param credentials credentials to Backtrace API server
20+
*/
21+
public BacktraceClient(Context context, BacktraceCredentials credentials) {
1622
super(context, credentials);
1723
}
1824

19-
public BacktraceResult send(String message)
20-
{
25+
/**
26+
* Sending a message to Backtrace API
27+
*
28+
* @param message custom client message
29+
* @return server response
30+
*/
31+
public BacktraceResult send(String message) {
2132
return super.send(message);
2233
}
2334

24-
public BacktraceResult send(Exception e)
25-
{
26-
return super.send(e);
35+
/**
36+
* Sending an exception to Backtrace API
37+
*
38+
* @param exception current exception
39+
* @return server response
40+
*/
41+
public BacktraceResult send(Exception exception) {
42+
return super.send(exception);
2743
}
2844

29-
public BacktraceResult send(BacktraceReport report)
30-
{
45+
/**
46+
* Sending a Backtrace report to Backtrace API
47+
*
48+
* @param report current BacktraceReport
49+
* @return server response
50+
*/
51+
public BacktraceResult send(BacktraceReport report) {
3152
return super.send(report);
3253
}
3354

34-
public AsyncTask<Void, Void, BacktraceResult> sendAsync(String message)
35-
{
55+
/**
56+
* Sending asynchronously a message to Backtrace API
57+
*
58+
* @param message custom client message
59+
* @return async task which send data to Backtrace API and return server response
60+
*/
61+
public AsyncTask<Void, Void, BacktraceResult> sendAsync(String message) {
3662
return super.sendAsync(message);
3763
}
3864

39-
public AsyncTask<Void, Void, BacktraceResult> sendAsync(Exception e)
40-
{
41-
return super.sendAsync(e);
65+
/**
66+
* Sending asynchronously an Exception to Backtrace API
67+
*
68+
* @param exception current exception
69+
* @return async task which send data to Backtrace API and return server response
70+
*/
71+
public AsyncTask<Void, Void, BacktraceResult> sendAsync(Exception exception) {
72+
return super.sendAsync(exception);
4273
}
4374

44-
public AsyncTask<Void, Void, BacktraceResult> sendAsync(BacktraceReport report)
45-
{
75+
/**
76+
* Sending asynchronously a Backtrace report to Backtrace API
77+
*
78+
* @param report current BacktraceReport
79+
* @return async task which send data to Backtrace API and return server response
80+
*/
81+
public AsyncTask<Void, Void, BacktraceResult> sendAsync(BacktraceReport report) {
4682
return super.sendAsync(report);
4783
}
48-
}
84+
}
Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,38 @@
11
package backtraceio.library;
22

3-
import android.util.Log;
4-
3+
/**
4+
* Backtrace credentials information
5+
*/
56
public class BacktraceCredentials {
6-
private String TAG = "BACKTRACE.IO";
77
private String endpointUrl;
88
private String submissionToken;
99

10+
/**
11+
* Get URL to Backtrace server API
12+
*
13+
* @return endpoint url
14+
*/
1015
public String getEndpointUrl() {
1116
return endpointUrl;
1217
}
1318

19+
/**
20+
* Get an access token to Backtrace server API
21+
*
22+
* @return access token
23+
*/
1424
public String getSubmissionToken() {
1525
return submissionToken;
1626
}
1727

18-
public BacktraceCredentials(String endpointUrl, String submissionToken)
19-
{
28+
/**
29+
* Initialize Backtrace credentials
30+
*
31+
* @param endpointUrl
32+
* @param submissionToken
33+
*/
34+
public BacktraceCredentials(String endpointUrl, String submissionToken) {
2035
this.endpointUrl = endpointUrl;
2136
this.submissionToken = submissionToken;
22-
Log.d(TAG, endpointUrl);
2337
}
2438
}

backtrace-library/src/main/java/backtraceio/library/BacktraceException.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)