Add old interface for add account

This commit is contained in:
Margaux Clerc 2014-10-08 13:58:26 +02:00
parent e95582e89b
commit fc95d843be
4 changed files with 212 additions and 31 deletions

View file

@ -33,6 +33,7 @@
<string name="menu_about_key">menu_about_key</string> <string name="menu_about_key">menu_about_key</string>
<string name="pref_sipaccounts_key">pref_sipaccounts_key</string> <string name="pref_sipaccounts_key">pref_sipaccounts_key</string>
<string name="setup_key">setup_key</string> <string name="setup_key">setup_key</string>
<string name="pref_add_account_key">pref_add_account_key</string>
<string name="pref_video_key">pref_video_key</string> <string name="pref_video_key">pref_video_key</string>
<string name="pref_video_codecs_key">pref_video_codecs_key</string> <string name="pref_video_codecs_key">pref_video_codecs_key</string>
<string name="pref_linphone_friend_key">pref_linphone_friend_key</string> <string name="pref_linphone_friend_key">pref_linphone_friend_key</string>

View file

@ -12,6 +12,10 @@
<Preference <Preference
android:title="@string/setup_title" android:title="@string/setup_title"
android:key="@string/setup_key"/> android:key="@string/setup_key"/>
<Preference
android:title="@string/pref_add_account"
android:key="@string/pref_add_account_key"/>
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_tunnel" android:title="@string/pref_tunnel"

View file

