Я хочу отправить записанные данные на Cloud Firestore, страница EditProfileActivity, на страницу AccountFragment. Я не знаю, какой код мне нужно написать.
* startActivity (новое намерение (getApplicationContext (), MainActivity.class)) я пишу код отправлять информацию на страницу AccountFragment. Конечно, это ошибка.;
EditProfileActivity
public class EditProfileActivity extends AppCompatActivity {
private static final String TAG = "EditProfileFragment";
private CircleImageView mProfilePhoto;
private ImageView mSave;;
private EditText userName,userPhone,userAddress;
private TextView userEmail;
private Uri imgUrl;
private boolean isChanged = false;
private final int PICK_IMAGE_REQUEST = 71;
private String downloadImageUrl;
DatabaseReference databaseIncidents;
StorageReference mStorageRef;
FirebaseAuth mAuth;
FirebaseFirestore mStore;
FirebaseStorage storage;
String userID;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_editprofile);
mProfilePhoto = findViewById(R.id.profile_photo);
mSave = (ImageView) findViewById(R.id.saveChanges);
userName = findViewById(R.id.userfname);
userPhone = findViewById(R.id.phone_number);
userAddress = findViewById(R.id.description);
userEmail = findViewById(R.id.femail);
storage = FirebaseStorage.getInstance();
mStorageRef = storage.getInstance().getReference("UserImages");
mAuth = FirebaseAuth.getInstance();
mStore = FirebaseFirestore.getInstance();
userID = mAuth.getCurrentUser().getUid();
ImageView backArrow = (ImageView)findViewById(R.id.backArrow);
backArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "onClick: navigating back to ProfileActivity");
finish();
}
});
mStore.collection("users").document(userID).get().
addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
if (task.getResult().exists()) {
String image = task.getResult().getString("image");
String fullname = task.getResult().getString("Name");
String phone = task.getResult().getString("Phone");
String address = task.getResult().getString("Address");
String email = task.getResult().getString("Email");
userName.setText(fullname);
userPhone.setText(phone);
userAddress.setText(address);
userEmail.setText(email);
RequestOptions placeholderRequest = new RequestOptions();
placeholderRequest.placeholder(R.mipmap.ic_launcher);
Glide.with(EditProfileActivity.this).setDefaultRequestOptions(placeholderRequest).load(image).into(mProfilePhoto);
}
} else {
String error = task.getException().getMessage();
Toast.makeText(EditProfileActivity.this, "(FIRESTORE Retrieve Error) : " + error, Toast.LENGTH_LONG).show();
}
}
});
mSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final ProgressDialog progressDialog = new ProgressDialog(EditProfileActivity.this);
progressDialog.setTitle("Uploading...");
progressDialog.show();
final String fullname = userName.getText().toString();
final String phone = userPhone.getText().toString();
final String address = userAddress.getText().toString();
final String email = userEmail.getText().toString();
if(imgUrl != null) {
final StorageReference filePath = mStorageRef.child("UserImages/" + UUID.randomUUID().toString());
final UploadTask uploadTask = filePath.putFile(imgUrl);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
progressDialog.dismiss();
Toast.makeText(EditProfileActivity.this, "Failed " + e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(@NonNull UploadTask.TaskSnapshot taskSnapshot) {
{
double progress
= (100.0
* taskSnapshot.getBytesTransferred()
/ taskSnapshot.getTotalByteCount());
progressDialog.setMessage(
"Uploaded "
+ (int) progress + "%");
}
}
})
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// Toast.makeText(ShareActivity.this, "uploaded Successfully.", Toast.LENGTH_LONG).show();
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
downloadImageUrl = filePath.getDownloadUrl().toString();
return filePath.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
downloadImageUrl = task.getResult().toString();
}
storeFirestore(null, fullname,phone,address,email);
}
});
}
});
}
}
});
mProfilePhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CropImage.activity(imgUrl)
.setAspectRatio(1, 1)
.setCropShape(CropImageView.CropShape.OVAL)
.start(EditProfileActivity.this);
}
});
}
private String getFileExtension(Uri uri) {
ContentResolver contentResolver = getContentResolver();
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri));
}
mStore.collection("users").document(userID).set(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
}
})
}
}
});
}
});
}
}*/
private void storeFirestore(@NonNull Task<UploadTask.TaskSnapshot> task, String fullname, String phone, String address, String email)
{
Map<String, Object> userMap = new HashMap<>();
userMap.put("user_id",userID );
userMap.put("Name",fullname);
userMap.put("Phone",phone);
userMap.put("Address",address);
userMap.put("Email",email);
userMap.put("image", downloadImageUrl);
mStore.collection("users").document(userID).set(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Toast.makeText(EditProfileActivity.this, "The user Settings are updated.", Toast.LENGTH_LONG).show();
startActivity(new Intent(getApplicationContext(),AccountFragment.class));
} else {
String error = task.getException().getMessage();
Toast.makeText(EditProfileActivity.this, "(FIRESTORE Error) : " + error, Toast.LENGTH_LONG).show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
imgUrl = result.getUri();
//isChanged = true;
}
else {
Toast.makeText(EditProfileActivity.this, "Something gone worng!", Toast.LENGTH_SHORT).show();
}
}
}
}