Search in sources :

Example 1 with ApplicantDb

use of com.example.nftscmers.db.ApplicantDb in project HackFest2022-Pretzel by chuanshaof.

the class ScrollApplicationActivity method onCreate.

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_scroll_application);
    FirebaseFirestore db = FirebaseFirestore.getInstance();
    flingAdapterView = findViewById(R.id.swipe);
    ArrayList<ApplicantModel> item = new ArrayList<>();
    jobTracker = new HashMap<>();
    ApplicantAdapter arrayAdapter = new ApplicantAdapter(ScrollApplicationActivity.this, R.layout.item_in_cardview, item);
    flingAdapterView.setAdapter(arrayAdapter);
    new EmployerDb(ScrollApplicationActivity.this, new EmployerDb.OnEmployerModel() {

        @Override
        public void onResult(EmployerModel employerModel) {
            for (DocumentReference job : employerModel.getJobs()) {
                Toast.makeText(getApplicationContext(), job.toString(), Toast.LENGTH_LONG).show();
                new JobDb(ScrollApplicationActivity.this, new JobDb.OnJobModel() {

                    @Override
                    public void onResult(JobModel jobModel) {
                        if (jobModel.getPending() == null) {
                            return;
                        }
                        for (DocumentReference pending : jobModel.getPending()) {
                            Log.d(TAG, "onResult: " + pending.getId());
                            new ApplicationDb(ScrollApplicationActivity.this, new ApplicationDb.OnApplicationModel() {

                                @Override
                                public void onResult(ApplicationModel applicationModel) {
                                    new ApplicantDb(ScrollApplicationActivity.this, new ApplicantDb.OnApplicantModel() {

                                        @Override
                                        public void onResult(ApplicantModel applicantModel) {
                                            Log.d(TAG, "onResult: " + applicantModel);
                                            item.add(applicantModel);
                                            ArrayList<DocumentReference> tracker = new ArrayList<>();
                                            tracker.add(pending);
                                            tracker.add(job);
                                            jobTracker.put(applicantModel, tracker);
                                            arrayAdapter.notifyDataSetChanged();
                                        }
                                    }).getApplicantModel(applicationModel.getApplicant());
                                }
                            }).getApplicationModel(pending);
                        }
                    }
                }).getJobModel(job);
            }
        }
    }).getEmployerModel(LoggedInUser.getInstance().getEmail());
    flingAdapterView.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {

        @Override
        public void removeFirstObjectInAdapter() {
            item.remove(0);
            arrayAdapter.notifyDataSetChanged();
        }

        @Override
        public void onLeftCardExit(Object o) {
            new JobDb(ScrollApplicationActivity.this, new JobDb.OnJobUploadSuccess() {

                @Override
                public void onResult() {
                    new ApplicationDb(ScrollApplicationActivity.this, new ApplicationDb.OnApplicationUploadSuccess() {

                        @Override
                        public void onResult() {
                            Toast.makeText(ScrollApplicationActivity.this, "Rejected", Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(ScrollApplicationActivity.this, FeedbackActivity.class);
                            intent.putExtra(FeedbackActivity.TAG, jobTracker.get(o).get(0).getId());
                            startActivityForResult(intent, 0);
                        }
                    }).updateApplicationStatus(ApplicationModel.REJECTED, jobTracker.get(o).get(0));
                }
            }).deletePending(jobTracker.get(o).get(0), jobTracker.get(o).get(1));
        }

        @Override
        public void onRightCardExit(Object o) {
            Log.d(TAG, "onRightCardExit: " + o);
            new JobDb(ScrollApplicationActivity.this, new JobDb.OnJobUploadSuccess() {

                @Override
                public void onResult() {
                    new ApplicationDb(ScrollApplicationActivity.this, new ApplicationDb.OnApplicationUploadSuccess() {

                        @Override
                        public void onResult() {
                            Toast.makeText(ScrollApplicationActivity.this, "Accepted", Toast.LENGTH_SHORT).show();
                            Intent intent = new Intent(ScrollApplicationActivity.this, FeedbackActivity.class);
                            intent.putExtra(FeedbackActivity.TAG, jobTracker.get(o).get(0).getId());
                            startActivityForResult(intent, 0);
                        }
                    }).updateApplicationStatus(ApplicationModel.ACCEPTED, jobTracker.get(o).get(0));
                }
            }).deletePending(jobTracker.get(o).get(0), jobTracker.get(o).get(1));
        }

        @Override
        public void onAdapterAboutToEmpty(int i) {
        }

        @Override
        public void onScroll(float v) {
        }
    });
    flingAdapterView.setOnItemClickListener(new SwipeFlingAdapterView.OnItemClickListener() {

        @Override
        public void onItemClicked(int i, Object o) {
            Intent intent = new Intent(ScrollApplicationActivity.this, com.example.nftscmers.applicantactivities.ProfileActivity.class);
            intent.putExtra(com.example.nftscmers.applicantactivities.ProfileActivity.TAG, item.get(i).getDocumentId());
            startActivity(intent);
        }
    });
    Button like, dislike;
    like = findViewById(R.id.like);
    dislike = findViewById(R.id.dislike);
    like.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            flingAdapterView.getTopCardListener().selectRight();
        }
    });
    dislike.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            flingAdapterView.getTopCardListener().selectLeft();
        }
    });
    // Initialize and assign variable
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
    // Set Home selected
    bottomNavigationView.setSelectedItemId(R.id.home);
    // Perform item selected listener
    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent;
            switch(item.getItemId()) {
                case R.id.history:
                    intent = new Intent(ScrollApplicationActivity.this, JobHistoryActivity.class);
                    startActivity(intent);
                    overridePendingTransition(0, 0);
                    return true;
                case R.id.home:
                    return true;
                case R.id.create:
                    startActivity(new Intent(getApplicationContext(), EditJobActivity.class));
                    overridePendingTransition(0, 0);
                    return true;
                case R.id.profile:
                    intent = new Intent(ScrollApplicationActivity.this, ProfileActivity.class);
                    intent.putExtra(ProfileActivity.TAG, LoggedInUser.getInstance().getEmail());
                    startActivity(intent);
                    overridePendingTransition(0, 0);
                    return true;
            }
            return false;
        }
    });
}
Also used : ApplicantAdapter(com.example.nftscmers.adapters.ApplicantAdapter) ArrayList(java.util.ArrayList) ApplicationModel(com.example.nftscmers.objectmodels.ApplicationModel) ApplicantDb(com.example.nftscmers.db.ApplicantDb) Button(android.widget.Button) BottomNavigationView(com.google.android.material.bottomnavigation.BottomNavigationView) ApplicationDb(com.example.nftscmers.db.ApplicationDb) JobModel(com.example.nftscmers.objectmodels.JobModel) DocumentReference(com.google.firebase.firestore.DocumentReference) SwipeFlingAdapterView(com.lorentzos.flingswipe.SwipeFlingAdapterView) FirebaseFirestore(com.google.firebase.firestore.FirebaseFirestore) FeedbackActivity(com.example.nftscmers.commonactivities.FeedbackActivity) ApplicantModel(com.example.nftscmers.objectmodels.ApplicantModel) EmployerModel(com.example.nftscmers.objectmodels.EmployerModel) Intent(android.content.Intent) MenuItem(android.view.MenuItem) View(android.view.View) BottomNavigationView(com.google.android.material.bottomnavigation.BottomNavigationView) SwipeFlingAdapterView(com.lorentzos.flingswipe.SwipeFlingAdapterView) EmployerDb(com.example.nftscmers.db.EmployerDb) JobDb(com.example.nftscmers.db.JobDb)

