From 1e515bd7190c97a91f079c281558d49d3f678035 Mon Sep 17 00:00:00 2001
From: iammaxx <spjn1234@gmail.com>
Date: Mon, 17 Apr 2017 12:52:26 +0530
Subject: [PATCH] first

---
 .idea/vcs.xml                                 |  6 ++
 app/build.gradle                              |  5 +-
 app/src/main/AndroidManifest.xml              |  3 +-
 .../main/java/com/digitalar/LoginScreen.java  | 78 +++++++++++++++--
 .../main/java/com/digitalar/SignupAct.java    | 86 +++++++++++++++++++
 app/src/main/res/layout/activity_signup.xml   | 73 ++++++++++++++++
 app/src/main/res/values/strings.xml           | 18 ++--
 build.gradle                                  |  1 +
 8 files changed, 252 insertions(+), 18 deletions(-)
 create mode 100644 .idea/vcs.xml
 create mode 100644 app/src/main/java/com/digitalar/SignupAct.java
 create mode 100644 app/src/main/res/layout/activity_signup.xml

diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 026adc5..6d9fd99 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,6 +28,9 @@ dependencies {
     })
     compile 'com.android.support:appcompat-v7:25.1.0'
     compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
-    testCompile 'junit:junit:4.12'
     compile 'com.android.support:design:25.1.0'
+    compile 'com.google.firebase:firebase-auth:10.0.1'
+    compile 'com.google.firebase:firebase-database:10.0.1'
+    testCompile 'junit:junit:4.12'
 }
+apply plugin: 'com.google.gms.google-services'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index cffeada..d7dd0f5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.digitalar">
-
+    <uses-permission android:name="android.permission.INTERNET"/>
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
@@ -16,6 +16,7 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity android:name=".SignupAct"></activity>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/digitalar/LoginScreen.java b/app/src/main/java/com/digitalar/LoginScreen.java
index 7b2e929..c31311b 100644
--- a/app/src/main/java/com/digitalar/LoginScreen.java
+++ b/app/src/main/java/com/digitalar/LoginScreen.java
@@ -1,31 +1,95 @@
 package com.digitalar;
 
+import android.app.ProgressDialog;
 import android.content.Intent;
+import android.support.annotation.NonNull;
 import android.support.design.widget.TextInputEditText;
 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.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 LoginScreen extends AppCompatActivity {
 EditText Username;
 EditText Password;
+    ProgressDialog p1;
+    public static final String TAG="TAG";
+    private FirebaseAuth mAuth;
+    private FirebaseAuth.AuthStateListener mAuthListener;
+    @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_screen);
          Username = (EditText) findViewById(R.id.email);
          Password = (EditText) findViewById(R.id.password);
+        p1=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 get(View view)
-        {
-            if(Username.getText().toString().length()==0)
-                Username.setError("Enter The Username");
-            if(Password.getText().toString().length()==0)
-                Password.setError("Enter The Password");
-           // Intent in = new Intent(this,)
+    public void get(View view) {
+        String user = Username.getText().toString();
+        String pass = Password.getText().toString();
+        if (user.isEmpty() || pass.isEmpty()) {
+            Toast.makeText(getApplicationContext(), "enter ", Toast.LENGTH_SHORT).show();
+        } else
+            {
+                p1.setMessage("Logging in...");
+            p1.show();
+                mAuth.signInWithEmailAndPassword(user,pass).addOnCompleteListener(this,
+                        new OnCompleteListener<AuthResult>() {
+                            @Override
+                            public void onComplete(@NonNull Task<AuthResult> task) {
+                                if(!task.isSuccessful()) {
+                                    p1.dismiss();
+                                    Toast.makeText(LoginScreen.this, task.getException().getMessage().toString(), Toast.LENGTH_SHORT).show();
+                                }
+                                else
+                                {
+                                    p1.dismiss();
+                                    Toast.makeText(LoginScreen.this, "Login Successful", Toast.LENGTH_SHORT).show();
+                                    //Start next activity
+                                }
+                            }
+                        }
+                );
+
+
 
+            }
 
         }
 }
