Skip to content

Commit f248be7

Browse files
chore: remove APMNetworkEnabled flag from android
1 parent dd97124 commit f248be7

File tree

9 files changed

+53
-202
lines changed

9 files changed

+53
-202
lines changed

android/src/main/java/com/instabug/reactlibrary/RNInstabugNetworkLoggerModule.java

Lines changed: 2 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,12 @@
77

88
import androidx.annotation.NonNull;
99

10-
//import com.facebook.react.bridge.Arguments;
1110
import com.facebook.react.bridge.Promise;
1211
import com.facebook.react.bridge.ReactApplicationContext;
1312
import com.facebook.react.bridge.ReactMethod;
14-
//import com.facebook.react.bridge.WritableMap;
15-
//import com.instabug.apm.InternalAPM;
16-
//import com.instabug.apm.sanitization.OnCompleteCallback;
17-
//import com.instabug.apm.sanitization.VoidSanitizer;
18-
//import com.instabug.library.logging.listeners.networklogs.NetworkLogSnapshot;
1913
import com.instabug.apm.InternalAPM;
2014
import com.instabug.reactlibrary.utils.EventEmitterModule;
2115
import com.instabug.reactlibrary.utils.MainThreadHandler;
22-
//
23-
//import org.json.JSONException;
24-
//import org.json.JSONObject;
25-
//
26-
//import java.util.concurrent.ConcurrentHashMap;
2716

2817

2918
public class RNInstabugNetworkLoggerModule extends EventEmitterModule {
@@ -32,8 +21,6 @@ public RNInstabugNetworkLoggerModule(ReactApplicationContext reactContext) {
3221
super(reactContext);
3322
}
3423

35-
// private final ConcurrentHashMap<Integer, OnCompleteCallback<NetworkLogSnapshot>> callbackMap = new ConcurrentHashMap<Integer, OnCompleteCallback<NetworkLogSnapshot>>();
36-
3724
@NonNull
3825
@Override
3926
public String getName() {
@@ -67,7 +54,7 @@ public void run() {
6754
promise.resolve(getFlagValue(CP_NATIVE_INTERCEPTION_ENABLED));
6855
} catch (Exception e) {
6956
e.printStackTrace();
70-
promise.resolve(false);
57+
promise.resolve(false); // Will rollback to JS interceptor
7158
}
7259

7360
}
@@ -88,83 +75,10 @@ public void run() {
8875
promise.resolve(getFlagValue(APM_NETWORK_PLUGIN_INSTALLED));
8976
} catch (Exception e) {
9077
e.printStackTrace();
91-
promise.resolve(false);
92-
}
93-
94-
}
95-
});
96-
}
97-
98-
/**
99-
* Indicate APM is enabled & Network logging is enabled
100-
* [true] ApmEnabled && NetworkEnabled
101-
* [false] otherwise
102-
*/
103-
@ReactMethod
104-
public void isAPMNetworkEnabled(Promise promise) {
105-
MainThreadHandler.runOnMainThread(new Runnable() {
106-
@Override
107-
public void run() {
108-
try {
109-
promise.resolve(getFlagValue(NETWORK_INTERCEPTION_ENABLED));
110-
} catch (Exception e) {
111-
e.printStackTrace();
112-
promise.resolve(false);
78+
promise.resolve(false); // Will rollback to JS interceptor
11379
}
11480

11581
}
11682
});
11783
}
118-
119-
120-
// @ReactMethod
121-
// public void registerNetworkLogsListener() {
122-
// MainThreadHandler.runOnMainThread(new Runnable() {
123-
// @Override
124-
// public void run() {
125-
// InternalAPM._registerNetworkLogSanitizer(new VoidSanitizer<NetworkLogSnapshot>() {
126-
// @Override
127-
// public void sanitize(NetworkLogSnapshot networkLogSnapshot, @NonNull OnCompleteCallback<NetworkLogSnapshot> onCompleteCallback) {
128-
// final int id = onCompleteCallback.hashCode();
129-
// callbackMap.put(id, onCompleteCallback);
130-
//
131-
// WritableMap networkSnapshotParams = Arguments.createMap();
132-
// networkSnapshotParams.putInt("id", id);
133-
// networkSnapshotParams.putString("url", networkLogSnapshot.getUrl());
134-
// networkSnapshotParams.putInt("responseCode", networkLogSnapshot.getResponseCode());
135-
//
136-
// sendEvent("IBGNetworkLoggerHandler", networkSnapshotParams);
137-
//
138-
// }
139-
// });
140-
// }
141-
// });
142-
// }
143-
//
144-
// @ReactMethod
145-
// protected void updateNetworkLogSnapshot(String jsonString) {
146-
//
147-
// JSONObject newJSONObject = null;
148-
// try {
149-
// newJSONObject = new JSONObject(jsonString);
150-
// } catch (JSONException e) {
151-
// throw new RuntimeException(e);
152-
// }
153-
// final Integer ID = newJSONObject.optInt("id");
154-
// final NetworkLogSnapshot modifiedSnapshot = new NetworkLogSnapshot(
155-
// newJSONObject.optString("url"),
156-
// null,
157-
// null,
158-
// null,
159-
// null,
160-
// newJSONObject.optInt("responseCode")
161-
// );
162-
//
163-
// final OnCompleteCallback<NetworkLogSnapshot> callback = callbackMap.get(ID);
164-
// if (callback != null) {
165-
// callback.onComplete(null);
166-
// }
167-
// callbackMap.remove(ID);
168-
//
169-
// }
17084
}

