Fixes and improvements of SettingsFragment
This commit is contained in:
parent
1790426ba7
commit
90aacc2b5e
5 changed files with 314 additions and 261 deletions
|
@ -1,6 +1,9 @@
|
||||||
<?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 ! -->
|
||||||
|
<!-- 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"
|
||||||
|
@ -16,65 +19,70 @@
|
||||||
android:key="@string/pref_in_app_store_key"
|
android:key="@string/pref_in_app_store_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:title="@string/pref_tunnel"
|
|
||||||
android:key="@string/pref_tunnel_key"
|
|
||||||
android:persistent="false">
|
|
||||||
|
|
||||||
<EditTextPreference
|
|
||||||
android:title="@string/pref_tunnel_host"
|
|
||||||
android:key="@string/pref_tunnel_host_key"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<EditTextPreference
|
|
||||||
android:title="@string/pref_tunnel_port"
|
|
||||||
android:key="@string/pref_tunnel_port_key"
|
|
||||||
android:numeric="integer"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
android:title="@string/pref_tunnel_mode"
|
|
||||||
android:key="@string/pref_tunnel_mode_key"
|
|
||||||
android:entries="@array/tunnel_mode_entries"
|
|
||||||
android:entryValues="@array/tunnel_mode_entry_values"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/pref_preferences_title">
|
android:title="@string/pref_preferences_title">
|
||||||
|
|
||||||
<CheckBoxPreference
|
<PreferenceScreen
|
||||||
android:title="@string/pref_video_enable_title"
|
android:title="@string/pref_tunnel"
|
||||||
android:key="@string/pref_video_enable_key"
|
android:key="@string/pref_tunnel_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
android:title="@string/pref_tunnel">
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:title="@string/pref_tunnel_host"
|
||||||
|
android:key="@string/pref_tunnel_host_key"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:title="@string/pref_tunnel_port"
|
||||||
|
android:key="@string/pref_tunnel_port_key"
|
||||||
|
android:numeric="integer"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:title="@string/pref_tunnel_mode"
|
||||||
|
android:key="@string/pref_tunnel_mode_key"
|
||||||
|
android:entries="@array/tunnel_mode_entries"
|
||||||
|
android:entryValues="@array/tunnel_mode_entry_values"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
</PreferenceScreen>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:title="@string/pref_audio_title">
|
android:title="@string/pref_audio_title">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
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"/>
|
||||||
|
|
||||||
<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
|
||||||
android:title="@string/pref_codecs"
|
android:title="@string/pref_codecs"
|
||||||
android:key="@string/pref_codecs_key"
|
android:key="@string/pref_codecs_key"
|
||||||
|
@ -85,60 +93,78 @@
|
||||||
<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:dependency="@string/pref_video_enable_key"
|
android:persistent="false">
|
||||||
android:shouldDisableView="true"
|
|
||||||
android:persistent="false">
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:title="@string/pref_video_use_front_camera_title"
|
|
||||||
android:key="@string/pref_video_use_front_camera_key"
|
|
||||||
android:dependency="@string/pref_video_enable_key"
|
|
||||||
android:layout="@layout/hidden"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:title="@string/pref_video_initiate_call_with_video_title"
|
|
||||||
android:key="@string/pref_video_initiate_call_with_video_key"
|
|
||||||
android:summary="@string/pref_video_initiate_call_with_video"
|
|
||||||
android:dependency="@string/pref_video_enable_key"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:title="@string/pref_video_automatically_accept_video_title"
|
|
||||||
android:key="@string/pref_video_automatically_accept_video_key"
|
|
||||||
android:summary="@string/pref_video_automatically_accept_video"
|
|
||||||
android:dependency="@string/pref_video_enable_key"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
android:title="@string/pref_video_preset"
|
|
||||||
android:key="@string/pref_video_preset_key"
|
|
||||||
android:entries="@array/video_preset_entries"
|
|
||||||
android:entryValues="@array/video_preset_entries"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
android:title="@string/pref_preferred_video_size"
|
|
||||||
android:key="@string/pref_preferred_video_size_key"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
android:title="@string/pref_preferred_fps"
|
|
||||||
android:key="@string/pref_preferred_video_fps_key"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<EditTextPreference
|
|
||||||
android:title="@string/pref_bandwidth_limit"
|
|
||||||
android:key="@string/pref_bandwidth_limit_key"
|
|
||||||
android:numeric="integer"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
<CheckBoxPreference
|
<PreferenceCategory
|
||||||
android:title="@string/pref_overlay"
|
android:title="@string/pref_video_title">
|
||||||
android:key="@string/pref_overlay_key"
|
|
||||||
android:summary="@string/pref_overlay_summary"
|
|
||||||
android:persistent="false"/>
|
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:title="@string/pref_video_enable_title"
|
||||||
|
android:key="@string/pref_video_enable_key"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:title="@string/pref_video_use_front_camera_title"
|
||||||
|
android:key="@string/pref_video_use_front_camera_key"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:layout="@layout/hidden"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:title="@string/pref_video_initiate_call_with_video_title"
|
||||||
|
android:key="@string/pref_video_initiate_call_with_video_key"
|
||||||
|
android:summary="@string/pref_video_initiate_call_with_video"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:title="@string/pref_video_automatically_accept_video_title"
|
||||||
|
android:key="@string/pref_video_automatically_accept_video_key"
|
||||||
|
android:summary="@string/pref_video_automatically_accept_video"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:title="@string/pref_video_preset"
|
||||||
|
android:key="@string/pref_video_preset_key"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:shouldDisableView="true"
|
||||||
|
android:entries="@array/video_preset_entries"
|
||||||
|
android:entryValues="@array/video_preset_entries"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:title="@string/pref_preferred_video_size"
|
||||||
|
android:key="@string/pref_preferred_video_size_key"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:shouldDisableView="true"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:title="@string/pref_preferred_fps"
|
||||||
|
android:key="@string/pref_preferred_video_fps_key"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:shouldDisableView="true"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:title="@string/pref_bandwidth_limit"
|
||||||
|
android:key="@string/pref_bandwidth_limit_key"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:shouldDisableView="true"
|
||||||
|
android:numeric="integer"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:title="@string/pref_overlay"
|
||||||
|
android:key="@string/pref_overlay_key"
|
||||||
|
android:dependency="@string/pref_video_enable_key"
|
||||||
|
android:shouldDisableView="true"
|
||||||
|
android:summary="@string/pref_overlay_summary"
|
||||||
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
</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"
|
||||||
|
@ -150,154 +176,174 @@
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:title="@string/pref_call_title">
|
android:title="@string/pref_call_title">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
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"/>
|
||||||
|
|
||||||
<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_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"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:title="@string/pref_chat_title">
|
android:title="@string/pref_chat_title">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
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:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:title="@string/pref_network_title">
|
android:title="@string/pref_network_title">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
android:title="@string/pref_network_title">
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_wifi_only"
|
android:title="@string/pref_wifi_only"
|
||||||
android:key="@string/pref_wifi_only_key"
|
android:key="@string/pref_wifi_only_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_stun_server"
|
android:title="@string/pref_stun_server"
|
||||||
android:key="@string/pref_stun_server_key"
|
android:key="@string/pref_stun_server_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_ice_enable"
|
android:title="@string/pref_ice_enable"
|
||||||
android:key="@string/pref_ice_enable_key"
|
android:key="@string/pref_ice_enable_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_upnp_enable"
|
android:title="@string/pref_upnp_enable"
|
||||||
android:key="@string/pref_upnp_enable_key"
|
android:key="@string/pref_upnp_enable_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_transport_use_random_ports"
|
android:title="@string/pref_transport_use_random_ports"
|
||||||
android:key="@string/pref_transport_use_random_ports_key"
|
android:key="@string/pref_transport_use_random_ports_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_sip_port_title"
|
android:title="@string/pref_sip_port_title"
|
||||||
android:key="@string/pref_sip_port_key"
|
android:key="@string/pref_sip_port_key"
|
||||||
android:numeric="integer"
|
android:numeric="integer"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_audio_port_title"
|
android:title="@string/pref_audio_port_title"
|
||||||
android:key="@string/pref_audio_port_key"
|
android:key="@string/pref_audio_port_key"
|
||||||
android:summary="@string/pref_audio_port_description"
|
android:summary="@string/pref_audio_port_description"
|
||||||
android:layout="@layout/hidden"
|
android:layout="@layout/hidden"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:title="@string/pref_video_port_title"
|
android:title="@string/pref_video_port_title"
|
||||||
android:key="@string/pref_video_port_key"
|
android:key="@string/pref_video_port_key"
|
||||||
android:summary="@string/pref_video_port_description"
|
android:summary="@string/pref_video_port_description"
|
||||||
android:layout="@layout/hidden"
|
android:layout="@layout/hidden"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_push_notification"
|
android:title="@string/pref_push_notification"
|
||||||
android:key="@string/pref_push_notification_key"
|
android:key="@string/pref_push_notification_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_ipv6_title"
|
android:title="@string/pref_ipv6_title"
|
||||||
android:key="@string/pref_ipv6_key"
|
android:key="@string/pref_ipv6_key"
|
||||||
android:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
android:title="@string/pref_advanced_title">
|
android:title="@string/pref_advanced_title">
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
android:title="@string/pref_advanced_title">
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:title="@string/pref_debug"
|
android:title="@string/pref_debug"
|
||||||
android:key="@string/pref_debug_key"
|
android:key="@string/pref_debug_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_animation_enable_title"
|
android:title="@string/pref_animation_enable_title"
|
||||||
android:key="@string/pref_animation_enable_key"
|
android:key="@string/pref_animation_enable_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_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:layout="@layout/hidden"
|
android:layout="@layout/hidden"
|
||||||
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:persistent="false"/>
|
android:persistent="false"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:title="@string/pref_primary_account_title">
|
android:title="@string/pref_primary_account_title">
|
||||||
|
|
||||||
|
@ -312,7 +358,7 @@
|
||||||
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">
|
||||||
|
|
|
@ -429,6 +429,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeFragment(Fragment newFragment, FragmentsAvailable newFragmentType, boolean withoutAnimation) {
|
private void changeFragment(Fragment newFragment, FragmentsAvailable newFragmentType, boolean withoutAnimation) {
|
||||||
|
|
||||||
FragmentManager fm = getFragmentManager();
|
FragmentManager fm = getFragmentManager();
|
||||||
FragmentTransaction transaction = fm.beginTransaction();
|
FragmentTransaction transaction = fm.beginTransaction();
|
||||||
|
|
||||||
|
@ -456,7 +457,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta
|
||||||
fm.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
fm.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
transaction.replace(R.id.fragmentContainer, newFragment, newFragmentType.toString());
|
transaction.replace(R.id.fragmentContainer, newFragment, newFragmentType.toString());
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
fm.executePendingTransactions();
|
fm.executePendingTransactions();
|
||||||
|
|
|
@ -23,7 +23,6 @@ import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.linphone.compatibility.Compatibility;
|
|
||||||
import org.linphone.core.LinphoneAddress;
|
import org.linphone.core.LinphoneAddress;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
import org.linphone.core.LinphoneCore.EcCalibratorStatus;
|
||||||
|
@ -43,6 +42,7 @@ import org.linphone.ui.PreferencesListFragment;
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -64,6 +64,10 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
private LinphonePreferences mPrefs;
|
private LinphonePreferences mPrefs;
|
||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
private LinphoneCoreListenerBase mListener;
|
private LinphoneCoreListenerBase mListener;
|
||||||
|
|
||||||
|
public SettingsFragment() {
|
||||||
|
super(R.xml.preferences);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle bundle) {
|
public void onCreate(Bundle bundle) {
|
||||||
|
@ -71,7 +75,6 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
|
|
||||||
mPrefs = LinphonePreferences.instance();
|
mPrefs = LinphonePreferences.instance();
|
||||||
removePreviousPreferencesFile(); // Required when updating the preferences order
|
removePreviousPreferencesFile(); // Required when updating the preferences order
|
||||||
addPreferencesFromResource(R.xml.preferences);
|
|
||||||
|
|
||||||
mListener = new LinphoneCoreListenerBase() {
|
mListener = new LinphoneCoreListenerBase() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -85,19 +88,19 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
echoCancellerCalibration.setSummary(R.string.no_echo);
|
echoCancellerCalibration.setSummary(R.string.no_echo);
|
||||||
echoCancellation.setChecked(false);
|
echoCancellation.setChecked(false);
|
||||||
LinphonePreferences.instance().setEchoCancellation(false);
|
LinphonePreferences.instance().setEchoCancellation(false);
|
||||||
((AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);
|
((AudioManager)getActivity().getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);
|
||||||
Log.i("Set audio mode on 'Normal'");
|
Log.i("Set audio mode on 'Normal'");
|
||||||
} else if (status == EcCalibratorStatus.Done) {
|
} else if (status == EcCalibratorStatus.Done) {
|
||||||
echoCancellerCalibration.setSummary(String.format(getString(R.string.ec_calibrated), delayMs));
|
echoCancellerCalibration.setSummary(String.format(getString(R.string.ec_calibrated), delayMs));
|
||||||
echoCancellation.setChecked(true);
|
echoCancellation.setChecked(true);
|
||||||
LinphonePreferences.instance().setEchoCancellation(true);
|
LinphonePreferences.instance().setEchoCancellation(true);
|
||||||
((AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);
|
((AudioManager)getActivity().getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);
|
||||||
Log.i("Set audio mode on 'Normal'");
|
Log.i("Set audio mode on 'Normal'");
|
||||||
} else if (status == EcCalibratorStatus.Failed) {
|
} else if (status == EcCalibratorStatus.Failed) {
|
||||||
echoCancellerCalibration.setSummary(R.string.failed);
|
echoCancellerCalibration.setSummary(R.string.failed);
|
||||||
echoCancellation.setChecked(true);
|
echoCancellation.setChecked(true);
|
||||||
LinphonePreferences.instance().setEchoCancellation(true);
|
LinphonePreferences.instance().setEchoCancellation(true);
|
||||||
((AudioManager)getContext().getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);
|
((AudioManager)getActivity().getSystemService(Context.AUDIO_SERVICE)).setMode(AudioManager.MODE_NORMAL);
|
||||||
Log.i("Set audio mode on 'Normal'");
|
Log.i("Set audio mode on 'Normal'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,6 +112,10 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removePreviousPreferencesFile() {
|
private void removePreviousPreferencesFile() {
|
||||||
|
SharedPreferences.Editor editor = getPreferenceManager().getSharedPreferences().edit();
|
||||||
|
editor.clear();
|
||||||
|
editor.commit();
|
||||||
|
|
||||||
File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs");
|
File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs");
|
||||||
LinphoneUtils.recursiveFileRemoval(dir);
|
LinphoneUtils.recursiveFileRemoval(dir);
|
||||||
}
|
}
|
||||||
|
@ -175,7 +182,7 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Version.isVideoCapable() || !LinphoneManager.getLcIfManagerNotDestroyedOrNull().isVideoSupported()) {
|
if (!Version.isVideoCapable() || !LinphoneManager.getLcIfManagerNotDestroyedOrNull().isVideoSupported()) {
|
||||||
uncheckAndHidePreference(R.string.pref_video_enable_key);
|
emptyAndHidePreference(R.string.pref_video_key);
|
||||||
} else {
|
} else {
|
||||||
if (!AndroidCameraConfiguration.hasFrontCamera()) {
|
if (!AndroidCameraConfiguration.hasFrontCamera()) {
|
||||||
uncheckAndHidePreference(R.string.pref_video_use_front_camera_key);
|
uncheckAndHidePreference(R.string.pref_video_use_front_camera_key);
|
||||||
|
@ -188,7 +195,6 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
|
|
||||||
if (getResources().getBoolean(R.bool.hide_camera_settings)) {
|
if (getResources().getBoolean(R.bool.hide_camera_settings)) {
|
||||||
emptyAndHidePreference(R.string.pref_video_key);
|
emptyAndHidePreference(R.string.pref_video_key);
|
||||||
hidePreference(R.string.pref_video_enable_key);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getResources().getBoolean(R.bool.disable_every_log)) {
|
if (getResources().getBoolean(R.bool.disable_every_log)) {
|
||||||
|
@ -249,12 +255,18 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
private void setPreferenceDefaultValueAndSummary(int pref, String value) {
|
private void setPreferenceDefaultValueAndSummary(int pref, String value) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
EditTextPreference etPref = (EditTextPreference) findPreference(getString(pref));
|
EditTextPreference etPref = (EditTextPreference) findPreference(getString(pref));
|
||||||
etPref.setText(value);
|
if (etPref != null) {
|
||||||
etPref.setSummary(value);
|
etPref.setText(value);
|
||||||
|
etPref.setSummary(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initTunnelSettings() {
|
private void initTunnelSettings() {
|
||||||
|
if (!LinphoneManager.getLc().isTunnelAvailable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_host_key, mPrefs.getTunnelHost());
|
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_host_key, mPrefs.getTunnelHost());
|
||||||
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_port_key, String.valueOf(mPrefs.getTunnelPort()));
|
setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_port_key, String.valueOf(mPrefs.getTunnelPort()));
|
||||||
ListPreference tunnelModePref = (ListPreference) findPreference(getString(R.string.pref_tunnel_mode_key));
|
ListPreference tunnelModePref = (ListPreference) findPreference(getString(R.string.pref_tunnel_mode_key));
|
||||||
|
@ -580,7 +592,7 @@ public class SettingsFragment extends PreferencesListFragment {
|
||||||
synchronized (SettingsFragment.this) {
|
synchronized (SettingsFragment.this) {
|
||||||
preference.setSummary(R.string.ec_calibrating);
|
preference.setSummary(R.string.ec_calibrating);
|
||||||
|
|
||||||
int recordAudio = getContext().getPackageManager().checkPermission(Manifest.permission.RECORD_AUDIO, getContext().getPackageName());
|
int recordAudio = getActivity().getPackageManager().checkPermission(Manifest.permission.RECORD_AUDIO, getActivity().getPackageName());
|
||||||
if (recordAudio == PackageManager.PERMISSION_GRANTED) {
|
if (recordAudio == PackageManager.PERMISSION_GRANTED) {
|
||||||
startEchoCancellerCalibration();
|
startEchoCancellerCalibration();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -20,9 +20,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
import org.linphone.LinphoneManager;
|
import org.linphone.LinphoneManager;
|
||||||
import org.linphone.LinphonePreferences;
|
import org.linphone.LinphonePreferences;
|
||||||
import org.linphone.core.LinphoneCoreListenerBase;
|
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
|
import org.linphone.core.LinphoneCoreListenerBase;
|
||||||
import org.linphone.xmlrpc.XmlRpcHelper;
|
import org.linphone.xmlrpc.XmlRpcHelper;
|
||||||
import org.linphone.xmlrpc.XmlRpcListenerBase;
|
import org.linphone.xmlrpc.XmlRpcListenerBase;
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -40,7 +39,6 @@ import android.widget.Toast;
|
||||||
*/
|
*/
|
||||||
public class RemoteProvisioningLoginActivity extends Activity implements OnClickListener {
|
public class RemoteProvisioningLoginActivity extends Activity implements OnClickListener {
|
||||||
private EditText login, password, domain;
|
private EditText login, password, domain;
|
||||||
private ImageView cancel;
|
|
||||||
private Button connect;
|
private Button connect;
|
||||||
private LinphoneCoreListenerBase mListener;
|
private LinphoneCoreListenerBase mListener;
|
||||||
|
|
||||||
|
@ -53,9 +51,6 @@ public class RemoteProvisioningLoginActivity extends Activity implements OnClick
|
||||||
password = (EditText) findViewById(R.id.assistant_password);
|
password = (EditText) findViewById(R.id.assistant_password);
|
||||||
domain = (EditText) findViewById(R.id.assistant_domain);
|
domain = (EditText) findViewById(R.id.assistant_domain);
|
||||||
|
|
||||||
//cancel = (ImageView) findViewById(R.id.cancel);
|
|
||||||
//cancel.setOnClickListener(this);
|
|
||||||
|
|
||||||
connect = (Button) findViewById(R.id.assistant_connect);
|
connect = (Button) findViewById(R.id.assistant_connect);
|
||||||
connect.setOnClickListener(this);
|
connect.setOnClickListener(this);
|
||||||
|
|
||||||
|
@ -86,8 +81,6 @@ public class RemoteProvisioningLoginActivity extends Activity implements OnClick
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean storeAccount(String username, String password, String domain) {
|
private boolean storeAccount(String username, String password, String domain) {
|
||||||
LinphoneCore lc = LinphoneManager.getLc();
|
|
||||||
|
|
||||||
XmlRpcHelper xmlRpcHelper = new XmlRpcHelper();
|
XmlRpcHelper xmlRpcHelper = new XmlRpcHelper();
|
||||||
xmlRpcHelper.getRemoteProvisioningFilenameAsync(new XmlRpcListenerBase() {
|
xmlRpcHelper.getRemoteProvisioningFilenameAsync(new XmlRpcListenerBase() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Must be provided
|
// Must be provided
|
||||||
public PreferencesListFragment(){
|
public PreferencesListFragment() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
m.setAccessible(true);
|
m.setAccessible(true);
|
||||||
m.invoke(mPreferenceManager);
|
m.invoke(mPreferenceManager);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] onStop " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
m.setAccessible(true);
|
m.setAccessible(true);
|
||||||
m.invoke(mPreferenceManager);
|
m.invoke(mPreferenceManager);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] onDestroy " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
m.setAccessible(true);
|
m.setAccessible(true);
|
||||||
m.invoke(mPreferenceManager, requestCode, resultCode, data);
|
m.invoke(mPreferenceManager, requestCode, resultCode, data);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] onActivityResult " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
PreferenceManager preferenceManager = c.newInstance(this.getActivity(), FIRST_REQUEST_CODE);
|
PreferenceManager preferenceManager = c.newInstance(this.getActivity(), FIRST_REQUEST_CODE);
|
||||||
return preferenceManager;
|
return preferenceManager;
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] onCreatePreferenceManager " + e);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
postBindPreferences();
|
postBindPreferences();
|
||||||
}
|
}
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] setPreferenceScreen " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
m.setAccessible(true);
|
m.setAccessible(true);
|
||||||
return (PreferenceScreen) m.invoke(mPreferenceManager);
|
return (PreferenceScreen) m.invoke(mPreferenceManager);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] getPreferenceScreen " + e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -250,7 +250,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
PreferenceScreen prefScreen = (PreferenceScreen) m.invoke(mPreferenceManager, getActivity(), preferencesResId, getPreferenceScreen());
|
PreferenceScreen prefScreen = (PreferenceScreen) m.invoke(mPreferenceManager, getActivity(), preferencesResId, getPreferenceScreen());
|
||||||
setPreferenceScreen(prefScreen);
|
setPreferenceScreen(prefScreen);
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
Log.e(e);
|
Log.e("[PreferencesListFragment] addPreferencesFromResource " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,6 +263,7 @@ public class PreferencesListFragment extends ListFragment {
|
||||||
*/
|
*/
|
||||||
public Preference findPreference(CharSequence key) {
|
public Preference findPreference(CharSequence key) {
|
||||||
if (mPreferenceManager == null) {
|
if (mPreferenceManager == null) {
|
||||||
|
Log.e("[PreferencesListFragment] PreferenceManager is null !");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return mPreferenceManager.findPreference(key);
|
return mPreferenceManager.findPreference(key);
|
||||||
|
|
Loading…
Reference in a new issue