Merge branch 'feature/auto_download_incoming_file_transfer_messages' into feature/release-4.1

This commit is contained in:
Sylvain Berfini 2018-11-27 16:44:15 +01:00
commit d1f7a51cf5
5 changed files with 508 additions and 421 deletions

View file

@ -1665,4 +1665,14 @@ public class LinphonePreferences {
public boolean useBasicChatRoomFor1To1() { public boolean useBasicChatRoomFor1To1() {
return getConfig().getBool("app", "prefer_basic_chat_room", false); return getConfig().getBool("app", "prefer_basic_chat_room", false);
} }
// 0 is download all, -1 is disable feature, else size is bytes
public int getAutoDownloadFileMaxSize() {
return getLc().getMaxSizeForAutoDownloadIncomingFiles();
}
// 0 is download all, -1 is disable feature, else size is bytes
public void setAutoDownloadFileMaxSize(int size) {
getLc().setMaxSizeForAutoDownloadIncomingFiles(size);
}
} }

View file

@ -483,8 +483,8 @@ public class SettingsFragment extends PreferencesListFragment {
} }
private void initLimeEncryptionPreference(ListPreference pref) { private void initLimeEncryptionPreference(ListPreference pref) {
List<CharSequence> entries = new ArrayList<CharSequence>(); List<CharSequence> entries = new ArrayList<>();
List<CharSequence> values = new ArrayList<CharSequence>(); List<CharSequence> values = new ArrayList<>();
entries.add(getString(R.string.lime_encryption_entry_disabled)); entries.add(getString(R.string.lime_encryption_entry_disabled));
values.add(LimeState.Disabled.toString()); values.add(LimeState.Disabled.toString());
@ -512,6 +512,20 @@ public class SettingsFragment extends PreferencesListFragment {
pref.setValue(lime.toString()); pref.setValue(lime.toString());
} }
private void initAutoDownloadPolicyPreference(ListPreference pref) {
int max_size = mPrefs.getAutoDownloadFileMaxSize();
if (max_size == -1) {
pref.setSummary(getString(R.string.pref_auto_download_disabled));
pref.setValue(getString(R.string.pref_auto_download_policy_disabled_key));
} else if (max_size == 0) {
pref.setSummary(getString(R.string.pref_auto_download_always));
pref.setValue(getString(R.string.pref_auto_download_policy_always_key));
} else {
pref.setSummary(getString(R.string.pref_auto_download_under_size));
pref.setValue(getString(R.string.pref_auto_download_policy_size_key));
}
}
private static void setListPreferenceValues(ListPreference pref, List<CharSequence> entries, List<CharSequence> values) { private static void setListPreferenceValues(ListPreference pref, List<CharSequence> entries, List<CharSequence> values) {
CharSequence[] contents = new CharSequence[entries.size()]; CharSequence[] contents = new CharSequence[entries.size()];
entries.toArray(contents); entries.toArray(contents);
@ -1100,6 +1114,10 @@ public class SettingsFragment extends PreferencesListFragment {
private void initChatSettings() { private void initChatSettings() {
setPreferenceDefaultValueAndSummary(R.string.pref_image_sharing_server_key, mPrefs.getSharingPictureServerUrl()); setPreferenceDefaultValueAndSummary(R.string.pref_image_sharing_server_key, mPrefs.getSharingPictureServerUrl());
initLimeEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_use_lime_encryption_key))); initLimeEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_use_lime_encryption_key)));
initAutoDownloadPolicyPreference((ListPreference) findPreference(getString(R.string.pref_auto_download_policy_key)));
int max_size = mPrefs.getAutoDownloadFileMaxSize();
setPreferenceDefaultValueAndSummary(R.string.pref_auto_download_max_size_key, String.valueOf(max_size));
findPreference(getString(R.string.pref_auto_download_max_size_key)).setEnabled(max_size > 0);
if (Version.sdkStrictlyBelow(Version.API26_O_80)) { if (Version.sdkStrictlyBelow(Version.API26_O_80)) {
findPreference(getString(R.string.pref_android_app_notif_settings_key)).setLayoutResource(R.layout.hidden); findPreference(getString(R.string.pref_android_app_notif_settings_key)).setLayoutResource(R.layout.hidden);
} }
@ -1156,7 +1174,33 @@ public class SettingsFragment extends PreferencesListFragment {
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(i); context.startActivity(i);
return true;
} }
}
});
findPreference(getString(R.string.pref_auto_download_policy_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = (String)newValue;
int size = Integer.valueOf(value);
mPrefs.setAutoDownloadFileMaxSize(size);
initAutoDownloadPolicyPreference((ListPreference) findPreference(getString(R.string.pref_auto_download_policy_key)));
setPreferenceDefaultValueAndSummary(R.string.pref_auto_download_max_size_key, String.valueOf(size));
findPreference(getString(R.string.pref_auto_download_max_size_key)).setEnabled(size > 0);
return true;
}
});
findPreference(getString(R.string.pref_auto_download_max_size_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = (String)newValue;
int size = Integer.valueOf(value);
mPrefs.setAutoDownloadFileMaxSize(size);
preference.setSummary(String.valueOf(size));
preference.setEnabled(size > 0);
initAutoDownloadPolicyPreference((ListPreference) findPreference(getString(R.string.pref_auto_download_policy_key)));
return true; return true;
} }
}); });

