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