diff --git a/android/src/main/java/com/levelasquez/androidopensettings/AndroidOpenSettings.java b/android/src/main/java/com/levelasquez/androidopensettings/AndroidOpenSettings.java index 97f57a9..ce75055 100644 --- a/android/src/main/java/com/levelasquez/androidopensettings/AndroidOpenSettings.java +++ b/android/src/main/java/com/levelasquez/androidopensettings/AndroidOpenSettings.java @@ -134,6 +134,18 @@ public void localeSettings() { } } + @ReactMethod + public void appLocaleSettings() { + Intent intent = new Intent(Settings.ACTION_APP_LOCALE_SETTINGS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); + intent.setData(Uri.parse("package:" + reactContext.getPackageName())); + + if (intent.resolveActivity(reactContext.getPackageManager()) != null) { + reactContext.startActivity(intent); + } + } + @ReactMethod public void inputMethodSettings() { Intent intent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS); diff --git a/index.d.ts b/index.d.ts index cdb6e2c..4200f58 100644 --- a/index.d.ts +++ b/index.d.ts @@ -10,6 +10,7 @@ declare module "react-native-android-open-settings" { const bluetoothSettings: () => void; const dateSettings: () => void; const localeSettings: () => void; + const appLocaleSettings: () => void; const inputMethodSettings: () => void; const displaySettings: () => void; const securitySettings: () => void; diff --git a/index.js b/index.js index 2d6156d..9ca7bd2 100644 --- a/index.js +++ b/index.js @@ -24,6 +24,8 @@ const dateSettings = () => RNAndroidOpenSettings.dateSettings() const localeSettings = () => RNAndroidOpenSettings.localeSettings() +const appLocaleSettings = () => RNAndroidOpenSettings.appLocaleSettings() + const inputMethodSettings = () => RNAndroidOpenSettings.inputMethodSettings() const displaySettings = () => RNAndroidOpenSettings.displaySettings() @@ -54,6 +56,7 @@ module.exports = { bluetoothSettings, dateSettings, localeSettings, + appLocaleSettings, inputMethodSettings, displaySettings, securitySettings,