examples/default/src/screens/apm/NetworkScreen.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,6 @@ export const NetworkScreen: React.FC = () => {
177177
title="Send Sequantail Requests"
178178
/>
179179

180-
<CustomButton
181-
onPress={() => makeSequentialApiCalls(generateUrls())}
182-
title="Send Sequantail Requests"
183-
/>
184-
185180
<CustomButton onPress={() => refetch} title="Reload GraphQL" />
186181
<View>
187182
{isLoading && <Text>Loading...</Text>}

ios/RNInstabug/InstabugNetworkLoggerBridge.m

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -44,74 +44,4 @@ -(void)stopObserving {
4444
resolve(@(IBGNetworkLogger.isNativeNetworkInterceptionFeatureEnabled));
4545
}
4646

47-
48-
// RCT_EXPORT_METHOD(registerNetworkLogsListener){
49-
// [IBGNetworkLogger setRequestObfuscationHandlerV2:^(NSURLRequest * _Nonnull request, void (^ _Nonnull completionHandler)(NSURLRequest * _Nonnull)) {
50-
// NSString *tempId = [[[NSUUID alloc] init] UUIDString];
51-
// self.dictionary[tempId] = completionHandler;
52-
//
53-
// // Ensure the URL, HTTP body, and headers are in the correct format
54-
// NSString *urlString = request.URL.absoluteString ?: @"";
55-
// NSString *bodyString = [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding] ?: @"";
56-
// NSDictionary *headerDict = request.allHTTPHeaderFields ?: @{};
57-
//
58-
// // Create the dictionary to send
59-
// NSDictionary *dict = @{
60-
// @"tempId": tempId,
61-
// @"url": urlString,
62-
// @"requestBody": bodyString,
63-
// @"requestHeader": headerDict
64-
// };
65-
//
66-
// // Send the event
67-
// [self sendEventWithName:@"IBGNetworkLoggerHandler" body:dict];
68-
//
69-
// }];
70-
// }
71-
//
72-
// RCT_EXPORT_METHOD(updateNetworkLogSnapshot:(NSString * _Nonnull)jsonString) {
73-
// // Properly initialize the NSMutableURLRequest
74-
// NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
75-
//
76-
// // Convert jsonString to NSData
77-
// NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
78-
//
79-
// // Parse the JSON into a dictionary
80-
// NSError *error = nil;
81-
// NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
82-
//
83-
// // Check for JSON parsing errors
84-
// if (error) {
85-
// NSLog(@"Failed to parse JSON: %@", error);
86-
// return;
87-
// }
88-
//
89-
// // Set the URL, HTTP body, and headers
90-
// request.URL = [NSURL URLWithString:dict[@"url"]];
91-
// request.HTTPBody = [dict[@"requestBody"] dataUsingEncoding:NSUTF8StringEncoding];
92-
//
93-
// // Ensure requestHeader is a dictionary
94-
// if ([dict[@"requestHeader"] isKindOfClass:[NSDictionary class]]) {
95-
// request.allHTTPHeaderFields = dict[@"requestHeader"];
96-
// } else {
97-
// NSLog(@"Invalid requestHeader format");
98-
// // return;
99-
// }
100-
//
101-
// // Ensure self.completion is not nil before calling it
102-
// NSString *tempId = dict[@"tempId"];
103-
// if ([tempId isKindOfClass:[NSString class]] && self.dictionary[tempId] != nil) {
104-
// ((IBGURLRequestObfuscationHandler)self.dictionary[tempId])(request);
105-
// } else {
106-
// NSLog(@"Not Available Completion");
107-
// }
108-
// }
109-
//
110-
// RCT_EXPORT_METHOD(setNetworkLoggingRequestFilterPredicateIOS: (BOOL)value){
111-
//
112-
// NSPredicate *requestPredicate = [NSPredicate predicateWithValue:(value) ? YES : NO];
113-
//
114-
// [IBGNetworkLogger setNetworkLoggingRequestFilterPredicate:requestPredicate responseFilterPredicate:nil];
115-
// }
116-
11747
@end

src/modules/Instabug.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ const firstScreen = 'Initial Screen';
4545
let _currentAppState = AppState.currentState;
4646
let isNativeInterceptionFeatureEnabled = false; // Checks the value of "cp_native_interception_enabled" backend flag.
4747
let hasAPMNetworkPlugin = false; // Android only: checks if the APM plugin is installed.
48-
let isAPMNetworkEnabled = false; // Android only: checks if (APM enabled && Network enabled).
4948
let shouldEnableNativeInterception = false; // Android: used to disable APM logging inside reportNetworkLog() -> NativeAPM.networkLogAndroid(), iOS: used to control native interception (true == enabled , false == disabled)
5049

5150
/**
@@ -78,7 +77,6 @@ function _logFlags() {
7877
`Andrew: init -> {
7978
isNativeInterceptionFeatureEnabled: ${isNativeInterceptionFeatureEnabled},
8079
hasAPMNetworkPlugin: ${hasAPMNetworkPlugin},
81-
isApmNetworkEnabled: ${isAPMNetworkEnabled},
8280
shouldEnableNativeInterception: ${shouldEnableNativeInterception}
8381
}`,
8482
);
@@ -96,7 +94,6 @@ export const init = async (config: InstabugConfig) => {
9694
isNativeInterceptionFeatureEnabled = await NativeNetworkLogger.isNativeInterceptionEnabled();
9795
if (Platform.OS === 'android') {
9896
hasAPMNetworkPlugin = await NativeNetworkLogger.hasAPMNetworkPlugin();
99-
isAPMNetworkEnabled = await NativeNetworkLogger.isAPMNetworkEnabled();
10097
shouldEnableNativeInterception =
10198
config.networkInterceptionMode === NetworkInterceptionMode.native;
10299
}
@@ -118,7 +115,6 @@ export const init = async (config: InstabugConfig) => {
118115
setApmNetworkFlagsIfChanged({
119116
isNativeInterceptionFeatureEnabled: isNativeInterceptionFeatureEnabled,
120117
hasAPMNetworkPlugin: hasAPMNetworkPlugin,
121-
isAPMNetworkEnabled: isAPMNetworkEnabled,
122118
shouldEnableNativeInterception: shouldEnableNativeInterception,
123119
});
124120

@@ -166,13 +162,11 @@ const fetchApmNetworkFlags = async () => {
166162
isNativeInterceptionFeatureEnabled = await NativeNetworkLogger.isNativeInterceptionEnabled();
167163
if (Platform.OS === 'android') {
168164
hasAPMNetworkPlugin = await NativeNetworkLogger.hasAPMNetworkPlugin();
169-
isAPMNetworkEnabled = await NativeNetworkLogger.isAPMNetworkEnabled();
170165
}
171166

172167
return {
173168
isNativeInterceptionFeatureEnabled,
174169
hasAPMNetworkPlugin,
175-
isAPMNetworkEnabled,
176170
shouldEnableNativeInterception,
177171
};
178172
};
@@ -243,6 +237,7 @@ const checkNativeInterceptionForIOS = (config: InstabugConfig) => {
243237
shouldEnableNativeInterception = true;
244238
} else {
245239
shouldEnableNativeInterception = false;
240+
NetworkLogger.setEnabled(true); // rollback to JS interceptor
246241
console.error(InstabugConstants.IBG_APM_TAG + 'Native interception is disabled');
247242
}
248243
}

src/native/NativeNetworkLogger.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ import { NativeEventEmitter, type NativeModule } from 'react-native';
44
export interface NetworkLoggerNativeModule extends NativeModule {
55
// Network logging Flags //
66
isNativeInterceptionEnabled(): Promise<boolean>;
7-
isAPMNetworkEnabled(): Promise<boolean>;
87
hasAPMNetworkPlugin(): Promise<boolean>;
9-
10-
// registerNetworkLogsListener(): void;
11-
// updateNetworkLogSnapshot(networkData: string): void;
12-
// setNetworkLoggingRequestFilterPredicateIOS(value: boolean): void;
138
}
149

1510
export const NativeNetworkLogger = NativeModules.IBGNetworkLogger;

src/utils/InstabugUtils.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,17 @@ import { NativeAPM } from '../native/NativeAPM';
1616
type ApmNetworkFlags = {
1717
isNativeInterceptionFeatureEnabled: boolean;
1818
hasAPMNetworkPlugin: boolean;
19-
isAPMNetworkEnabled: boolean;
2019
shouldEnableNativeInterception: boolean;
2120
};
2221

2322
let apmFlags: ApmNetworkFlags = {
2423
isNativeInterceptionFeatureEnabled: false,
2524
hasAPMNetworkPlugin: false,
26-
isAPMNetworkEnabled: false,
2725
shouldEnableNativeInterception: false,
2826
};
2927

3028
export function setApmNetworkFlagsIfChanged(flags: ApmNetworkFlags): boolean {
3129
if (
32-
flags.isAPMNetworkEnabled === apmFlags.isAPMNetworkEnabled &&
3330
flags.hasAPMNetworkPlugin === apmFlags.hasAPMNetworkPlugin &&
3431
flags.isNativeInterceptionFeatureEnabled === apmFlags.isNativeInterceptionFeatureEnabled &&
3532
flags.shouldEnableNativeInterception === apmFlags.shouldEnableNativeInterception
@@ -188,10 +185,9 @@ export const reportNetworkLog = (network: NetworkData) => {
188185
);
189186

190187
if (
191-
(!apmFlags.isNativeInterceptionFeatureEnabled ||
192-
!apmFlags.hasAPMNetworkPlugin ||
193-
!apmFlags.shouldEnableNativeInterception) &&
194-
apmFlags.isAPMNetworkEnabled
188+
!apmFlags.isNativeInterceptionFeatureEnabled ||
189+
!apmFlags.hasAPMNetworkPlugin ||
190+
!apmFlags.shouldEnableNativeInterception
195191
) {
196192
console.log('Andrew: ' + 'NetworkLogger -> NativeAPM.networkLogAndroid');
197193
NativeAPM.networkLogAndroid(

0 commit comments

Comments
 (0)