From b2db9f3e91afd3538c78fa2e3b2514fd21d50bd7 Mon Sep 17 00:00:00 2001 From: apoorv098 Date: Thu, 14 Feb 2019 16:31:41 +0530 Subject: [PATCH 1/4] Login UI --- .../coindesk/activities/LoginActivity.java | 145 +++++++++++++++ .../coindesk/activities/SignUpActivity.java | 170 ++++++++++++++++++ app/src/main/res/drawable/logo.png | Bin 0 -> 20098 bytes app/src/main/res/layout/activity_signup.xml | 129 +++++++++++++ app/src/main/res/layout/login.xml | 73 ++++++++ 5 files changed, 517 insertions(+) create mode 100644 app/src/main/java/com/readybrains/coindesk/activities/LoginActivity.java create mode 100644 app/src/main/java/com/readybrains/coindesk/activities/SignUpActivity.java create mode 100644 app/src/main/res/drawable/logo.png create mode 100644 app/src/main/res/layout/activity_signup.xml create mode 100644 app/src/main/res/layout/login.xml diff --git a/app/src/main/java/com/readybrains/coindesk/activities/LoginActivity.java b/app/src/main/java/com/readybrains/coindesk/activities/LoginActivity.java new file mode 100644 index 0000000..f3906fe --- /dev/null +++ b/app/src/main/java/com/readybrains/coindesk/activities/LoginActivity.java @@ -0,0 +1,145 @@ +package com.readybrains.coindesk.activities; + +import android.app.Activity; +import android.app.ProgressDialog; +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.readybrains.coindesk.R; + +import butterknife.ButterKnife; +import butterknife.InjectView; + +public class LoginActivity extends AppCompatActivity { + private static final String TAG = "LoginActivity"; + private static final int REQUEST_SIGNUP = 0; + + @InjectView(R.id.input_email) EditText _emailText; + @InjectView(R.id.input_password) EditText _passwordText; + + @InjectView(R.id.btn_login) Button _loginButton; + @InjectView(R.id.link_signup) TextView _signupLink; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.login); + ButterKnife.inject(this); + + _loginButton.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + login(); + } + }); + + _signupLink.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + // Start the Signup activity + Intent intent = new Intent(getApplicationContext(), SignUpActivity.class); + startActivityForResult(intent, REQUEST_SIGNUP); + finish(); + overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out); + } + }); + } + + public void login() { + Log.d(TAG, "Login"); + + if (!validate()) { + onLoginFailed(); + return; + } + + _loginButton.setEnabled(false); + + final ProgressDialog progressDialog = new ProgressDialog(LoginActivity.this, + R.style.AppTheme_Dark_Dialog); + progressDialog.setIndeterminate(true); + progressDialog.setMessage("Authenticating..."); + progressDialog.show(); + + + String email = _emailText.getText().toString(); + String password = _passwordText.getText().toString(); + + // TODO: Implement your own authentication logic here. + + + new android.os.Handler().postDelayed( + new Runnable() { + public void run() { + // On complete call either onLoginSuccess or onLoginFailed + onLoginSuccess(); + Intent i = new Intent(LoginActivity.this, MainActivity.class); + startActivity(i); + // onLoginFailed(); + progressDialog.dismiss(); + } + }, 3000); + } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == REQUEST_SIGNUP) { + if (resultCode == RESULT_OK) { + + // TODO: Implement successful signup logic here + // By default we just finish the Activity and log them in automatically + this.finish(); + } + } + } + + @Override + public void onBackPressed() { + // Disable going back to the MainActivity + moveTaskToBack(true); + } + + public void onLoginSuccess() { + _loginButton.setEnabled(true); + finish(); + } + + public void onLoginFailed() { + Toast.makeText(getBaseContext(), "Login failed", Toast.LENGTH_LONG).show(); + + _loginButton.setEnabled(true); + } + + public boolean validate() { + boolean valid = true; + + String email = _emailText.getText().toString(); + String password = _passwordText.getText().toString(); + + if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) { + _emailText.setError("enter a valid email address"); + valid = false; + } else { + _emailText.setError(null); + } + + if (password.isEmpty() || password.length() < 4 || password.length() > 10) { + _passwordText.setError("between 4 and 10 alphanumeric characters"); + valid = false; + } else { + _passwordText.setError(null); + } + + return valid; + } +} diff --git a/app/src/main/java/com/readybrains/coindesk/activities/SignUpActivity.java b/app/src/main/java/com/readybrains/coindesk/activities/SignUpActivity.java new file mode 100644 index 0000000..a4eb76a --- /dev/null +++ b/app/src/main/java/com/readybrains/coindesk/activities/SignUpActivity.java @@ -0,0 +1,170 @@ +package com.readybrains.coindesk.activities; + +import android.app.ProgressDialog; +import android.content.Intent; +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.readybrains.coindesk.R; + +import butterknife.ButterKnife; +import butterknife.InjectView; + +public class SignUpActivity extends AppCompatActivity { + private static final String TAG = "SignupActivity"; + + @InjectView(R.id.input_name) + EditText _nameText; + @InjectView(R.id.input_address) + EditText _addressText; + @InjectView(R.id.input_email) + EditText _emailText; + @InjectView(R.id.input_mobile) + EditText _mobileText; + @InjectView(R.id.input_password) + EditText _passwordText; + @InjectView(R.id.input_reEnterPassword) + EditText _reEnterPasswordText; + @InjectView(R.id.btn_signup) + Button _signupButton; + @InjectView(R.id.link_login) + TextView _loginLink; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_signup); + ButterKnife.inject(this); + + _signupButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + signup(); + } + }); + + _loginLink.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // Finish the registration screen and return to the Login activity + Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + startActivity(intent); + finish(); + + } + }); + } + + public void signup() { + Log.d(TAG, "Signup"); + + if (!validate()) { + onSignupFailed(); + return; + } + + _signupButton.setEnabled(false); + + final ProgressDialog progressDialog = new ProgressDialog(SignUpActivity.this, + R.style.AppTheme_Dark_Dialog); + progressDialog.setIndeterminate(true); + progressDialog.setMessage("Creating Account..."); + progressDialog.show(); + + String name = _nameText.getText().toString(); + String address = _addressText.getText().toString(); + String email = _emailText.getText().toString(); + String mobile = _mobileText.getText().toString(); + String password = _passwordText.getText().toString(); + String reEnterPassword = _reEnterPasswordText.getText().toString(); + + // TODO: Implement your own signup logic here. + + new android.os.Handler().postDelayed( + new Runnable() { + public void run() { + // On complete call either onSignupSuccess or onSignupFailed + // depending on success + onSignupSuccess(); + // onSignupFailed(); + progressDialog.dismiss(); + } + }, 3000); + } + + + public void onSignupSuccess() { + _signupButton.setEnabled(true); + setResult(RESULT_OK, null); + finish(); + } + + public void onSignupFailed() { + Toast.makeText(getBaseContext(), "Login failed", Toast.LENGTH_LONG).show(); + + _signupButton.setEnabled(true); + } + + public boolean validate() { + boolean valid = true; + + String name = _nameText.getText().toString(); + String address = _addressText.getText().toString(); + String email = _emailText.getText().toString(); + String mobile = _mobileText.getText().toString(); + String password = _passwordText.getText().toString(); + String reEnterPassword = _reEnterPasswordText.getText().toString(); + + if (name.isEmpty() || name.length() < 3) { + _nameText.setError("at least 3 characters"); + valid = false; + } else { + _nameText.setError(null); + } + + if (address.isEmpty()) { + _addressText.setError("Enter Valid Address"); + valid = false; + } else { + _addressText.setError(null); + } + + + if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) { + _emailText.setError("enter a valid email address"); + valid = false; + } else { + _emailText.setError(null); + } + + if (mobile.isEmpty() || mobile.length() != 10) { + _mobileText.setError("Enter Valid Mobile Number"); + valid = false; + } else { + _mobileText.setError(null); + } + + if (password.isEmpty() || password.length() < 4 || password.length() > 10) { + _passwordText.setError("between 4 and 10 alphanumeric characters"); + valid = false; + } else { + _passwordText.setError(null); + } + + if (reEnterPassword.isEmpty() || reEnterPassword.length() < 4 || reEnterPassword.length() > 10 || !(reEnterPassword.equals(password))) { + _reEnterPasswordText.setError("Password Do not match"); + valid = false; + } else { + _reEnterPasswordText.setError(null); + } + + return valid; + } +} + diff --git a/app/src/main/res/drawable/logo.png b/app/src/main/res/drawable/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..db3fe93e582763e17177bbe25b3d29169266dc51 GIT binary patch literal 20098 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 OxPz7s7Eee%)c*pz$_j`8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml new file mode 100644 index 0000000..f06cf50 --- /dev/null +++ b/app/src/main/res/layout/activity_signup.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/login.xml b/app/src/main/res/layout/login.xml new file mode 100644 index 0000000..74ca46f --- /dev/null +++ b/app/src/main/res/layout/login.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + From 9e159bed3b6f6144b135d3c466406b02b5d64b3e Mon Sep 17 00:00:00 2001 From: apoorv098 Date: Fri, 15 Feb 2019 21:25:53 +0530 Subject: [PATCH 2/4] Updated manifest file --- .idea/misc.xml | 8 ++------ app/build.gradle | 2 ++ app/src/main/AndroidManifest.xml | 13 +++++++++---- app/src/main/res/anim/push_left_in.xml | 8 ++++++++ app/src/main/res/anim/push_left_out.xml | 7 +++++++ app/src/main/res/values/colors.xml | 14 ++++++++++++++ app/src/main/res/values/styles.xml | 25 +++++++++++++++++++++++++ 7 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 app/src/main/res/anim/push_left_in.xml create mode 100644 app/src/main/res/anim/push_left_out.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index e0d5b93..99202cc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,26 +5,22 @@ diff --git a/app/build.gradle b/app/build.gradle index f1df736..035ffc8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,4 +28,6 @@ dependencies { implementation 'com.squareup.picasso:picasso:2.71828' implementation 'com.android.volley:volley:1.1.1' implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'com.jakewharton:butterknife:6.1.0' + annotationProcessor 'com.jakewharton:butterknife:6.1.0' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9c87257..a0728db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,11 +15,7 @@ android:name=".activities.MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> - - - - + + + + + + + + + diff --git a/app/src/main/res/anim/push_left_in.xml b/app/src/main/res/anim/push_left_in.xml new file mode 100644 index 0000000..b686855 --- /dev/null +++ b/app/src/main/res/anim/push_left_in.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/push_left_out.xml b/app/src/main/res/anim/push_left_out.xml new file mode 100644 index 0000000..449e950 --- /dev/null +++ b/app/src/main/res/anim/push_left_out.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 4b73659..29c2f05 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,4 +3,18 @@ #0077b5 #0077b5 #D81B60 + #E43F3F + #E12929 + #CC1D1D + #FFFFFF + + #000000 + #222222 + #333333 + #777777 + #888888 + #999999 + #AAAAAA + #CCCCCC + #FFFFFF diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 545b9c6..87e429c 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,9 +8,34 @@ @color/colorAccent + + + + + + -<<<<<<< HEAD + -======= ->>>>>>> 0f7aa0c36f9fb19e52f99c797446595f2addc913