diff --git a/app/MyHyvesBookPlusStagram/app/build.gradle b/app/MyHyvesBookPlusStagram/app/build.gradle index 1a05b0f..dadf17f 100644 --- a/app/MyHyvesBookPlusStagram/app/build.gradle +++ b/app/MyHyvesBookPlusStagram/app/build.gradle @@ -30,6 +30,7 @@ dependencies { compile 'com.google.firebase:firebase-auth:10.0.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.android.support:support-v4:25.3.1' + compile 'com.google.firebase:firebase-storage:10.0.1' testCompile 'junit:junit:4.12' } @@ -42,4 +43,5 @@ dependencies { + apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/MyHyvesBookPlusStagram/app/google-services.json b/app/MyHyvesBookPlusStagram/app/google-services.json index 613b5e0..1463794 100644 --- a/app/MyHyvesBookPlusStagram/app/google-services.json +++ b/app/MyHyvesBookPlusStagram/app/google-services.json @@ -14,6 +14,14 @@ } }, "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_type": 3 @@ -29,8 +37,13 @@ "status": 1 }, "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] + "status": 2, + "other_platform_oauth_client": [ + { + "client_id": "1078950034345-dmsbu0066sfqgqthn2mldlauvdef98u9.apps.googleusercontent.com", + "client_type": 3 + } + ] }, "ads_service": { "status": 2 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 index 1adf687..695906b 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/LoginActivity.java @@ -1,9 +1,10 @@ package nl.myhyvesbookplus.tagram; +import android.app.ProgressDialog; import android.content.Intent; +import android.os.Bundle; 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.Button; @@ -18,7 +19,7 @@ import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; 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"; /// Views /// @@ -29,6 +30,8 @@ public class LoginActivity extends AppCompatActivity { protected FirebaseAuth mAuth; + private ProgressDialog progressDialog; + /// Setup /// @Override @@ -38,11 +41,7 @@ public class LoginActivity extends AppCompatActivity { mAuth = FirebaseAuth.getInstance(); findViews(); - } - - @Override - protected void onStart() { - super.onStart(); + bindOnClick(); } /** @@ -63,44 +62,81 @@ public class LoginActivity extends AppCompatActivity { emailField = (EditText) findViewById(R.id.email); } + protected void bindOnClick() { + registerButton.setOnClickListener(this); + backToLoginButton.setOnClickListener(this); + goToRegisterButton.setOnClickListener(this); + logInButton.setOnClickListener(this); + } + /// 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) { - String emailSting = emailField.getText().toString(); - String passwordSting = passwordField.getText().toString(); + @Override + public void onClick(View v) { + 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. - * @param view */ - public void registerOnClick(View view) { - Log.d(TAG, "registerOnClick: "); + public void 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())) { - registerUser(emailField.getText().toString(), passwordField.getText().toString()); + if (!emailString.isEmpty() && !usernameString.isEmpty() + && 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 { - Toast.makeText(LoginActivity.this, "Passwords do not match", - Toast.LENGTH_SHORT).show(); - Log.d(TAG, "registerOnClick: Passwords do not match"); + Toast.makeText(LoginActivity.this, R.string.register_error, Toast.LENGTH_SHORT).show(); } - } /// UI-changes /// /** * Changes the Activity for registering. - * @param view */ - public void goToRegisterOnClick(View view) { + public void goToRegisterOnClick() { passwordConfirmField.setVisibility(View.VISIBLE); passwordConfirmLabel.setVisibility(View.VISIBLE); registerButton.setVisibility(View.VISIBLE); @@ -114,9 +150,8 @@ public class LoginActivity extends AppCompatActivity { /** * Changes the Activity for logging in. - * @param view */ - public void backToLoginOnClick(View view) { + public void backToLoginOnClick() { passwordConfirmField.setVisibility(View.GONE); passwordConfirmLabel.setVisibility(View.GONE); registerButton.setVisibility(View.GONE); @@ -134,6 +169,7 @@ public class LoginActivity extends AppCompatActivity { protected void goToMainScreen() { Intent intent = new Intent(this, MainActivity.class); startActivity(intent); + progressDialog.dismiss(); this.finish(); } @@ -141,11 +177,13 @@ public class LoginActivity extends AppCompatActivity { /** * Performs the actual login action. - * @param emailSting email address - * @param passwordSting the entered password + * @param emailString email address + * @param passwordString the entered password */ - protected void logIn(String emailSting, String passwordSting) { - mAuth.signInWithEmailAndPassword(emailSting, passwordSting) + protected void logIn(String emailString, String passwordString) { + progressDialog = ProgressDialog.show(LoginActivity.this, getString(R.string.please_wait), "Logging in", true, false); + + mAuth.signInWithEmailAndPassword(emailString, passwordString) .addOnCompleteListener(this, new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { @@ -159,6 +197,7 @@ public class LoginActivity extends AppCompatActivity { } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); + progressDialog.dismiss(); Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(), Toast.LENGTH_SHORT).show(); } @@ -172,6 +211,7 @@ public class LoginActivity extends AppCompatActivity { * @param password the entered 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) .addOnCompleteListener(this, new OnCompleteListener() { @Override @@ -186,6 +226,7 @@ public class LoginActivity extends AppCompatActivity { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.getException()); if (task.getException() != null) { + progressDialog.dismiss(); Toast.makeText(LoginActivity.this, task.getException().getLocalizedMessage(), Toast.LENGTH_SHORT).show(); } diff --git a/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java new file mode 100644 index 0000000..c3acf21 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/java/nl/myhyvesbookplus/tagram/UploadClass.java @@ -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() { + @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 ""; + } +} diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_account_box_black_24dp.xml similarity index 50% rename from app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_dashboard_black_24dp.xml rename to app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_account_box_black_24dp.xml index ae6a446..4f7894b 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_dashboard_black_24dp.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_account_box_black_24dp.xml @@ -5,5 +5,5 @@ android:viewportWidth="24.0"> + 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" /> diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_notifications_black_24dp.xml deleted file mode 100644 index 0262382..0000000 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_notifications_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml new file mode 100644 index 0000000..a1a55a5 --- /dev/null +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/ic_photo_camera_black_24dp.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/logo.png b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/logo.png deleted file mode 100644 index 6cae38d..0000000 Binary files a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/logo.png and /dev/null differ diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/logo_new.png b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/logo_new.png new file mode 100644 index 0000000..ee17d38 Binary files /dev/null and b/app/MyHyvesBookPlusStagram/app/src/main/res/drawable/logo_new.png differ diff --git a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml index eed0725..ccc5b0c 100644 --- a/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml +++ b/app/MyHyvesBookPlusStagram/app/src/main/res/layout/activity_login.xml @@ -16,9 +16,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" + android:contentDescription="@string/logo_text" android:cropToPadding="false" - android:padding="16dp" - android:src="@drawable/logo" /> + android:paddingEnd="@dimen/activity_horizontal_margin" + android:paddingStart="@dimen/activity_horizontal_margin" + android:src="@drawable/logo_new" />