From f75de58f3dcfc14a9795d9cd0d1bdfe54eedc4b6 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Wed, 12 Oct 2016 11:56:09 +0200 Subject: [PATCH] Fix assistant link + contacts --- .../linphone/AccountPreferencesFragment.java | 87 ++++++++++--------- src/org/linphone/LinphoneActivity.java | 30 +++++-- src/org/linphone/SettingsFragment.java | 43 +++++---- .../linphone/assistant/AssistantActivity.java | 2 +- .../assistant/CreateAccountFragment.java | 18 +++- .../assistant/LinphoneLoginFragment.java | 11 ++- submodules/linphone | 2 +- 7 files changed, 115 insertions(+), 78 deletions(-) diff --git a/src/org/linphone/AccountPreferencesFragment.java b/src/org/linphone/AccountPreferencesFragment.java index 627524584..d4ede4641 100644 --- a/src/org/linphone/AccountPreferencesFragment.java +++ b/src/org/linphone/AccountPreferencesFragment.java @@ -22,10 +22,12 @@ import java.util.ArrayList; import java.util.List; import org.linphone.LinphonePreferences.AccountBuilder; +import org.linphone.assistant.AssistantActivity; import org.linphone.core.LinphoneCoreException; import org.linphone.mediastream.Log; import org.linphone.ui.PreferencesListFragment; +import android.content.Intent; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.EditTextPreference; @@ -47,15 +49,15 @@ public class AccountPreferencesFragment extends PreferencesListFragment { private EditTextPreference mProxyPreference; private ListPreference mTransportPreference; private AccountBuilder builder; - + public AccountPreferencesFragment() { super(R.xml.account_preferences); mPrefs = LinphonePreferences.instance(); } - + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + PreferenceScreen screen = getPreferenceScreen(); n = getArguments().getInt("Account", 0); if(n == mPrefs.getAccountCount()) { @@ -67,11 +69,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment { // Force hide keyboard getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); } - + public static boolean isEditTextEmpty(String s) { - return s.equals(""); // really empty. + return s.equals(""); // really empty. } - + OnPreferenceChangeListener usernameChangedListener = new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -83,7 +85,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { } preference.setSummary(newValue.toString()); return true; - } + } }; OnPreferenceChangeListener useridChangedListener = new OnPreferenceChangeListener() { @Override @@ -92,10 +94,10 @@ public class AccountPreferencesFragment extends PreferencesListFragment { builder.setUserId(newValue.toString()); } else { mPrefs.setAccountUserId(n, newValue.toString()); - } + } preference.setSummary(newValue.toString()); return true; - } + } }; OnPreferenceChangeListener passwordChangedListener = new OnPreferenceChangeListener() { @Override @@ -105,9 +107,9 @@ public class AccountPreferencesFragment extends PreferencesListFragment { builder.setPassword(newValue.toString()); } else { mPrefs.setAccountPassword(n, newValue.toString()); - } + } return true; - } + } }; OnPreferenceChangeListener domainChangedListener = new OnPreferenceChangeListener() { @Override @@ -117,10 +119,10 @@ public class AccountPreferencesFragment extends PreferencesListFragment { builder.setDomain(newValue.toString()); } else { mPrefs.setAccountDomain(n, newValue.toString()); - } + } preference.setSummary(newValue.toString()); return true; - } + } }; OnPreferenceChangeListener displayNameChangedListener = new OnPreferenceChangeListener() { @Override @@ -132,7 +134,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { } preference.setSummary(newValue.toString()); return true; - } + } }; OnPreferenceChangeListener proxyChangedListener = new OnPreferenceChangeListener() { @Override @@ -144,14 +146,14 @@ public class AccountPreferencesFragment extends PreferencesListFragment { } else { mPrefs.setAccountProxy(n, value); preference.setSummary(mPrefs.getAccountProxy(n)); - + if (mTransportPreference != null) { mTransportPreference.setSummary(mPrefs.getAccountTransportString(n)); mTransportPreference.setValue(mPrefs.getAccountTransportKey(n)); } - } + } return true; - } + } }; OnPreferenceChangeListener outboundProxyChangedListener = new OnPreferenceChangeListener() { @Override @@ -160,9 +162,9 @@ public class AccountPreferencesFragment extends PreferencesListFragment { builder.setOutboundProxyEnabled((Boolean) newValue); } else { mPrefs.setAccountOutboundProxyEnabled(n, (Boolean) newValue); - } + } return true; - } + } }; OnPreferenceChangeListener expiresChangedListener = new OnPreferenceChangeListener() { @Override @@ -215,7 +217,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { //TODO } else { mPrefs.setAvpfRRInterval(n, value); - } + } preference.setSummary(value); return true; } @@ -244,7 +246,10 @@ public class AccountPreferencesFragment extends PreferencesListFragment { OnPreferenceClickListener linkAccountListener = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - LinphoneActivity.instance().displayLinkPhoneNumber(); + Intent assistant = new Intent(); + assistant.setClass(LinphoneActivity.instance(), AssistantActivity.class); + assistant.putExtra("LinkPhoneNumber", true); + startActivity(assistant); return true; } }; @@ -256,9 +261,9 @@ public class AccountPreferencesFragment extends PreferencesListFragment { builder.setEnabled(!value); } else { mPrefs.setAccountEnabled(n, !value); - } + } return true; - } + } }; OnPreferenceChangeListener transportChangedListener = new OnPreferenceChangeListener() { @Override @@ -276,14 +281,14 @@ public class AccountPreferencesFragment extends PreferencesListFragment { mProxyPreference.setSummary(newProxy); mProxyPreference.setText(newProxy); } - } + } return true; } }; - + 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.setOnPreferenceChangeListener(usernameChangedListener); @@ -298,27 +303,27 @@ public class AccountPreferencesFragment extends PreferencesListFragment { userid.setText(mPrefs.getAccountUserId(n)); userid.setSummary(userid.getText()); } - + EditTextPreference password = (EditTextPreference) account.getPreference(2); password.setOnPreferenceChangeListener(passwordChangedListener); if(!isNewAccount){ password.setText(mPrefs.getAccountPassword(n)); } - + EditTextPreference domain = (EditTextPreference) account.getPreference(3); domain.setOnPreferenceChangeListener(domainChangedListener); if (!isNewAccount){ domain.setText(mPrefs.getAccountDomain(n)); domain.setSummary(domain.getText()); } - + EditTextPreference displayName = (EditTextPreference) account.getPreference(4); displayName.setOnPreferenceChangeListener(displayNameChangedListener); if (!isNewAccount){ displayName.setText(mPrefs.getAccountDisplayName(n)); displayName.setSummary(displayName.getText()); } - + PreferenceCategory advanced = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_advanced_key)); mTransportPreference = (ListPreference) advanced.getPreference(0); initializeTransportPreference(mTransportPreference); @@ -326,20 +331,20 @@ public class AccountPreferencesFragment extends PreferencesListFragment { if(!isNewAccount){ mTransportPreference.setSummary(mPrefs.getAccountTransportString(n)); } - + mProxyPreference = (EditTextPreference) advanced.getPreference(1); mProxyPreference.setOnPreferenceChangeListener(proxyChangedListener); if (!isNewAccount){ mProxyPreference.setText(mPrefs.getAccountProxy(n)); mProxyPreference.setSummary("".equals(mProxyPreference.getText()) || (mProxyPreference.getText() == null) ? getString(R.string.pref_help_proxy) : mProxyPreference.getText()); } - + CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(2); outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener); if (!isNewAccount){ outboundProxy.setChecked(mPrefs.isAccountOutboundProxySet(n)); } - + EditTextPreference expires = (EditTextPreference) advanced.getPreference(3); expires.setOnPreferenceChangeListener(expiresChangedListener); if(!isNewAccount){ @@ -382,7 +387,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { Preference linkAccount = advanced.getPreference(9); linkAccount.setOnPreferenceClickListener(linkAccountListener); - + PreferenceCategory manage = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_manage_key)); final CheckBoxPreference disable = (CheckBoxPreference) manage.getPreference(0); disable.setEnabled(true); @@ -390,11 +395,11 @@ public class AccountPreferencesFragment extends PreferencesListFragment { if(!isNewAccount){ disable.setChecked(!mPrefs.isAccountEnabled(n)); } - + CheckBoxPreference mainAccount = (CheckBoxPreference) manage.getPreference(1); mainAccount.setChecked(isDefaultAccount); mainAccount.setEnabled(!mainAccount.isChecked()); - mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() + mainAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { mPrefs.setDefaultAccount(n); @@ -419,7 +424,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { } }); } - + private void initializeTransportPreference(ListPreference pref) { List entries = new ArrayList(); List values = new ArrayList(); @@ -427,13 +432,13 @@ public class AccountPreferencesFragment extends PreferencesListFragment { values.add(getString(R.string.pref_transport_udp_key)); entries.add(getString(R.string.pref_transport_tcp)); values.add(getString(R.string.pref_transport_tcp_key)); - + if (!getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) { entries.add(getString(R.string.pref_transport_tls)); values.add(getString(R.string.pref_transport_tls_key)); } setListPreferenceValues(pref, entries, values); - + if (! isNewAccount) { pref.setSummary(mPrefs.getAccountTransportString(n)); pref.setDefaultValue(mPrefs.getAccountTransportKey(n)); @@ -445,7 +450,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { pref.setValueIndex(entries.indexOf(getString(R.string.pref_transport_udp))); } } - + private static void setListPreferenceValues(ListPreference pref, List entries, List values) { CharSequence[] contents = new CharSequence[entries.size()]; entries.toArray(contents); @@ -466,7 +471,7 @@ public class AccountPreferencesFragment extends PreferencesListFragment { @Override public void onPause() { - super.onPause(); + super.onPause(); if (LinphoneActivity.isInstanciated()) { try { if(isNewAccount){ diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 8e0518d95..cc9169446 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -631,10 +631,12 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta } public void displayLinkPhoneNumber() { - Intent assistant = new Intent(); - assistant.setClass(this, AssistantActivity.class); - assistant.putExtra("LinkPhoneNumber", true); - startActivity(assistant); + LinphoneAccountCreator accountCreator; + accountCreator = LinphoneCoreFactory.instance().createAccountCreator(LinphoneManager.getLc(), LinphonePreferences.instance().getXmlrpcUrl()); + accountCreator.setDomain(getResources().getString(R.string.default_domain)); + accountCreator.setListener(this); + accountCreator.setUsername(LinphonePreferences.instance().getAccountUsername(LinphonePreferences.instance().getDefaultAccountIndex())); + accountCreator.isAccountLinked(); } public void displayInapp() { @@ -1243,8 +1245,11 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + int readContactsI = -1; for (int i = 0; i < permissions.length; i++) { Log.i("[Permission] " + permissions[i] + " is " + (grantResults[i] == PackageManager.PERMISSION_GRANTED ? "granted" : "denied")); + if (permissions[i] == Manifest.permission.READ_CONTACTS) + readContactsI = i; } switch (requestCode) { @@ -1256,7 +1261,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta } break; case PERMISSIONS_REQUEST_CONTACTS: - if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + if (readContactsI >= 0 && grantResults[readContactsI] == PackageManager.PERMISSION_GRANTED) { ContactsManager.getInstance().enableContactsAccess(); } checkAndRequestReadPhoneStatePermission(); @@ -1315,6 +1320,12 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta Log.i("[Permission] Asking for contacts"); permissionsList.add(Manifest.permission.READ_CONTACTS); } + } else { + if (!fetchedContactsOnce) { + ContactsManager.getInstance().enableContactsAccess(); + ContactsManager.getInstance().fetchContactsAsync(); + fetchedContactsOnce = true; + } } if (permissionsList.size() > 0) { @@ -1826,8 +1837,8 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta @Override public void onAccountCreatorIsAccountUsed(LinphoneAccountCreator accountCreator, LinphoneAccountCreator.Status status) { - if(status.equals(LinphoneAccountCreator.Status.AccountExist)){ - askLinkWithPhoneNumber(); + if (status.equals(LinphoneAccountCreator.Status.AccountExist)) { + accountCreator.isAccountLinked(); } } @@ -1851,12 +1862,13 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta @Override public void onAccountCreatorIsAccountLinked(LinphoneAccountCreator accountCreator, LinphoneAccountCreator.Status status) { - + if (status.equals(LinphoneAccountCreator.Status.AccountNotLinked)) { + askLinkWithPhoneNumber(); + } } @Override public void onAccountCreatorIsPhoneNumberUsed(LinphoneAccountCreator accountCreator, LinphoneAccountCreator.Status status) { - } } diff --git a/src/org/linphone/SettingsFragment.java b/src/org/linphone/SettingsFragment.java index 468e017d6..1332503dc 100644 --- a/src/org/linphone/SettingsFragment.java +++ b/src/org/linphone/SettingsFragment.java @@ -67,7 +67,7 @@ public class SettingsFragment extends PreferencesListFragment { private LinphonePreferences mPrefs; private Handler mHandler = new Handler(); private LinphoneCoreListenerBase mListener; - + public SettingsFragment() { super(R.xml.preferences); } @@ -108,17 +108,17 @@ public class SettingsFragment extends PreferencesListFragment { } } }; - + initSettings(); setListeners(); hideSettings(); } - + private void removePreviousPreferencesFile() { SharedPreferences.Editor editor = getPreferenceManager().getSharedPreferences().edit(); editor.clear(); editor.commit(); - + File dir = new File(getActivity().getFilesDir().getAbsolutePath() + "shared_prefs"); LinphoneUtils.recursiveFileRemoval(dir); } @@ -257,7 +257,7 @@ public class SettingsFragment extends PreferencesListFragment { if (!LinphoneManager.getLc().isTunnelAvailable()) { return; } - + setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_host_key, mPrefs.getTunnelHost()); setPreferenceDefaultValueAndSummary(R.string.pref_tunnel_port_key, String.valueOf(mPrefs.getTunnelPort())); ListPreference tunnelModePref = (ListPreference) findPreference(getString(R.string.pref_tunnel_mode_key)); @@ -448,7 +448,7 @@ public class SettingsFragment extends PreferencesListFragment { pref.setSummary(value); pref.setValue(value); } - + private void initLimeEncryptionPreference(ListPreference pref) { List entries = new ArrayList(); List values = new ArrayList(); @@ -461,7 +461,7 @@ public class SettingsFragment extends PreferencesListFragment { pref.setEnabled(false); return; } - + entries.add(getString(R.string.lime_encryption_entry_mandatory)); values.add(LinphoneLimeState.Mandatory.toString()); entries.add(getString(R.string.lime_encryption_entry_preferred)); @@ -588,7 +588,7 @@ public class SettingsFragment extends PreferencesListFragment { public boolean onPreferenceClick(Preference preference) { synchronized (SettingsFragment.this) { preference.setSummary(R.string.ec_calibrating); - + int recordAudio = getActivity().getPackageManager().checkPermission(Manifest.permission.RECORD_AUDIO, getActivity().getPackageName()); if (recordAudio == PackageManager.PERMISSION_GRANTED) { startEchoCancellerCalibration(); @@ -640,7 +640,7 @@ public class SettingsFragment extends PreferencesListFragment { e.printStackTrace(); } } - + public void startEchoCancellerCalibration() { try { if (LinphoneManager.getInstance().getEchoTesterStatus()) @@ -650,7 +650,7 @@ public class SettingsFragment extends PreferencesListFragment { Log.e(e); } } - + public void echoCalibrationFail() { Preference echoCancellerCalibration = findPreference(getString(R.string.pref_echo_canceller_calibration_key)); echoCancellerCalibration.setSummary(R.string.failed); @@ -838,7 +838,7 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); - + findPreference(getString(R.string.pref_overlay_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -893,7 +893,7 @@ public class SettingsFragment extends PreferencesListFragment { mPrefs.enableDeviceRingtone(false); LinphoneManager.getInstance().enableDeviceRingtone(false); } - + return true; } }); @@ -915,9 +915,9 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); - + initMediaEncryptionPreference((ListPreference) findPreference(getString(R.string.pref_media_encryption_key))); - + findPreference(getString(R.string.pref_auto_answer_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -926,7 +926,7 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); - + findPreference(getString(R.string.pref_rfc2833_dtmf_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -992,7 +992,7 @@ public class SettingsFragment extends PreferencesListFragment { } else if (lime == LinphoneLimeState.Preferred) { preference.setSummary(getString(R.string.lime_encryption_entry_preferred)); } - + return true; } }); @@ -1007,7 +1007,7 @@ public class SettingsFragment extends PreferencesListFragment { ice.setChecked(mPrefs.isIceEnabled()); turn.setEnabled(mPrefs.getStunServer() != null); turn.setChecked(mPrefs.isTurnEnabled()); - + EditTextPreference turnUsername = (EditTextPreference) findPreference(getString(R.string.pref_turn_username_key)); EditTextPreference turnPassword = (EditTextPreference) findPreference(getString(R.string.pref_turn_passwd_key)); turnUsername.setEnabled(mPrefs.isTurnEnabled()); @@ -1046,7 +1046,7 @@ public class SettingsFragment extends PreferencesListFragment { public boolean onPreferenceChange(Preference preference, Object newValue) { mPrefs.setStunServer(newValue.toString()); preference.setSummary(newValue.toString()); - + CheckBoxPreference turn = (CheckBoxPreference) findPreference(getString(R.string.pref_turn_enable_key)); turn.setEnabled(mPrefs.getStunServer() != null); return true; @@ -1072,7 +1072,7 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); - + findPreference(getString(R.string.pref_turn_username_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -1081,7 +1081,7 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); - + findPreference(getString(R.string.pref_turn_passwd_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -1202,7 +1202,7 @@ public class SettingsFragment extends PreferencesListFragment { return true; } }); - + findPreference(getString(R.string.pref_android_app_settings_key)).setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { @@ -1253,7 +1253,6 @@ public class SettingsFragment extends PreferencesListFragment { if (LinphoneActivity.isInstanciated()) { LinphoneActivity.instance().selectMenu(FragmentsAvailable.SETTINGS); - } } diff --git a/src/org/linphone/assistant/AssistantActivity.java b/src/org/linphone/assistant/AssistantActivity.java index 5fe701c8a..e10e122d9 100644 --- a/src/org/linphone/assistant/AssistantActivity.java +++ b/src/org/linphone/assistant/AssistantActivity.java @@ -110,7 +110,7 @@ private static AssistantActivity instance; setContentView(R.layout.assistant); initUI(); - if(getIntent().getBooleanExtra("LinkPhoneNumber",false)){ + if (getIntent().getBooleanExtra("LinkPhoneNumber",false)) { isLink = true; displayCreateAccount(); } else { diff --git a/src/org/linphone/assistant/CreateAccountFragment.java b/src/org/linphone/assistant/CreateAccountFragment.java index 6cde4cedf..0e12ce258 100644 --- a/src/org/linphone/assistant/CreateAccountFragment.java +++ b/src/org/linphone/assistant/CreateAccountFragment.java @@ -212,6 +212,8 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On createAccount.setText(getResources().getString(R.string.link_account)); assisstantTitle.setText(getResources().getString(R.string.link_account)); } + accountCreator.setLanguage(Locale.getDefault().toLanguageTag()); + addUsernameHandler(usernameEdit, null); createAccount.setEnabled(true); @@ -297,7 +299,11 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On } case R.id.assistant_create: { - accountCreator.isAccountUsed(); + createAccount.setEnabled(false); + if (linkAccount) + addAlias(); + else + accountCreator.isAccountUsed(); break; } } @@ -322,6 +328,7 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On if (isOk) { accountCreator.linkPhoneNumberWithAccount(); } else { + createAccount.setEnabled(true); LinphoneUtils.displayErrorAlert(LinphoneUtils.errorForStatus(status), getContext()); LinphoneUtils.displayError(isOk, phoneNumberError, LinphoneUtils.errorForStatus(status)); } @@ -566,6 +573,7 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On , LinphoneUtils.getCountryCode(dialCode), false); } } else { + createAccount.setEnabled(true); LinphoneUtils.displayErrorAlert(LinphoneUtils.errorForStatus(status), getContext()); } } @@ -602,6 +610,7 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On accountCreator.recoverPhoneAccount(); // Resend SMS } } else { + createAccount.setEnabled(true); LinphoneUtils.displayErrorAlert(LinphoneUtils.errorForStatus(status), getContext()); } } @@ -612,6 +621,7 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On AssistantActivity.instance().displayAssistantCodeConfirm(getUsername() , dialCode.getText().toString() , phoneNumberEdit.getText().toString(), false); } else { + createAccount.setEnabled(true); //SMS error LinphoneUtils.displayErrorAlert(getString(R.string.request_failed), getContext()); } @@ -624,10 +634,12 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On @Override public void onAccountCreatorIsPhoneNumberUsed(LinphoneAccountCreator ac, Status status) { if (status.equals(Status.PhoneNumberUsedAccount) || status.equals(Status.PhoneNumberUsedAlias)) { - if (accountCreator.getPhoneNumber().compareTo(accountCreator.getUsername()) == 0) + if (accountCreator.getPhoneNumber().compareTo(accountCreator.getUsername()) == 0) { accountCreator.isAccountActivated(); - else + } else { + createAccount.setEnabled(true); LinphoneUtils.displayErrorAlert(LinphoneUtils.errorForStatus(status), getContext()); + } } else { accountCreator.isAccountActivated(); } diff --git a/src/org/linphone/assistant/LinphoneLoginFragment.java b/src/org/linphone/assistant/LinphoneLoginFragment.java index 895139791..1e8eeed12 100644 --- a/src/org/linphone/assistant/LinphoneLoginFragment.java +++ b/src/org/linphone/assistant/LinphoneLoginFragment.java @@ -44,6 +44,9 @@ import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; + +import java.util.Locale; + /** * @author Sylvain Berfini */ @@ -146,6 +149,8 @@ public class LinphoneLoginFragment extends Fragment implements CompoundButton.On passwordLayout.setVisibility(View.VISIBLE); } + accountCreator.setLanguage(Locale.getDefault().toLanguageTag()); + addPhoneNumberHandler(dialCode, null); addPhoneNumberHandler(phoneNumberEdit, null); @@ -166,9 +171,11 @@ public class LinphoneLoginFragment extends Fragment implements CompoundButton.On public void linphoneLogIn() { if (login.getText() == null || login.length() == 0 || password.getText() == null || password.length() == 0) { LinphoneUtils.displayErrorAlert(getString(R.string.first_launch_no_login_password), getContext()); + apply.setEnabled(true); return; } AssistantActivity.instance().linphoneLogIn(login.getText().toString(), password.getText().toString(), null, null, getResources().getBoolean(R.bool.assistant_account_validation_mandatory)); + apply.setEnabled(true); } private LinphoneAccountCreator.Status getPhoneNumberStatus() { @@ -213,6 +220,7 @@ public class LinphoneLoginFragment extends Fragment implements CompoundButton.On switch(id) { case R.id.assistant_apply: { + apply.setEnabled(false); if (recoverAccount) { recoverAccount(); } else { @@ -243,10 +251,12 @@ public class LinphoneLoginFragment extends Fragment implements CompoundButton.On if (isOk) { accountCreator.recoverPhoneAccount(); } else { + apply.setEnabled(true); LinphoneUtils.displayErrorAlert(LinphoneUtils.errorForStatus(status), getContext()); LinphoneUtils.displayError(isOk, phoneNumberError, LinphoneUtils.errorForStatus(status)); } } else { + apply.setEnabled(true); LinphoneUtils.displayErrorAlert(getString(R.string.assistant_create_account_part_1), getContext()); } } @@ -337,7 +347,6 @@ public class LinphoneLoginFragment extends Fragment implements CompoundButton.On @Override public void onAccountCreatorIsAccountLinked(LinphoneAccountCreator accountCreator, LinphoneAccountCreator.Status status) { - } @Override diff --git a/submodules/linphone b/submodules/linphone index 1faa826de..3e7b6b90b 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 1faa826dea91566eb7598cd34873017753e2b8ed +Subproject commit 3e7b6b90b5f5c70847b55b406221cd27c8ea307f