Skip to content

Commit fa986c4

Browse files
Merge pull request #41 from newrelic/update/error-attribute
fix: Update error name to error Message
2 parents 8327e22 + 378af09 commit fa986c4

File tree

6 files changed

+63
-22
lines changed

6 files changed

+63
-22
lines changed

NRExoPlayerTracker/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ android {
88
minSdkVersion 16
99
targetSdkVersion 33
1010
versionCode 6
11-
versionName "3.0.1"
11+
versionName "3.0.2"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
consumerProguardFiles "consumer-rules.pro"
1414
}

NRIMATracker/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ android {
88
minSdkVersion 16
99
targetSdkVersion 33
1010
versionCode 6
11-
versionName "3.0.1"
11+
versionName "3.0.2"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
consumerProguardFiles "consumer-rules.pro"
1414
}

NewRelicVideoCore/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ android {
88
minSdkVersion 16
99
targetSdkVersion 33
1010
versionCode 9
11-
versionName "3.0.1"
11+
versionName "3.0.2"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
consumerProguardFiles "consumer-rules.pro"
1414
}
@@ -36,6 +36,8 @@ dependencies {
3636
implementation 'androidx.appcompat:appcompat:1.1.0'
3737
implementation 'com.google.android.material:material:1.1.0'
3838
implementation 'com.newrelic.agent.android:android-agent:7.6.3'
39+
implementation 'androidx.media3:media3-exoplayer:1.1.0'
40+
implementation 'androidx.media3:media3-exoplayer-ima:1.1.0'
3941
testImplementation 'junit:junit:4.+'
4042
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
4143
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.newrelic.videoagent.core.exception;
2+
3+
import androidx.media3.common.PlaybackException;
4+
import androidx.media3.datasource.HttpDataSource.InvalidResponseCodeException;
5+
import com.google.ads.interactivemedia.v3.api.AdError;
6+
import androidx.media3.exoplayer.source.ads.AdsMediaSource.AdLoadException;
7+
8+
public class ErrorExceptionHandler {
9+
10+
private final static int DEFAULT_ERROR_CODE = -9999; // default error code for unhandled exceptions
11+
12+
private int errorCode;
13+
private String errorMessage;
14+
15+
16+
public ErrorExceptionHandler(Exception error) {
17+
this.errorCode = DEFAULT_ERROR_CODE;
18+
this.errorMessage = error.getMessage();
19+
20+
if (error instanceof InvalidResponseCodeException) {
21+
InvalidResponseCodeException dataSourceError = (InvalidResponseCodeException) error;
22+
this.errorCode = dataSourceError.responseCode;
23+
this.errorMessage = dataSourceError.responseMessage;
24+
} else if (error instanceof PlaybackException) {
25+
PlaybackException playbackError = (PlaybackException) error;
26+
this.errorCode = playbackError.errorCode;
27+
this.errorMessage = playbackError.getMessage();
28+
} else if (error instanceof AdError || error instanceof AdLoadException) {
29+
AdError adError = (error instanceof AdLoadException)
30+
? (error.getCause() instanceof AdError ? (AdError) error.getCause() : null)
31+
: (AdError) error;
32+
33+
if (adError != null) {
34+
this.errorCode = adError.getErrorCodeNumber();
35+
this.errorMessage = adError.getMessage();
36+
}
37+
}
38+
}
39+
40+
41+
public int getErrorCode() {
42+
return this.errorCode;
43+
}
44+
45+
public String getErrorMessage() {
46+
return this.errorMessage;
47+
}
48+
}
49+

NewRelicVideoCore/src/main/java/com/newrelic/videoagent/core/tracker/NRVideoTracker.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.util.Random;
1414

1515
import static com.newrelic.videoagent.core.NRDef.*;
16+
import com.newrelic.videoagent.core.exception.ErrorExceptionHandler;
1617

1718
/**
1819
* `NRVideoTracker` defines the basic behaviour of a video tracker.
@@ -462,34 +463,23 @@ public void sendRenditionChange() {
462463
* @param error Exception.
463464
*/
464465
public void sendError(Exception error) {
465-
String msg;
466-
if (error != null) {
467-
if (error.getMessage() != null) {
468-
msg = error.getMessage();
469-
}
470-
else {
471-
msg = error.toString();
472-
}
473-
}
474-
else {
475-
msg = "<Unknown error>";
476-
}
477-
478-
sendError(msg);
466+
ErrorExceptionHandler exceptionHandler = new ErrorExceptionHandler(error);
467+
sendError(exceptionHandler.getErrorCode(), exceptionHandler.getErrorMessage());
479468
}
480469

481470
/**
482471
* Send request event.
483472
*
484473
* @param errorMessage Error message.
485474
*/
486-
public void sendError(String errorMessage) {
475+
public void sendError(int errorCode, String errorMessage) {
487476
if (errorMessage == null) {
488477
errorMessage = "<Unknown error>";
489478
}
490479
numberOfErrors++;
491480
Map<String, Object> errAttr = new HashMap<>();
492-
errAttr.put("errorName", errorMessage);
481+
errAttr.put("errorMessage", errorMessage);
482+
errAttr.put("errorCode", errorCode);
493483
// generatePlayElapsedTime();
494484
String actionName = CONTENT_ERROR;
495485
if (state.isAd) {

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ dependencies {
4949
...
5050
5151
// Add this to install the NewRelicVideoCore (required)
52-
implementation 'com.github.newrelic.video-agent-android:NewRelicVideoCore:master-SNAPSHOT'
52+
implementation 'com.github.newrelic.video-agent-android:NewRelicVideoCore:v3.0.2'
5353
5454
// Add this to install the ExoPlayer tracker
55-
implementation 'com.github.newrelic.video-agent-android:NRExoPlayerTracker:master-SNAPSHOT'
55+
implementation 'com.github.newrelic.video-agent-android:NRExoPlayerTracker:v3.0.2'
5656
5757
// Add this to install the Google IMA library tracker
58-
implementation 'com.github.newrelic.video-agent-android:NRIMATracker:master-SNAPSHOT'
58+
implementation 'com.github.newrelic.video-agent-android:NRIMATracker:v3.0.2'
5959
}
6060
```
6161

0 commit comments

Comments
 (0)