Skip to content

Commit 7308171

Browse files
author
Arief Nur Putranto
committed
Bug fix Crash race condition in file QiscusNetworkCheckerJobService (onCreate)
1 parent ff09cd4 commit 7308171

File tree

7 files changed

+23
-7
lines changed

7 files changed

+23
-7
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Second, you need to add SDK dependencies inside your app .gradle. Then, you need
5454
```
5555
dependencies {
5656
...
57-
implementation 'com.qiscus.sdk:chat-core:1.8.3'
57+
implementation 'com.qiscus.sdk:chat-core:1.8.4'
5858
}
5959
```
6060

chat-core/src/main/java/com/qiscus/sdk/chat/core/QiscusAppComponent.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55

66
import com.qiscus.sdk.chat.core.data.local.QiscusDataBaseHelper;
77
import com.qiscus.sdk.chat.core.data.local.QiscusDataStore;
8+
import com.qiscus.sdk.chat.core.event.QiscusInitWithCustomServerEvent;
89
import com.qiscus.sdk.chat.core.util.QiscusTextUtil;
910

11+
import org.greenrobot.eventbus.EventBus;
1012
import org.json.JSONObject;
1113

1214
import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -68,6 +70,7 @@ public synchronized void setup(Application application, String qiscusAppId, Stri
6870
//this.chatConfig = new QiscusCoreChatConfig();
6971
this.dataStore = new QiscusDataBaseHelper(application);
7072
QiscusTextUtil.createInstance(application);
73+
EventBus.getDefault().post((QiscusInitWithCustomServerEvent.wasSetup));
7174
}
7275

7376
public synchronized Application getApplication() {

chat-core/src/main/java/com/qiscus/sdk/chat/core/QiscusCore.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
import com.qiscus.sdk.chat.core.data.model.QiscusRefreshToken;
4343
import com.qiscus.sdk.chat.core.data.remote.QiscusApi;
4444
import com.qiscus.sdk.chat.core.data.remote.QiscusPusherApi;
45+
import com.qiscus.sdk.chat.core.event.QiscusInitWithCustomServerEvent;
4546
import com.qiscus.sdk.chat.core.event.QiscusRefreshTokenEvent;
47+
import com.qiscus.sdk.chat.core.event.QiscusSyncEvent;
4648
import com.qiscus.sdk.chat.core.event.QiscusUserEvent;
4749
import com.qiscus.sdk.chat.core.service.QiscusNetworkCheckerJobService;
4850
import com.qiscus.sdk.chat.core.service.QiscusSyncJobService;
@@ -415,8 +417,12 @@ public static void stopSyncService() {
415417
* start network checker job service if in oreo or higher
416418
*/
417419
private static void startNetworkCheckerService() {
418-
if (BuildVersionUtil.isOreoOrHigher()) {
419-
QiscusNetworkCheckerJobService.scheduleJob(getApps());
420+
if (appComponent.getAppServer() != null) {
421+
if (BuildVersionUtil.isOreoOrHigher()) {
422+
QiscusNetworkCheckerJobService.scheduleJob(getApps());
423+
}
424+
}else{
425+
EventBus.getDefault().post((QiscusInitWithCustomServerEvent.notSetup));
420426
}
421427
}
422428

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package com.qiscus.sdk.chat.core.event;
2+
3+
public enum QiscusInitWithCustomServerEvent {
4+
notSetup, wasSetup
5+
}

chat-core/src/main/java/com/qiscus/sdk/chat/core/util/QiscusLogger.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import com.qiscus.sdk.chat.core.QiscusCore;
77

8+
import java.util.concurrent.Executors;
9+
810
/**
911
* Created on : November 02, 2017
1012
* Author : adicatur
@@ -21,7 +23,7 @@ public static void print(String message) {
2123
}
2224

2325
public static void print(String tag, String message) {
24-
QiscusAndroidUtil.runOnBackgroundThread(() -> {
26+
Executors.newSingleThreadExecutor().execute(() -> {
2527
if (QiscusCore.getChatConfig().isEnableLog()) {
2628
Log.d(tag, message);
2729
}

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Secondly, you need to add SDK dependencies inside your app .gradle. Then, you ne
8080
```
8181
dependencies {
8282
...
83-
implementation 'com.qiscus.sdk:chat-core:1.8.3'
83+
implementation 'com.qiscus.sdk:chat-core:1.8.4'
8484
}
8585
```
8686

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ chatVersionPatch=0
4343
# === qiscus chat-core library version ===
4444
chatCoreVersionMajor=1
4545
chatCoreVersionMinor=8
46-
chatCoreVersionPatch=3
46+
chatCoreVersionPatch=4
4747

4848
# === qiscus default base url
4949
BASE_URL_SERVER="https://api.qiscus.com/"
@@ -59,7 +59,7 @@ android.useAndroidX=true
5959

6060
libraryGroupId=com.qiscus.sdk
6161
libraryArtifactId=chat-core
62-
libraryVersion=1.8.3
62+
libraryVersion=1.8.4
6363

6464
libraryGroupIdChat=com.qiscus.sdk
6565
libraryArtifactIdChat=chat

0 commit comments

Comments
 (0)