Example 2 with ApplicantDb

use of com.example.nftscmers.db.ApplicantDb in project HackFest2022-Pretzel by chuanshaof.

the class SignUpActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);
    title = findViewById(R.id.sign_up_title);
    email = findViewById(R.id.sign_up_email);
    password = findViewById(R.id.sign_up_password);
    confirmPassword = findViewById(R.id.sign_up_confirm_password);
    signUp = findViewById(R.id.sign_up_button);
    signIn = findViewById(R.id.sign_in);
    // Setting up of initial sign up type
    signUpType = getIntent().getStringExtra(LoginActivity.TAG);
    Log.i(TAG, "onCreate: " + signUpType);
    if (signUpType == null) {
        signUpType = Globals.APPLICANT;
        title.setText(getString(R.string.applicant_sign_up));
    } else if (signUpType.equals(Globals.APPLICANT)) {
        title.setText(getString(R.string.applicant_sign_up));
    } else if (signUpType.equals(Globals.EMPLOYER)) {
        title.setText(getString(R.string.employer_sign_up));
    } else {
        signUpType = Globals.APPLICANT;
        title.setText(getString(R.string.applicant_sign_up));
    }
    // Sign Up Button
    signUp.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            String enteredEmail = email.getText().toString();
            String enteredPassword = password.getText().toString();
            String confirmPasswordEntry = confirmPassword.getText().toString();
            // Ensure that entered data are all valid
            if (!Utils.isNetworkAvailable(SignUpActivity.this) | Utils.invalidData(email, password, confirmPassword) | Utils.invalidEmail(email)) {
                Log.i(TAG, "onSignUp failed");
                return;
            }
            if (!enteredPassword.equals(confirmPasswordEntry)) {
                confirmPassword.requestFocus();
                confirmPassword.setError(getString(R.string.sign_up_confirm_fail));
                Log.i(TAG, getString(R.string.sign_up_confirm_fail));
                return;
            }
            // Disable button for Firestore processing
            signUp.setEnabled(false);
            signUp.setText(getString(R.string.signing_up));
            // Ensuring that email has not already been registered
            DocumentReference accountDocument = FirebaseFirestore.getInstance().collection(AccountModel.getCollectionId()).document(email.getText().toString());
            accountDocument.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {

                @Override
                public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                    if (task.isSuccessful()) {
                        DocumentSnapshot document = task.getResult();
                        if (document.exists()) {
                            email.requestFocus();
                            email.setError(getString(R.string.duplicate_email));
                            signUp.setEnabled(true);
                            signUp.setText(getString(R.string.sign_up));
                            Log.i(TAG, getString(R.string.duplicate_email));
                            return;
                        } else {
                            // Creating new profile in applicant
                            if (signUpType.equals(Globals.APPLICANT)) {
                                new ApplicantDb(SignUpActivity.this, new ApplicantDb.OnApplicantUploadSuccess() {

                                    @Override
                                    public void onResult() {
                                        Map<String, Object> account = new HashMap<>();
                                        account.put(AccountModel.EMAIL, enteredEmail);
                                        account.put(AccountModel.PASSWORD, password.getText().toString());
                                        account.put(AccountModel.ACCOUNTTYPE, signUpType);
                                        account.put(AccountModel.PROFILE, new ApplicantDb().getDocument(email.getText().toString()));
                                        accountDocument.set(account).addOnSuccessListener(new OnSuccessListener<Void>() {

                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                LoggedInUser.getInstance().setUser(FirebaseFirestore.getInstance().collection(ApplicantModel.getCollectionId()).document(enteredEmail), enteredEmail, signUpType);
                                                Utils.toastLog(SignUpActivity.this, TAG, getString(R.string.sign_up_success));
                                                Intent intent = new Intent(SignUpActivity.this, com.example.nftscmers.applicantactivities.EditProfileActivity.class);
                                                startActivity(intent);
                                            }
                                        }).addOnFailureListener(new OnFailureListener() {

                                            @Override
                                            public void onFailure(@NonNull Exception e) {
                                                Log.w(TAG, getString(R.string.firestore_error), e);
                                                signUp.setEnabled(true);
                                                signUp.setText(getString(R.string.sign_up));
                                            }
                                        });
                                    }
                                }).newProfile(email);
                            } else if (signUpType.equals(Globals.EMPLOYER)) {
                                new EmployerDb(SignUpActivity.this, new EmployerDb.OnEmployerUploadSuccess() {

                                    @Override
                                    public void onResult() {
                                        Map<String, Object> account = new HashMap<>();
                                        account.put(AccountModel.EMAIL, enteredEmail);
                                        account.put(AccountModel.PASSWORD, password.getText().toString());
                                        account.put(AccountModel.ACCOUNTTYPE, Globals.EMPLOYER);
                                        account.put(AccountModel.PROFILE, new EmployerDb().getDocument(email.getText().toString()));
                                        accountDocument.set(account).addOnSuccessListener(new OnSuccessListener<Void>() {

                                            @Override
                                            public void onSuccess(Void aVoid) {
                                                LoggedInUser.getInstance().setUser(FirebaseFirestore.getInstance().collection(EmployerModel.getCollectionId()).document(enteredEmail), enteredEmail, signUpType);
                                                Utils.toastLog(SignUpActivity.this, TAG, getString(R.string.sign_up_success));
                                                Intent intent = new Intent(SignUpActivity.this, com.example.nftscmers.employeractivities.EditProfileActivity.class);
                                                startActivity(intent);
                                            }
                                        }).addOnFailureListener(new OnFailureListener() {

                                            @Override
                                            public void onFailure(@NonNull Exception e) {
                                                Utils.fireStoreError(SignUpActivity.this, TAG);
                                                signUp.setEnabled(true);
                                                signUp.setText(getString(R.string.sign_in));
                                            }
                                        });
                                    }
                                }).newProfile(email);
                            } else {
                                Utils.unexpectedError(SignUpActivity.this, TAG);
                                signUp.setEnabled(true);
                                signUp.setText(getString(R.string.sign_up));
                            }
                        }
                    } else {
                        Utils.fireStoreError(SignUpActivity.this, TAG);
                        signUp.setEnabled(true);
                        signUp.setText(getString(R.string.sign_up));
                    }
                }
            });
        }
    });
    // Sign In Button
    signIn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent intent = new Intent(SignUpActivity.this, LoginActivity.class);
            intent.putExtra(LoginActivity.TAG, signUpType);
            startActivity(intent);
        }
    });
}
Also used : Task(com.google.android.gms.tasks.Task) HashMap(java.util.HashMap) ApplicantDb(com.example.nftscmers.db.ApplicantDb) DocumentSnapshot(com.google.firebase.firestore.DocumentSnapshot) NonNull(androidx.annotation.NonNull) OnSuccessListener(com.google.android.gms.tasks.OnSuccessListener) DocumentReference(com.google.firebase.firestore.DocumentReference) Intent(android.content.Intent) View(android.view.View) TextView(android.widget.TextView) EmployerDb(com.example.nftscmers.db.EmployerDb) OnCompleteListener(com.google.android.gms.tasks.OnCompleteListener) HashMap(java.util.HashMap) Map(java.util.Map) OnFailureListener(com.google.android.gms.tasks.OnFailureListener)

