From c2a11f7e914498a4c53bbe14f27929a0ee50b2b6 Mon Sep 17 00:00:00 2001 From: Shubham Maheshwari <shub97@gmail.com> Date: Sun, 16 Apr 2017 13:41:52 +0530 Subject: [PATCH] Added Sign up, Login and Logout funcionality --- .idea/modules.xml | 2 - app/google-services.json | 14 ++-- app/src/main/AndroidManifest.xml | 3 +- .../java/com/example/taskboxx/Dashboard.java | 18 +++-- .../com/example/taskboxx/LoginActivity.java | 79 ++++++++++++++++++- .../com/example/taskboxx/SignUpActivity.java | 67 +++++++--------- app/src/main/res/layout/activity_login.xml | 6 +- app/src/main/res/layout/activity_sign_up.xml | 7 +- .../res/menu/activity_dashboard_drawer.xml | 8 +- app/src/main/res/values/styles.xml | 6 +- 10 files changed, 139 insertions(+), 71 deletions(-) diff --git a/.idea/modules.xml b/.idea/modules.xml index 30ae19d..f012943 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,8 +3,6 @@ <component name="ProjectModuleManager"> <modules> <module fileurl="file://$PROJECT_DIR$/TaskBoxx.iml" filepath="$PROJECT_DIR$/TaskBoxx.iml" /> - <module fileurl="file://$PROJECT_DIR$/TaskBoxx1.iml" filepath="$PROJECT_DIR$/TaskBoxx1.iml" /> - <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> </modules> </component> diff --git a/app/google-services.json b/app/google-services.json index 8c43b22..4db80b6 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -1,27 +1,27 @@ { "project_info": { - "project_number": "629462529132", - "firebase_url": "https://browsy-bc721.firebaseio.com", - "project_id": "browsy-bc721", - "storage_bucket": "browsy-bc721.appspot.com" + "project_number": "23719170467", + "firebase_url": "https://my-app-e5bdb.firebaseio.com", + "project_id": "my-app-e5bdb", + "storage_bucket": "my-app-e5bdb.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:629462529132:android:50e3b5ef2ef861e3", + "mobilesdk_app_id": "1:23719170467:android:50e3b5ef2ef861e3", "android_client_info": { "package_name": "com.example.taskboxx" } }, "oauth_client": [ { - "client_id": "629462529132-b6vra23omvdfhos88osa7bvv0p1g8lrv.apps.googleusercontent.com", + "client_id": "23719170467-9gbikc8ea63o0cc95d8re0stigfc68vh.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBsz9xV3HCn9UXJ6TOP2mlRNeTGVSDw9gE" + "current_key": "AIzaSyDAFDTRB19anG9_AYRSQT9CX7RVU0oUt2Q" } ], "services": { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e935882..d158758 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,7 +13,8 @@ android:name=".Dashboard" android:label="DashBoard" android:theme="@style/AppTheme.NoActionBar" /> - <activity android:name=".LoginActivity"> + <activity android:name=".LoginActivity" + android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/app/src/main/java/com/example/taskboxx/Dashboard.java b/app/src/main/java/com/example/taskboxx/Dashboard.java index 9a2ad81..3b13695 100644 --- a/app/src/main/java/com/example/taskboxx/Dashboard.java +++ b/app/src/main/java/com/example/taskboxx/Dashboard.java @@ -1,5 +1,6 @@ package com.example.taskboxx; +import android.content.Intent; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; @@ -13,9 +14,13 @@ import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; +import com.google.firebase.auth.FirebaseAuth; + public class Dashboard extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + FirebaseAuth mAuth; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -23,6 +28,8 @@ public class Dashboard extends AppCompatActivity Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); + mAuth = FirebaseAuth.getInstance(); + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override @@ -81,15 +88,16 @@ public class Dashboard extends AppCompatActivity int id = item.getItemId(); if (id == R.id.nav_camera) { - // Handle the camera action + } else if (id == R.id.nav_slideshow) { } else if (id == R.id.nav_manage) { - } else if (id == R.id.nav_share) { - - } else if (id == R.id.nav_send) { - + } else if (id == R.id.nav_logout) { + mAuth.getInstance().signOut(); + Intent intent = new Intent(this,LoginActivity.class); + startActivity(intent); + finish(); } DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); diff --git a/app/src/main/java/com/example/taskboxx/LoginActivity.java b/app/src/main/java/com/example/taskboxx/LoginActivity.java index ecb6eb1..87eb139 100644 --- a/app/src/main/java/com/example/taskboxx/LoginActivity.java +++ b/app/src/main/java/com/example/taskboxx/LoginActivity.java @@ -1,29 +1,100 @@ package com.example.taskboxx; +import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Paint; +import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; + public class LoginActivity extends AppCompatActivity { TextView textView; + private EditText Email; + private EditText pass; + private FirebaseAuth mAuth; + private FirebaseAuth.AuthStateListener mAuthListener; + ProgressDialog pd; + public static final String TAG = "TAG"; + + @Override + public void onStart() { + super.onStart(); + mAuth.addAuthStateListener(mAuthListener); + } + + @Override + public void onStop() { + super.onStop(); + if (mAuthListener != null) { + mAuth.removeAuthStateListener(mAuthListener); + } + } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); + Email = (EditText) findViewById(R.id.input_uname_login); + pass = (EditText) findViewById(R.id.input_password_login); textView = (TextView) findViewById(R.id.launch_forgotpass); textView.setPaintFlags(textView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + pd = new ProgressDialog(this); + mAuth = FirebaseAuth.getInstance(); + mAuthListener = new FirebaseAuth.AuthStateListener() { + + @Override + public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { + FirebaseUser user = firebaseAuth.getCurrentUser(); + if (user != null) { + // User is signed in + Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); + } else { + // User is signed out + Log.d(TAG, "onAuthStateChanged:signed_out"); + } + } + }; } - public void Login(View view){ - Toast.makeText(this, "Login Successful", Toast.LENGTH_SHORT).show(); - Intent dashboardintent = new Intent(this,Dashboard.class); - startActivity(dashboardintent); + public void Login(View view) { + String email = Email.getText().toString(); + String password = pass.getText().toString(); + if (email.isEmpty() || password.isEmpty()) { + Toast.makeText(this, "Please enter the Email and Password!", Toast.LENGTH_SHORT).show(); + } else { + pd.setMessage("Logging in. Please Wait..."); + pd.show(); + mAuth.signInWithEmailAndPassword(email, password) + .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { + @Override + public void onComplete(@NonNull Task<AuthResult> task) { + Log.d(TAG, "signInWithEmail:onComplete:" + task.isSuccessful()); + if (!task.isSuccessful()) { + pd.dismiss(); + Log.w(TAG, "signInWithEmail:failed", task.getException()); + Toast.makeText(LoginActivity.this, task.getException().getMessage().toString(), + Toast.LENGTH_SHORT).show(); + } else { + pd.dismiss(); + Toast.makeText(LoginActivity.this, "Login Successful", Toast.LENGTH_SHORT).show(); + Intent dashboardintent = new Intent(LoginActivity.this, Dashboard.class); + startActivity(dashboardintent); + } + } + }); + } } public void gotoSignUp(View view){ diff --git a/app/src/main/java/com/example/taskboxx/SignUpActivity.java b/app/src/main/java/com/example/taskboxx/SignUpActivity.java index e6c12c1..fa33380 100644 --- a/app/src/main/java/com/example/taskboxx/SignUpActivity.java +++ b/app/src/main/java/com/example/taskboxx/SignUpActivity.java @@ -23,6 +23,7 @@ import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuthException; +import com.google.firebase.auth.FirebaseUser; public class SignUpActivity extends AppCompatActivity { @@ -34,9 +35,6 @@ public class SignUpActivity extends AppCompatActivity { public EditText confirm_pwd; public ProgressDialog pd; private FirebaseAuth mAuth; - private FirebaseAuth.AuthStateListener mAuthListener; - - @Override protected void onCreate(Bundle savedInstanceState) { @@ -47,22 +45,15 @@ public class SignUpActivity extends AppCompatActivity { signup_button = (Button) findViewById(R.id.SignUp); name = (EditText) findViewById(R.id.input_Name_SignUp); username = (EditText) findViewById(R.id.input_Username_SignUp); - email = (EditText)findViewById(R.id.input_email_SignUp); - pwd =(EditText) findViewById(R.id.input_NewPass_SignUp); + email = (EditText) findViewById(R.id.input_email_SignUp); + pwd = (EditText) findViewById(R.id.input_NewPass_SignUp); confirm_pwd = (EditText) findViewById(R.id.input_RePass_SignUp); pd = new ProgressDialog(this); - signup_button.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - StartRigister(); - } - }); - } - private void StartRigister() { + public void SignUp(View view) { String u_name = name.getText().toString(); @@ -74,50 +65,48 @@ public class SignUpActivity extends AppCompatActivity { if (TextUtils.isEmpty(u_name) || TextUtils.isEmpty(u_username) || TextUtils.isEmpty(u_email) || TextUtils.isEmpty(u_pwd) || TextUtils.isEmpty(u_c_pwd)) { Toast.makeText(this, "Please Enter All the fields to proceed!", Toast.LENGTH_SHORT).show(); return; - } + } else { + if (u_pwd.equals(u_c_pwd)) { - - if (u_pwd.equals(u_c_pwd)) { + pd.setMessage("Registering..."); + pd.show(); - pd.setMessage("Browsy is Registering You!"); - pd.show(); + mAuth.createUserWithEmailAndPassword(u_email, u_pwd) + .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { - mAuth.createUserWithEmailAndPassword(u_email, u_pwd) - .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { + @Override + public void onComplete(@NonNull Task<AuthResult> task) { - @Override - public void onComplete(@NonNull Task<AuthResult> task) { + if (task.isSuccessful()) { + pd.hide(); + Toast.makeText(SignUpActivity.this, "Registered Successfully!", Toast.LENGTH_SHORT).show(); + Toast.makeText(SignUpActivity.this, "Please Log in to proceed", Toast.LENGTH_SHORT).show(); + Intent loginintent = new Intent(SignUpActivity.this,LoginActivity.class); + startActivity(loginintent); + } else { + pd.hide(); + Toast.makeText(SignUpActivity.this, "Failed To Register!", Toast.LENGTH_SHORT).show(); + } - if (task.isSuccessful()) - { - pd.hide(); - Toast.makeText(SignUpActivity.this,"Registered Successfully!",Toast.LENGTH_SHORT).show(); - } - else { - pd.hide(); - Toast.makeText(SignUpActivity.this,"Failed To Register!",Toast.LENGTH_SHORT).show(); } + }); - } - }); + } else { + Toast.makeText(this, "The Entered Password doesn't Match!", Toast.LENGTH_SHORT).show(); + } - } else { - Toast.makeText(this, "The Entered Password doesn't Match!", Toast.LENGTH_SHORT).show(); + //Toast.makeText(this, "Registered!", Toast.LENGTH_SHORT).show(); } - //Toast.makeText(this, "Registered!", Toast.LENGTH_SHORT).show(); - } - - -} +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index cc5a13c..1a3faea 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -38,8 +38,8 @@ android:layout_height="wrap_content" android:layout_marginRight="30dp" android:layout_marginLeft="30dp" - android:inputType="text" - android:hint="Username or Email" /> + android:inputType="textEmailAddress" + android:hint="Registered Email" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout @@ -51,7 +51,7 @@ android:layout_below="@+id/LoginUname_textLayout" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> - <EditText android:id="@+id/input_password" + <EditText android:id="@+id/input_password_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="30dp" diff --git a/app/src/main/res/layout/activity_sign_up.xml b/app/src/main/res/layout/activity_sign_up.xml index e2c880b..85a9529 100644 --- a/app/src/main/res/layout/activity_sign_up.xml +++ b/app/src/main/res/layout/activity_sign_up.xml @@ -4,7 +4,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/colorPrimary" tools:context="com.example.taskboxx.SignUpActivity"> <RelativeLayout android:layout_width="match_parent" @@ -12,7 +11,7 @@ <TextView android:id="@+id/Explanation" - android:textColor="@color/colorAccent" + android:textColor="#AA000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" @@ -31,7 +30,8 @@ android:layout_below="@+id/Explanation" android:layout_marginTop="20dp" android:layout_alignParentLeft="true" - android:layout_alignParentStart="true"> + android:layout_alignParentStart="true" + app:hintTextAppearance="@style/TextAppearance.TextInputLayout"> <EditText android:id="@+id/input_Name_SignUp" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -130,6 +130,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#EEEEEE" + android:onClick="SignUp" android:text="Sign Up" /> </LinearLayout> diff --git a/app/src/main/res/menu/activity_dashboard_drawer.xml b/app/src/main/res/menu/activity_dashboard_drawer.xml index d5a0b93..cd9a510 100644 --- a/app/src/main/res/menu/activity_dashboard_drawer.xml +++ b/app/src/main/res/menu/activity_dashboard_drawer.xml @@ -19,13 +19,9 @@ <item android:title="Communicate"> <menu> <item - android:id="@+id/nav_share" + android:id="@+id/nav_logout" android:icon="@drawable/ic_menu_share" - android:title="Share" /> - <item - android:id="@+id/nav_send" - android:icon="@drawable/ic_menu_send" - android:title="Send" /> + android:title="Logout" /> </menu> </item> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index e11d11a..f188652 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -16,6 +16,10 @@ <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> - + + <style name="TextAppearance.TextInputLayout" parent="@android:style/TextAppearance"> + <item name="android:textColor">#000000</item> + <item name="android:textSize">10dp</item> + </style> </resources> -- GitLab