diff --git a/.idea/render.experimental.xml b/.idea/render.experimental.xml
new file mode 100644
index 0000000..8ec256a
--- /dev/null
+++ b/.idea/render.experimental.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 86b53ed..ca1706c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -14,8 +14,7 @@
android:roundIcon="@mipmap/app_logo2_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
-
-
+
+
+ android:parentActivityName=".map_profile.maps.MapActivity"
+ android:theme="@style/AppTheme.NoActionBarWithStatusBar" />
+
+ android:launchMode="singleTop" />
+
+ android:parentActivityName=".settings.SettingsActivity" />
+
+ android:parentActivityName=".map_profile.maps.MapActivity" />
+
-
+ android:theme="@style/AppTheme" />
+
+ android:parentActivityName=".map_profile.maps.MapActivity" />
+
diff --git a/app/src/main/java/com/evan/parknbark/emailpassword/LoginActivity.java b/app/src/main/java/com/evan/parknbark/emailpassword/LoginActivity.java
index a4bfe34..639557f 100644
--- a/app/src/main/java/com/evan/parknbark/emailpassword/LoginActivity.java
+++ b/app/src/main/java/com/evan/parknbark/emailpassword/LoginActivity.java
@@ -34,12 +34,13 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener,
private static final String TAG = "LoginActivity";
private static final int REGISTER_REQUEST = 0;
+ private static final int REMEMBER_REQUEST = 1;
private static String LOG_IN_LOAD;
private TextInputLayout mTextInputEmail, mTextInputPassword;
private long mBackPressedTime;
private LoadToast mLoadToast;
private Bundle bundle;
-
+ private String checkbox;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -53,7 +54,7 @@ protected void onCreate(Bundle savedInstanceState) {
User currentUser = (User) bundle.getSerializable("current_user");
SharedPreferences preferences = getSharedPreferences("remember_me", MODE_PRIVATE);
- String checkbox = preferences.getString("remember", "");
+ checkbox = preferences.getString("remember", "");
if (checkbox.equals("true")) {
updateUI(mAuth.getCurrentUser(), currentUser);
} else mAuth.signOut();
@@ -139,8 +140,9 @@ private void updateUI(FirebaseUser firebaseUser, User currentUser) {
if (firebaseUser.isEmailVerified()) {
mLoadToast.success();
if (!currentUser.isBanned()) {
- startActivity(new Intent(LoginActivity.this, MapActivity.class)
- .putExtras(bundle));
+ startActivityForResult(new Intent(LoginActivity.this, MapActivity.class)
+ .putExtras(bundle)
+ .putExtra("check_box", checkbox.equals("true")), REMEMBER_REQUEST);
} else { //user is banned
startActivity(new Intent(LoginActivity.this, BannedUserActivity.class));
}
@@ -188,6 +190,15 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten
mTextInputPassword.getEditText().setText(password);
}
}
+ if (requestCode == REMEMBER_REQUEST) {
+ //if user is checked the remember me checkbox
+ if (resultCode == RESULT_OK) {
+ //if user is pressing back button
+ //we want the app to terminate
+ finishAffinity();
+ super.onBackPressed();
+ }
+ }
}
@Override
@@ -212,11 +223,13 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SharedPreferences.Editor editor = preferences.edit();
editor.putString("remember", "true");
editor.apply();
+ checkbox = "true";
} else {
SharedPreferences preferences = getSharedPreferences("remember_me", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("remember", "false");
editor.apply();
+ checkbox = "false";
}
}
diff --git a/app/src/main/java/com/evan/parknbark/map_profile/maps/MapActivity.java b/app/src/main/java/com/evan/parknbark/map_profile/maps/MapActivity.java
index 9a583e5..5adf08d 100644
--- a/app/src/main/java/com/evan/parknbark/map_profile/maps/MapActivity.java
+++ b/app/src/main/java/com/evan/parknbark/map_profile/maps/MapActivity.java
@@ -11,7 +11,6 @@
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
-import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -22,8 +21,7 @@
import com.evan.parknbark.R;
import com.evan.parknbark.map_profile.MapProfileBottomSheetDialog;
import com.evan.parknbark.map_profile.profile.Profile;
-import com.evan.parknbark.map_profile.profile.WatchProfile;
-import com.evan.parknbark.settings.admin.UsersListActivity;
+import com.evan.parknbark.map_profile.profile.ProfileActivity;
import com.evan.parknbark.utilities.BaseNavDrawerActivity;
import com.evan.parknbark.utilities.User;
import com.google.android.gms.location.FusedLocationProviderClient;
@@ -39,7 +37,6 @@
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.snackbar.Snackbar;
-import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FieldValue;
@@ -83,6 +80,9 @@ public class MapActivity extends BaseNavDrawerActivity implements OnMapReadyCall
private Marker currentClickedMarker;
private Bundle bundle;
+ private volatile User currentUser;
+
+ private boolean checkBoxRememberMe;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -95,7 +95,9 @@ protected void onCreate(Bundle savedInstanceState) {
CHECKIN_MSG = getString(R.string.checkin_msg);
bundle = getIntent().getExtras();
- User currentUser = (User) bundle.getSerializable("current_user");
+ checkBoxRememberMe = getIntent().getBooleanExtra("check_box", false);
+
+ currentUser = (User) bundle.getSerializable("current_user");
currentUserPermission = currentUser.getPermission();
if (!currentUser.isBuiltProfile()) {
@@ -111,8 +113,11 @@ protected void onResume() {
@Override
public void onBackPressed() {
+ if (checkBoxRememberMe) {
+ setResult(RESULT_OK);
+ }
finish();
- FirebaseAuth.getInstance().signOut();
+ super.onBackPressed();
}
@Override
@@ -122,6 +127,7 @@ protected void onActivityResult(int requestCode, int resultCode, @Nullable Inten
if (resultCode != RESULT_OK) {
displayPopupWindow();
} else {
+ currentUser.setBuiltProfile(true);
db.collection("users").document(mAuth.getCurrentUser().getUid())
.update("builtProfile", true);
}
@@ -375,7 +381,7 @@ public void checkIn(String title) {
public void displayPopupWindow(){
DialogInterface.OnClickListener dialogClickListener = (dialog, which) -> {
if (which == DialogInterface.BUTTON_POSITIVE)
- startActivityForResult(new Intent(MapActivity.this, WatchProfile.class),
+ startActivityForResult(new Intent(MapActivity.this, ProfileActivity.class),
REQUEST_PROFILE_BUILD);
dialog.dismiss();
};
diff --git a/app/src/main/java/com/evan/parknbark/map_profile/profile/ProfileActivity.java b/app/src/main/java/com/evan/parknbark/map_profile/profile/ProfileActivity.java
index 35e8e4a..ec3ccb9 100644
--- a/app/src/main/java/com/evan/parknbark/map_profile/profile/ProfileActivity.java
+++ b/app/src/main/java/com/evan/parknbark/map_profile/profile/ProfileActivity.java
@@ -2,23 +2,29 @@
import android.content.ContentResolver;
import android.content.Intent;
+import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
import android.webkit.MimeTypeMap;
+import android.widget.Button;
+import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.appcompat.widget.Toolbar;
import com.evan.parknbark.R;
import com.evan.parknbark.utilities.BaseActivity;
import com.evan.parknbark.utilities.User;
import com.evan.parknbark.validation.EditTextValidator;
import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
-import com.google.android.material.textfield.TextInputLayout;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
@@ -28,72 +34,97 @@
import com.google.firebase.storage.UploadTask;
import com.squareup.picasso.Picasso;
-import es.dmoral.toasty.Toasty;
-
-
-public class ProfileActivity extends BaseActivity implements View.OnClickListener {
- private TextInputLayout mTextInputDogName, mTextInputDogAge, mTextInputDogBreed;
+public class ProfileActivity extends BaseActivity implements View.OnClickListener, Toolbar.OnMenuItemClickListener {
+ private static final String TAG = "WatchProfile";
private static final int PICK_IMAGE_REQUEST = 1;
- private Uri mImageUri;
+ private EditText mEditTextDogName, mEditTextDogAge, mEditTextDogBreed;
private ImageView mImageViewDogPic;
+ private Button mButtonUploadPic;
+ private boolean hiddenItem = false;
+ private Toolbar toolbar;
+ private Uri mImageUri;
private boolean isUploadedImage = false;
- //getting the current user
private FirebaseUser currentUser;
private StorageReference mStorageRef;
private StorageTask mUploadTask;
private User user;
+ private String dogPicUri;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
- mTextInputDogName = findViewById(R.id.text_input_dog_name);
- mTextInputDogBreed = findViewById(R.id.text_input_dog_breed);
- mTextInputDogAge = findViewById(R.id.text_input_dog_age);
-
- mImageViewDogPic = findViewById(R.id.image_view_dog_pic);
+ mEditTextDogAge = findViewById(R.id.editText_dogAge);
+ mEditTextDogName = findViewById(R.id.editText_dogName);
+ mEditTextDogBreed = findViewById(R.id.editText_dogBreed);
mStorageRef = FirebaseStorage.getInstance().getReference("profiles");
currentUser = mAuth.getCurrentUser();
- findViewById(R.id.button_save_profile).setOnClickListener(this);
- findViewById(R.id.button_upload_image).setOnClickListener(this);
+ mImageViewDogPic = findViewById(R.id.imageView_dog_pic);
+ mButtonUploadPic = findViewById(R.id.button_uploadDogPic);
+ mButtonUploadPic.setOnClickListener(this);
- setProgressBar(R.id.progressBar);
- findViewById(R.id.button_save_profile).setOnClickListener(this);
- findViewById(R.id.button_upload_image).setOnClickListener(this);
- }
+ toolbar = findViewById(R.id.toolbar);
+ toolbar.inflateMenu(R.menu.edit_menu);
+ toolbar.setOnMenuItemClickListener(this);
+ hideItemInsideToolbar();
+ getInfoFromFirebase();
+ }
- public boolean saveProfile(String dogNameInput, String dogBreedInput, String dogAgeInput, boolean test) {
- if (test) {
- return EditTextValidator.isValidLayoutEditText(dogNameInput, mTextInputDogName, null) && EditTextValidator.isValidLayoutEditText(dogBreedInput, mTextInputDogBreed, null) &&
- EditTextValidator.isValidLayoutEditText(dogAgeInput, mTextInputDogAge, null);
- }
- if (EditTextValidator.isValidLayoutEditText(dogNameInput, mTextInputDogName, getApplicationContext()) & EditTextValidator.isValidLayoutEditText(dogBreedInput, mTextInputDogBreed, getApplicationContext()) &
- EditTextValidator.isValidLayoutEditText(dogAgeInput, mTextInputDogAge, getApplicationContext())) {
- showProgressBar();
- DocumentReference usersDocRef = db.collection("users").document(mAuth.getCurrentUser().getUid());
- usersDocRef.get().addOnCompleteListener(this, new OnCompleteListener() {
- @Override
- public void onComplete(@NonNull Task task) {
- if (task.isSuccessful()) {
- user = task.getResult().toObject(User.class);
- if (mUploadTask != null && mUploadTask.isInProgress())
- Toasty.info(getApplicationContext(), "Upload in progress", Toast.LENGTH_SHORT).show();
- else if (isUploadedImage)
- uploadImageToFirebase(dogNameInput, dogBreedInput, dogAgeInput);
- else uploadProfile(dogNameInput, dogBreedInput, dogAgeInput, null);
- } else
- showErrorToast();
- }
- });
+ public void hideItemInsideToolbar() {
+ Menu m = toolbar.getMenu();
+ MenuItem edit_item = m.findItem(R.id.edit_icon);
+ MenuItem save_item = m.findItem(R.id.save_icon);
+ if (hiddenItem) {
+ edit_item.setVisible(false);
+ save_item.setVisible(true);
+ return;
}
- return true;
+ edit_item.setVisible(true);
+ save_item.setVisible(false);
+ }
+
+ private void getInfoFromFirebase() {
+ DocumentReference usersDocRef = db.collection("profiles").document(mAuth.getCurrentUser().getUid());
+ usersDocRef.get()
+ .addOnSuccessListener(new OnSuccessListener() {
+ @Override
+ public void onSuccess(DocumentSnapshot documentSnapshot) {
+ if (documentSnapshot.exists()) {
+ String firstName = documentSnapshot.getString("firstName"),
+ lastName = documentSnapshot.getString("lastName"),
+ dogName = documentSnapshot.getString("dogName"),
+ dogAge = documentSnapshot.getString("dogAge"),
+ dogBreed = documentSnapshot.getString("dogBreed");
+ dogPicUri = documentSnapshot.getString("profilePicture");
+ toolbar.setTitle(firstName + " " + lastName);
+ toolbar.setTitleTextColor(Color.WHITE);
+
+ mEditTextDogName.setText(dogName);
+ int positionDN = mEditTextDogName.length();
+ mEditTextDogName.setSelection(positionDN);
+
+ mEditTextDogBreed.setText(dogBreed);
+ int positionDB = mEditTextDogBreed.length();
+ mEditTextDogBreed.setSelection(positionDB);
+
+ mEditTextDogAge.setText(dogAge);
+ int positionDA = mEditTextDogAge.length();
+ mEditTextDogAge.setSelection(positionDA);
+
+ Picasso.get().load(dogPicUri).into(mImageViewDogPic);
+ } else {
+ Toast.makeText(ProfileActivity.this, "data does not exist", Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
}
//opens the option to pick a picture from phone`s gallery/google drive/downloads etc.
@@ -156,6 +187,9 @@ public void onComplete(@NonNull Task task) {
}
private void uploadProfile(String dogNameInput, String dogBreedInput, String dogAgeInput, String imageUri) {
+ if (imageUri == null) {
+ imageUri = dogPicUri;
+ }
Profile profile = new Profile(user.getFirstName(), user.getLastName(), dogNameInput, dogBreedInput, dogAgeInput, imageUri);
db.collection("profiles").document(currentUser.getUid()).set(profile)
.addOnCompleteListener(new OnCompleteListener() {
@@ -163,27 +197,76 @@ private void uploadProfile(String dogNameInput, String dogBreedInput, String dog
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
showSuccessToast(R.string.profile_saved);
+ setResult(RESULT_OK);
+ user.setBuiltProfile(true);
hideProgressBar();
} else showErrorToast();
}
});
+ }
+ public boolean saveProfile(String dogNameInput, String dogBreedInput, String dogAgeInput, boolean test) {
+ if (test) {
+ return EditTextValidator.isValidLayoutEditText(dogNameInput, null, null) &&
+ EditTextValidator.isValidLayoutEditText(dogBreedInput, null, null) &&
+ EditTextValidator.isValidLayoutEditText(dogAgeInput, null, null);
+ }
+ if (EditTextValidator.isValidString(dogNameInput) & EditTextValidator.isValidString(dogBreedInput) &
+ EditTextValidator.isValidString(dogAgeInput)) {
+ showProgressBar();
+ DocumentReference usersDocRef = db.collection("users").document(mAuth.getCurrentUser().getUid());
+ usersDocRef.get().addOnCompleteListener(this, new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (task.isSuccessful()) {
+ user = task.getResult().toObject(User.class);
+ if (mUploadTask != null && mUploadTask.isInProgress())
+ showInfoToast(R.string.upload_in_progress);
+ else if (isUploadedImage)
+ uploadImageToFirebase(dogNameInput, dogBreedInput, dogAgeInput);
+ else uploadProfile(dogNameInput, dogBreedInput, dogAgeInput, null);
+ } else
+ showErrorToast();
+ }
+ });
+ }
+ return true;
}
+
@Override
public void onClick(View v) {
int i = v.getId();
hideSoftKeyboard();
+ if (i == R.id.button_uploadDogPic) {
+ uploadImage();
+ }
+ }
+
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ int i = item.getItemId();
+ hideSoftKeyboard();
switch (i) {
- case R.id.button_save_profile:
- String dogNameInput = mTextInputDogName.getEditText().getText().toString().trim();
- String dogBreedInput = mTextInputDogBreed.getEditText().getText().toString().trim();
- String dogAgeInput = mTextInputDogAge.getEditText().getText().toString().trim();
- saveProfile(dogNameInput, dogBreedInput, dogAgeInput, false);
+ case R.id.edit_icon:
+ hiddenItem = true;
+ hideItemInsideToolbar();
+ mButtonUploadPic.setVisibility(View.VISIBLE);
break;
- case R.id.button_upload_image:
- uploadImage();
+ case R.id.save_icon:
+ String name = mEditTextDogName.getText().toString().trim();
+ String age = mEditTextDogAge.getText().toString().trim();
+ String breed = mEditTextDogBreed.getText().toString().trim();
+ if (name.isEmpty() || age.isEmpty() || breed.isEmpty()) {
+ showErrorToast(R.string.empty_field);
+ return false;
+ }
+ saveProfile(name, breed, age, false);
+ hiddenItem = false;
+ hideItemInsideToolbar();
+ mButtonUploadPic.setVisibility(View.INVISIBLE);
break;
}
+ return true;
}
}
diff --git a/app/src/main/java/com/evan/parknbark/map_profile/profile/WatchProfile.java b/app/src/main/java/com/evan/parknbark/map_profile/profile/WatchProfile.java
deleted file mode 100644
index c0755dc..0000000
--- a/app/src/main/java/com/evan/parknbark/map_profile/profile/WatchProfile.java
+++ /dev/null
@@ -1,273 +0,0 @@
-package com.evan.parknbark.map_profile.profile;
-
-import android.content.ContentResolver;
-import android.content.Intent;
-import android.graphics.Color;
-import android.net.Uri;
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.webkit.MimeTypeMap;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.ImageView;
-import android.widget.Toast;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.widget.Toolbar;
-
-import com.evan.parknbark.R;
-import com.evan.parknbark.utilities.BaseActivity;
-import com.evan.parknbark.utilities.User;
-import com.evan.parknbark.validation.EditTextValidator;
-import com.google.android.gms.tasks.OnCompleteListener;
-import com.google.android.gms.tasks.OnSuccessListener;
-import com.google.android.gms.tasks.Task;
-import com.google.firebase.auth.FirebaseUser;
-import com.google.firebase.firestore.DocumentReference;
-import com.google.firebase.firestore.DocumentSnapshot;
-import com.google.firebase.storage.FirebaseStorage;
-import com.google.firebase.storage.StorageReference;
-import com.google.firebase.storage.StorageTask;
-import com.google.firebase.storage.UploadTask;
-import com.squareup.picasso.Picasso;
-
-import java.util.Objects;
-
-import es.dmoral.toasty.Toasty;
-
-public class WatchProfile extends BaseActivity implements View.OnClickListener, Toolbar.OnMenuItemClickListener {
-
- private static final String TAG = "WatchProfile";
- private static final int PICK_IMAGE_REQUEST = 1;
- private EditText mEditTextDogName, mEditTextDogAge, mEditTextDogBreed;
- private ImageView mImageViewDogPic;
- private Button mButtonUploadPic;
- private boolean hiddenItem = false;
- private Toolbar toolbar;
- private Uri mImageUri;
- private boolean isUploadedImage = false;
-
- private FirebaseUser currentUser;
- private StorageReference mStorageRef;
- private StorageTask mUploadTask;
-
- private User user;
-
- private String dogPicUri;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_watch_profile);
-
- mEditTextDogAge = findViewById(R.id.editText_dogAge);
- mEditTextDogName = findViewById(R.id.editText_dogName);
- mEditTextDogBreed = findViewById(R.id.editText_dogBreed);
-
- mStorageRef = FirebaseStorage.getInstance().getReference("profiles");
- currentUser = mAuth.getCurrentUser();
-
- mImageViewDogPic = findViewById(R.id.imageView_dog_pic);
- mButtonUploadPic = findViewById(R.id.button_uploadDogPic);
- mButtonUploadPic.setOnClickListener(this);
-
- toolbar = findViewById(R.id.toolbar);
- toolbar.inflateMenu(R.menu.edit_menu);
- toolbar.setOnMenuItemClickListener(this);
-
- hideItemInsideToolbar();
- getInfoFromFirebase();
- }
-
- public void hideItemInsideToolbar() {
- Menu m = toolbar.getMenu();
- MenuItem edit_item = m.findItem(R.id.edit_icon);
- MenuItem save_item = m.findItem(R.id.save_icon);
- if (hiddenItem) {
- edit_item.setVisible(false);
- save_item.setVisible(true);
- return;
- }
- edit_item.setVisible(true);
- save_item.setVisible(false);
- }
-
- private void getInfoFromFirebase() {
- DocumentReference usersDocRef = db.collection("profiles").document(mAuth.getCurrentUser().getUid());
- usersDocRef.get()
- .addOnSuccessListener(new OnSuccessListener() {
- @Override
- public void onSuccess(DocumentSnapshot documentSnapshot) {
- if (documentSnapshot.exists()) {
- String firstName = documentSnapshot.getString("firstName"),
- lastName = documentSnapshot.getString("lastName"),
- dogName = documentSnapshot.getString("dogName"),
- dogAge = documentSnapshot.getString("dogAge"),
- dogBreed = documentSnapshot.getString("dogBreed");
- dogPicUri = documentSnapshot.getString("profilePicture");
- toolbar.setTitle(firstName + " " + lastName);
- toolbar.setTitleTextColor(Color.WHITE);
-
- mEditTextDogName.setText(dogName);
- int positionDN = mEditTextDogName.length();
- mEditTextDogName.setSelection(positionDN);
-
- mEditTextDogBreed.setText(dogBreed);
- int positionDB = mEditTextDogBreed.length();
- mEditTextDogBreed.setSelection(positionDB);
-
- mEditTextDogAge.setText(dogAge);
- int positionDA = mEditTextDogAge.length();
- mEditTextDogAge.setSelection(positionDA);
-
- Picasso.get().load(dogPicUri).into(mImageViewDogPic);
- } else {
- Toast.makeText(WatchProfile.this, "data does not exist", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
-
- //opens the option to pick a picture from phone`s gallery/google drive/downloads etc.
- public void uploadImage() {
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(intent, PICK_IMAGE_REQUEST);
- }
-
- //after choosing a picture (UploadImage function) these validations are being checked
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK
- && data != null && data.getData() != null) {
- isUploadedImage = true;
- mImageUri = data.getData();
- Picasso.get().load(mImageUri).into(mImageViewDogPic);
- }
- }
-
- //mainly to get the 'xxxx.jpg' extension
- private String getFileExtension(Uri uri) {
- ContentResolver cR = getContentResolver();
- MimeTypeMap mime = MimeTypeMap.getSingleton();
- return mime.getExtensionFromMimeType(cR.getType(uri));
- }
-
- //upload the picture to firebase storage
- public void uploadImageToFirebase(String dogNameInput, String dogBreedInput, String dogAgeInput) {
- if (mImageUri != null) {
- final String fileName = currentUser.getUid()
- + "." + getFileExtension(mImageUri);
- StorageReference fileReference = mStorageRef.child(fileName);
- mUploadTask = fileReference.putFile(mImageUri)
- .addOnCompleteListener(new OnCompleteListener() {
- @Override
- public void onComplete(@NonNull Task task) {
- if (task.isSuccessful()) {
- UploadTask.TaskSnapshot taskSnapshot = task.getResult();
- if (taskSnapshot != null) {
- //get uploaded image uri
- mStorageRef.child(fileName).getDownloadUrl().addOnCompleteListener(new OnCompleteListener() {
- @Override
- public void onComplete(@NonNull Task task) {
- if (task.isSuccessful()) {
- String mImageDownloadUri = task.getResult().toString();
- uploadProfile(dogNameInput, dogBreedInput, dogAgeInput, mImageDownloadUri);
- } else showErrorToast();
- }
- });
- }
- } else
- showErrorToast();
- }
- });
- }
- }
-
- private void uploadProfile(String dogNameInput, String dogBreedInput, String dogAgeInput, String imageUri) {
- if (imageUri == null) {
- imageUri = dogPicUri;
- }
- Profile profile = new Profile(user.getFirstName(), user.getLastName(), dogNameInput, dogBreedInput, dogAgeInput, imageUri);
- db.collection("profiles").document(currentUser.getUid()).set(profile)
- .addOnCompleteListener(new OnCompleteListener() {
- @Override
- public void onComplete(@NonNull Task task) {
- if (task.isSuccessful()) {
- showSuccessToast(R.string.profile_saved);
- setResult(RESULT_OK);
- user.setBuiltProfile(true);
- hideProgressBar();
- } else showErrorToast();
- }
- });
-
- }
-
- public void saveProfile(String dogNameInput, String dogBreedInput, String dogAgeInput) {
- if (EditTextValidator.isValidString(dogNameInput) & EditTextValidator.isValidString(dogBreedInput) &
- EditTextValidator.isValidString(dogAgeInput)) {
- showProgressBar();
- DocumentReference usersDocRef = db.collection("users").document(mAuth.getCurrentUser().getUid());
- usersDocRef.get().addOnCompleteListener(this, new OnCompleteListener() {
- @Override
- public void onComplete(@NonNull Task task) {
- if (task.isSuccessful()) {
- user = Objects.requireNonNull(task.getResult()).toObject(User.class);
- if (mUploadTask != null && mUploadTask.isInProgress())
- Toasty.info(getApplicationContext(), "Upload in progress", Toast.LENGTH_SHORT).show();
- else if (isUploadedImage)
- uploadImageToFirebase(dogNameInput, dogBreedInput, dogAgeInput);
- else uploadProfile(dogNameInput, dogBreedInput, dogAgeInput, null);
- } else
- showErrorToast();
- }
- });
- }
- }
-
-
- @Override
- public void onClick(View v) {
- int i = v.getId();
- hideSoftKeyboard();
- if (i == R.id.button_uploadDogPic) {
- uploadImage();
- }
- }
-
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- int i = item.getItemId();
- hideSoftKeyboard();
- switch (i) {
- case R.id.edit_icon:
- hiddenItem = true;
- hideItemInsideToolbar();
- mButtonUploadPic.setVisibility(View.VISIBLE);
- break;
- case R.id.save_icon:
- String name = mEditTextDogName.getText().toString();
- String age = mEditTextDogAge.getText().toString();
- String breed = mEditTextDogBreed.getText().toString();
- if(name == "name")
- name = "UNKNOWN";
- else if(age == "age")
- age="UNKNOWN";
- else if(breed=="breed")
- breed="UNKNOWN";
- saveProfile(name, breed, age);
- hiddenItem = false;
- hideItemInsideToolbar();
- mButtonUploadPic.setVisibility(View.INVISIBLE);
- break;
- }
- return false;
- }
-}
diff --git a/app/src/main/java/com/evan/parknbark/settings/SettingsActivity.java b/app/src/main/java/com/evan/parknbark/settings/SettingsActivity.java
index 368399d..f291ff8 100644
--- a/app/src/main/java/com/evan/parknbark/settings/SettingsActivity.java
+++ b/app/src/main/java/com/evan/parknbark/settings/SettingsActivity.java
@@ -51,12 +51,10 @@ public void onItemClick(AdapterView> parent, View view, int position, long id)
//Change password
startActivity(new Intent(getApplicationContext(), ChangePassActivity.class));
break;
-
case 1:
//Rate Us!
startActivity(new Intent(getApplicationContext(), EditContactActivity.class));
break;
-
case 2:
startActivity(new Intent(getApplicationContext(), UsersListActivity.class));
break;
diff --git a/app/src/main/java/com/evan/parknbark/utilities/BaseNavDrawerActivity.java b/app/src/main/java/com/evan/parknbark/utilities/BaseNavDrawerActivity.java
index 391968b..1d59b2b 100644
--- a/app/src/main/java/com/evan/parknbark/utilities/BaseNavDrawerActivity.java
+++ b/app/src/main/java/com/evan/parknbark/utilities/BaseNavDrawerActivity.java
@@ -25,7 +25,7 @@
import com.evan.parknbark.emailpassword.LoginActivity;
import com.evan.parknbark.map_profile.maps.LocationsActivity;
import com.evan.parknbark.map_profile.maps.MapActivity;
-import com.evan.parknbark.map_profile.profile.WatchProfile;
+import com.evan.parknbark.map_profile.profile.ProfileActivity;
import com.evan.parknbark.settings.SettingsActivity;
import com.google.android.material.navigation.NavigationView;
import com.google.firebase.auth.FirebaseAuth;
@@ -126,8 +126,8 @@ public boolean onMenuItemClick(MenuItem item) {
return false;
}
changeToNewLocale(lang, this);
- finish();
- startActivity(getIntent());
+ finishAffinity();
+ startActivity(new Intent(getBaseContext(), SplashScreenActivity.class));
return true;
}
@@ -181,7 +181,7 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
startActivity(new Intent(getApplicationContext(), BulletinBoardActivity.class).putExtra("current_user_permission", currentUserPermission));
break;
case R.id.nav_watch_profile:
- startActivity(new Intent(getApplicationContext(), WatchProfile.class));
+ startActivity(new Intent(getApplicationContext(), ProfileActivity.class));
break;
case R.id.nav_map:
startActivity(new Intent(getApplicationContext(), MapActivity.class));
diff --git a/app/src/main/java/com/evan/parknbark/utilities/SplashScreenActivity.java b/app/src/main/java/com/evan/parknbark/utilities/SplashScreenActivity.java
index bcad0ff..2b9eef0 100644
--- a/app/src/main/java/com/evan/parknbark/utilities/SplashScreenActivity.java
+++ b/app/src/main/java/com/evan/parknbark/utilities/SplashScreenActivity.java
@@ -42,20 +42,18 @@ public void onComplete(@NonNull Task task) {
//if user is logged in, put the permission into bundle
//else, do nothing
bundle.putSerializable("current_user", user);
+ EasySplashScreen config = new EasySplashScreen(SplashScreenActivity.this)
+ .withFullScreen()
+ .withTargetActivity(LoginActivity.class) //go to main activity
+ .withBundleExtras(bundle) //send bundle, either user logged in or nah
+ .withBackgroundColor(Color.parseColor("#e1f5fe"))
+ .withLogo(R.mipmap.app_logo1_foreground); //TODO: adjust logo dimensions
+
+ View easySplashScreen = config.create();
+ setContentView(easySplashScreen);
}
}
});
}
-
-
- EasySplashScreen config = new EasySplashScreen(this)
- .withFullScreen()
- .withTargetActivity(LoginActivity.class) //go to main activity
- .withBundleExtras(bundle) //send bundle, either user logged in or nah
- .withBackgroundColor(Color.parseColor("#e1f5fe"))
- .withLogo(R.mipmap.app_logo1_foreground); //TODO: adjust logo dimensions
-
- View easySplashScreen = config.create();
- setContentView(easySplashScreen);
}
}
diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml
index a621fb8..f210bcf 100644
--- a/app/src/main/res/layout/activity_profile.xml
+++ b/app/src/main/res/layout/activity_profile.xml
@@ -1,111 +1,131 @@
-
+ tools:context="com.evan.parknbark.map_profile.profile.ProfileActivity">
-
+
+
+
+
+ android:gravity="center">
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ android:layout_marginEnd="6dp"
+ android:layout_toEndOf="@id/textView_dog_name"
+ android:background="@null"
+ android:fontFamily="sans-serif-medium"
+ android:hint="@string/dog_name"
+ android:inputType="textCapSentences|textNoSuggestions"
+ android:textSize="20sp" />
-
-
+
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_watch_profile.xml b/app/src/main/res/layout/activity_watch_profile.xml
deleted file mode 100644
index f2b1787..0000000
--- a/app/src/main/res/layout/activity_watch_profile.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/profile_details.xml b/app/src/main/res/layout/profile_details.xml
index 5ae4085..939cec2 100644
--- a/app/src/main/res/layout/profile_details.xml
+++ b/app/src/main/res/layout/profile_details.xml
@@ -1,25 +1,25 @@
-
+ android:background="@color/colorAppBackground"
+ android:orientation="vertical">
+ android:layout_gravity="center"
+ android:layout_marginBottom="5dp">
@@ -47,9 +48,9 @@
android:id="@+id/rl_dog_breed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_below="@id/rl_dog_name"
- android:layout_marginBottom="10dp"
- android:layout_centerInParent="true">
+ android:layout_gravity="center"
+ android:layout_marginBottom="5dp"
+ android:gravity="center">
@@ -77,8 +79,9 @@
android:id="@+id/rl_dog_age"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_below="@id/rl_dog_breed"
- android:layout_centerInParent="true">
+ android:layout_gravity="center"
+ android:layout_marginBottom="5dp"
+ android:gravity="center">
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/toolbar.xml b/app/src/main/res/layout/toolbar.xml
index d9e626b..39ee870 100644
--- a/app/src/main/res/layout/toolbar.xml
+++ b/app/src/main/res/layout/toolbar.xml
@@ -3,10 +3,9 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
- android:layout_height="wrap_content"
+ android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
- android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:background="?attr/colorPrimaryDark">
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8348558..abdd1e5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -111,4 +111,5 @@
Share with
Permit
Cancel
+ Upload in progress
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 9918392..2572241 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -16,6 +16,11 @@
- @android:color/transparent
+
+