Skip to content

Commit 5c3ab5c

Browse files
authored
Invalid intent flag #104 (#105)
* Add intent flag on Android SDK 33+ and leave the default behavior for the rest * Remove unused import * Fixed formatting * Extract code to the method * Changelog updates
1 parent 2ce7e0b commit 5c3ab5c

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Backtrace Android Release Notes
22

3+
## Version 3.7.8
4+
5+
- Fixed missing breadcrumbs intent filter in SDK 33+.
6+
37
## Version 3.7.7
48

59
- Added a new attribute to native reports - `breadcrumbs.lastId`

backtrace-library/src/main/java/backtraceio/library/breadcrumbs/BacktraceBreadcrumbs.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package backtraceio.library.breadcrumbs;
22

3+
import static android.content.Context.RECEIVER_EXPORTED;
4+
35
import android.app.Application;
46
import android.content.Context;
7+
import android.os.Build;
58

69
import java.util.EnumSet;
710
import java.util.HashMap;
@@ -101,10 +104,7 @@ private void registerAutomaticBreadcrumbReceivers() {
101104
BacktraceLogger.d(LOG_TAG, "No breadcrumbs are enabled, not registering any new breadcrumb receivers");
102105
return;
103106
}
104-
105-
backtraceBroadcastReceiver = new BacktraceBroadcastReceiver(this);
106-
context.registerReceiver(backtraceBroadcastReceiver,
107-
backtraceBroadcastReceiver.getIntentFilter());
107+
registerBroadcastReceiver();
108108

109109
if (enabledBreadcrumbTypes.contains(BacktraceBreadcrumbType.SYSTEM)) {
110110
backtraceComponentListener = new BacktraceComponentListener(this);
@@ -117,6 +117,18 @@ private void registerAutomaticBreadcrumbReceivers() {
117117
}
118118
}
119119

120+
private void registerBroadcastReceiver() {
121+
backtraceBroadcastReceiver = new BacktraceBroadcastReceiver(this);
122+
123+
if (Build.VERSION.SDK_INT >= 33) {
124+
context.registerReceiver(backtraceBroadcastReceiver,
125+
backtraceBroadcastReceiver.getIntentFilter(), RECEIVER_EXPORTED);
126+
} else {
127+
context.registerReceiver(backtraceBroadcastReceiver,
128+
backtraceBroadcastReceiver.getIntentFilter());
129+
}
130+
}
131+
120132
@Override
121133
public boolean enableBreadcrumbs(Context context) {
122134
return enableBreadcrumbs(context, BacktraceBreadcrumbType.ALL);
@@ -347,6 +359,7 @@ private boolean addConfigurationBreadcrumb() {
347359

348360
/**
349361
* Determinate if Breadcrumbs are enabled.
362+
*
350363
* @return true if breadcrumbs are enabled.
351364
*/
352365
public boolean isEnabled() {

example-app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ android {
55
defaultConfig {
66
applicationId "backtraceio.backtraceio"
77
minSdkVersion 21
8-
targetSdkVersion 33
8+
targetSdkVersion 34
99
versionCode 1
1010
versionName "1.0"
1111
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'

0 commit comments

Comments
 (0)