Fix assistant creation and login

This commit is contained in:
Margaux Clerc 2016-01-20 15:05:31 +01:00
parent a08b343925
commit 7a418133c0
11 changed files with 39 additions and 58 deletions

View file

@ -21,7 +21,7 @@
android:text="@string/assistant_create_account_part_1" android:text="@string/assistant_create_account_part_1"
style="@style/font11" style="@style/font11"
android:paddingTop="10dp" android:paddingTop="10dp"
android:layout_gravity="center" android:layout_gravity="center_horizontal"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>

View file

@ -24,6 +24,7 @@
android:text="@string/assistant_validate_account" android:text="@string/assistant_validate_account"
style="@style/font11" style="@style/font11"
android:paddingTop="10dp" android:paddingTop="10dp"
android:gravity="center"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"/> android:layout_height="wrap_content"/>

View file

@ -11,6 +11,7 @@
android:textAllCaps="true" android:textAllCaps="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center"
android:layout_centerHorizontal="true"/> android:layout_centerHorizontal="true"/>
<ImageView <ImageView

View file

@ -15,7 +15,8 @@
android:textAllCaps="true" android:textAllCaps="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal"/> android:gravity="center"
android:layout_gravity="center"/>
<TextView <TextView
android:text="@string/assistant_linphone_login_desc" android:text="@string/assistant_linphone_login_desc"
@ -23,7 +24,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="10dp" android:paddingTop="10dp"
android:gravity="center"/> android:gravity="center"
android:layout_gravity="center"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -15,7 +15,8 @@
android:textAllCaps="true" android:textAllCaps="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/> android:gravity="center"
android:layout_gravity="center"/>
<TextView <TextView
android:text="@string/assistant_login_desc" android:text="@string/assistant_login_desc"
@ -23,7 +24,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="10dp" android:paddingTop="10dp"
android:gravity="center"/> android:gravity="center"
android:layout_gravity="center"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -11,7 +11,8 @@
android:textAllCaps="true" android:textAllCaps="true"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_horizontal"/> android:gravity="center"
android:layout_gravity="center"/>
<TextView <TextView
android:text="@string/assistant_remote_provisioning_desc" android:text="@string/assistant_remote_provisioning_desc"
@ -19,6 +20,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="10dp" android:paddingTop="10dp"
android:gravity="center"
android:layout_gravity="center"/> android:layout_gravity="center"/>
<LinearLayout <LinearLayout

View file

@ -23,6 +23,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="10dp" android:paddingTop="10dp"
android:layout_gravity="center"
android:gravity="center"/> android:gravity="center"/>
<LinearLayout <LinearLayout

View file

@ -34,7 +34,6 @@
<ImageView <ImageView
android:id="@+id/status_led" android:id="@+id/status_led"
android:src="@drawable/led_disconnected" android:src="@drawable/led_disconnected"
android:contentDescription="@string/content_description_led"
android:paddingLeft="5dp" android:paddingLeft="5dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:layout_width="20dp" android:layout_width="20dp"

View file