Example 3 with ApplicantDb

use of com.example.nftscmers.db.ApplicantDb in project HackFest2022-Pretzel by chuanshaof.

the class ApplicationHistoryActivity method onCreate.

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_application_history);
    applicationListView = findViewById(R.id.application_history_list);
    ArrayAdapter arrayAdapter = new ApplicationHistoryAdapter(ApplicationHistoryActivity.this, R.layout.item_application_history, applicationDetailsList, new ApplicationHistoryAdapter.OnItemClickListener() {

        @Override
        public void onResult(int position) {
            Intent intent = new Intent(ApplicationHistoryActivity.this, FeedbackActivity.class);
            intent.putExtra(FeedbackActivity.TAG, applicationsList.get(position).getId());
            startActivityForResult(intent, 0);
        }
    });
    applicationListView.setAdapter(arrayAdapter);
    new ApplicantDb(ApplicationHistoryActivity.this, new ApplicantDb.OnApplicantModel() {

        @Override
        public void onResult(ApplicantModel applicantModel) {
            applicationsList = applicantModel.getApplications();
            for (DocumentReference application : applicationsList) {
                Log.d(TAG, "onResult: " + application.getId());
                new ApplicationDb(ApplicationHistoryActivity.this, new ApplicationDb.OnApplicationModel() {

                    @Override
                    public void onResult(ApplicationModel applicationModel) {
                        HashMap<String, String> applicationDetails = new HashMap<>();
                        applicationDetails.put(ApplicationModel.STATUS, applicationModel.getStatus());
                        new JobDb(ApplicationHistoryActivity.this, new JobDb.OnJobModel() {

                            @Override
                            public void onResult(JobModel jobModel) {
                                applicationDetails.put(ApplicationModel.COMPANY, jobModel.getEmployerName());
                                applicationDetails.put(ApplicationModel.POSITION, jobModel.getPosition());
                                applicationDetailsList.add(applicationDetails);
                                arrayAdapter.notifyDataSetChanged();
                            }
                        }).getJobModel(applicationModel.getJob());
                    }
                }).getApplicationModel(application);
            }
        }
    }).getApplicantModel(LoggedInUser.getInstance().getEmail());
    // Initialize and assign variable
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
    // Set Home selected
    bottomNavigationView.setSelectedItemId(R.id.history);
    // Perform item selected listener
    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            Intent intent;
            switch(item.getItemId()) {
                case R.id.history:
                    return true;
                case R.id.home:
                    intent = new Intent(ApplicationHistoryActivity.this, ScrollJobActivity.class);
                    startActivity(intent);
                    overridePendingTransition(0, 0);
                    return true;
                case R.id.profile:
                    intent = new Intent(ApplicationHistoryActivity.this, ProfileActivity.class);
                    intent.putExtra(ProfileActivity.TAG, LoggedInUser.getInstance().getEmail());
                    startActivity(intent);
                    overridePendingTransition(0, 0);
                    return true;
            }
            return false;
        }
    });
}
Also used : HashMap(java.util.HashMap) FeedbackActivity(com.example.nftscmers.commonactivities.FeedbackActivity) ApplicantModel(com.example.nftscmers.objectmodels.ApplicantModel) ApplicationModel(com.example.nftscmers.objectmodels.ApplicationModel) Intent(android.content.Intent) MenuItem(android.view.MenuItem) ApplicantDb(com.example.nftscmers.db.ApplicantDb) BottomNavigationView(com.google.android.material.bottomnavigation.BottomNavigationView) ApplicationDb(com.example.nftscmers.db.ApplicationDb) JobModel(com.example.nftscmers.objectmodels.JobModel) ApplicationHistoryAdapter(com.example.nftscmers.adapters.ApplicationHistoryAdapter) JobDb(com.example.nftscmers.db.JobDb) ArrayAdapter(android.widget.ArrayAdapter) DocumentReference(com.google.firebase.firestore.DocumentReference)

