Skip to content

Commit 5b05140

Browse files
authored
Merge pull request OneSignal#1253 from OneSignal/feat/add-set-language
Added methods for setLanguage feature
2 parents 9095f5a + 6a3671b commit 5b05140

File tree

5 files changed

+32
-0
lines changed

5 files changed

+32
-0
lines changed

android/src/main/java/com/geektime/rnonesignalandroid/RNOneSignal.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,11 @@ public void getDeviceState(Promise promise) {
254254
promise.resolve(RNUtils.jsonToWritableMap(state.toJSONObject()));
255255
}
256256

257+
@ReactMethod
258+
public void setLanguage(String language) {
259+
OneSignal.setLanguage(language);
260+
}
261+
257262
@ReactMethod
258263
public void disablePush(boolean disable) {
259264
OneSignal.disablePush(disable);

examples/RNOneSignalTS/src/OSButtons.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,15 @@ class OSButtons extends React.Component<Props, State> {
135135
loggingFunction(`Device State: ${JSON.stringify(deviceState)}`);
136136
})
137137

138+
const setLanguageButton = renderButtonView(
139+
"Set Language",
140+
color,
141+
() => {
142+
loggingFunction('Attempting to set language: ', this.props.inputFieldValue);
143+
OneSignal.setLanguage(this.props.inputFieldValue);
144+
}
145+
);
146+
138147
const requireUserProvideConsent = renderButtonView(
139148
this.state.requireUserConsent ? "Remove User Privacy Consent Requirement" : "Require User Privacy Consent",
140149
color,
@@ -167,6 +176,7 @@ class OSButtons extends React.Component<Props, State> {
167176

168177
elements.push(
169178
deviceStateButton,
179+
setLanguageButton,
170180
requireUserProvideConsent,
171181
appRequireUserProvideConsent,
172182
provideUserConsentButton,

ios/RCTOneSignal/RCTOneSignalEventEmitter.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,10 @@ + (void)sendEventWithName:(NSString *)name withBody:(NSDictionary *)body {
199199
}
200200
}
201201

202+
RCT_EXPORT_METHOD(setLanguage:(NSString *)language) {
203+
[OneSignal setLanguage:language];
204+
}
205+
202206
RCT_EXPORT_METHOD(setNotificationOpenedHandler) {
203207
[OneSignal setNotificationOpenedHandler:^(OSNotificationOpenedResult *result) {
204208
[RCTOneSignalEventEmitter sendEventWithName:@"OneSignal-remoteNotificationOpened" withBody:[result jsonRepresentation]];

src/index.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,13 @@ declare module 'react-native-onesignal' {
234234
*/
235235
getDeviceState(): Promise<DeviceState>;
236236

237+
/**
238+
* Allows you to set the app defined language with the OneSignal SDK.
239+
* @param {string} language
240+
* @returns void
241+
*/
242+
setLanguage(language: string): void;
243+
237244
/**
238245
* Tag a user based on an app event of your choosing so they can be targeted later via segments.
239246
* @param {string} key

src/index.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@ export default class OneSignal {
160160
return deviceState;
161161
}
162162

163+
static setLanguage(language) {
164+
if (!isObjectNonNull(RNOneSignal)) return;
165+
166+
RNOneSignal.setLanguage(language);
167+
}
168+
163169
/* T A G S */
164170

165171
static sendTag(key, value) {

0 commit comments

Comments
 (0)