From cceabe065a5b54068455c0b75df399dbd1a2272f Mon Sep 17 00:00:00 2001 From: Mushegh98 Date: Thu, 25 Jun 2020 20:53:56 +0400 Subject: [PATCH] Edits text tweaks in the login screen. --- .../android/activity/LoginActivity.java | 148 ++++++++++-------- ui/src/main/res/layout/activity_login.xml | 2 + ui/src/main/res/values/strings.xml | 1 + 3 files changed, 90 insertions(+), 61 deletions(-) diff --git a/ui/src/main/java/com/getbubblenow/android/activity/LoginActivity.java b/ui/src/main/java/com/getbubblenow/android/activity/LoginActivity.java index f225953..a420a98 100644 --- a/ui/src/main/java/com/getbubblenow/android/activity/LoginActivity.java +++ b/ui/src/main/java/com/getbubblenow/android/activity/LoginActivity.java @@ -10,11 +10,16 @@ import android.content.Intent; import android.os.Bundle; import android.security.KeyChain; import android.text.Editable; +import android.text.TextUtils; import android.text.TextWatcher; import android.util.Log; +import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; +import android.view.inputmethod.EditorInfo; import android.widget.EditText; +import android.widget.TextView; +import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; import com.getbubblenow.android.R; @@ -60,71 +65,12 @@ public class LoginActivity extends BaseActivityBubble { private void initListeners() { sign.setOnClickListener(new OnClickListener() { @Override public void onClick(final View v) { - - if (DataRepository.getRepositoryInstance() == null) { - loginViewModel.buildRepositoryInstance(LoginActivity.this, ApiConstants.BOOTSTRAP_URL); - } else { - loginViewModel.buildClientService(ApiConstants.BOOTSTRAP_URL); - } - final String usernameInput = userName.getText().toString().trim(); - final String passwordInput = password.getText().toString().trim(); - showLoadingDialog(); - loginViewModel.login(LoginActivity.this,usernameInput,passwordInput).observe(LoginActivity.this, new Observer>() { - @Override public void onChanged(final StatusResource stringStatusResource) { - switch (stringStatusResource.status) { - case SUCCESS: - byte[] certificateEncode = stringStatusResource.data; - loginViewModel.getConfig(LoginActivity.this).observe(LoginActivity.this, new Observer>() { - @Override public void onChanged(final StatusResource stringStatusResource) { - switch (stringStatusResource.status){ - case SUCCESS: - closeLoadingDialog(); - config = stringStatusResource.data; - if (loginViewModel.isHaveCertificate(LoginActivity.this)) { - createTunnel(); - } else { - final Intent intent = KeyChain.createInstallIntent(); - intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode); - intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); - startActivityForResult(intent, REQUEST_CODE); - } - break; - case LOADING: - break; - case ERROR: - closeLoadingDialog(); - if (stringStatusResource.message.equals(NO_INTERNET_CONNECTION)) { - showNetworkNotAvailableMessage(); - } else if (stringStatusResource.message.equals(LOGIN_FAILED)) { - Toast.makeText(LoginActivity.this, LOGIN_FAILED, Toast.LENGTH_LONG).show(); - } else { - showErrorDialog(stringStatusResource.message); - } - break; - } - } - }); - break; - case LOADING: - Log.d("TAG", "Loading"); - break; - case ERROR: - closeLoadingDialog(); - if (stringStatusResource.message.equals(NO_INTERNET_CONNECTION)) { - showNetworkNotAvailableMessage(); - } else if (stringStatusResource.message.equals(LOGIN_FAILED)) { - Toast.makeText(LoginActivity.this, LOGIN_FAILED, Toast.LENGTH_LONG).show(); - } else { - showErrorDialog(stringStatusResource.message); - } - break; - } - } - }); + signIn(); } }); userNameStateListener(); passwordStateListener(); + sendListener(); } private void initViews() { @@ -133,6 +79,23 @@ public class LoginActivity extends BaseActivityBubble { sign = findViewById(R.id.signButton); } + + private void sendListener() { + password.setOnEditorActionListener(new OnEditorActionListener() { + @Override public boolean onEditorAction(final TextView v, final int actionId, final KeyEvent event) { + if(((event!=null)&&(event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_SEND)){ + if(!TextUtils.isEmpty(password.getText().toString()) && !TextUtils.isEmpty(userName.getText().toString())) { + signIn(); + } + else { + Toast.makeText(LoginActivity.this,getString(R.string.empty_message),Toast.LENGTH_SHORT).show(); + } + } + return false; + } + }); + } + private void userNameStateListener() { userName.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(final CharSequence s, final int start, final int count, final int after) { @@ -178,6 +141,69 @@ public class LoginActivity extends BaseActivityBubble { }); } + private void signIn() { + if (DataRepository.getRepositoryInstance() == null) { + loginViewModel.buildRepositoryInstance(LoginActivity.this, ApiConstants.BOOTSTRAP_URL); + } else { + loginViewModel.buildClientService(ApiConstants.BOOTSTRAP_URL); + } + final String usernameInput = userName.getText().toString().trim(); + final String passwordInput = password.getText().toString().trim(); + showLoadingDialog(); + loginViewModel.login(LoginActivity.this,usernameInput,passwordInput).observe(LoginActivity.this, new Observer>() { + @Override public void onChanged(final StatusResource stringStatusResource) { + switch (stringStatusResource.status) { + case SUCCESS: + byte[] certificateEncode = stringStatusResource.data; + loginViewModel.getConfig(LoginActivity.this).observe(LoginActivity.this, new Observer>() { + @Override public void onChanged(final StatusResource stringStatusResource) { + switch (stringStatusResource.status){ + case SUCCESS: + closeLoadingDialog(); + config = stringStatusResource.data; + if (loginViewModel.isHaveCertificate(LoginActivity.this)) { + createTunnel(); + } else { + final Intent intent = KeyChain.createInstallIntent(); + intent.putExtra(KeyChain.EXTRA_CERTIFICATE, certificateEncode); + intent.putExtra(KeyChain.EXTRA_NAME, CERTIFICATE_NAME); + startActivityForResult(intent, REQUEST_CODE); + } + break; + case LOADING: + break; + case ERROR: + closeLoadingDialog(); + if (stringStatusResource.message.equals(NO_INTERNET_CONNECTION)) { + showNetworkNotAvailableMessage(); + } else if (stringStatusResource.message.equals(LOGIN_FAILED)) { + Toast.makeText(LoginActivity.this, LOGIN_FAILED, Toast.LENGTH_LONG).show(); + } else { + showErrorDialog(stringStatusResource.message); + } + break; + } + } + }); + break; + case LOADING: + Log.d("TAG", "Loading"); + break; + case ERROR: + closeLoadingDialog(); + if (stringStatusResource.message.equals(NO_INTERNET_CONNECTION)) { + showNetworkNotAvailableMessage(); + } else if (stringStatusResource.message.equals(LOGIN_FAILED)) { + Toast.makeText(LoginActivity.this, LOGIN_FAILED, Toast.LENGTH_LONG).show(); + } else { + showErrorDialog(stringStatusResource.message); + } + break; + } + } + }); + } + private void setButtonState(){ if(userNameStateFlag && passwordStateFlag){ sign.setBackgroundDrawable(getDrawable(R.drawable.sign_in_enable)); diff --git a/ui/src/main/res/layout/activity_login.xml b/ui/src/main/res/layout/activity_login.xml index 6e30ce3..e608f98 100644 --- a/ui/src/main/res/layout/activity_login.xml +++ b/ui/src/main/res/layout/activity_login.xml @@ -88,6 +88,7 @@ android:background="@drawable/rectangle" android:hint="@string/email_you_used_to_sign_up" android:textAlignment="center" + android:inputType="textPhonetic" android:textColor="@color/black" android:textSize="@dimen/text_title" app:layout_constraintEnd_toEndOf="parent" @@ -118,6 +119,7 @@ android:layout_marginEnd="@dimen/margin_start_and_end" android:background="@drawable/rectangle" android:inputType="textPassword" + android:imeOptions="actionSend" android:hint="@string/your_password" android:textAlignment="center" android:textColor="@color/black" diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml index 7b73266..6d3723e 100644 --- a/ui/src/main/res/values/strings.xml +++ b/ui/src/main/res/values/strings.xml @@ -261,4 +261,5 @@ CONTACT SUPPORT Log out Bubble + "Email and password should not be empty"