Example 4 with ApplicantDb

use of com.example.nftscmers.db.ApplicantDb in project HackFest2022-Pretzel by chuanshaof.

the class EditProfileActivity method onCreate.

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_applicant_edit_profile);
    profilePic = findViewById(R.id.applicant_profile_pic);
    name = findViewById(R.id.applicant_name);
    email = findViewById(R.id.applicant_email);
    about = findViewById(R.id.applicant_about);
    linkedIn = findViewById(R.id.applicant_linkedin);
    skills = findViewById(R.id.applicant_skills);
    confirm = findViewById(R.id.applicant_edit_confirm);
    Utils.uneditableField(name);
    Utils.uneditableField(email);
    // Loading of previous applicant data
    new ApplicantDb(EditProfileActivity.this, new ApplicantDb.OnApplicantModel() {

        @Override
        public void onResult(ApplicantModel applicantModel) {
            Log.d(TAG, "onResult: " + applicantModel);
            applicant = applicantModel;
            Utils.loadImage(profilePic, applicant.getImage());
            Utils.setValid(name, applicant.getName());
            Utils.setValid(about, applicant.getAbout());
            Utils.setValid(linkedIn, applicant.getLinkedIn());
            Utils.setValid(email, applicant.getEmail());
            SkillsFragment skillsFragment = new SkillsFragment(applicant.getSkills());
            getSupportFragmentManager().beginTransaction().replace(R.id.applicant_skills_list, skillsFragment).commit();
        }
    }).getApplicantModel(LoggedInUser.getInstance().getEmail());
    // When user clicks on skills
    skills.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            new SkillsDialogFragment(applicant.getSkills(), new SkillsDialogFragment.onConfirmListener() {

                @Override
                public void onResult(ArrayList<DocumentReference> skillsList) {
                    Log.d(TAG, "onResult: " + skillsList);
                    applicant.setSkills(skillsList);
                    SkillsFragment skillsFragment = new SkillsFragment(applicant.getSkills());
                    getSupportFragmentManager().beginTransaction().replace(R.id.applicant_skills_list, skillsFragment).commit();
                }
            }).show(getSupportFragmentManager(), TAG);
        }
    });
    profilePic.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Log.d(TAG, "onClick: test");
            new CropDialogFragment(new CropDialogFragment.OnCropListener() {

                @Override
                public void onResult(Uri uri) {
                    new ApplicantDb(EditProfileActivity.this, new ApplicantDb.OnApplicantUploadSuccess() {

                        @Override
                        protected void onResult(String string) {
                            Utils.loadImage(profilePic, string);
                            applicant.setImage(string);
                        }
                    }).updateProfilePicture(uri, applicant.getEmail());
                }
            }).show(getSupportFragmentManager(), TAG);
        }
    });
    confirm.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (Utils.invalidData(name, about)) {
                return;
            }
            applicant.setName(name.getText().toString());
            applicant.setAbout(about.getText().toString());
            applicant.setLinkedIn(linkedIn.getText().toString());
            new ApplicantDb(EditProfileActivity.this, new ApplicantDb.OnApplicantUploadSuccess() {

                @Override
                protected void onResult() {
                    Intent intent = new Intent(EditProfileActivity.this, ProfileActivity.class);
                    intent.putExtra(ProfileActivity.TAG, LoggedInUser.getInstance().getEmail());
                    startActivity(intent);
                }
            }, new ApplicantDb.OnApplicantUploadFailure() {

                @Override
                public void onResult() {
                    Utils.fireStoreError(EditProfileActivity.this, TAG);
                }
            }).updateProfile(applicant);
        }
    });
}
Also used : SkillsDialogFragment(com.example.nftscmers.fragments.SkillsDialogFragment) ApplicantModel(com.example.nftscmers.objectmodels.ApplicantModel) SkillsFragment(com.example.nftscmers.fragments.SkillsFragment) CropDialogFragment(com.example.nftscmers.fragments.CropDialogFragment) Intent(android.content.Intent) ApplicantDb(com.example.nftscmers.db.ApplicantDb) ImageView(android.widget.ImageView) TextView(android.widget.TextView) View(android.view.View) ListView(android.widget.ListView) Uri(android.net.Uri) DocumentReference(com.google.firebase.firestore.DocumentReference)