@ -21,6 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.linphone.LinphonePreferences.AccountBuilder;
import org.linphone.core.LinphoneCoreException;
import org.linphone.ui.PreferencesListFragment; import org.linphone.ui.PreferencesListFragment;
import android.os.Bundle; import android.os.Bundle;
@ -41,9 +43,11 @@ import android.view.View;
*/ */
public class AccountPreferencesFragment extends PreferencesListFragment { public class AccountPreferencesFragment extends PreferencesListFragment {
private int n; private int n;
private boolean isNewAccount=false;
private LinphonePreferences mPrefs; private LinphonePreferences mPrefs;
private EditTextPreference mProxyPreference; private EditTextPreference mProxyPreference;
private ListPreference mTransportPreference; private ListPreference mTransportPreference;
private AccountBuilder builder;
public AccountPreferencesFragment() { public AccountPreferencesFragment() {
super(R.xml.account_preferences); super(R.xml.account_preferences);
@ -62,7 +66,14 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
PreferenceScreen screen = getPreferenceScreen(); PreferenceScreen screen = getPreferenceScreen();
n = getArguments().getInt("Account", 0); n = getArguments().getInt("Account", 0);
manageAccountPreferencesFields(screen); if(n == mPrefs.getAccountCount()){
isNewAccount=true;
builder = new AccountBuilder(LinphoneManager.getLc());
initAccountPreferencesFields(screen);
} else {
manageAccountPreferencesFields(screen);
}
} }
public static boolean isEditTextEmpty(String s){ public static boolean isEditTextEmpty(String s){
@ -73,7 +84,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
if(isEditTextEmpty(newValue.toString())) return false; if(isEditTextEmpty(newValue.toString())) return false;
mPrefs.setAccountUsername(n, newValue.toString()); if (isNewAccount) {
builder.setUsername(newValue.toString());
} else {
mPrefs.setAccountUsername(n, newValue.toString());
}
preference.setSummary(newValue.toString()); preference.setSummary(newValue.toString());
return true; return true;
} }
@ -81,7 +96,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener useridChangedListener = new OnPreferenceChangeListener() { OnPreferenceChangeListener useridChangedListener = new OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
mPrefs.setAccountUserId(n, newValue.toString()); if (isNewAccount) {
builder.setUserId(newValue.toString());
} else {
mPrefs.setAccountUserId(n, newValue.toString());
}
preference.setSummary(newValue.toString()); preference.setSummary(newValue.toString());
return true; return true;
} }
@ -90,7 +109,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
if(isEditTextEmpty(newValue.toString())) return false; if(isEditTextEmpty(newValue.toString())) return false;
mPrefs.setAccountPassword(n, newValue.toString()); if (isNewAccount) {
builder.setPassword(newValue.toString());
} else {
mPrefs.setAccountPassword(n, newValue.toString());
}
return true; return true;
} }
}; };
@ -98,7 +121,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
if(isEditTextEmpty(newValue.toString())) return false; if(isEditTextEmpty(newValue.toString())) return false;
mPrefs.setAccountDomain(n, newValue.toString()); if (isNewAccount) {
builder.setDomain(newValue.toString());
} else {
mPrefs.setAccountDomain(n, newValue.toString());
}
preference.setSummary(newValue.toString()); preference.setSummary(newValue.toString());
return true; return true;
} }
@ -106,7 +133,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
OnPreferenceChangeListener displayNameChangedListener = new OnPreferenceChangeListener() { OnPreferenceChangeListener displayNameChangedListener = new OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
mPrefs.setAccountDisplayName(n, newValue.toString()); if (isNewAccount) {
builder.setDisplayName(newValue.toString());
} else {
mPrefs.setAccountDisplayName(n, newValue.toString());
}
preference.setSummary(newValue.toString()); preference.setSummary(newValue.toString());
return true; return true;
} }
@ -115,28 +146,40 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = newValue.toString(); String value = newValue.toString();
mPrefs.setAccountProxy(n, value); if (isNewAccount) {
preference.setSummary(mPrefs.getAccountProxy(n)); builder.setProxy(newValue.toString());
preference.setSummary(newValue.toString());
if (mTransportPreference != null) { } else {
mTransportPreference.setSummary(mPrefs.getAccountTransportString(n)); mPrefs.setAccountProxy(n, value);
mTransportPreference.setValue(mPrefs.getAccountTransportKey(n)); preference.setSummary(mPrefs.getAccountProxy(n));
}
if (mTransportPreference != null) {
mTransportPreference.setSummary(mPrefs.getAccountTransportString(n));
mTransportPreference.setValue(mPrefs.getAccountTransportKey(n));
}
}
return true; return true;
} }
}; };
OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() { OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
mPrefs.setAccountOutboundProxyEnabled(n, (Boolean) newValue); if (isNewAccount) {
builder.setOutboundProxyEnabled((Boolean) newValue);
} else {
mPrefs.setAccountOutboundProxyEnabled(n, (Boolean) newValue);
}
return true; return true;
} }
}; };
OnPreferenceChangeListener expiresChangedListener = new OnPreferenceChangeListener() { OnPreferenceChangeListener expiresChangedListener = new OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
mPrefs.setExpires(n, newValue.toString()); if (isNewAccount) {
builder.setExpires(newValue.toString());
} else {
mPrefs.setExpires(n, newValue.toString());
}
preference.setSummary(newValue.toString()); preference.setSummary(newValue.toString());
return true; return true;
} }
@ -146,7 +189,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String value = newValue.toString(); String value = newValue.toString();
preference.setSummary(value); preference.setSummary(value);
mPrefs.setPrefix(n, value); if (isNewAccount) {
//TODO acocunt builder ste prefix
} else {
mPrefs.setPrefix(n, value);
}
return true; return true;
} }
}; };
@ -154,7 +201,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean value = (Boolean) newValue; boolean value = (Boolean) newValue;
mPrefs.enableAvpf(n, value); if (isNewAccount) {
builder.setAvpfEnabled(value);
} else {
mPrefs.enableAvpf(n, value);
}
return true; return true;
} }
}; };
@ -168,7 +219,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
return false; return false;
} }
} catch (NumberFormatException nfe) { } } catch (NumberFormatException nfe) { }
mPrefs.setAvpfRRInterval(n, value); if (isNewAccount) {
//TODO
} else {
mPrefs.setAvpfRRInterval(n, value);
}
preference.setSummary(value); preference.setSummary(value);
return true; return true;
} }
@ -177,7 +232,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean value = (Boolean) newValue; boolean value = (Boolean) newValue;
mPrefs.setReplacePlusByZeroZero(n, value); if (isNewAccount) {
//TODO
} else {
mPrefs.setReplacePlusByZeroZero(n, value);
}
return true; return true;
} }
}; };
@ -185,7 +244,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean value = (Boolean) newValue; boolean value = (Boolean) newValue;
mPrefs.setAccountEnabled(n, !value); if (isNewAccount) {
builder.setEnabled(!value);
} else {
mPrefs.setAccountEnabled(n, !value);
}
return true; return true;
} }
}; };
@ -193,15 +256,19 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = newValue.toString(); String key = newValue.toString();
mPrefs.setAccountTransport(n, key); if (isNewAccount) {
preference.setSummary(mPrefs.getAccountTransportString(n)); //TODO
preference.setDefaultValue(mPrefs.getAccountTransportKey(n)); //builder.setTransport(transport);
if (mProxyPreference != null) { } else {
String newProxy = mPrefs.getAccountProxy(n); mPrefs.setAccountTransport(n, key);
mProxyPreference.setSummary(newProxy); preference.setSummary(mPrefs.getAccountTransportString(n));
mProxyPreference.setText(newProxy); preference.setDefaultValue(mPrefs.getAccountTransportKey(n));
} if (mProxyPreference != null) {
String newProxy = mPrefs.getAccountProxy(n);
mProxyPreference.setSummary(newProxy);
mProxyPreference.setText(newProxy);
}
}
return true; return true;
} }
}; };
@ -226,6 +293,89 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
} }
} }
} }
private void initAccountPreferencesFields(PreferenceScreen parent) {
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
PreferenceCategory account = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_sipaccount_key));
EditTextPreference username = (EditTextPreference) account.getPreference(0);
username.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
username.setOnPreferenceChangeListener(usernameChangedListener);
EditTextPreference userid = (EditTextPreference) account.getPreference(1);
userid.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
userid.setOnPreferenceChangeListener(useridChangedListener);
EditTextPreference password = (EditTextPreference) account.getPreference(2);
password.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
password.getEditText().setTransformationMethod(new CoolPasswordMethod());
password.setOnPreferenceChangeListener(passwordChangedListener);
EditTextPreference domain = (EditTextPreference) account.getPreference(3);
domain.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
domain.setOnPreferenceChangeListener(domainChangedListener);
EditTextPreference displayName = (EditTextPreference) account.getPreference(4);
displayName.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
displayName.setOnPreferenceChangeListener(displayNameChangedListener);
PreferenceCategory advanced = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_advanced_key));
mTransportPreference = (ListPreference) advanced.getPreference(0);
initializeTransportPreference(mTransportPreference);
mTransportPreference.setOnPreferenceChangeListener(transportChangedListener);
mProxyPreference = (EditTextPreference) advanced.getPreference(1);
mProxyPreference.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
mProxyPreference.setOnPreferenceChangeListener(proxyChangedListener);
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(2);
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
EditTextPreference expires = (EditTextPreference) advanced.getPreference(3);
expires.setOnPreferenceChangeListener(expiresChangedListener);
EditTextPreference prefix = (EditTextPreference) advanced.getPreference(4);
prefix.setOnPreferenceChangeListener(prefixChangedListener);
CheckBoxPreference avpf = (CheckBoxPreference) advanced.getPreference(5);
avpf.setOnPreferenceChangeListener(avpfChangedListener);
EditTextPreference avpfRRInterval = (EditTextPreference) advanced.getPreference(6);
avpfRRInterval.setOnPreferenceChangeListener(avpfRRIntervalChangedListener);
CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(7);
escape.setOnPreferenceChangeListener(escapeChangedListener);
PreferenceCategory manage = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_manage_key));
final CheckBoxPreference disable = (CheckBoxPreference) manage.getPreference(0);
disable.setEnabled(true);
disable.setOnPreferenceChangeListener(disableChangedListener);
CheckBoxPreference mainAccount = (CheckBoxPreference) manage.getPreference(1);
mainAccount.setChecked(isDefaultAccount);
mainAccount.setEnabled(!mainAccount.isChecked());
mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener()
{
public boolean onPreferenceClick(Preference preference) {
mPrefs.setDefaultAccount(n);
disable.setEnabled(false);
disable.setChecked(false);
preference.setEnabled(false);
return true;
}
});
final Preference delete = manage.getPreference(2);
delete.setEnabled(true);
delete.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
mPrefs.deleteAccount(n);
LinphoneActivity.instance().displaySettings();
return true;
}
});
}
private void manageAccountPreferencesFields(PreferenceScreen parent) { private void manageAccountPreferencesFields(PreferenceScreen parent) {
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n; boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
@ -358,4 +508,18 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
values.toArray(contents); values.toArray(contents);
pref.setEntryValues(contents); pref.setEntryValues(contents);
} }
@Override
public void onPause() {
super.onPause();
if (LinphoneActivity.isInstanciated()) {
try {
if(isNewAccount){
builder.saveNewAccount();
}
} catch (LinphoneCoreException e) {
e.printStackTrace();
}
}
}
} }

View file

@ -106,6 +106,14 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
return true; return true;
} }
}); });
findPreference(getString(R.string.pref_add_account_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
int nbAccounts = mPrefs.getAccountCount();
LinphoneActivity.instance().displayAccountSettings(nbAccounts);
return true;
}
});
} }
// Sets listener for each preference to update the matching value in linphonecore // Sets listener for each preference to update the matching value in linphonecore
@ -128,9 +136,13 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
emptyAndHidePreference(R.string.pref_sipaccounts_key); emptyAndHidePreference(R.string.pref_sipaccounts_key);
} }
if (getResources().getBoolean(R.bool.hide_wizard)) { if (getResources().getBoolean(R.bool.hide_wizard)){
hidePreference(R.string.setup_key); hidePreference(R.string.setup_key);
} }
if(!getResources().getBoolean(R.bool.replace_wizard_with_old_interface)){
hidePreference(R.string.pref_add_account_key);
}
if (getResources().getBoolean(R.bool.disable_animations)) { if (getResources().getBoolean(R.bool.disable_animations)) {
uncheckAndHidePreference(R.string.pref_animation_enable_key); uncheckAndHidePreference(R.string.pref_animation_enable_key);