Skip to content

Commit f4b3282

Browse files
fix: registerNetworkLogsListener signature for android
1 parent 28dace8 commit f4b3282

File tree

4 files changed

+69
-42
lines changed

4 files changed

+69
-42
lines changed

examples/default/src/App.tsx

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Instabug, {
77
CrashReporting,
88
InvocationEvent,
99
LogLevel,
10-
NetworkInterceptionMode,
10+
NetworkLogger,
1111
ReproStepsMode,
1212
} from 'instabug-reactnative';
1313
import { NativeBaseProvider } from 'native-base';
@@ -23,27 +23,33 @@ const queryClient = new QueryClient();
2323
export const App: React.FC = () => {
2424
const [isInstabugInitialized, setIsInstabugInitialized] = useState(false);
2525

26-
useEffect(() => {
27-
const initializeInstabug = async () => {
28-
try {
29-
await Instabug.init({
30-
token: '0fcc87b8bf731164828cc411eccc802a',
31-
invocationEvents: [InvocationEvent.floatingButton],
32-
debugLogsLevel: LogLevel.verbose,
33-
networkInterceptionMode: NetworkInterceptionMode.native,
34-
});
26+
const initializeInstabug = async () => {
27+
try {
28+
await Instabug.init({
29+
token: '0fcc87b8bf731164828cc411eccc802a',
30+
invocationEvents: [InvocationEvent.floatingButton],
31+
debugLogsLevel: LogLevel.verbose,
32+
// networkInterceptionMode: NetworkInterceptionMode.native,
33+
});
3534

36-
CrashReporting.setNDKCrashesEnabled(true);
37-
Instabug.setReproStepsConfig({ all: ReproStepsMode.enabled });
35+
CrashReporting.setNDKCrashesEnabled(true);
36+
Instabug.setReproStepsConfig({ all: ReproStepsMode.enabled });
3837

39-
setIsInstabugInitialized(true); // Set to true after initialization
40-
} catch (error) {
41-
console.error('Instabug initialization failed:', error);
42-
setIsInstabugInitialized(true); // Proceed even if initialization fails
43-
}
44-
};
38+
setIsInstabugInitialized(true); // Set to true after initialization
39+
} catch (error) {
40+
console.error('Instabug initialization failed:', error);
41+
setIsInstabugInitialized(true); // Proceed even if initialization fails
42+
}
43+
};
4544

46-
initializeInstabug();
45+
useEffect(() => {
46+
initializeInstabug().then(() => {
47+
NetworkLogger.setNetworkDataObfuscationHandler(async (networkData) => {
48+
networkData.url = `${networkData.url}/JS/Obfuscated`;
49+
return networkData;
50+
});
51+
// NetworkLogger.setRequestFilterExpression('false');
52+
});
4753
}, []);
4854

4955
if (!isInstabugInitialized) {

src/modules/NetworkLogger.ts

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export const setEnabled = (isEnabled: boolean) => {
7272
};
7373

7474
/**
75+
* @internal
7576
* Sets whether enabling or disabling native network interception.
7677
* It is disabled by default.
7778
* @param isEnabled
@@ -157,6 +158,10 @@ export function registerNetworkLogsListener(
157158
) {
158159
if (process.env.NODE_ENV === 'test') {
159160
_registerNetworkLogsListener(type, handler);
161+
} else {
162+
console.error(
163+
`${InstabugConstants.IBG_APM_TAG}: The \`registerNetworkLogsListener()\` method is intended solely for testing purposes.`,
164+
);
160165
}
161166
}
162167

@@ -167,41 +172,48 @@ export function registerNetworkLogsListener(
167172
export const resetNetworkListener = () => {
168173
if (process.env.NODE_ENV === 'test') {
169174
_networkListener = null;
175+
} else {
176+
console.error(
177+
`${InstabugConstants.IBG_APM_TAG}: The \`resetNetworkListener()\` method is intended solely for testing purposes.`,
178+
);
170179
}
171180
};
172181

173182
const _registerNetworkLogsListener = (
174183
type: NetworkListenerType,
175184
handler?: (networkSnapshot: NetworkData) => void,
176185
) => {
177-
console.log('Andrew: registerNetworkLogsListener called');
178-
// ignore repetitive calls
179-
if (_networkListener === type || _networkListener === NetworkListenerType.both) {
180-
console.log('Andrew: _registerNetworkLogsListener called on the same type');
181-
return;
182-
}
183-
// remove old listeners
184-
if (NetworkLoggerEmitter.listenerCount(NativeNetworkLoggerEvent.NETWORK_LOGGER_HANDLER) > 0) {
185-
console.log('Andrew: removeAllListeners called');
186-
NetworkLoggerEmitter.removeAllListeners(NativeNetworkLoggerEvent.NETWORK_LOGGER_HANDLER);
186+
if (Platform.OS === 'ios') {
187+
console.log('Andrew: registerNetworkLogsListener called');
188+
// ignore repetitive calls
189+
if (_networkListener === type || _networkListener === NetworkListenerType.both) {
190+
console.log('Andrew: _registerNetworkLogsListener called on the same type');
191+
return;
192+
}
193+
// remove old listeners
194+
if (NetworkLoggerEmitter.listenerCount(NativeNetworkLoggerEvent.NETWORK_LOGGER_HANDLER) > 0) {
195+
console.log('Andrew: removeAllListeners called');
196+
NetworkLoggerEmitter.removeAllListeners(NativeNetworkLoggerEvent.NETWORK_LOGGER_HANDLER);
197+
}
198+
199+
if (_networkListener == null) {
200+
// set new listener.
201+
_networkListener = type;
202+
} else {
203+
// attach a new listener to the existing one.
204+
_networkListener = NetworkListenerType.both;
205+
}
206+
console.log(`Andrew: new NetworkLogsListener (${_networkListener}) attached`);
187207
}
188208

189-
if (_networkListener == null) {
190-
// set new listener.
191-
_networkListener = type;
192-
} else {
193-
// attach a new listener to the existing one.
194-
_networkListener = NetworkListenerType.both;
195-
}
196-
console.log(`Andrew: new NetworkLogsListener (${_networkListener}) attached`);
197209
NetworkLoggerEmitter.addListener(
198210
NativeNetworkLoggerEvent.NETWORK_LOGGER_HANDLER,
199211
(networkSnapshot) => {
200212
// Mapping the data [Native -> React-Native].
201213
const { id, url, requestHeader, requestBody, responseHeader, response, responseCode } =
202214
networkSnapshot;
203215

204-
console.log(`Andrew: new snapshot ${url}`);
216+
// console.log(`Andrew: new snapshot ${url}`);
205217
const networkSnapshotObj: NetworkData = {
206218
id: id,
207219
url: url,
@@ -226,7 +238,9 @@ const _registerNetworkLogsListener = (
226238
}
227239
},
228240
);
229-
//todo: find where to remove listener
230-
// emitter.removeAllListeners(NativeEvents.NETWORK_LOGGER_HANDLER);
231-
NativeNetworkLogger.registerNetworkLogsListener(_networkListener);
241+
if (Platform.OS === 'ios') {
242+
NativeNetworkLogger.registerNetworkLogsListener(_networkListener ?? NetworkListenerType.both);
243+
} else {
244+
NativeNetworkLogger.registerNetworkLogsListener();
245+
}
232246
};

src/native/NativeNetworkLogger.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export enum NetworkListenerType {
1010
export interface NetworkLoggerNativeModule extends NativeModule {
1111
isNativeInterceptionEnabled(): Promise<boolean>;
1212

13-
registerNetworkLogsListener(type: NetworkListenerType): void;
13+
registerNetworkLogsListener(type?: NetworkListenerType): void;
1414

1515
updateNetworkLogSnapshot(networkData: string): void;
1616

test/modules/NetworkLogger.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,8 @@ describe('_registerNetworkLogsListener', () => {
332332
});
333333

334334
it('should ignore repetitive calls with the same type', () => {
335+
Platform.OS = 'ios';
336+
335337
// Simulate existing listener
336338
jest.spyOn(NetworkLoggerEmitter, 'listenerCount').mockReturnValue(1);
337339
NetworkLogger.registerNetworkLogsListener(type, handlerMock);
@@ -345,6 +347,8 @@ describe('_registerNetworkLogsListener', () => {
345347
});
346348

347349
it('should remove old listeners if they exist', () => {
350+
Platform.OS = 'ios';
351+
348352
// Simulate that there are existing listeners
349353
jest.spyOn(NetworkLoggerEmitter, 'listenerCount').mockReturnValue(2);
350354

@@ -356,6 +360,7 @@ describe('_registerNetworkLogsListener', () => {
356360
});
357361

358362
it('should set the new listener if _networkListener is null', () => {
363+
Platform.OS = 'ios';
359364
// No existing listener
360365
jest.spyOn(NetworkLoggerEmitter, 'listenerCount').mockReturnValue(0);
361366

@@ -366,6 +371,8 @@ describe('_registerNetworkLogsListener', () => {
366371
});
367372

368373
it('should attach a new listener to the existing one if _networkListener is set', () => {
374+
Platform.OS = 'ios';
375+
369376
type = NetworkListenerType.filtering;
370377
const newType = NetworkListenerType.both;
371378

0 commit comments

Comments
 (0)