Example 5 with ApplicantDb

use of com.example.nftscmers.db.ApplicantDb in project HackFest2022-Pretzel by chuanshaof.

the class ProfileActivity method onCreate.

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_applicant_profile);
    title = findViewById(R.id.applicant_title);
    back = findViewById(R.id.applicant_back_arrow);
    editProfile = findViewById(R.id.applicant_edit_profile);
    profilePic = findViewById(R.id.applicant_profile_pic);
    name = findViewById(R.id.applicant_name);
    email = findViewById(R.id.applicant_email);
    about = findViewById(R.id.applicant_about);
    linkedIn = findViewById(R.id.applicant_linkedIn);
    logout = findViewById(R.id.button_logout);
    // Loading of previous applicant data
    new ApplicantDb(ProfileActivity.this, new ApplicantDb.OnApplicantModel() {

        @Override
        public void onResult(ApplicantModel applicantModel) {
            Log.d(TAG, "onResult: " + applicantModel);
            applicant = applicantModel;
            Utils.loadImage(profilePic, applicant.getImage());
            Utils.setValid(name, applicant.getName());
            Utils.setValid(about, applicant.getAbout());
            Utils.setValid(linkedIn, applicant.getLinkedIn());
            Utils.setValid(email, applicant.getEmail());
            SkillsFragment skillsFragment = new SkillsFragment(applicant.getSkills());
            getSupportFragmentManager().beginTransaction().replace(R.id.applicant_skills, skillsFragment).commit();
        }
    }).getApplicantModel(getIntent().getStringExtra(ProfileActivity.TAG));
    if (!getIntent().getStringExtra(ProfileActivity.TAG).equals(LoggedInUser.getInstance().getEmail())) {
        Utils.disableButton(editProfile);
        Utils.disableButton(logout);
    }
    editProfile.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent intent = new Intent(ProfileActivity.this, EditProfileActivity.class);
            startActivity(intent);
        }
    });
    logout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            new YesNoDialogFragment("Confirm Logout?", new YesNoDialogFragment.OnClickListener() {

                @Override
                public void onResult(boolean bool) {
                    if (bool == true) {
                        LoggedInUser.getInstance().setUser(null, null, null);
                        Intent intent = new Intent(ProfileActivity.this, LoginActivity.class);
                        startActivity(intent);
                    }
                }
            }).show(getSupportFragmentManager(), TAG);
        }
    });
    BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
    if (LoggedInUser.getInstance().getAccountType() == Globals.APPLICANT) {
        back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Intent intent = new Intent(ProfileActivity.this, ScrollJobActivity.class);
                startActivity(intent);
            }
        });
        // Set Home selected
        bottomNavigationView.setSelectedItemId(R.id.profile);
        // Perform item selected listener
        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {

            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch(item.getItemId()) {
                    case R.id.history:
                        startActivity(new Intent(getApplicationContext(), ApplicationHistoryActivity.class));
                        overridePendingTransition(0, 0);
                        return true;
                    case R.id.home:
                        startActivity(new Intent(getApplicationContext(), ScrollJobActivity.class));
                        overridePendingTransition(0, 0);
                        return true;
                    case R.id.profile:
                        return true;
                }
                return false;
            }
        });
    } else {
        title.setText(getString(R.string.applicant_profile));
        back.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Intent intent = new Intent(ProfileActivity.this, ScrollApplicationActivity.class);
                startActivity(intent);
            }
        });
        Utils.disableButton(bottomNavigationView);
    }
}
Also used : LoginActivity(com.example.nftscmers.commonactivities.LoginActivity) ApplicantModel(com.example.nftscmers.objectmodels.ApplicantModel) SkillsFragment(com.example.nftscmers.fragments.SkillsFragment) Intent(android.content.Intent) MenuItem(android.view.MenuItem) ApplicantDb(com.example.nftscmers.db.ApplicantDb) ImageView(android.widget.ImageView) View(android.view.View) BottomNavigationView(com.google.android.material.bottomnavigation.BottomNavigationView) TextView(android.widget.TextView) ListView(android.widget.ListView) BottomNavigationView(com.google.android.material.bottomnavigation.BottomNavigationView) YesNoDialogFragment(com.example.nftscmers.fragments.YesNoDialogFragment) ScrollApplicationActivity(com.example.nftscmers.employeractivities.ScrollApplicationActivity)

