Add old interface for add account
This commit is contained in:
parent
e95582e89b
commit
fc95d843be
4 changed files with 212 additions and 31 deletions
|
@ -33,6 +33,7 @@
|
|||
<string name="menu_about_key">menu_about_key</string>
|
||||
<string name="pref_sipaccounts_key">pref_sipaccounts_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_codecs_key">pref_video_codecs_key</string>
|
||||
<string name="pref_linphone_friend_key">pref_linphone_friend_key</string>
|
||||
|
|
|
@ -13,6 +13,10 @@
|
|||
android:title="@string/setup_title"
|
||||
android:key="@string/setup_key"/>
|
||||
|
||||
<Preference
|
||||
android:title="@string/pref_add_account"
|
||||
android:key="@string/pref_add_account_key"/>
|
||||
|
||||
<PreferenceCategory
|
||||
android:title="@string/pref_tunnel"
|
||||
android:key="@string/pref_tunnel_key">
|
||||
|
|
|
@ -21,6 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.linphone.LinphonePreferences.AccountBuilder;
|
||||
import org.linphone.core.LinphoneCoreException;
|
||||
import org.linphone.ui.PreferencesListFragment;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
@ -41,9 +43,11 @@ import android.view.View;
|
|||
*/
|
||||
public class AccountPreferencesFragment extends PreferencesListFragment {
|
||||
private int n;
|
||||
private boolean isNewAccount=false;
|
||||
private LinphonePreferences mPrefs;
|
||||
private EditTextPreference mProxyPreference;
|
||||
private ListPreference mTransportPreference;
|
||||
private AccountBuilder builder;
|
||||
|
||||
public AccountPreferencesFragment() {
|
||||
super(R.xml.account_preferences);
|
||||
|
@ -62,9 +66,16 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
|
||||
PreferenceScreen screen = getPreferenceScreen();
|
||||
n = getArguments().getInt("Account", 0);
|
||||
if(n == mPrefs.getAccountCount()){
|
||||
isNewAccount=true;
|
||||
builder = new AccountBuilder(LinphoneManager.getLc());
|
||||
initAccountPreferencesFields(screen);
|
||||
} else {
|
||||
manageAccountPreferencesFields(screen);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static boolean isEditTextEmpty(String s){
|
||||
return s.equals(""); // really empty.
|
||||
}
|
||||
|
@ -73,7 +84,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if(isEditTextEmpty(newValue.toString())) return false;
|
||||
if (isNewAccount) {
|
||||
builder.setUsername(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setAccountUsername(n, newValue.toString());
|
||||
}
|
||||
preference.setSummary(newValue.toString());
|
||||
return true;
|
||||
}
|
||||
|
@ -81,7 +96,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
OnPreferenceChangeListener useridChangedListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (isNewAccount) {
|
||||
builder.setUserId(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setAccountUserId(n, newValue.toString());
|
||||
}
|
||||
preference.setSummary(newValue.toString());
|
||||
return true;
|
||||
}
|
||||
|
@ -90,7 +109,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if(isEditTextEmpty(newValue.toString())) return false;
|
||||
if (isNewAccount) {
|
||||
builder.setPassword(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setAccountPassword(n, newValue.toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -98,7 +121,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if(isEditTextEmpty(newValue.toString())) return false;
|
||||
if (isNewAccount) {
|
||||
builder.setDomain(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setAccountDomain(n, newValue.toString());
|
||||
}
|
||||
preference.setSummary(newValue.toString());
|
||||
return true;
|
||||
}
|
||||
|
@ -106,7 +133,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
OnPreferenceChangeListener displayNameChangedListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (isNewAccount) {
|
||||
builder.setDisplayName(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setAccountDisplayName(n, newValue.toString());
|
||||
}
|
||||
preference.setSummary(newValue.toString());
|
||||
return true;
|
||||
}
|
||||
|
@ -115,6 +146,10 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String value = newValue.toString();
|
||||
if (isNewAccount) {
|
||||
builder.setProxy(newValue.toString());
|
||||
preference.setSummary(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setAccountProxy(n, value);
|
||||
preference.setSummary(mPrefs.getAccountProxy(n));
|
||||
|
||||
|
@ -122,21 +157,29 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
mTransportPreference.setSummary(mPrefs.getAccountTransportString(n));
|
||||
mTransportPreference.setValue(mPrefs.getAccountTransportKey(n));
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (isNewAccount) {
|
||||
builder.setOutboundProxyEnabled((Boolean) newValue);
|
||||
} else {
|
||||
mPrefs.setAccountOutboundProxyEnabled(n, (Boolean) newValue);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
OnPreferenceChangeListener expiresChangedListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (isNewAccount) {
|
||||
builder.setExpires(newValue.toString());
|
||||
} else {
|
||||
mPrefs.setExpires(n, newValue.toString());
|
||||
}
|
||||
preference.setSummary(newValue.toString());
|
||||
return true;
|
||||
}
|
||||
|
@ -146,7 +189,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String value = newValue.toString();
|
||||
preference.setSummary(value);
|
||||
if (isNewAccount) {
|
||||
//TODO acocunt builder ste prefix
|
||||
} else {
|
||||
mPrefs.setPrefix(n, value);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -154,7 +201,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
boolean value = (Boolean) newValue;
|
||||
if (isNewAccount) {
|
||||
builder.setAvpfEnabled(value);
|
||||
} else {
|
||||
mPrefs.enableAvpf(n, value);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -168,7 +219,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
return false;
|
||||
}
|
||||
} catch (NumberFormatException nfe) { }
|
||||
if (isNewAccount) {
|
||||
//TODO
|
||||
} else {
|
||||
mPrefs.setAvpfRRInterval(n, value);
|
||||
}
|
||||
preference.setSummary(value);
|
||||
return true;
|
||||
}
|
||||
|
@ -177,7 +232,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
boolean value = (Boolean) newValue;
|
||||
if (isNewAccount) {
|
||||
//TODO
|
||||
} else {
|
||||
mPrefs.setReplacePlusByZeroZero(n, value);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -185,7 +244,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
boolean value = (Boolean) newValue;
|
||||
if (isNewAccount) {
|
||||
builder.setEnabled(!value);
|
||||
} else {
|
||||
mPrefs.setAccountEnabled(n, !value);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -193,6 +256,10 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = newValue.toString();
|
||||
if (isNewAccount) {
|
||||
//TODO
|
||||
//builder.setTransport(transport);
|
||||
} else {
|
||||
mPrefs.setAccountTransport(n, key);
|
||||
preference.setSummary(mPrefs.getAccountTransportString(n));
|
||||
preference.setDefaultValue(mPrefs.getAccountTransportKey(n));
|
||||
|
@ -201,7 +268,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
mProxyPreference.setSummary(newProxy);
|
||||
mProxyPreference.setText(newProxy);
|
||||
}
|
||||
|
||||
}
|
||||
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) {
|
||||
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
|
||||
|
||||
|
@ -358,4 +508,18 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
|
|||
values.toArray(contents);
|
||||
pref.setEntryValues(contents);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
if (LinphoneActivity.isInstanciated()) {
|
||||
try {
|
||||
if(isNewAccount){
|
||||
builder.saveNewAccount();
|
||||
}
|
||||
} catch (LinphoneCoreException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,6 +106,14 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
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
|
||||
|
@ -132,6 +140,10 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
|||
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)) {
|
||||
uncheckAndHidePreference(R.string.pref_animation_enable_key);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue