diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml
index 7b0463d28..499d95906 100644
--- a/res/values/non_localizable_strings.xml
+++ b/res/values/non_localizable_strings.xml
@@ -204,4 +204,5 @@
pref_use_lime_encryption_key
pref_device_ringtone_key
pref_auto_answer_key
+ pref_android_app_settings_key
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7d6534af1..e216ece92 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -312,6 +312,7 @@
Start at boot time
Incoming call hangup (in seconds)
Remote provisioning
+ Android app settings
Primary account
Display name
Username
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index ceadfee7f..a37f9ce5a 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -345,6 +345,11 @@
android:key="@string/pref_remote_provisioning_key"
android:inputType="textUri"
android:persistent="false"/>
+
+
diff --git a/src/org/linphone/SettingsFragment.java b/src/org/linphone/SettingsFragment.java
index d7a9914dc..9cd1cf1b7 100644
--- a/src/org/linphone/SettingsFragment.java
+++ b/src/org/linphone/SettingsFragment.java
@@ -48,6 +48,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.media.AudioManager;
+import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.preference.CheckBoxPreference;
@@ -58,6 +59,7 @@ import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceScreen;
+import android.provider.Settings;
/**
* @author Sylvain Berfini
@@ -1146,6 +1148,24 @@ public class SettingsFragment extends PreferencesListFragment {
return true;
}
});
+
+ findPreference(getString(R.string.pref_android_app_settings_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ synchronized (SettingsFragment.this) {
+ Context context = SettingsFragment.this.getActivity();
+ Intent i = new Intent();
+ i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+ i.addCategory(Intent.CATEGORY_DEFAULT);
+ i.setData(Uri.parse("package:" + context.getPackageName()));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
+ i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+ context.startActivity(i);
+ }
+ return true;
+ }
+ });
findPreference(getString(R.string.pref_display_name_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override