diff --git a/app/MyHyvesBookPlusStagram/app/build.gradle b/app/MyHyvesBookPlusStagram/app/build.gradle
index e58b3f0..c86ed28 100644
--- a/app/MyHyvesBookPlusStagram/app/build.gradle
+++ b/app/MyHyvesBookPlusStagram/app/build.gradle
@@ -28,9 +28,11 @@ dependencies {
compile 'com.android.support:design:25.3.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.google.firebase:firebase-auth:10.0.1'
+ compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
+
apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
diff --git a/app/MyHyvesBookPlusStagram/app/src/androidTest/java/nl/myhyvesbookplus/stagram/ExampleInstrumentedTest.java b/app/MyHyvesBookPlusStagram/app/src/androidTest/java/nl/myhyvesbookplus/stagram/ExampleInstrumentedTest.java
deleted file mode 100644
index 4f07f13..0000000
--- a/app/MyHyvesBookPlusStagram/app/src/androidTest/java/nl/myhyvesbookplus/stagram/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package nl.myhyvesbookplus.stagram;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumentation test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
-
- assertEquals("nl.myhyvesbookplus.stagram", appContext.getPackageName());
- }
-}
diff --git a/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml b/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml
index eee17da..ccf5e09 100644
--- a/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml
+++ b/app/MyHyvesBookPlusStagram/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ package="nl.myhyvesbookplus.tagram">
+
+
+
diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java
new file mode 100644
index 0000000..f52026b
--- /dev/null
+++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java
@@ -0,0 +1,190 @@
+package nl.myhyvesbookplus.tagram;
+
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.util.Log;
+import android.util.Patterns;
+import android.view.View;
+import android.widget.Button;
+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;
+import com.google.firebase.auth.UserProfileChangeRequest;
+
+public class LoginActivity extends AppCompatActivity {
+
+ public static final String TAG = "Login";
+ private FirebaseAuth mAuth;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(nl.myhyvesbookplus.tagram.R.layout.activity_login);
+ mAuth = FirebaseAuth.getInstance();
+ }
+
+ private void registerUser(String email, String password) {
+ mAuth.createUserWithEmailAndPassword(email, password)
+ .addOnCompleteListener(this, new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ // Sign in success, update UI with the signed-in user's information
+ Log.d(TAG, "createUserWithEmail:success");
+ FirebaseUser user = mAuth.getCurrentUser();
+ updateUserInfo(user);
+ goToMainScreen();
+ } else {
+ // If sign in fails, display a message to the user.
+ Log.w(TAG, "createUserWithEmail:failure", task.getException());
+ Toast.makeText(LoginActivity.this, "Authentication failed.",
+ Toast.LENGTH_SHORT).show();
+// updateUI(null);
+ }
+
+ // ...
+ }
+ });
+ }
+
+ public void logInOnClick(View view) {
+ mAuth.signOut();
+ EditText email = (EditText) findViewById(R.id.email);
+ EditText password = (EditText) findViewById(R.id.password);
+ String emailSting = email.getText().toString();
+ String passwordSting = password.getText().toString();
+
+ mAuth.signInWithEmailAndPassword(emailSting, passwordSting)
+ .addOnCompleteListener(this, new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ // Sign in success, update UI with the signed-in user's information
+ Log.d(TAG, "signInWithEmail:success");
+ FirebaseUser user = mAuth.getCurrentUser();
+ Log.d(TAG, "onComplete: isVerified " + user.isEmailVerified());
+ user.isEmailVerified();
+ goToMainScreen();
+
+// updateUI(user);
+ } else {
+ // If sign in fails, display a message to the user.
+ Log.w(TAG, "signInWithEmail:failure", task.getException());
+ Toast.makeText(LoginActivity.this, "Authentication failed.",
+ Toast.LENGTH_SHORT).show();
+// updateUI(null);
+ }
+
+ // ...
+ }
+ });
+
+
+ }
+
+ public void registerOnClick(View view) {
+ // goto Register page.
+ Log.d(TAG, "registerOnClick: ");
+ EditText email = (EditText) findViewById(R.id.email);
+ EditText password = (EditText) findViewById(R.id.password);
+ EditText passwordConfirm = (EditText) findViewById(R.id.confirm_password_field);
+
+ if (Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches()) {
+ if (password.getText().toString().equals(passwordConfirm.getText().toString())) {
+ registerUser(email.getText().toString(), password.getText().toString());
+ } else {
+ Log.d(TAG, "registerOnClick: Passwords do not match");
+ }
+ } else {
+ Log.d(TAG, "registerOnClick: Not An Email-address");
+ }
+
+ }
+
+ public void goToRegisterOnClick(View view) {
+ EditText passwordConfirm = (EditText) findViewById(R.id.confirm_password_field);
+ TextView passwordConfirmLabel = (TextView) findViewById(R.id.confirm_password_label);
+ Button register = (Button) findViewById(R.id.register_button);
+ Button backToLogin = (Button) findViewById(R.id.back_to_login_button);
+ EditText username = (EditText) findViewById(R.id.username);
+ TextView usernameLabel = (TextView) findViewById(R.id.username_label);
+
+ passwordConfirm.setVisibility(View.VISIBLE);
+ passwordConfirmLabel.setVisibility(View.VISIBLE);
+ register.setVisibility(View.VISIBLE);
+ backToLogin.setVisibility(View.VISIBLE);
+ username.setVisibility(View.VISIBLE);
+ usernameLabel.setVisibility(View.VISIBLE);
+
+ Button goToRegister = (Button) findViewById(R.id.go_to_register_button);
+ Button logInButton = (Button) findViewById(R.id.login_button);
+
+ goToRegister.setVisibility(View.GONE);
+ logInButton.setVisibility(View.GONE);
+ }
+
+ public void backToLogin(View view) {
+ EditText passwordConfirm = (EditText) findViewById(R.id.confirm_password_field);
+ TextView passwordConfirmLabel = (TextView) findViewById(R.id.confirm_password_label);
+ Button register = (Button) findViewById(R.id.register_button);
+ Button backToLogin = (Button) findViewById(R.id.back_to_login_button);
+ EditText username = (EditText) findViewById(R.id.username);
+ TextView usernameLabel = (TextView) findViewById(R.id.username_label);
+
+ passwordConfirm.setVisibility(View.GONE);
+ passwordConfirmLabel.setVisibility(View.GONE);
+ register.setVisibility(View.GONE);
+ backToLogin.setVisibility(View.GONE);
+ username.setVisibility(View.GONE);
+ usernameLabel.setVisibility(View.GONE);
+
+ Button goToRegister = (Button) findViewById(R.id.go_to_register_button);
+ Button logInButton = (Button) findViewById(R.id.login_button);
+
+ goToRegister.setVisibility(View.VISIBLE);
+ logInButton.setVisibility(View.VISIBLE);
+ }
+
+ protected void sendConfirmEmail(FirebaseUser user) {
+ user.sendEmailVerification()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ Log.d(TAG, "Email sent.");
+// goToMainScreen();
+ }
+ }
+ });
+ }
+
+ protected void goToMainScreen() {
+ Intent intent = new Intent(this, MainActivity.class);
+ startActivity(intent);
+ }
+
+ protected void updateUserInfo(final FirebaseUser user) {
+ EditText username = (EditText) findViewById(R.id.username);
+ UserProfileChangeRequest request = new UserProfileChangeRequest.Builder()
+ .setDisplayName(username.getText().toString())
+ .build();
+ user.updateProfile(request)
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ Log.d(TAG, "User profile updated.");
+ }
+ sendConfirmEmail(user);
+ }
+ });
+ }
+}
diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/stagram/MainActivity.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java
similarity index 65%
rename from app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/stagram/MainActivity.java
rename to app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java
index b5d40bd..8f500bc 100644
--- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/stagram/MainActivity.java
+++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/MainActivity.java
@@ -1,4 +1,4 @@
-package nl.myhyvesbookplus.stagram;
+package nl.myhyvesbookplus.tagram;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -20,14 +20,14 @@ public class MainActivity extends AppCompatActivity {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
- case R.id.navigation_home:
- mTextMessage.setText(R.string.title_home);
+ case nl.myhyvesbookplus.tagram.R.id.navigation_home:
+ mTextMessage.setText(nl.myhyvesbookplus.tagram.R.string.title_home);
return true;
- case R.id.navigation_dashboard:
- mTextMessage.setText(R.string.title_dashboard);
+ case nl.myhyvesbookplus.tagram.R.id.navigation_dashboard:
+ mTextMessage.setText(nl.myhyvesbookplus.tagram.R.string.title_dashboard);
return true;
- case R.id.navigation_notifications:
- mTextMessage.setText(R.string.title_notifications);
+ case nl.myhyvesbookplus.tagram.R.id.navigation_notifications:
+ mTextMessage.setText(nl.myhyvesbookplus.tagram.R.string.title_notifications);
return true;
}
return false;
@@ -38,10 +38,10 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
+ setContentView(nl.myhyvesbookplus.tagram.R.layout.activity_main);
- mTextMessage = (TextView) findViewById(R.id.message);
- BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
+ mTextMessage = (TextView) findViewById(nl.myhyvesbookplus.tagram.R.id.message);
+ BottomNavigationView navigation = (BottomNavigationView) findViewById(nl.myhyvesbookplus.tagram.R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference();
diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml
new file mode 100644
index 0000000..33d4bf4
--- /dev/null
+++ b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_main.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_main.xml
index c28a36c..de89029 100644
--- a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_main.xml
+++ b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_main.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- tools:context="nl.myhyvesbookplus.stagram.MainActivity">
+ tools:context="nl.myhyvesbookplus.tagram.MainActivity">
- #3F51B5
- #303F9F
- #FF4081
+ #fbbf2d
+ #ffa70f
+ #4CAF50
diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml
index 432a64b..fa48bbf 100644
--- a/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml
+++ b/app/MyHyvesBookPlusStagram/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- MyHyvesBook+Stagram
+ MyHyvesBookPlusTagram
Home
Dashboard
Notifications
diff --git a/app/MyHyvesBookPlusStagram/app/src/test/java/nl/myhyvesbookplus/stagram/ExampleUnitTest.java b/app/MyHyvesBookPlusStagram/app/src/test/java/nl/myhyvesbookplus/stagram/ExampleUnitTest.java
deleted file mode 100644
index d607990..0000000
--- a/app/MyHyvesBookPlusStagram/app/src/test/java/nl/myhyvesbookplus/stagram/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package nl.myhyvesbookplus.stagram;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() throws Exception {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file