Aggregations

Intent (android.content.Intent)6 ApplicantDb (com.example.nftscmers.db.ApplicantDb)6 View (android.view.View)5 ApplicantModel (com.example.nftscmers.objectmodels.ApplicantModel)5 DocumentReference (com.google.firebase.firestore.DocumentReference)5 MenuItem (android.view.MenuItem)4 BottomNavigationView (com.google.android.material.bottomnavigation.BottomNavigationView)4 TextView (android.widget.TextView)3 ApplicationDb (com.example.nftscmers.db.ApplicationDb)3 JobDb (com.example.nftscmers.db.JobDb)3 JobModel (com.example.nftscmers.objectmodels.JobModel)3 Button (android.widget.Button)2 ImageView (android.widget.ImageView)2 ListView (android.widget.ListView)2 FeedbackActivity (com.example.nftscmers.commonactivities.FeedbackActivity)2 EmployerDb (com.example.nftscmers.db.EmployerDb)2 SkillsFragment (com.example.nftscmers.fragments.SkillsFragment)2 ApplicationModel (com.example.nftscmers.objectmodels.ApplicationModel)2 FirebaseFirestore (com.google.firebase.firestore.FirebaseFirestore)2 SwipeFlingAdapterView (com.lorentzos.flingswipe.SwipeFlingAdapterView)2