Skip to content

Commit 409575f

Browse files
kholood-eaa7medev
andauthored
fix(android): add w3c external trace attributes placeholder (#491)
* fix(android): add w3c external trace attributes placeholder * chore: add changelog * chore: fix formatting * test: update apm network log signature in mocks --------- Co-authored-by: Ahmed Mahmoud <[email protected]>
1 parent 79a227b commit 409575f

File tree

5 files changed

+30
-22
lines changed

5 files changed

+30
-22
lines changed

CHANGELOG.md

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010

1111
- Deprecate Experiments APIs `Instabug.addExperiments`, `Instabug.removeExperiments` and `Instabug.clearAllExperiments` in favor of the new Feature Flags APIs ([#471](https://github.com/Instabug/Instabug-Flutter/pull/471)).
1212

13+
### Fixed
14+
15+
- Fix APM network logging on Android ([#491](https://github.com/Instabug/Instabug-Flutter/pull/491)).
16+
1317
## [13.2.0](https://github.com/Instabug/Instabug-Flutter/compare/v13.1.1...v13.2.0)
1418

1519
### Added
@@ -169,18 +173,18 @@
169173

170174
Below is a list of all the affected APIs:
171175

172-
- `APM.startExecutionTrace`
173-
- `BugReporting.setOnInvokeCallback`
174-
- `BugReporting.setOnDismissCallback`
175-
- `Instabug.getTags`
176-
- `Instabug.getUserAttributeForKey`
177-
- `Instabug.getUserAttributes`
178-
- `Replies.getUnreadRepliesCount`
179-
- `Replies.hasChats`
180-
- `Replies.setOnNewReplyReceivedCallback`
181-
- `Surveys.hasRespondToSurvey`
182-
- `Surveys.setOnShowCallback`
183-
- `Surveys.setOnDismissCallback`
176+
- `APM.startExecutionTrace`
177+
- `BugReporting.setOnInvokeCallback`
178+
- `BugReporting.setOnDismissCallback`
179+
- `Instabug.getTags`
180+
- `Instabug.getUserAttributeForKey`
181+
- `Instabug.getUserAttributes`
182+
- `Replies.getUnreadRepliesCount`
183+
- `Replies.hasChats`
184+
- `Replies.setOnNewReplyReceivedCallback`
185+
- `Surveys.hasRespondToSurvey`
186+
- `Surveys.setOnShowCallback`
187+
- `Surveys.setOnDismissCallback`
184188

185189
## [11.12.0](https://github.com/Instabug/Instabug-Flutter/compare/v11.10.1...v11.12.0) (May 30, 2023)
186190

@@ -257,10 +261,10 @@
257261
- Deprecates Instabug.enableAndroid and Instabug.disableAndroid APIs in favour of the new API
258262
Instabug.setEnabled, which works on both platforms
259263
- Deprecates callbacks in favor of return values in the following APIs:
260-
1. Replies.getUnreadRepliesCount
261-
2. Replies.hasChats
262-
3. Surveys.hasRespondedToSurvey
263-
4. Surveys.getAvailableSurveys
264+
1. Replies.getUnreadRepliesCount
265+
2. Replies.hasChats
266+
3. Surveys.hasRespondedToSurvey
267+
4. Surveys.getAvailableSurveys
264268

265269
## 11.3.0 (2022-09-30)
266270

android/src/main/java/com/instabug/flutter/modules/ApmApi.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.instabug.flutter.generated.ApmPigeon;
1515
import com.instabug.flutter.util.Reflection;
1616
import com.instabug.flutter.util.ThreadManager;
17+
import com.instabug.apm.networkinterception.cp.APMCPNetworkLog;
1718

1819
import io.flutter.plugin.common.BinaryMessenger;
1920

@@ -210,9 +211,9 @@ public void networkLogAndroid(@NonNull Map<String, Object> data) {
210211
serverErrorMessage = (String) data.get("serverErrorMessage");
211212
}
212213

213-
Method method = Reflection.getMethod(Class.forName("com.instabug.apm.networking.APMNetworkLogger"), "log", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class);
214+
Method method = Reflection.getMethod(Class.forName("com.instabug.apm.networking.APMNetworkLogger"), "log", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class, APMCPNetworkLog.W3CExternalTraceAttributes.class);
214215
if (method != null) {
215-
method.invoke(apmNetworkLogger, requestStartTime, requestDuration, requestHeaders, requestBody, requestBodySize, requestMethod, requestUrl, requestContentType, responseHeaders, responseBody, responseBodySize, statusCode, responseContentType, errorMessage, gqlQueryName, serverErrorMessage);
216+
method.invoke(apmNetworkLogger, requestStartTime, requestDuration, requestHeaders, requestBody, requestBodySize, requestMethod, requestUrl, requestContentType, responseHeaders, responseBody, responseBodySize, statusCode, responseContentType, errorMessage, gqlQueryName, serverErrorMessage, null);
216217
} else {
217218
Log.e(TAG, "APMNetworkLogger.log was not found by reflection");
218219
}

android/src/test/java/com/instabug/flutter/ApmApiTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,8 @@ public void testNetworkLogAndroid() {
262262
responseContentType,
263263
errorDomain,
264264
null,
265-
serverErrorMessage
265+
serverErrorMessage,
266+
null
266267
));
267268

268269
mAPMNetworkLogger.close();

android/src/test/java/com/instabug/flutter/util/GlobalMocks.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import android.net.Uri;
99
import android.util.Log;
1010

11+
import com.instabug.apm.networkinterception.cp.APMCPNetworkLog;
1112
import com.instabug.crash.models.IBGNonFatalException;
1213

1314
import org.json.JSONObject;
@@ -69,10 +70,10 @@ public static void setUp() throws NoSuchMethodException {
6970
.when(() -> Reflection.getMethod(Class.forName("com.instabug.library.Instabug"), "setCurrentPlatform", int.class))
7071
.thenReturn(mSetCurrentPlatform);
7172

72-
Method mAPMNetworkLog = MockReflected.class.getDeclaredMethod("apmNetworkLog", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class);
73+
Method mAPMNetworkLog = MockReflected.class.getDeclaredMethod("apmNetworkLog", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class, APMCPNetworkLog.W3CExternalTraceAttributes.class);
7374
mAPMNetworkLog.setAccessible(true);
7475
reflection
75-
.when(() -> Reflection.getMethod(Class.forName("com.instabug.apm.networking.APMNetworkLogger"), "log", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class))
76+
.when(() -> Reflection.getMethod(Class.forName("com.instabug.apm.networking.APMNetworkLogger"), "log", long.class, long.class, String.class, String.class, long.class, String.class, String.class, String.class, String.class, String.class, long.class, int.class, String.class, String.class, String.class, String.class, APMCPNetworkLog.W3CExternalTraceAttributes.class))
7677
.thenReturn(mAPMNetworkLog);
7778

7879
Method mCrashReportException = MockReflected.class.getDeclaredMethod("crashReportException", JSONObject.class, boolean.class);

android/src/test/java/com/instabug/flutter/util/MockReflected.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.graphics.Bitmap;
44
import androidx.annotation.Nullable;
55

6+
import com.instabug.apm.networkinterception.cp.APMCPNetworkLog;
67
import com.instabug.crash.models.IBGNonFatalException;
78

89
import org.json.JSONObject;
@@ -33,7 +34,7 @@ public static void setCurrentPlatform(int platform) {}
3334
/**
3435
* APMNetworkLogger.log
3536
*/
36-
public static void apmNetworkLog(long requestStartTime, long requestDuration, String requestHeaders, String requestBody, long requestBodySize, String requestMethod, String requestUrl, String responseHeaders, String responseBody, String responseBodySize, long statusCode, int responseContentType, String errorMessage, String var18, @Nullable String gqlQueryName, @Nullable String serverErrorMessage) {}
37+
public static void apmNetworkLog(long requestStartTime, long requestDuration, String requestHeaders, String requestBody, long requestBodySize, String requestMethod, String requestUrl, String responseHeaders, String responseBody, String responseBodySize, long statusCode, int responseContentType, String errorMessage, String var18, @Nullable String gqlQueryName, @Nullable String serverErrorMessage, @Nullable APMCPNetworkLog.W3CExternalTraceAttributes w3CExternalTraceAttributes) {}
3738

3839
/**
3940
* CrashReporting.reportException

0 commit comments

Comments
 (0)