Merge branch 'marijn-appje' into 'master'

Paul wanted to merge

See merge request !7
This commit was merged in pull request #7.
This commit is contained in:
Marijn Jansen
2017-06-22 11:37:40 +02:00
13 changed files with 171 additions and 52 deletions

View File

@@ -30,6 +30,7 @@ dependencies {
compile 'com.google.firebase:firebase-auth:10.0.1' compile 'com.google.firebase:firebase-auth:10.0.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:support-v4:25.3.1' compile 'com.android.support:support-v4:25.3.1'
compile 'com.google.firebase:firebase-storage:10.0.1'
testCompile 'junit:junit:4.12' testCompile 'junit:junit:4.12'
} }
@@ -42,4 +43,5 @@ dependencies {
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'

View File

@@ -14,6 +14,14 @@
} }
}, },
"oauth_client": [ "oauth_client": [
{
"client_id": "1078950034345-k3mcuf1bkf9ehg7vi09cp16lcdrrpf3a.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "nl.myhyvesbookplus.tagram",
"certificate_hash": "02b894113a27cc0c4b6025a382c826477fc8543a"
}
},
{ {
"client_id": "1078950034345-dmsbu0066sfqgqthn2mldlauvdef98u9.apps.googleusercontent.com", "client_id": "1078950034345-dmsbu0066sfqgqthn2mldlauvdef98u9.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
@@ -29,8 +37,13 @@
"status": 1 "status": 1
}, },
"appinvite_service": { "appinvite_service": {
"status": 1, "status": 2,
"other_platform_oauth_client": [] "other_platform_oauth_client": [
{
"client_id": "1078950034345-dmsbu0066sfqgqthn2mldlauvdef98u9.apps.googleusercontent.com",
"client_type": 3
}
]
}, },
"ads_service": { "ads_service": {
"status": 2 "status": 2

View File

@@ -1,9 +1,10 @@
package nl.myhyvesbookplus.tagram; package nl.myhyvesbookplus.tagram;
import android.app.ProgressDialog;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
@@ -18,7 +19,7 @@ import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.UserProfileChangeRequest; import com.google.firebase.auth.UserProfileChangeRequest;
public class LoginActivity extends AppCompatActivity { public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
public static final String TAG = "Login"; public static final String TAG = "Login";
/// Views /// /// Views ///
@@ -29,6 +30,8 @@ public class LoginActivity extends AppCompatActivity {
protected FirebaseAuth mAuth; protected FirebaseAuth mAuth;
private ProgressDialog progressDialog;
/// Setup /// /// Setup ///
@Override @Override
@@ -38,11 +41,7 @@ public class LoginActivity extends AppCompatActivity {
mAuth = FirebaseAuth.getInstance(); mAuth = FirebaseAuth.getInstance();
findViews(); findViews();
} bindOnClick();
@Override
protected void onStart() {
super.onStart();
} }
/** /**
@@ -63,44 +62,81 @@ public class LoginActivity extends AppCompatActivity {
emailField = (EditText) findViewById(R.id.email); emailField = (EditText) findViewById(R.id.email);
} }
protected void bindOnClick() {
registerButton.setOnClickListener(this);
backToLoginButton.setOnClickListener(this);
goToRegisterButton.setOnClickListener(this);
logInButton.setOnClickListener(this);
}
/// OnClick /// /// OnClick ///
/** /**
* Performs the logon action. * Called when a view has been clicked.
* *
* @param view * @param v The view that was clicked.
*/ */
public void logInOnClick(View view) { @Override
String emailSting = emailField.getText().toString(); public void onClick(View v) {
String passwordSting = passwordField.getText().toString(); switch (v.getId()) {
case R.id.register_button:
registerOnClick();
break;
case R.id.go_to_register_button:
goToRegisterOnClick();
break;
case R.id.login_button:
logInOnClick();
break;
case R.id.back_to_login_button:
backToLoginOnClick();
break;
}
}
logIn(emailSting, passwordSting); /**
* Performs the logon action.
*/
public void logInOnClick() {
String emailString = emailField.getText().toString();
String passwordString = passwordField.getText().toString();
if (!emailString.isEmpty() && !passwordString.isEmpty()) {
logIn(emailString, passwordString);
} else {
Toast.makeText(LoginActivity.this, R.string.login_error, Toast.LENGTH_SHORT).show();
}
} }
/** /**
* Performs the register action. * Performs the register action.
* @param view
*/ */
public void registerOnClick(View view) { public void registerOnClick() {
Log.d(TAG, "registerOnClick: "); String emailString = emailField.getText().toString();
String usernameString = usernameField.getText().toString();
String passwordString = passwordField.getText().toString();
String passwordConfirmString = passwordConfirmField.getText().toString();
if (passwordField.getText().toString().equals(passwordConfirmField.getText().toString())) { if (!emailString.isEmpty() && !usernameString.isEmpty()
registerUser(emailField.getText().toString(), passwordField.getText().toString()); && passwordString.isEmpty() && passwordConfirmString.isEmpty()) {
if (passwordField.getText().toString().equals(passwordConfirmField.getText().toString())) {
registerUser(emailField.getText().toString(), passwordField.getText().toString());
} else {
Toast.makeText(LoginActivity.this, R.string.password_match_error,
Toast.LENGTH_SHORT).show();
Log.d(TAG, "registerOnClick: Passwords do not match");
}
} else { } else {
Toast.makeText(LoginActivity.this, "Passwords do not match", Toast.makeText(LoginActivity.this, R.string.register_error, Toast.LENGTH_SHORT).show();
Toast.LENGTH_SHORT).show();
Log.d(TAG, "registerOnClick: Passwords do not match");
} }
} }
/// UI-changes /// /// UI-changes ///
/** /**
* Changes the Activity for registering. * Changes the Activity for registering.
* @param view
*/ */
public void goToRegisterOnClick(View view) { public void goToRegisterOnClick() {
passwordConfirmField.setVisibility(View.VISIBLE); passwordConfirmField.setVisibility(View.VISIBLE);
passwordConfirmLabel.setVisibility(View.VISIBLE); passwordConfirmLabel.setVisibility(View.VISIBLE);
registerButton.setVisibility(View.VISIBLE); registerButton.setVisibility(View.VISIBLE);
@@ -114,9 +150,8 @@ public class LoginActivity extends AppCompatActivity {
/** /**
* Changes the Activity for logging in. * Changes the Activity for logging in.
* @param view
*/ */
public void backToLoginOnClick(View view) { public void backToLoginOnClick() {
passwordConfirmField.setVisibility(View.GONE); passwordConfirmField.setVisibility(View.GONE);
passwordConfirmLabel.setVisibility(View.GONE); passwordConfirmLabel.setVisibility(View.GONE);
registerButton.setVisibility(View.GONE); registerButton.setVisibility(View.GONE);
@@ -134,6 +169,7 @@ public class LoginActivity extends AppCompatActivity {
protected void goToMainScreen() { protected void goToMainScreen() {
Intent intent = new Intent(this, MainActivity.class); Intent intent = new Intent(this, MainActivity.class);
startActivity(intent); startActivity(intent);
progressDialog.dismiss();
this.finish(); this.finish();
} }
@@ -141,11 +177,13 @@ public class LoginActivity extends AppCompatActivity {
/** /**
* Performs the actual login action. * Performs the actual login action.
* @param emailSting email address * @param emailString email address
* @param passwordSting the entered password * @param passwordString the entered password
*/ */
protected void logIn(String emailSting, String passwordSting) { protected void logIn(String emailString, String passwordString) {
mAuth.signInWithEmailAndPassword(emailSting, passwordSting) progressDialog = ProgressDialog.show(LoginActivity.this, getString(R.string.please_wait), "Logging in", true, false);
mAuth.signInWithEmailAndPassword(emailString, passwordString)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override @Override
public void onComplete(@NonNull Task<AuthResult> task) { public void onComplete(@NonNull Task<AuthResult> task) {
@@ -159,6 +197,7 @@ public class LoginActivity extends AppCompatActivity {
} else { } else {
// If sign in fails, display a message to the user. // If sign in fails, display a message to the user.
Log.w(TAG, "signInWithEmail:failure", task.getException()); Log.w(TAG, "signInWithEmail:failure", task.getException());
progressDialog.dismiss();
Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(), Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(),
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
} }
@@ -172,6 +211,7 @@ public class LoginActivity extends AppCompatActivity {
* @param password the entered password * @param password the entered password
*/ */
protected void registerUser(String email, String password) { protected void registerUser(String email, String password) {
this.progressDialog = ProgressDialog.show(LoginActivity.this, getString(R.string.please_wait), "Registering", true, false);
mAuth.createUserWithEmailAndPassword(email, password) mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override @Override
@@ -186,6 +226,7 @@ public class LoginActivity extends AppCompatActivity {
// If sign in fails, display a message to the user. // If sign in fails, display a message to the user.
Log.w(TAG, "createUserWithEmail:failure", task.getException()); Log.w(TAG, "createUserWithEmail:failure", task.getException());
if (task.getException() != null) { if (task.getException() != null) {
progressDialog.dismiss();
Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(), Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(),
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
} }

View File

@@ -0,0 +1,60 @@
package nl.myhyvesbookplus.tagram;
import android.graphics.Bitmap;
import android.net.Uri;
import android.support.annotation.NonNull;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import java.io.ByteArrayOutputStream;
/**
* Created by marijnjansen on 20/06/2017.
*/
public class UploadClass {
private StorageReference mStorageRef;
public UploadClass() {
mStorageRef = FirebaseStorage.getInstance().getReference().child("images");
}
private byte[] bitmapToBytes(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
return baos.toByteArray();
}
public void uploadPicture(Bitmap bitmap) {
UploadTask uploadTask = mStorageRef.putBytes(bitmapToBytes(bitmap));
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
})
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// Handle successful uploads on complete
Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl();
}
});
}
private String getUserUid() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
return user.getUid();
}
return "";
}
}

View File

@@ -5,5 +5,5 @@
android:viewportWidth="24.0"> android:viewportWidth="24.0">
<path <path
android:fillColor="#FF000000" android:fillColor="#FF000000"
android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" /> android:pathData="M3,5v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2L5,3c-1.11,0 -2,0.9 -2,2zM15,9c0,1.66 -1.34,3 -3,3s-3,-1.34 -3,-3 1.34,-3 3,-3 3,1.34 3,3zM6,17c0,-2 4,-3.1 6,-3.1s6,1.1 6,3.1v1L6,18v-1z" />
</vector> </vector>

View File

@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
</vector>

View File

@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0" />
<path
android:fillColor="#FF000000"
android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z" />
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View File

@@ -16,9 +16,11 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:contentDescription="@string/logo_text"
android:cropToPadding="false" android:cropToPadding="false"
android:padding="16dp" android:paddingEnd="@dimen/activity_horizontal_margin"
android:src="@drawable/logo" /> android:paddingStart="@dimen/activity_horizontal_margin"
android:src="@drawable/logo_new" />
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -78,7 +80,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:onClick="logInOnClick"
android:text="@string/login_button" /> android:text="@string/login_button" />
<Button <Button
@@ -87,7 +88,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:onClick="goToRegisterOnClick"
android:text="@string/register" /> android:text="@string/register" />
<Button <Button
@@ -96,7 +96,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:onClick="registerOnClick"
android:text="@string/register" android:text="@string/register"
android:visibility="gone" /> android:visibility="gone" />
@@ -106,7 +105,6 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:onClick="backToLoginOnClick"
android:text="@string/back_to_login" android:text="@string/back_to_login"
android:visibility="gone" /> android:visibility="gone" />

View File

@@ -8,12 +8,12 @@
<item <item
android:id="@+id/navigation_camera" android:id="@+id/navigation_camera"
android:icon="@drawable/ic_dashboard_black_24dp" android:icon="@drawable/ic_photo_camera_black_24dp"
android:title="@string/title_dashboard" /> android:title="@string/title_dashboard" />
<item <item
android:id="@+id/navigation_profile" android:id="@+id/navigation_profile"
android:icon="@drawable/ic_notifications_black_24dp" android:icon="@drawable/ic_account_box_black_24dp"
android:title="@string/title_notifications" /> android:title="@string/title_notifications" />
</menu> </menu>

View File

@@ -12,4 +12,6 @@
<string name="title_notifications">Profiel</string> <string name="title_notifications">Profiel</string>
<string name="username">Gebruikersnaam</string> <string name="username">Gebruikersnaam</string>
<string name="confirm_password_hint">bevestig wachtwoord</string> <string name="confirm_password_hint">bevestig wachtwoord</string>
<string name="logo_text">MyHyvesBookPlusTagram logo</string>
<string name="please_wait">Wacht a.u.b.</string>
</resources> </resources>

View File

@@ -4,7 +4,6 @@
<string name="title_dashboard">Camera</string> <string name="title_dashboard">Camera</string>
<string name="title_notifications">Profile</string> <string name="title_notifications">Profile</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="username">Username</string> <string name="username">Username</string>
<string name="password">Password</string> <string name="password">Password</string>
<string name="confirm_password">Confirm Password</string> <string name="confirm_password">Confirm Password</string>
@@ -14,7 +13,8 @@
<string name="back_to_login">back to Login</string> <string name="back_to_login">back to Login</string>
<string name="email">Email</string> <string name="email">Email</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="hello_blank_fragment">Hello blank fragment</string>
<string name="hello_camera">Hello Camera</string> <string name="hello_camera">Hello Camera</string>
<string name="logo_text">MyHyvesBookPlusTagram logo</string>
<string name="please_wait">Please Wait</string>
</resources> </resources>