Skip to content

Commit ed749cb

Browse files
committed
Add OSLanguageCompletionHandler
* Add OSLanguageCompletionHandler * Add OSLanguageError * Update setLanguage with OSLanguageCompletionHandler
1 parent d006c5b commit ed749cb

File tree

1 file changed

+40
-4
lines changed

1 file changed

+40
-4
lines changed

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

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public static class SendTagsError {
229229
public String getMessage() { return message; }
230230
}
231231

232-
public static class OSDeviceInfoError {
232+
static class OSDeviceInfoError {
233233
private int errorCode;
234234
private String message;
235235

@@ -243,11 +243,30 @@ public static class OSDeviceInfoError {
243243
public String getMessage() { return message; }
244244
}
245245

246-
public interface OSDeviceInfoCompletionHandler {
246+
interface OSDeviceInfoCompletionHandler {
247247
void onSuccess(String results);
248248
void onFailure(OSDeviceInfoError error);
249249
}
250250

251+
public static class OSLanguageError {
252+
private int errorCode;
253+
private String message;
254+
255+
OSLanguageError(int errorCode, String message) {
256+
this.errorCode = errorCode;
257+
this.message = message;
258+
}
259+
260+
public int getCode() { return errorCode; }
261+
262+
public String getMessage() { return message; }
263+
}
264+
265+
public interface OSSetLanguageCompletionHandler {
266+
void onSuccess(String results);
267+
void onFailure(OSLanguageError error);
268+
}
269+
251270
public enum ExternalIdErrorType {
252271
REQUIRES_EXTERNAL_ID_AUTH, INVALID_OPERATION, NETWORK
253272
}
@@ -1719,7 +1738,7 @@ public static void setLanguage(@NonNull final String language) {
17191738
setLanguage(language, null);
17201739
}
17211740

1722-
public static void setLanguage(@NonNull final String language, @Nullable final OSDeviceInfoCompletionHandler completionCallback) {
1741+
public static void setLanguage(@NonNull final String language, @Nullable final OSSetLanguageCompletionHandler completionCallback) {
17231742
if (taskRemoteController.shouldQueueTaskForInit(OSTaskRemoteController.SET_LANGUAGE)) {
17241743
logger.error("Waiting for remote params. " +
17251744
"Moving " + OSTaskRemoteController.SET_LANGUAGE + " operation to a pending task queue.");
@@ -1733,6 +1752,23 @@ public void run() {
17331752
return;
17341753
}
17351754

1755+
OSDeviceInfoCompletionHandler deviceInfoCompletionHandler = null;
1756+
1757+
if(completionCallback != null) {
1758+
deviceInfoCompletionHandler = new OSDeviceInfoCompletionHandler() {
1759+
@Override
1760+
public void onSuccess(String results) {
1761+
completionCallback.onSuccess(results);
1762+
}
1763+
1764+
@Override
1765+
public void onFailure(OSDeviceInfoError error) {
1766+
OSLanguageError languageError = new OSLanguageError(error.errorCode, error.message);
1767+
completionCallback.onFailure(languageError);
1768+
}
1769+
};
1770+
}
1771+
17361772
if (shouldLogUserPrivacyConsentErrorMessageForMethodName(OSTaskRemoteController.SET_LANGUAGE))
17371773
return;
17381774

@@ -1743,7 +1779,7 @@ public void run() {
17431779
try {
17441780
JSONObject deviceInfo = new JSONObject();
17451781
deviceInfo.put("language", languageContext.getLanguage());
1746-
OneSignalStateSynchronizer.updateDeviceInfo(deviceInfo, completionCallback);
1782+
OneSignalStateSynchronizer.updateDeviceInfo(deviceInfo, deviceInfoCompletionHandler);
17471783
} catch (JSONException exception) {
17481784
exception.printStackTrace();
17491785
}

0 commit comments

Comments
 (0)