View file

@ -116,6 +116,16 @@
<string name="pref_codec_bitrate_limit_key">pref_codec_bitrate_limit_key</string> <string name="pref_codec_bitrate_limit_key">pref_codec_bitrate_limit_key</string>
<string name="pref_adaptive_rate_control_key">pref_adaptive_rate_control_key</string> <string name="pref_adaptive_rate_control_key">pref_adaptive_rate_control_key</string>
<string name="pref_echo_tester_key">pref_echo_tester_key</string> <string name="pref_echo_tester_key">pref_echo_tester_key</string>
<string name="pref_auto_download_policy_key">pref_auto_download_policy_key</string>
<string name="pref_auto_download_max_size_key">pref_auto_download_max_size_key</string>
<string name="pref_auto_download_policy_disabled_key">-1</string>
<string name="pref_auto_download_policy_always_key">0</string>
<string name="pref_auto_download_policy_size_key">10000000</string>
<string-array name="pref_auto_download_policy_entries_values">
<item>@string/pref_auto_download_policy_disabled_key</item>
<item>@string/pref_auto_download_policy_always_key</item>
<item>@string/pref_auto_download_policy_size_key</item>
</string-array>
<string name="push_reg_id_key">push_reg_id_key</string> <string name="push_reg_id_key">push_reg_id_key</string>
<string name="push_sender_id_key">push_sender_id_key</string> <string name="push_sender_id_key">push_sender_id_key</string>

View file

@ -425,6 +425,16 @@
<string name="lime_encryption_entry_mandatory">Mandatory</string> <string name="lime_encryption_entry_mandatory">Mandatory</string>
<string name="lime_encryption_entry_preferred">Preferred</string> <string name="lime_encryption_entry_preferred">Preferred</string>
<string name="lime_encryption_enable_zrtp">LIME requires ZRTP encryption.\nBy activating LIME you automatically activate ZRTP media encryption.</string> <string name="lime_encryption_enable_zrtp">LIME requires ZRTP encryption.\nBy activating LIME you automatically activate ZRTP media encryption.</string>
<string name="pref_auto_download_policy_title">Auto download incoming files policy</string>
<string name="pref_auto_download_max_size_title">Max size in bytes to auto download incoming files</string>
<string-array name="pref_auto_download_policy_entries_labels">
<item>@string/pref_auto_download_disabled</item>
<item>@string/pref_auto_download_always</item>
<item>@string/pref_auto_download_under_size</item>
</string-array>
<string name="pref_auto_download_disabled">Never</string>
<string name="pref_auto_download_always">Always</string>
<string name="pref_auto_download_under_size">If lighter than given size (see below setting)</string>
<!-- Network settings --> <!-- Network settings -->
<string name="pref_network_title">Network</string> <string name="pref_network_title">Network</string>

View file