@ -40,18 +40,13 @@ import android.app.FragmentTransaction;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
/** /**
* @author Sylvain Berfini * @author Sylvain Berfini
@ -63,7 +58,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
private AssistantFragmentsEnum firstFragment; private AssistantFragmentsEnum firstFragment;
private Fragment fragment; private Fragment fragment;
private LinphonePreferences mPrefs; private LinphonePreferences mPrefs;
private boolean accountCreated = false; private boolean accountCreated = false, newAccount = false;
private LinphoneCoreListenerBase mListener; private LinphoneCoreListenerBase mListener;
private LinphoneAddress address; private LinphoneAddress address;
private StatusFragment status; private StatusFragment status;
@ -72,17 +67,14 @@ public class AssistantActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (getResources().getBoolean(R.bool.isTablet) && getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) { if (getResources().getBoolean(R.bool.orientation_portrait_only)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else if (getResources().getBoolean(R.bool.orientation_portrait_only)) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} }
setContentView(R.layout.assistant); setContentView(R.layout.assistant);
initUI(); initUI();
firstFragment = getResources().getBoolean(R.bool.assistant_use_linphone_login_as_first_fragment) ? firstFragment = getResources().getBoolean(R.bool.assistant_use_linphone_login_as_first_fragment) ? AssistantFragmentsEnum.LINPHONE_LOGIN : AssistantFragmentsEnum.WELCOME;
AssistantFragmentsEnum.LINPHONE_LOGIN : AssistantFragmentsEnum.WELCOME;
if (findViewById(R.id.fragment_container) != null) { if (findViewById(R.id.fragment_container) != null) {
if (savedInstanceState == null) { if (savedInstanceState == null) {
display(firstFragment); display(firstFragment);
@ -91,23 +83,28 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
} }
mPrefs = LinphonePreferences.instance(); mPrefs = LinphonePreferences.instance();
if(mPrefs.isFirstLaunch()) {
status.enableSideMenu(false);
}
mListener = new LinphoneCoreListenerBase(){ mListener = new LinphoneCoreListenerBase(){
@Override @Override
public void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg, LinphoneCore.RegistrationState state, String smessage) { public void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg, LinphoneCore.RegistrationState state, String smessage) {
if(accountCreated){ if(accountCreated && !newAccount){
if(address != null && address.asString().equals(cfg.getIdentity()) ) { if(address != null && address.asString().equals(cfg.getIdentity()) ) {
if (state == RegistrationState.RegistrationOk) { if (state == RegistrationState.RegistrationOk) {
if (LinphoneManager.getLc().getDefaultProxyConfig() != null) { if (LinphoneManager.getLc().getDefaultProxyConfig() != null) {
launchEchoCancellerCalibration(true); launchEchoCancellerCalibration(true);
} }
} else if (state == RegistrationState.RegistrationFailed) { } else if (state == RegistrationState.RegistrationFailed) {
if(dialog == null || !dialog.isShowing()) {
dialog = createErrorDialog(cfg, smessage); dialog = createErrorDialog(cfg, smessage);
dialog.show(); dialog.show();
} }
} }
} }
} }
}
}; };
instance = this; instance = this;
} }
@ -151,7 +148,6 @@ public class AssistantActivity extends Activity implements OnClickListener {
back.setOnClickListener(this); back.setOnClickListener(this);
cancel = (ImageView) findViewById(R.id.cancel); cancel = (ImageView) findViewById(R.id.cancel);
cancel.setOnClickListener(this); cancel.setOnClickListener(this);
status.enableSideMenu(false);
} }
private void changeFragment(Fragment newFragment) { private void changeFragment(Fragment newFragment) {
@ -203,7 +199,6 @@ public class AssistantActivity extends Activity implements OnClickListener {
private void launchEchoCancellerCalibration(boolean sendEcCalibrationResult) { private void launchEchoCancellerCalibration(boolean sendEcCalibrationResult) {
boolean needsEchoCalibration = LinphoneManager.getLc().needsEchoCalibration(); boolean needsEchoCalibration = LinphoneManager.getLc().needsEchoCalibration();
if (needsEchoCalibration && mPrefs.isFirstLaunch()) { if (needsEchoCalibration && mPrefs.isFirstLaunch()) {
mPrefs.setAccountEnabled(mPrefs.getAccountCount() - 1, false); //We'll enable it after the echo calibration
EchoCancellerCalibrationFragment fragment = new EchoCancellerCalibrationFragment(); EchoCancellerCalibrationFragment fragment = new EchoCancellerCalibrationFragment();
fragment.enableEcCalibrationResultSending(sendEcCalibrationResult); fragment.enableEcCalibrationResultSending(sendEcCalibrationResult);
changeFragment(fragment); changeFragment(fragment);
@ -222,9 +217,6 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
saveCreatedAccount(username, password, displayName, domain, transport); saveCreatedAccount(username, password, displayName, domain, transport);
/*if (LinphoneManager.getLc().getDefaultProxyConfig() != null) {
//launchEchoCancellerCalibration(sendEcCalibrationResult);
}*/
} }
public void checkAccount(String username, String password, String displayName, String domain) { public void checkAccount(String username, String password, String displayName, String domain) {
@ -279,9 +271,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
public void displayLoginLinphone() { public void displayLoginLinphone() {
//loadConfig();
fragment = new LinphoneLoginFragment(); fragment = new LinphoneLoginFragment();
changeFragment(fragment); changeFragment(fragment);
currentFragment = AssistantFragmentsEnum.LINPHONE_LOGIN; currentFragment = AssistantFragmentsEnum.LINPHONE_LOGIN;
back.setVisibility(View.VISIBLE); back.setVisibility(View.VISIBLE);
@ -338,20 +328,19 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
boolean isMainAccountLinphoneDotOrg = domain.equals(getString(R.string.default_domain)); boolean isMainAccountLinphoneDotOrg = domain.equals(getString(R.string.default_domain));
boolean useLinphoneDotOrgCustomPorts = getResources().getBoolean(R.bool.use_linphone_server_ports);
AccountBuilder builder = new AccountBuilder(LinphoneManager.getLc()) AccountBuilder builder = new AccountBuilder(LinphoneManager.getLc())
.setUsername(username) .setUsername(username)
.setDomain(domain) .setDomain(domain)
.setDisplayName(displayName) .setDisplayName(displayName)
.setPassword(password); .setPassword(password);
if (isMainAccountLinphoneDotOrg && useLinphoneDotOrgCustomPorts) { if (isMainAccountLinphoneDotOrg) {
if (getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) { if (getResources().getBoolean(R.bool.disable_all_security_features_for_markets)) {
builder.setProxy(domain + ":5228") builder.setProxy(domain)
.setTransport(TransportType.LinphoneTransportTcp); .setTransport(TransportType.LinphoneTransportTcp);
} }
else { else {
builder.setProxy(domain + ":5223") builder.setProxy(domain)
.setTransport(TransportType.LinphoneTransportTls); .setTransport(TransportType.LinphoneTransportTls);
} }
@ -400,6 +389,7 @@ public class AssistantActivity extends Activity implements OnClickListener {
public void displayWizardConfirm(String username) { public void displayWizardConfirm(String username) {
CreateAccountActivationFragment fragment = new CreateAccountActivationFragment(); CreateAccountActivationFragment fragment = new CreateAccountActivationFragment();
newAccount = true;
Bundle extras = new Bundle(); Bundle extras = new Bundle();
extras.putString("Username", username); extras.putString("Username", username);
fragment.setArguments(extras); fragment.setArguments(extras);
@ -410,30 +400,15 @@ public class AssistantActivity extends Activity implements OnClickListener {
} }
public void isAccountVerified(String username) { public void isAccountVerified(String username) {
Toast.makeText(this, getString(R.string.setup_account_validated), Toast.LENGTH_LONG).show(); Toast.makeText(this, getString(R.string.assistant_account_validated), Toast.LENGTH_LONG).show();
LinphoneManager.getLcIfManagerNotDestroyedOrNull().refreshRegisters(); LinphoneManager.getLcIfManagerNotDestroyedOrNull().refreshRegisters();
launchEchoCancellerCalibration(true); launchEchoCancellerCalibration(true);
} }
public void isEchoCalibrationFinished() { public void isEchoCalibrationFinished() {
mPrefs.setAccountEnabled(mPrefs.getAccountCount() - 1, true);
success(); success();
} }
public Dialog displayWrongPasswordDialog(){
Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
Drawable d = new ColorDrawable(getResources().getColor(R.color.colorC));
d.setAlpha(200);
dialog.setContentView(R.layout.input_dialog);
dialog.getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(d);
TextView customText = (TextView) dialog.findViewById(R.id.customText);
customText.setText(getString(R.string.error_bad_credentials));
return dialog;
}
public Dialog createErrorDialog(LinphoneProxyConfig proxy, String message){ public Dialog createErrorDialog(LinphoneProxyConfig proxy, String message){
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
if(message.equals("Forbidden")) { if(message.equals("Forbidden")) {
@ -451,10 +426,10 @@ public class AssistantActivity extends Activity implements OnClickListener {
LinphoneManager.getLc().removeProxyConfig(LinphoneManager.getLc().getDefaultProxyConfig()); LinphoneManager.getLc().removeProxyConfig(LinphoneManager.getLc().getDefaultProxyConfig());
LinphonePreferences.instance().resetDefaultProxyConfig(); LinphonePreferences.instance().resetDefaultProxyConfig();
LinphoneManager.getLc().refreshRegisters(); LinphoneManager.getLc().refreshRegisters();
dialog.cancel(); dialog.dismiss();
} }
}); });
return builder.create(); return builder.show();
} }
public void success() { public void success() {

View file

@ -125,12 +125,12 @@ public class CreateAccountFragment extends Fragment {
createAccount.setOnClickListener(new OnClickListener() { createAccount.setOnClickListener(new OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { builder.setPositiveButton(R.string.accept, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
createAccount(getUsername(), passwordEdit.getText().toString(), emailEdit.getText().toString(), false); createAccount(getUsername(), passwordEdit.getText().toString(), emailEdit.getText().toString(), false);
} }
}); });
builder.setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() { builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) { public void onClick(DialogInterface dialog, int id) {
} }
}); });

View file

@ -25,8 +25,6 @@ import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import org.linphone.core.LinphoneAddress.TransportType; import org.linphone.core.LinphoneAddress.TransportType;
import org.linphone.core.LinphoneAddress;
import org.linphone.mediastream.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@ -84,7 +82,7 @@ public class LoginFragment extends Fragment implements OnClickListener, TextWatc
} }
} }
AssistantActivity.instance().genericLogIn(login.getText().toString(), password.getText().toString(), displayName.getText().toString(), domain.getText().toString(),transport); AssistantActivity.instance().genericLogIn(login.getText().toString(), password.getText().toString(), displayName.getText().toString(), domain.getText().toString(), transport);
} }
} }