Skip to content

Commit 868d9fa

Browse files
committed
Add LanguageContext Dependency to OSInAppMessageController
* Add LanguageContext dependency to OSInAppMessageController constructor * Add LanguageContext dependency to OSInAppMessageControllerFactory constructor * Add LanguageContext dependency to OSInAppMessageDummyController * Rename languageIdentifier to language in OSInAppMessageController variantIdentifier
1 parent 2d3b7de commit 868d9fa

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageController.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import com.onesignal.OSDynamicTriggerController.OSDynamicTriggerControllerObserver;
1111
import com.onesignal.OneSignalRestClient.ResponseHandler;
12+
import com.onesignal.language.LanguageContext;
1213

1314
import org.json.JSONArray;
1415
import org.json.JSONException;
@@ -34,6 +35,7 @@ class OSInAppMessageController implements OSDynamicTriggerControllerObserver, OS
3435
public static final String IN_APP_MESSAGES_JSON_KEY = "in_app_messages";
3536
private static final String OS_SAVE_IN_APP_MESSAGE = "OS_SAVE_IN_APP_MESSAGE";
3637
private static final Object LOCK = new Object();
38+
private final LanguageContext languageContext;
3739

3840
OSTriggerController triggerController;
3941
private OSSystemConditionController systemConditionController;
@@ -70,14 +72,15 @@ class OSInAppMessageController implements OSDynamicTriggerControllerObserver, OS
7072
Date lastTimeInAppDismissed = null;
7173
private int htmlNetworkRequestAttemptCount = 0;
7274

73-
protected OSInAppMessageController(OneSignalDbHelper dbHelper) {
75+
protected OSInAppMessageController(OneSignalDbHelper dbHelper, LanguageContext languageContext) {
7476
messages = new ArrayList<>();
7577
dismissedMessages = OSUtils.newConcurrentSet();
7678
messageDisplayQueue = new ArrayList<>();
7779
impressionedMessages = OSUtils.newConcurrentSet();
7880
clickedClickIds = OSUtils.newConcurrentSet();
7981
triggerController = new OSTriggerController(this);
8082
systemConditionController = new OSSystemConditionController(this);
83+
this.languageContext = languageContext;
8184

8285
Set<String> tempDismissedSet = OneSignalPrefs.getStringSet(
8386
OneSignalPrefs.PREFS_ONESIGNAL,
@@ -210,15 +213,15 @@ private void evaluateInAppMessages() {
210213
}
211214

212215
private @Nullable String variantIdForMessage(@NonNull OSInAppMessage message) {
213-
String languageIdentifier = OneSignal.languageContext.getLanguage();
216+
String language = languageContext.getLanguage();
214217

215218
for (String variant : PREFERRED_VARIANT_ORDER) {
216219
if (!message.variants.containsKey(variant))
217220
continue;
218221

219222
HashMap<String, String> variantMap = message.variants.get(variant);
220-
if (variantMap.containsKey(languageIdentifier))
221-
return variantMap.get(languageIdentifier);
223+
if (variantMap.containsKey(language))
224+
return variantMap.get(language);
222225
return variantMap.get("default");
223226
}
224227

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageControllerFactory.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,21 +29,23 @@
2929

3030
import android.os.Build;
3131

32+
import com.onesignal.language.LanguageContext;
33+
3234
class OSInAppMessageControllerFactory {
3335

3436
private static final Object LOCK = new Object();
3537

3638
private OSInAppMessageController controller;
3739

38-
public OSInAppMessageController getController(OneSignalDbHelper dbHelper) {
40+
public OSInAppMessageController getController(OneSignalDbHelper dbHelper, LanguageContext languageContext) {
3941
if (controller == null) {
4042
synchronized (LOCK) {
4143
if (controller == null) {
4244
// Make sure only Android 4.4 devices and higher can use IAMs
4345
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2)
44-
controller = new OSInAppMessageDummyController(null);
46+
controller = new OSInAppMessageDummyController(null, languageContext);
4547
else
46-
controller = new OSInAppMessageController(dbHelper);
48+
controller = new OSInAppMessageController(dbHelper, languageContext);
4749
}
4850
}
4951
}

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSInAppMessageDummyController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import android.support.annotation.NonNull;
44
import android.support.annotation.Nullable;
55

6+
import com.onesignal.language.LanguageContext;
7+
68
import org.json.JSONArray;
79
import org.json.JSONException;
810
import org.json.JSONObject;
@@ -17,8 +19,8 @@ class OSInAppMessageDummyController extends OSInAppMessageController {
1719
* This is a dummy controller that will be used for Android 4.3 and older devices
1820
* All methods should be overridden and as empty as possible (few return exceptions)
1921
*/
20-
OSInAppMessageDummyController(OneSignalDbHelper dbHelper) {
21-
super(dbHelper);
22+
OSInAppMessageDummyController(OneSignalDbHelper dbHelper, LanguageContext languageContext) {
23+
super(dbHelper, languageContext);
2224
}
2325

2426
@Override

OneSignalSDK/onesignal/src/main/java/com/onesignal/OneSignal.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ public void onSessionEnding(@NonNull List<OSInfluence> lastInfluences) {
465465

466466
private static OSInAppMessageControllerFactory inAppMessageControllerFactory = new OSInAppMessageControllerFactory();
467467
static OSInAppMessageController getInAppMessageController() {
468-
return inAppMessageControllerFactory.getController(getDBHelperInstance());
468+
return inAppMessageControllerFactory.getController(getDBHelperInstance(), languageContext);
469469
}
470470
private static OSLogger logger = new OSLogWrapper();
471471
private static OneSignalAPIClient apiClient = new OneSignalRestClientWrapper();

0 commit comments

Comments
 (0)