Skip to content

Commit fe52845

Browse files
committed
feat:add feature flag change listener for android
1 parent a19abb9 commit fe52845

File tree

6 files changed

+24
-19
lines changed

6 files changed

+24
-19
lines changed

examples/default/src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export const App: React.FC = () => {
5050
token: 'deb1910a7342814af4e4c9210c786f35',
5151
invocationEvents: [InvocationEvent.floatingButton],
5252
debugLogsLevel: LogLevel.verbose,
53-
networkInterceptionMode: NetworkInterceptionMode.native,
53+
networkInterceptionMode: NetworkInterceptionMode.javascript,
5454
});
5555

5656
CrashReporting.setNDKCrashesEnabled(true);

src/modules/Instabug.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import type { NavigationAction, NavigationState as NavigationStateV4 } from 'rea
1616
import type { InstabugConfig } from '../models/InstabugConfig';
1717
import Report from '../models/Report';
1818
import { emitter, NativeEvents, NativeInstabug } from '../native/NativeInstabug';
19-
import { registerW3CFlagsListener } from '../utils/FeatureFlags';
19+
import { registerFeatureFlagsListener } from '../utils/FeatureFlags';
2020
import {
2121
AutoMaskingType,
2222
ColorTheme,
@@ -87,7 +87,7 @@ function reportCurrentViewForAndroid(screenName: string | null) {
8787
export const init = async (config: InstabugConfig) => {
8888
if (Platform.OS === 'android') {
8989
// Add android feature flags listener for android
90-
registerW3CFlagsListener();
90+
registerFeatureFlagsListener();
9191
addOnFeatureUpdatedListener(config);
9292
} else {
9393
isNativeInterceptionFeatureEnabled = await NativeNetworkLogger.isNativeInterceptionEnabled();
@@ -871,20 +871,21 @@ export const componentDidAppearListener = (event: ComponentDidAppearEvent) => {
871871
};
872872

873873
/**
874-
* Sets listener to W3ExternalTraceID flag changes
874+
* Sets listener to feature flag changes
875875
* @param handler A callback that gets the update value of the flag
876876
*/
877-
export const _registerW3CFlagsChangeListener = (
877+
export const _registerFeatureFlagsChangeListener = (
878878
handler: (payload: {
879879
isW3ExternalTraceIDEnabled: boolean;
880880
isW3ExternalGeneratedHeaderEnabled: boolean;
881881
isW3CaughtHeaderEnabled: boolean;
882+
networkBodyLimit: number;
882883
}) => void,
883884
) => {
884-
emitter.addListener(NativeEvents.ON_W3C_FLAGS_CHANGE, (payload) => {
885+
emitter.addListener(NativeEvents.ON_FEATURE_FLAGS_CHANGE, (payload) => {
885886
handler(payload);
886887
});
887-
NativeInstabug.registerW3CFlagsChangeListener();
888+
NativeInstabug.registerFeatureFlagsChangeListener();
888889
};
889890

890891
/**

src/native/NativeInstabug.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ export interface InstabugNativeModule extends NativeModule {
152152

153153
isW3CaughtHeaderEnabled(): Promise<boolean>;
154154

155-
// W3C Feature Flags Listener for Android
156-
registerW3CFlagsChangeListener(): void;
155+
// Feature Flags Listener for Android
156+
registerFeatureFlagsChangeListener(): void;
157157

158158
setOnFeaturesUpdatedListener(handler?: (params: any) => void): void; // android only
159159
enableAutoMasking(autoMaskingTypes: AutoMaskingType[]): void;
@@ -165,7 +165,7 @@ export const NativeInstabug = NativeModules.Instabug;
165165
export enum NativeEvents {
166166
PRESENDING_HANDLER = 'IBGpreSendingHandler',
167167
IBG_ON_FEATURES_UPDATED_CALLBACK = 'IBGOnFeatureUpdatedCallback',
168-
ON_W3C_FLAGS_CHANGE = 'IBGOnNewW3CFlagsUpdateReceivedCallback',
168+
ON_FEATURE_FLAGS_CHANGE = 'IBGOnNewFeatureFlagsUpdateReceivedCallback',
169169
}
170170

171171
export const emitter = new NativeEventEmitter(NativeInstabug);

src/utils/FeatureFlags.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { NativeInstabug } from '../native/NativeInstabug';
2-
import { _registerW3CFlagsChangeListener } from '../modules/Instabug';
2+
import { _registerFeatureFlagsChangeListener } from '../modules/Instabug';
33

44
export const FeatureFlags = {
55
isW3ExternalTraceID: () => NativeInstabug.isW3ExternalTraceIDEnabled(),
@@ -8,12 +8,13 @@ export const FeatureFlags = {
88
networkLogLimit: () => NativeInstabug.getNetworkBodyMaxSize(),
99
};
1010

11-
export const registerW3CFlagsListener = () => {
12-
_registerW3CFlagsChangeListener(
11+
export const registerFeatureFlagsListener = () => {
12+
_registerFeatureFlagsChangeListener(
1313
(res: {
1414
isW3ExternalTraceIDEnabled: boolean;
1515
isW3ExternalGeneratedHeaderEnabled: boolean;
1616
isW3CaughtHeaderEnabled: boolean;
17+
networkBodyLimit: number;
1718
}) => {
1819
FeatureFlags.isW3ExternalTraceID = async () => {
1920
return res.isW3ExternalTraceIDEnabled;
@@ -24,6 +25,9 @@ export const registerW3CFlagsListener = () => {
2425
FeatureFlags.isW3CaughtHeader = async () => {
2526
return res.isW3CaughtHeaderEnabled;
2627
};
28+
FeatureFlags.networkLogLimit = async () => {
29+
return res.networkBodyLimit;
30+
};
2731
},
2832
);
2933
};

test/mocks/mockInstabug.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ const mockInstabug: InstabugNativeModule = {
7272
isW3ExternalTraceIDEnabled: jest.fn(),
7373
isW3ExternalGeneratedHeaderEnabled: jest.fn(),
7474
isW3CaughtHeaderEnabled: jest.fn(),
75-
registerW3CFlagsChangeListener: jest.fn(),
75+
registerFeatureFlagsChangeListener: jest.fn(),
7676
setNetworkLogBodyEnabled: jest.fn(),
7777
setOnFeaturesUpdatedListener: jest.fn(),
7878
enableAutoMasking: jest.fn(),

test/modules/Instabug.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -902,17 +902,17 @@ describe('Instabug Module', () => {
902902

903903
it('should register W3C flag listener', async () => {
904904
const callback = jest.fn();
905-
Instabug._registerW3CFlagsChangeListener(callback);
905+
Instabug._registerFeatureFlagsChangeListener(callback);
906906

907-
expect(NativeInstabug.registerW3CFlagsChangeListener).toBeCalledTimes(1);
907+
expect(NativeInstabug.registerFeatureFlagsChangeListener).toBeCalledTimes(1);
908908
});
909909

910910
it('should invoke callback on emitting the event IBGOnNewW3CFlagsUpdateReceivedCallback', () => {
911911
const callback = jest.fn();
912-
Instabug._registerW3CFlagsChangeListener(callback);
913-
emitter.emit(NativeEvents.ON_W3C_FLAGS_CHANGE);
912+
Instabug._registerFeatureFlagsChangeListener(callback);
913+
emitter.emit(NativeEvents.ON_FEATURE_FLAGS_CHANGE);
914914

915-
expect(emitter.listenerCount(NativeEvents.ON_W3C_FLAGS_CHANGE)).toBe(1);
915+
expect(emitter.listenerCount(NativeEvents.ON_FEATURE_FLAGS_CHANGE)).toBe(1);
916916
expect(callback).toHaveBeenCalled();
917917
});
918918

0 commit comments

Comments
 (0)