Started filling preferences wrapper
This commit is contained in:
parent
37b43c398d
commit
0d61f337d3
3 changed files with 157 additions and 15 deletions
|
@ -27,7 +27,7 @@ public class BootReceiver extends BroadcastReceiver {
|
|||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
|
||||
if (LinphonePreferences.instance().shouldStartAtStartup()) {
|
||||
if (LinphonePreferences.instance().isAutoStartEnabled()) {
|
||||
Intent lLinphoneServiceIntent = new Intent(Intent.ACTION_MAIN);
|
||||
lLinphoneServiceIntent.setClass(context, LinphoneService.class);
|
||||
context.startService(lLinphoneServiceIntent);;
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
package org.linphone;
|
||||
|
||||
import org.linphone.core.LinphoneCore.MediaEncryption;
|
||||
import org.linphone.core.LinphoneCore.Transports;
|
||||
import org.linphone.core.LinphoneCoreFactory;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
/*
|
||||
ChatListFragment.java
|
||||
Copyright (C) 2012 Belledonne Communications, Grenoble, France
|
||||
|
@ -23,6 +30,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
*/
|
||||
public class LinphonePreferences {
|
||||
private static LinphonePreferences instance;
|
||||
private Context mContext;
|
||||
|
||||
public static final synchronized LinphonePreferences instance() {
|
||||
if (instance == null) {
|
||||
|
@ -35,6 +43,14 @@ public class LinphonePreferences {
|
|||
|
||||
}
|
||||
|
||||
private String getString(int key) {
|
||||
if (mContext == null) {
|
||||
mContext = LinphoneService.instance();
|
||||
}
|
||||
|
||||
return mContext.getString(key);
|
||||
}
|
||||
|
||||
public boolean isFirstLaunch() {
|
||||
return false;
|
||||
}
|
||||
|
@ -46,8 +62,12 @@ public class LinphonePreferences {
|
|||
return false;
|
||||
}
|
||||
|
||||
public void setRemoteProvisioningUrl(String url) {
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().getConfig().setString("app", "remote_provisioning", url);
|
||||
}
|
||||
|
||||
public String getRemoteProvisioningUrl() {
|
||||
return null;
|
||||
return LinphoneCoreFactory.instance().createLpConfig(LinphoneManager.getInstance().mLinphoneConfigFile).getString("app", "remote_provisioning", null);
|
||||
}
|
||||
|
||||
public String getTunnelMode() {
|
||||
|
@ -78,12 +98,20 @@ public class LinphonePreferences {
|
|||
return null;
|
||||
}
|
||||
|
||||
public boolean shouldStartAtStartup() {
|
||||
return false;
|
||||
public boolean isAutoStartEnabled() {
|
||||
return LinphoneManager.getLcIfManagerNotDestroyedOrNull().getConfig().getBool("app", "auto_start", false);
|
||||
}
|
||||
|
||||
public void setAutoStart(boolean autoStartEnabled) {
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().getConfig().setBool("app", "auto_start", autoStartEnabled);
|
||||
}
|
||||
|
||||
public String getSharingPictureServerUrl() {
|
||||
return null;
|
||||
return LinphoneManager.getLcIfManagerNotDestroyedOrNull().getConfig().getString("app", "sharing_server", null);
|
||||
}
|
||||
|
||||
public void setSharingPictureServerUrl(String url) {
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().getConfig().setString("app", "sharing_server", url);
|
||||
}
|
||||
|
||||
public boolean shouldUseLinphoneToStoreChatHistory() {
|
||||
|
@ -195,4 +223,100 @@ public class LinphonePreferences {
|
|||
|
||||
}
|
||||
// End of Accounts
|
||||
|
||||
public MediaEncryption getMediaEncryption() {
|
||||
return LinphoneManager.getLcIfManagerNotDestroyedOrNull().getMediaEncryption();
|
||||
}
|
||||
|
||||
public void setMediaEncryption(MediaEncryption menc) {
|
||||
if (menc == null)
|
||||
return;
|
||||
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().setMediaEncryption(menc);
|
||||
}
|
||||
|
||||
public String getTransport() {
|
||||
Transports transports = LinphoneManager.getLcIfManagerNotDestroyedOrNull().getSignalingTransportPorts();
|
||||
String transport = getString(R.string.pref_transport_udp);
|
||||
if (transports.tcp > 0)
|
||||
transport = getString(R.string.pref_transport_tcp_key);
|
||||
else if (transports.tls > 0)
|
||||
transport = getString(R.string.pref_transport_tls_key);
|
||||
return transport;
|
||||
}
|
||||
|
||||
public void setTransport(String transportKey) {
|
||||
if (transportKey == null)
|
||||
return;
|
||||
|
||||
Transports transports = LinphoneManager.getLcIfManagerNotDestroyedOrNull().getSignalingTransportPorts();
|
||||
if (transports.udp > 0) {
|
||||
if (transportKey.equals(getString(R.string.pref_transport_tcp_key))) {
|
||||
transports.tcp = transports.udp;
|
||||
transports.udp = transports.tls;
|
||||
} else if (transportKey.equals(getString(R.string.pref_transport_tls_key))) {
|
||||
transports.tls = transports.udp;
|
||||
transports.udp = transports.tcp;
|
||||
}
|
||||
} else if (transports.tcp > 0) {
|
||||
if (transportKey.equals(getString(R.string.pref_transport_udp_key))) {
|
||||
transports.udp = transports.tcp;
|
||||
transports.tcp = transports.tls;
|
||||
} else if (transportKey.equals(getString(R.string.pref_transport_tls_key))) {
|
||||
transports.tls = transports.tcp;
|
||||
transports.tcp = transports.udp;
|
||||
}
|
||||
} else if (transports.tls > 0) {
|
||||
if (transportKey.equals(getString(R.string.pref_transport_udp_key))) {
|
||||
transports.udp = transports.tls;
|
||||
transports.tls = transports.tcp;
|
||||
} else if (transportKey.equals(getString(R.string.pref_transport_tcp_key))) {
|
||||
transports.tcp = transports.tls;
|
||||
transports.tls = transports.udp;
|
||||
}
|
||||
}
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().setSignalingTransportPorts(transports);
|
||||
}
|
||||
|
||||
public String getStunServer() {
|
||||
return LinphoneManager.getLcIfManagerNotDestroyedOrNull().getStunServer();
|
||||
}
|
||||
|
||||
public void setStunServer(String stun) {
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().setStunServer(stun);
|
||||
}
|
||||
|
||||
public String getExpire() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setExpire(String expire) {
|
||||
|
||||
}
|
||||
|
||||
public String getSipPortIfNotRandom() {
|
||||
Transports transports = LinphoneManager.getLcIfManagerNotDestroyedOrNull().getSignalingTransportPorts();
|
||||
int port;
|
||||
if (transports.udp > 0)
|
||||
port = transports.udp;
|
||||
else if (transports.tcp > 0)
|
||||
port = transports.tcp;
|
||||
else
|
||||
port = transports.tls;
|
||||
return String.valueOf(port);
|
||||
}
|
||||
|
||||
public void setSipPortIfNotRandom(int port) {
|
||||
if (port <= 0)
|
||||
return;
|
||||
|
||||
Transports transports = LinphoneManager.getLcIfManagerNotDestroyedOrNull().getSignalingTransportPorts();
|
||||
if (transports.udp > 0)
|
||||
transports.udp = port;
|
||||
else if (transports.tcp > 0)
|
||||
transports.tcp = port;
|
||||
else
|
||||
transports.udp = port;
|
||||
LinphoneManager.getLcIfManagerNotDestroyedOrNull().setSignalingTransportPorts(transports);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,13 +17,17 @@ import android.os.Bundle;
|
|||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.preference.Preference.OnPreferenceClickListener;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceScreen;
|
||||
|
||||
public class SettingsFragment extends PreferencesListFragment implements EcCalibrationListener {
|
||||
private LinphonePreferences mPrefs;
|
||||
|
||||
public SettingsFragment() {
|
||||
super(R.xml.preferences);
|
||||
mPrefs = LinphonePreferences.instance();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -41,6 +45,11 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
initMediaEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_media_encryption_key)));
|
||||
initializeTransportPreferences((ListPreference) findPreference(getString(R.string.pref_transport_key)));
|
||||
|
||||
findPreference(getString(R.string.pref_stun_server_key)).setSummary(mPrefs.getStunServer());
|
||||
findPreference(getString(R.string.pref_image_sharing_server_key)).setSummary(mPrefs.getSharingPictureServerUrl());
|
||||
findPreference(getString(R.string.pref_remote_provisioning_key)).setSummary(mPrefs.getRemoteProvisioningUrl());
|
||||
findPreference(getString(R.string.pref_expire_key)).setSummary(mPrefs.getExpire());
|
||||
|
||||
// Add action on About button
|
||||
findPreference(getString(R.string.menu_about_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
@Override
|
||||
|
@ -54,8 +63,10 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
});
|
||||
|
||||
// Disable sip port choice if port is random
|
||||
findPreference(getString(R.string.pref_sip_port_key)).setEnabled(!((CheckBoxPreference)findPreference(getString(R.string.pref_transport_use_random_ports_key))).isChecked());
|
||||
|
||||
Preference sipPort = findPreference(getString(R.string.pref_sip_port_key));
|
||||
sipPort.setEnabled(!((CheckBoxPreference)findPreference(getString(R.string.pref_transport_use_random_ports_key))).isChecked());
|
||||
sipPort.setSummary(mPrefs.getSipPortIfNotRandom());
|
||||
|
||||
if (getResources().getBoolean(R.bool.disable_all_patented_codecs_for_markets)) {
|
||||
Preference prefH264 = findPreference(getString(R.string.pref_video_codec_h264_key));
|
||||
prefH264.setEnabled(false);
|
||||
|
@ -75,8 +86,16 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
}
|
||||
}
|
||||
|
||||
// Sets listener for each preference to update the matching value in linphonecore
|
||||
private void setListeners() {
|
||||
|
||||
findPreference(getString(R.string.pref_stun_server_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
mPrefs.setStunServer(newValue.toString());
|
||||
preference.setSummary(newValue.toString());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Read the values set in resources and hides the settings accordingly
|
||||
|
@ -187,16 +206,12 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
}
|
||||
|
||||
private void initMediaEncryptionPreference(ListPreference pref) {
|
||||
LinphoneCore lc = null;
|
||||
try {
|
||||
lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
||||
} catch (Exception e) {}
|
||||
|
||||
List<CharSequence> mencEntries = new ArrayList<CharSequence>();
|
||||
List<CharSequence> mencEntryValues = new ArrayList<CharSequence>();
|
||||
mencEntries.add(getString(R.string.media_encryption_none));
|
||||
mencEntryValues.add(getString(R.string.pref_media_encryption_key_none));
|
||||
|
||||
|
||||
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
||||
if (lc == null || getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) {
|
||||
setListPreferenceValues(pref, mencEntries, mencEntryValues);
|
||||
return;
|
||||
|
@ -217,6 +232,8 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
}
|
||||
setListPreferenceValues(pref, mencEntries, mencEntryValues);
|
||||
}
|
||||
|
||||
pref.setSummary(mPrefs.getMediaEncryption().toString());
|
||||
}
|
||||
|
||||
private void initializeTransportPreferences(ListPreference pref) {
|
||||
|
@ -232,6 +249,7 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
mencEntryValues.add(getString(R.string.pref_transport_tls_key));
|
||||
}
|
||||
setListPreferenceValues(pref, mencEntries, mencEntryValues);
|
||||
pref.setSummary(mPrefs.getTransport());
|
||||
}
|
||||
|
||||
private static void setListPreferenceValues(ListPreference pref, List<CharSequence> entries, List<CharSequence> values) {
|
||||
|
|
Loading…
Reference in a new issue