@ -1,453 +1,466 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- DO NOT PUT A PreferenceCategory INSIDE ANOTHER ONE EVER ! --> <!-- DO NOT PUT A PreferenceCategory INSIDE ANOTHER ONE EVER ! -->
<!-- It will trigger [PreferencesListFragment] addPreferencesFromResource TargetInvocationException error --> <!-- It will trigger [PreferencesListFragment] addPreferencesFromResource TargetInvocationException error -->
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_sipaccounts" android:title="@string/pref_sipaccounts"
android:key="@string/pref_sipaccounts_key" android:key="@string/pref_sipaccounts_key"
android:persistent="false"/> android:persistent="false"/>
<Preference <Preference
android:title="@string/pref_add_account" android:title="@string/pref_add_account"
android:key="@string/pref_add_account_key" android:key="@string/pref_add_account_key"
android:persistent="false"/> android:persistent="false"/>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_preferences_title"> android:title="@string/pref_preferences_title">
<PreferenceScreen <PreferenceScreen
android:title="@string/pref_tunnel" android:title="@string/pref_tunnel"
android:key="@string/pref_tunnel_key" android:key="@string/pref_tunnel_key"
android:persistent="false"> android:persistent="false">
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_tunnel"> android:title="@string/pref_tunnel">
<EditTextPreference <EditTextPreference
android:title="@string/pref_tunnel_host" android:title="@string/pref_tunnel_host"
android:key="@string/pref_tunnel_host_key" android:key="@string/pref_tunnel_host_key"
android:inputType="textUri" android:inputType="textUri"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_tunnel_port" android:title="@string/pref_tunnel_port"
android:key="@string/pref_tunnel_port_key" android:key="@string/pref_tunnel_port_key"
android:numeric="integer" android:numeric="integer"
android:persistent="false"/> android:persistent="false"/>
<ListPreference <ListPreference
android:title="@string/pref_tunnel_mode" android:title="@string/pref_tunnel_mode"
android:key="@string/pref_tunnel_mode_key" android:key="@string/pref_tunnel_mode_key"
android:entries="@array/tunnel_mode_entries" android:entries="@array/tunnel_mode_entries"
android:entryValues="@array/tunnel_mode_entry_values" android:entryValues="@array/tunnel_mode_entry_values"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>
<PreferenceScreen <PreferenceScreen
android:title="@string/pref_audio_title" android:title="@string/pref_audio_title"
android:key="@string/pref_audio_key"> android:key="@string/pref_audio_key">
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_audio_title"> android:title="@string/pref_audio_title">
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_echo_cancellation" android:title="@string/pref_echo_cancellation"
android:key="@string/pref_echo_cancellation_key" android:key="@string/pref_echo_cancellation_key"
android:summary="@string/pref_echo_cancellation_summary" android:summary="@string/pref_echo_cancellation_summary"
android:persistent="false"/> android:persistent="false"/>
<Preference <Preference
android:title="@string/pref_echo_canceller_calibration" android:title="@string/pref_echo_canceller_calibration"
android:key="@string/pref_echo_canceller_calibration_key" android:key="@string/pref_echo_canceller_calibration_key"
android:persistent="false"/> android:persistent="false"/>
<Preference <Preference
android:title="@string/pref_echo_tester" android:title="@string/pref_echo_tester"
android:key="@string/pref_echo_tester_key" android:key="@string/pref_echo_tester_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_adaptive_rate_control" android:title="@string/pref_adaptive_rate_control"
android:key="@string/pref_adaptive_rate_control_key" android:key="@string/pref_adaptive_rate_control_key"
android:persistent="false"/> android:persistent="false"/>
<ListPreference <ListPreference
android:title="@string/pref_codec_bitrate_limit" android:title="@string/pref_codec_bitrate_limit"
android:key="@string/pref_codec_bitrate_limit_key" android:key="@string/pref_codec_bitrate_limit_key"
android:entries="@array/limit_bitrate_entries" android:entries="@array/limit_bitrate_entries"
android:entryValues="@array/limit_bitrate_entry_values" android:entryValues="@array/limit_bitrate_entry_values"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_codecs" android:title="@string/pref_codecs"
android:key="@string/pref_codecs_key" android:key="@string/pref_codecs_key"
android:persistent="false"/> android:persistent="false"/>
</PreferenceScreen> </PreferenceScreen>
<PreferenceScreen <PreferenceScreen
android:title="@string/pref_video_title" android:title="@string/pref_video_title"
android:key="@string/pref_video_key" android:key="@string/pref_video_key"
android:persistent="false"> android:persistent="false">
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_video_title"> android:title="@string/pref_video_title">
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_video_enable_title" android:title="@string/pref_video_enable_title"
android:key="@string/pref_video_enable_key" android:key="@string/pref_video_enable_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_video_use_front_camera_title" android:title="@string/pref_video_use_front_camera_title"
android:key="@string/pref_video_use_front_camera_key" android:key="@string/pref_video_use_front_camera_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:layout="@layout/hidden" android:layout="@layout/hidden"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_video_initiate_call_with_video_title" android:title="@string/pref_video_initiate_call_with_video_title"
android:key="@string/pref_video_initiate_call_with_video_key" android:key="@string/pref_video_initiate_call_with_video_key"
android:summary="@string/pref_video_initiate_call_with_video" android:summary="@string/pref_video_initiate_call_with_video"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_video_automatically_accept_video_title" android:title="@string/pref_video_automatically_accept_video_title"
android:key="@string/pref_video_automatically_accept_video_key" android:key="@string/pref_video_automatically_accept_video_key"
android:summary="@string/pref_video_automatically_accept_video" android:summary="@string/pref_video_automatically_accept_video"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:persistent="false"/> android:persistent="false"/>
<ListPreference <ListPreference
android:title="@string/pref_video_preset" android:title="@string/pref_video_preset"
android:key="@string/pref_video_preset_key" android:key="@string/pref_video_preset_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:shouldDisableView="true" android:shouldDisableView="true"
android:entries="@array/video_preset_entries" android:entries="@array/video_preset_entries"
android:entryValues="@array/video_preset_entries" android:entryValues="@array/video_preset_entries"
android:persistent="false"/> android:persistent="false"/>
<ListPreference <ListPreference
android:title="@string/pref_preferred_video_size" android:title="@string/pref_preferred_video_size"
android:key="@string/pref_preferred_video_size_key" android:key="@string/pref_preferred_video_size_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:shouldDisableView="true" android:shouldDisableView="true"
android:persistent="false"/> android:persistent="false"/>
<ListPreference <ListPreference
android:title="@string/pref_preferred_fps" android:title="@string/pref_preferred_fps"
android:key="@string/pref_preferred_video_fps_key" android:key="@string/pref_preferred_video_fps_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:shouldDisableView="true" android:shouldDisableView="true"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_bandwidth_limit" android:title="@string/pref_bandwidth_limit"
android:key="@string/pref_bandwidth_limit_key" android:key="@string/pref_bandwidth_limit_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:shouldDisableView="true" android:shouldDisableView="true"
android:numeric="integer" android:numeric="integer"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_overlay" android:title="@string/pref_overlay"
android:key="@string/pref_overlay_key" android:key="@string/pref_overlay_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:shouldDisableView="true" android:shouldDisableView="true"
android:summary="@string/pref_overlay_summary" android:summary="@string/pref_overlay_summary"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_video_codecs_title" android:title="@string/pref_video_codecs_title"
android:key="@string/pref_video_codecs_key" android:key="@string/pref_video_codecs_key"
android:dependency="@string/pref_video_enable_key" android:dependency="@string/pref_video_enable_key"
android:shouldDisableView="true" android:shouldDisableView="true"
android:persistent="false"/> android:persistent="false"/>
</PreferenceScreen> </PreferenceScreen>
<PreferenceScreen <PreferenceScreen
android:title="@string/pref_call_title" android:title="@string/pref_call_title"
android:key="@string/pref_call_key"> android:key="@string/pref_call_key">
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_call_title"> android:title="@string/pref_call_title">
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_device_ringtone" android:title="@string/pref_device_ringtone"
android:key="@string/pref_device_ringtone_key" android:key="@string/pref_device_ringtone_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_vibrate_on_incoming_calls" android:title="@string/pref_vibrate_on_incoming_calls"
android:key="@string/pref_incoming_call_vibration_key" android:key="@string/pref_incoming_call_vibration_key"
android:persistent="false"/> android:persistent="false"/>
<ListPreference <ListPreference
android:title="@string/pref_media_encryption" android:title="@string/pref_media_encryption"
android:key="@string/pref_media_encryption_key" android:key="@string/pref_media_encryption_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_sipinfo_dtmf" android:title="@string/pref_sipinfo_dtmf"
android:key="@string/pref_sipinfo_dtmf_key" android:key="@string/pref_sipinfo_dtmf_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_rfc2833_dtmf" android:title="@string/pref_rfc2833_dtmf"
android:key="@string/pref_rfc2833_dtmf_key" android:key="@string/pref_rfc2833_dtmf_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_auto_answer" android:title="@string/pref_auto_answer"
android:key="@string/pref_auto_answer_key" android:key="@string/pref_auto_answer_key"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_auto_answer_time" android:title="@string/pref_auto_answer_time"
android:key="@string/pref_auto_answer_time_key" android:key="@string/pref_auto_answer_time_key"
android:numeric="integer" android:numeric="integer"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_incoming_call_timeout_title" android:title="@string/pref_incoming_call_timeout_title"
android:key="@string/pref_incoming_call_timeout_key" android:key="@string/pref_incoming_call_timeout_key"
android:numeric="integer" android:numeric="integer"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_voice_mail" android:title="@string/pref_voice_mail"
android:key="@string/pref_voice_mail_key" android:key="@string/pref_voice_mail_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_dialer_call" android:title="@string/pref_dialer_call"
android:key="@string/pref_dialer_call_key" android:key="@string/pref_dialer_call_key"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>
<PreferenceScreen <PreferenceScreen
android:title="@string/pref_chat_title" android:title="@string/pref_chat_title"
android:key="@string/pref_chat_key"> android:key="@string/pref_chat_key">
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_chat_title"> android:title="@string/pref_chat_title">
<ListPreference <ListPreference
android:title="@string/pref_use_lime_encryption" android:title="@string/pref_use_lime_encryption"
android:key="@string/pref_use_lime_encryption_key" android:key="@string/pref_use_lime_encryption_key"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_image_sharing_server_title" android:title="@string/pref_image_sharing_server_title"
android:key="@string/pref_image_sharing_server_key" android:key="@string/pref_image_sharing_server_key"
android:summary="@string/pref_image_sharing_server_desc" android:summary="@string/pref_image_sharing_server_desc"
android:inputType="textUri" android:inputType="textUri"
android:persistent="false"/> android:persistent="false"/>
<Preference <ListPreference
android:title="@string/pref_android_app_notif_settings_title" android:title="@string/pref_auto_download_policy_title"
android:key="@string/pref_android_app_notif_settings_key" android:key="@string/pref_auto_download_policy_key"
android:persistent="false"/> android:entries="@array/pref_auto_download_policy_entries_labels"
android:entryValues="@array/pref_auto_download_policy_entries_values"
</PreferenceCategory> android:persistent="false"/>
</PreferenceScreen> <EditTextPreference
android:title="@string/pref_auto_download_max_size_title"
<PreferenceScreen android:key="@string/pref_auto_download_max_size_key"
android:title="@string/pref_network_title" android:inputType="numberSigned"
android:key="@string/pref_network_key"> android:persistent="false"/>
<PreferenceCategory <Preference
android:title="@string/pref_network_title"> android:title="@string/pref_android_app_notif_settings_title"
android:key="@string/pref_android_app_notif_settings_key"
<CheckBoxPreference android:persistent="false"/>
android:title="@string/pref_wifi_only"
android:key="@string/pref_wifi_only_key" </PreferenceCategory>
android:persistent="false"/>
</PreferenceScreen>
<EditTextPreference
android:title="@string/pref_stun_server" <PreferenceScreen
android:key="@string/pref_stun_server_key" android:title="@string/pref_network_title"
android:inputType="textUri" android:key="@string/pref_network_key">
android:persistent="false"/>
<PreferenceCategory
<CheckBoxPreference android:title="@string/pref_network_title">
android:title="@string/pref_ice_enable"
android:key="@string/pref_ice_enable_key" <CheckBoxPreference
android:persistent="false"/> android:title="@string/pref_wifi_only"
android:key="@string/pref_wifi_only_key"
<CheckBoxPreference android:persistent="false"/>
android:title="@string/pref_turn_enable"
android:key="@string/pref_turn_enable_key" <EditTextPreference
android:persistent="false"/> android:title="@string/pref_stun_server"
android:key="@string/pref_stun_server_key"
<EditTextPreference android:inputType="textUri"
android:key="@string/pref_turn_username_key" android:persistent="false"/>
android:title="@string/pref_turn_username_title"
android:inputType="text|textNoSuggestions" <CheckBoxPreference
android:persistent="false"/> android:title="@string/pref_ice_enable"
android:key="@string/pref_ice_enable_key"
<EditTextPreference android:persistent="false"/>
android:key="@string/pref_turn_passwd_key"
android:title="@string/pref_turn_passwd_title" <CheckBoxPreference
android:inputType="textPassword" android:title="@string/pref_turn_enable"
android:persistent="false"/> android:key="@string/pref_turn_enable_key"
android:persistent="false"/>
<CheckBoxPreference
android:title="@string/pref_upnp_enable" <EditTextPreference
android:key="@string/pref_upnp_enable_key" android:key="@string/pref_turn_username_key"
android:persistent="false"/> android:title="@string/pref_turn_username_title"
android:inputType="text|textNoSuggestions"
<CheckBoxPreference android:persistent="false"/>
android:title="@string/pref_transport_use_random_ports"
android:key="@string/pref_transport_use_random_ports_key" <EditTextPreference
android:persistent="false"/> android:key="@string/pref_turn_passwd_key"
android:title="@string/pref_turn_passwd_title"
<EditTextPreference android:inputType="textPassword"
android:title="@string/pref_sip_port_title" android:persistent="false"/>
android:key="@string/pref_sip_port_key"
android:numeric="integer" <CheckBoxPreference
android:persistent="false"/> android:title="@string/pref_upnp_enable"
android:key="@string/pref_upnp_enable_key"
<EditTextPreference android:persistent="false"/>
android:title="@string/pref_audio_port_title"
android:key="@string/pref_audio_port_key" <CheckBoxPreference
android:summary="@string/pref_audio_port_description" android:title="@string/pref_transport_use_random_ports"
android:layout="@layout/hidden" android:key="@string/pref_transport_use_random_ports_key"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_video_port_title" android:title="@string/pref_sip_port_title"
android:key="@string/pref_video_port_key" android:key="@string/pref_sip_port_key"
android:summary="@string/pref_video_port_description" android:numeric="integer"
android:layout="@layout/hidden" android:persistent="false"/>
android:persistent="false"/>
<EditTextPreference
<CheckBoxPreference android:title="@string/pref_audio_port_title"
android:title="@string/pref_push_notification" android:key="@string/pref_audio_port_key"
android:key="@string/pref_push_notification_key" android:summary="@string/pref_audio_port_description"
android:persistent="false"/> android:layout="@layout/hidden"
android:persistent="false"/>
<CheckBoxPreference
android:title="@string/pref_ipv6_title" <EditTextPreference
android:key="@string/pref_ipv6_key" android:title="@string/pref_video_port_title"
android:persistent="false"/> android:key="@string/pref_video_port_key"
android:summary="@string/pref_video_port_description"
</PreferenceCategory> android:layout="@layout/hidden"
android:persistent="false"/>
</PreferenceScreen>
<CheckBoxPreference
<PreferenceScreen android:title="@string/pref_push_notification"
android:title="@string/pref_advanced_title" android:key="@string/pref_push_notification_key"
android:key="@string/pref_advanced_key"> android:persistent="false"/>
<PreferenceCategory <CheckBoxPreference
android:title="@string/pref_debug_title"> android:title="@string/pref_ipv6_title"
android:key="@string/pref_ipv6_key"
<CheckBoxPreference android:persistent="false"/>
android:title="@string/pref_debug"
android:key="@string/pref_debug_key" </PreferenceCategory>
android:persistent="false"/>
</PreferenceScreen>
<PreferenceScreen
android:title="@string/pref_advanced_title"
android:key="@string/pref_advanced_key">
<PreferenceCategory
android:title="@string/pref_debug_title">
<CheckBoxPreference
android:title="@string/pref_debug"
android:key="@string/pref_debug_key"
android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_java_debug" android:title="@string/pref_java_debug"
android:key="@string/pref_java_debug_key" android:key="@string/pref_java_debug_key"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_advanced_title"> android:title="@string/pref_advanced_title">
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_friendlist_subscribe" android:title="@string/pref_friendlist_subscribe"
android:key="@string/pref_friendlist_subscribe_key" android:key="@string/pref_friendlist_subscribe_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_background_mode" android:title="@string/pref_background_mode"
android:key="@string/pref_background_mode_key" android:key="@string/pref_background_mode_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_service_notification" android:title="@string/pref_service_notification"
android:key="@string/pref_service_notification_key" android:key="@string/pref_service_notification_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_autostart" android:title="@string/pref_autostart"
android:key="@string/pref_autostart_key" android:key="@string/pref_autostart_key"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_remote_provisioning_title" android:title="@string/pref_remote_provisioning_title"
android:key="@string/pref_remote_provisioning_key" android:key="@string/pref_remote_provisioning_key"
android:inputType="textUri" android:inputType="textUri"
android:persistent="false"/> android:persistent="false"/>
<Preference <Preference
android:title="@string/pref_android_app_settings_title" android:title="@string/pref_android_app_settings_title"
android:key="@string/pref_android_app_settings_key" android:key="@string/pref_android_app_settings_key"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_primary_account_title"> android:title="@string/pref_primary_account_title">
<EditTextPreference <EditTextPreference
android:title="@string/pref_display_name_title" android:title="@string/pref_display_name_title"
android:key="@string/pref_display_name_key" android:key="@string/pref_display_name_key"
android:inputType="textPersonName" android:inputType="textPersonName"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_user_name_title" android:title="@string/pref_user_name_title"
android:key="@string/pref_user_name_key" android:key="@string/pref_user_name_key"
android:persistent="false"/> android:persistent="false"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceScreen <PreferenceScreen
android:title="@string/pref_audio_hacks_title" android:title="@string/pref_audio_hacks_title"
android:layout="@layout/hidden"> android:layout="@layout/hidden">
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_audio_hacks_use_routing_api_title" android:title="@string/pref_audio_hacks_use_routing_api_title"
android:key="@string/pref_audio_hacks_use_routing_api_key" android:key="@string/pref_audio_hacks_use_routing_api_key"
android:persistent="false"/> android:persistent="false"/>
<CheckBoxPreference <CheckBoxPreference
android:title="@string/pref_audio_hacks_use_galaxys_hack_title" android:title="@string/pref_audio_hacks_use_galaxys_hack_title"
android:key="@string/pref_audio_hacks_use_galaxys_hack_key" android:key="@string/pref_audio_hacks_use_galaxys_hack_key"
android:persistent="false"/> android:persistent="false"/>
<EditTextPreference <EditTextPreference
android:title="@string/pref_audio_use_specific_mode_title" android:title="@string/pref_audio_use_specific_mode_title"
android:key="@string/pref_audio_use_specific_mode_key" android:key="@string/pref_audio_use_specific_mode_key"
android:summary="@string/pref_audio_use_specific_mode_summary" android:summary="@string/pref_audio_use_specific_mode_summary"
android:numeric="integer" android:numeric="integer"
android:persistent="false"/> android:persistent="false"/>
</PreferenceScreen> </PreferenceScreen>
</PreferenceScreen> </PreferenceScreen>
</PreferenceCategory>
</PreferenceCategory>
</PreferenceScreen> </PreferenceScreen>