diff --git a/app/src/main/java/com/digitalar/SignupAct.java b/app/src/main/java/com/digitalar/SignupAct.java
new file mode 100644
index 0000000..fffe454
--- /dev/null
+++ b/app/src/main/java/com/digitalar/SignupAct.java
@@ -0,0 +1,86 @@
+package com.digitalar;
+
+import android.app.ProgressDialog;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+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.database.DatabaseReference;
+import com.google.firebase.database.FirebaseDatabase;
+
+public class SignupAct extends AppCompatActivity {
+    EditText e1;
+    EditText e2;
+    EditText e3;
+    EditText e4;
+    EditText e5;
+
+    private String UID;
+    FirebaseAuth mAuth;
+    DatabaseReference mDatabase;
+    ProgressDialog p1;
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_signup);
+        mAuth=FirebaseAuth.getInstance();
+        mDatabase=FirebaseDatabase.getInstance().getReference();
+        p1=new ProgressDialog(this);
+        e1=(EditText) findViewById(R.id.Name);
+        e2=(EditText)findViewById(R.id.UserName);
+        e3=(EditText)findViewById(R.id.Mobile1);
+        e4=(EditText)findViewById(R.id.pass);
+        e5=(EditText)findViewById(R.id.Cpass);
+
+
+    }
+   public void put(View view)
+    {
+        final String mobile=e3.getText().toString();
+        final String Name=e1.getText().toString();
+        final String Email=e2.getText().toString();
+        final String Pass=e4.getText().toString();
+        final String Cpass=e5.getText().toString();
+
+        if(mobile.isEmpty()||Name.isEmpty()||Email.isEmpty()||Pass.isEmpty()||Cpass.isEmpty())
+    {
+        Toast.makeText(this, "Enter Details", Toast.LENGTH_SHORT).show();
+    }
+    else
+    {
+        if(Pass.equals(Cpass))
+        {
+           p1.setMessage("Signing in ...");
+            p1.show();
+            mAuth.createUserWithEmailAndPassword(Email,Pass).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
+                @Override
+                public void onComplete(@NonNull Task<AuthResult> task) {
+                   if(task.isSuccessful())
+                   {
+                    UID=mAuth.getCurrentUser().getUid();
+                       mDatabase.child("users").child(UID).child("Name").setValue(Name);
+                       mDatabase.child("users").child(UID).child("mobile").setValue(mobile);
+                       p1.dismiss();
+                       Toast.makeText(SignupAct.this, "Registration Sucessful", Toast.LENGTH_SHORT).show();
+                        finish();
+                   }
+                }
+            });
+
+        }
+        else
+        {
+            Toast.makeText(this, "Pass doesnt match", Toast.LENGTH_SHORT).show();
+
+        }
+    }
+    }
+
+}
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..5040754
--- /dev/null
+++ b/app/src/main/res/layout/activity_signup.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.digitalar.SignupAct">
+
+    <EditText
+        android:id="@+id/Name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="16dp"
+        android:layout_alignParentStart="true"
+        android:layout_alignParentTop="true"
+        android:ems="10"
+        android:inputType="textPersonName"
+        android:hint="Name"
+       />
+    <EditText
+        android:id="@+id/UserName"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/Name"
+        android:layout_marginLeft="16dp"
+        android:ems="10"
+        android:inputType="textPersonName"
+        android:hint="User Name"/>
+
+    <EditText
+        android:id="@+id/Mobile1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="16dp"
+        android:ems="10"
+        android:inputType="number"
+        android:hint="Mobile"
+        android:layout_below="@+id/UserName"
+        />
+
+    <EditText
+        android:id="@+id/pass"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="16dp"
+        android:ems="10"
+        android:hint="password"
+        android:inputType="textPassword"
+        android:layout_below="@id/Mobile1"
+        />
+
+
+    <EditText
+        android:id="@+id/Cpass"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="16dp"
+        android:ems="10"
+        android:hint="Confirm Pass"
+        android:inputType="textPassword"
+        android:layout_below="@+id/pass"
+        />
+
+    <Button
+        android:id="@+id/button2"
+        android:layout_width="wrap_content"
+        android:onClick="put"
+        android:layout_height="wrap_content"
+        android:text="Button"
+        android:layout_below="@+id/Cpass"
+
+         />
+</RelativeLayout>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 09063e7..a42f8bc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,15 +1,15 @@
 <resources>
     <string name="app_name">Digital AR</string>
     <!-- Strings related to login -->
-<string name="prompt_email">Email</string>
-<string name="prompt_password">Password (optional)</string>
-<string name="action_sign_in">Sign in or register</string>
-<string name="action_sign_in_short">Sign in</string>
-<string name="error_invalid_email">This email address is invalid</string>
-<string name="error_invalid_password">This password is too short</string>
-<string name="error_incorrect_password">This password is incorrect</string>
-<string name="error_field_required">This field is required</string>
-<string name="permission_rationale">"Contacts permissions are needed for providing email
+    <string name="prompt_email">Email</string>
+    <string name="prompt_password">Password (optional)</string>
+    <string name="action_sign_in">Sign in or register</string>
+    <string name="action_sign_in_short">Sign in</string>
+    <string name="error_invalid_email">This email address is invalid</string>
+    <string name="error_invalid_password">This password is too short</string>
+    <string name="error_incorrect_password">This password is incorrect</string>
+    <string name="error_field_required">This field is required</string>
+    <string name="permission_rationale">"Contacts permissions are needed for providing email
         completions."
     </string>
 </resources>
diff --git a/build.gradle b/build.gradle
index b78a0b8..a0acab9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,6 +6,7 @@ buildscript {
     }
     dependencies {
         classpath 'com.android.tools.build:gradle:2.3.1'
+        classpath 'com.google.gms:google-services:3.0.0'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
-- 
GitLab