如果有人选择了移动画廊的图片与否,如何切克?

zhte4eai  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(142)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

两天前关门了。
改进这个问题
我正在firebase中注册一个用户,其中包含一般详细信息(即姓名、电子邮件、dob、密码、确认密码)和dp。当用户忘记选择dp并填充firebase中存储的数据字段以外的所有其他字段时,用户不能用同一电子邮件注册自己。如何设置if-else条件来检查用户是否选择了dp,以便程序立即终止,其他数据无法存储到数据库中。
我的java代码是。。。

package Activities;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.webkit.MimeTypeMap;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import com.example.connectsocialmediaapp.R;
import com.google.android.gms.tasks.Continuation;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;

import de.hdodenhof.circleimageview.CircleImageView;

public class RegisterPage extends AppCompatActivity {

    //XML objects
    private CircleImageView profileIV;
    private RadioButton objectRadioButton;
    private EditText userFullName, userEmail, userPassword, userRetypePassword;
    private TextView userDOB;
    private Button GetregistrationBtn;
    private RadioGroup objectRadioGroup;

    //Class Variables
    private String finalPassword;
    Uri profileImageURL;
    static int REQUEST_CODE = 1;
    private int radioID;
    private DatePickerDialog.OnDateSetListener objectOnDateSetListener;
    private Dialog objectDialog;

    //Firebase Variables
    private FirebaseFirestore objectFirebaseFirestore;
    private FirebaseAuth objectFirebaseAuth;
    private StorageReference objectStorageReference;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        objectDialog=new Dialog(this);
        objectDialog.setContentView(R.layout.please_wait_dialog);
        setContentView(R.layout.activity_register_page);

        attachXMLObjectsToJava();

        objectFirebaseFirestore = FirebaseFirestore.getInstance();
        objectFirebaseAuth = FirebaseAuth.getInstance();
        objectStorageReference = FirebaseStorage.getInstance().getReference("ImageFolder");

        GetregistrationBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CreateUser();
            }
        });

    }

    private void CreateUser() {
        try {
            if (objectFirebaseAuth.getCurrentUser() != null) {
                objectFirebaseAuth.signOut();
            }  if (objectFirebaseAuth.getCurrentUser() == null && !userFullName.getText().toString().isEmpty()
                    && !userEmail.getText().toString().isEmpty() && !userPassword.getText().toString().isEmpty())
            {
                if (userPassword.getText().toString().equals(userRetypePassword.getText().toString()))
                {

                    //Toast.makeText(this, "Registering the user", Toast.LENGTH_SHORT).show();
                    objectDialog.show();
                    finalPassword = userPassword.getText().toString();
                    objectFirebaseAuth.createUserWithEmailAndPassword(
                            userEmail.getText().toString(), finalPassword
                    ).addOnSuccessListener(new OnSuccessListener<AuthResult>() {

                        @Override
                        public void onSuccess(AuthResult authResult) {

                            uploadUserData();
                        }
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            objectDialog.dismiss();
                            Toast.makeText(RegisterPage.this, "Fails to create the user!:" + e.getMessage(), Toast.LENGTH_SHORT).show();
                        }
                    });
                }
                else
                    {
                    Toast.makeText(this, "Password did not match!", Toast.LENGTH_SHORT).show();
                }

            }

          else
            {
                Toast.makeText(this, "Please check user data fields and user profile image", Toast.LENGTH_SHORT).show();
            }

        }

        catch (Exception e)
        {
            objectDialog.dismiss();
            Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
        }

    }

    private void uploadUserData()
    {
        try
        {
            if(profileImageURL!=null)
            {
                String imageName=userFullName.getText().toString()+"."+ getExtension(profileImageURL);
                final StorageReference imageRef = objectStorageReference.child(imageName);

              //  Toast.makeText(this, "Uploading user profile pic", Toast.LENGTH_SHORT).show();

                UploadTask objectUploadTask =imageRef.putFile(profileImageURL);
                objectUploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
                    @Override
                    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                        if(!task.isSuccessful())
                        {
                            objectDialog.dismiss();
                            Toast.makeText(RegisterPage.this, task.getException().toString(), Toast.LENGTH_SHORT).show();
                            throw task.getException();
                        }
                        return imageRef.getDownloadUrl();
                    }
                }).addOnCompleteListener(new OnCompleteListener<Uri>() {
                    @Override
                    public void onComplete(@NonNull Task<Uri> task) {
                        if(task.isSuccessful())
                        {
                            Toast.makeText(RegisterPage.this, "Uploading user information", Toast.LENGTH_SHORT).show();
                            Map<String,Object> objectMap=new HashMap<>();
                            objectMap.put("profileimageurl", task.getResult().toString());
                            objectMap.put( "username" ,userFullName.getText().toString());
                            objectMap.put( "useremail" ,userEmail.getText().toString());
                            objectMap.put( "userpassword" ,userPassword.getText().toString());
                            objectMap.put( "userretypepassword" ,userRetypePassword.getText().toString());
                            objectMap.put( "userdob" ,userDOB.getText().toString());

                            radioID=objectRadioGroup.getCheckedRadioButtonId();
                            objectRadioButton=findViewById(radioID);

                            objectMap.put("noofemotions" , 0);
                            objectMap.put("gender",objectRadioButton.getText().toString());

                            objectMap.put("noofimagestatus",0);
                            objectMap.put("nooftextstatus",0);

                            objectMap.put("usercity","NA");
                            objectMap.put("usercountry", "NA");

                            objectMap.put("userbio", "NA");

                            objectFirebaseFirestore.collection("userProfileData")
                            .document(userEmail.getText().toString()).set(objectMap).addOnSuccessListener(new OnSuccessListener<Void>() {

                                @Override
                                public void onSuccess(Void aVoid) {
                                    objectDialog.dismiss();
                                    Toast.makeText(RegisterPage.this, "User is registered!", Toast.LENGTH_SHORT).show();
                                    if(objectFirebaseAuth.getCurrentUser()!=null)
                                    {
                                        objectFirebaseAuth.signOut();
                                    }
                                    startActivity(new Intent(RegisterPage.this,LoginPage.class));
                                }
                            }).addOnFailureListener(new OnFailureListener() {
                                @Override
                                public void onFailure(@NonNull Exception e) {
                                    objectDialog.dismiss();
                                    Toast.makeText(RegisterPage.this, "Registeration Failed!"+e.getMessage(), Toast.LENGTH_SHORT).show();
                                }
                            });

                        }
                        else if(!task.isSuccessful()){
                            Toast.makeText(RegisterPage.this,task.getException().toString(), Toast.LENGTH_SHORT).show();

                        }
                    }
                }).addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        objectDialog.dismiss();
                        Toast.makeText(RegisterPage.this,e.getMessage().toString(), Toast.LENGTH_SHORT).show();
                    }
                });
            }
            else{
                objectDialog.dismiss();
                Toast.makeText(this, "Please choose profile pic", Toast.LENGTH_SHORT).show();
            }
        }
        catch(Exception e)
        {

            Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

    private String getExtension(Uri uri) {
        try {
            ContentResolver objectContentResolver = getContentResolver();
            MimeTypeMap objectMimeTypeMap = MimeTypeMap.getSingleton();

            return objectMimeTypeMap.getExtensionFromMimeType(objectContentResolver.getType(uri));
        } catch (Exception e) {
            Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
            return null;
        }
    }

    private void chooseDOB()
    {
        try
        {
            Calendar objectCalender=Calendar.getInstance();
            int year = objectCalender.get(Calendar.YEAR);
            int month= objectCalender.get(Calendar.MONTH);
            int day=objectCalender.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog objectDatePickerDialog = new DatePickerDialog(this,
                    android.R.style.Theme_Holo_Light_Dialog_MinWidth, objectOnDateSetListener,year,month,day);

            objectDatePickerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            objectDatePickerDialog.show();

            objectOnDateSetListener=new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    month++;
                    userDOB.setText(dayOfMonth+"-"+month+"-"+year);
                }
            }; 

        }
        catch (Exception e)
        {
            Toast.makeText(this, "RegisterPage:"+e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

    private void attachXMLObjectsToJava() {
        try {
            profileIV = findViewById(R.id.RegistrationPage_ProfileCircleImage);
            userFullName = findViewById(R.id.RegistrationPage_FullName);
            userEmail = findViewById(R.id.RegistrationPage_Email);
            userPassword = findViewById(R.id.RegistrationPage_Password);
            userRetypePassword = findViewById(R.id.RegistrationPage_Confirm_Password);
            userDOB = findViewById(R.id.RegistrationPage_DOB);
            GetregistrationBtn = findViewById(R.id.RegistrationPage_GetRegister_Btn);
            objectRadioGroup = findViewById(R.id.RegistrationPage_Radio_Group);

            profileIV.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    view.setClickable(true);
                    view.setOnClickListener(this);
                    chooseImageFromMobile();
                }
            });

            userDOB.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    v.setClickable(true);
                    v.setOnClickListener(this);
                    chooseDOB();
                }
            });

        } catch (Exception e) {
            Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

    private void chooseImageFromMobile() {
        try
        {
            openMobileGallery();
        } catch (Exception e) {
            Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }

        private void openMobileGallery ()
        {
            try
            {
                Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
                galleryIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
                startActivityForResult(galleryIntent, REQUEST_CODE);

            }
            catch (Exception e)
            {
                Toast.makeText(this, "RegistrationPage:" + e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        {
            try {
                if (data.getData() != null && data != null) {
                    profileImageURL = data.getData();
                    profileIV.setImageURI(profileImageURL);
                }
                    else{
                        Toast.makeText(this, "No Image is selected!", Toast.LENGTH_SHORT).show();
                    }
                }

            catch(Exception e)

            {
                objectDialog.dismiss();
                Toast.makeText(RegisterPage.this,e.getMessage().toString(), Toast.LENGTH_SHORT).show();

            }
        }

    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题