Skip to content

Commit b358780

Browse files
DavidMina96HeshamMegid
authored andcommitted
[MOB-10573] Support setSdkDebugLogsLevel on Android (#304)
* Add setSdkDebugLogsLevel implementation on Android * Deprecate setDebugEnabled API * Remove setDebugEnabled from Android bridge * Deprecate APM.setLogLevel * Update CHANGELOG.md * Remove setDebugEnabled from pigeon spec and iOS * Add `setSdkDebugLogsLevel` Android test
1 parent ec60282 commit b358780

File tree

10 files changed

+33
-20
lines changed

10 files changed

+33
-20
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
## Unreleased
22

33
* Bumps Instabug Android SDK to v11.7.0
4+
* Adds new string keys: okButtonText, audio, image, screenRecording, messagesNotificationAndOthers, insufficientContentTitle, insufficientContentMessage
45
* Fixes APM network logging on Android
56
* Fixes a NullPointerException when overriding a string key that doesn't exist on Android
67
* Removes redundant native logs
7-
* Adds new string keys: okButtonText, audio, image, screenRecording, messagesNotificationAndOthers, insufficientContentTitle, insufficientContentMessage
8+
* Deprecates Instabug.setDebugEnabled and APM.setLogLevel APIs in favour of Instabug.setSdkDebugLogsLevel, which controls the verbosity of SDK logs on both platforms
89

910
## 11.5.0 (2022-11-24)
1011

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,14 +247,10 @@ public void run() {
247247
);
248248
}
249249

250-
@Override
251-
public void setDebugEnabled(@NonNull Boolean enabled) {
252-
Instabug.setDebugEnabled(enabled);
253-
}
254-
255250
@Override
256251
public void setSdkDebugLogsLevel(@NonNull String level) {
257-
// iOS Only
252+
final int sdkLogLevel = ArgsRegistry.sdkLogLevels.get(level);
253+
Instabug.setSdkDebugLogsLevel(sdkLogLevel);
258254
}
259255

260256
@Override

android/src/main/java/com/instabug/flutter/util/ArgsRegistry.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,4 +201,11 @@ public T get(Object key) {
201201
put("CustomTextPlaceHolderKey.messagesNotificationAndOthers", Key.CHATS_MULTIPLE_MESSAGE_NOTIFICATION);
202202
put("CustomTextPlaceHolderKey.insufficientContentMessage", Key.COMMENT_FIELD_INSUFFICIENT_CONTENT);
203203
}};
204+
205+
public static final ArgsMap<Integer> sdkLogLevels = new ArgsMap<Integer>() {{
206+
put("IBGSDKDebugLogsLevel.none", com.instabug.library.LogLevel.NONE);
207+
put("IBGSDKDebugLogsLevel.error", com.instabug.library.LogLevel.ERROR);
208+
put("IBGSDKDebugLogsLevel.debug", com.instabug.library.LogLevel.DEBUG);
209+
put("IBGSDKDebugLogsLevel.verbose", com.instabug.library.LogLevel.VERBOSE);
210+
}};
204211
}

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -369,14 +369,13 @@ public void testGetUserAttributes() {
369369
mInstabug.verify(Instabug::getAllUserAttributes);
370370
}
371371

372-
@SuppressWarnings("deprecation")
373372
@Test
374-
public void testSetDebugEnabled() {
375-
boolean isEnabled = true;
373+
public void testSetSdkDebugLogsLevel() {
374+
String level = "IBGSDKDebugLogsLevel.debug";
376375

377-
api.setDebugEnabled(isEnabled);
376+
api.setSdkDebugLogsLevel(level);
378377

379-
mInstabug.verify(() -> Instabug.setDebugEnabled(isEnabled));
378+
mInstabug.verify(() -> Instabug.setSdkDebugLogsLevel(com.instabug.library.LogLevel.DEBUG));
380379
}
381380

382381
@Test

ios/Classes/Modules/InstabugApi.m

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,6 @@ - (void)getUserAttributesWithCompletion:(nonnull void (^)(NSDictionary<NSString
140140
completion(Instabug.userAttributes, nil);
141141
}
142142

143-
- (void)setDebugEnabledEnabled:(NSNumber *)enabled error:(FlutterError *_Nullable *_Nonnull)error {
144-
// Android Only
145-
}
146-
147143
- (void)setSdkDebugLogsLevelLevel:(NSString *)level error:(FlutterError *_Nullable *_Nonnull)error {
148144
IBGSDKDebugLogsLevel resolvedLevel = (ArgsRegistry.sdkLogLevels[level]).integerValue;
149145
[Instabug setSdkDebugLogsLevel:resolvedLevel];

lib/src/modules/apm.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class APM {
3636

3737
/// Sets log Level to determine level of details in a log
3838
/// [logLevel] Enum value to determine the level
39+
@Deprecated(
40+
"Use [Instabug.setSdkDebugLogsLevel] instead. ",
41+
)
3942
static Future<void> setLogLevel(LogLevel logLevel) async {
4043
return _host.setLogLevel(logLevel.toString());
4144
}

lib/src/modules/instabug.dart

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,9 +291,17 @@ class Instabug {
291291
/// Android only
292292
/// Enable/disable SDK logs
293293
/// [debugEnabled] desired state of debug mode.
294+
@Deprecated(
295+
"Use [Instabug.setSdkDebugLogsLevel] instead. This will work on both Android and iOS. ",
296+
)
294297
static Future<void> setDebugEnabled(bool debugEnabled) async {
295298
if (IBGBuildInfo.instance.isAndroid) {
296-
return _host.setDebugEnabled(debugEnabled);
299+
if (debugEnabled) {
300+
return _host
301+
.setSdkDebugLogsLevel(IBGSDKDebugLogsLevel.verbose.toString());
302+
} else {
303+
return _host.setSdkDebugLogsLevel(IBGSDKDebugLogsLevel.none.toString());
304+
}
297305
}
298306
}
299307

pigeons/instabug.api.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ abstract class InstabugHostApi {
3939
@async
4040
Map<String, String>? getUserAttributes();
4141

42-
void setDebugEnabled(bool enabled);
4342
void setSdkDebugLogsLevel(String level);
4443

4544
void setReproStepsMode(String mode);

test/apm_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ void main() {
6161
test('[setLogLevel] should call host method', () async {
6262
const level = LogLevel.debug;
6363

64+
// ignore: deprecated_member_use_from_same_package
6465
await APM.setLogLevel(level);
6566

6667
verify(

test/instabug_test.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,14 +270,17 @@ void main() {
270270
).called(1);
271271
});
272272

273-
test('[setDebugEnabled] should call host method', () async {
273+
test('[setDebugEnabled] should call setSdkDebugLogsLevel host method',
274+
() async {
274275
const enabled = true;
276+
const level = IBGSDKDebugLogsLevel.verbose;
275277
when(mBuildInfo.isAndroid).thenReturn(true);
276278

279+
// ignore: deprecated_member_use_from_same_package
277280
await Instabug.setDebugEnabled(enabled);
278281

279282
verify(
280-
mHost.setDebugEnabled(enabled),
283+
mHost.setSdkDebugLogsLevel(level.toString()),
281284
).called(1);
282285
});
283286

0 commit comments

Comments
 (0)