package tech.shipr.socialdev.view; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import com.google.firebase.FirebaseApp; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.UserProfileChangeRequest; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import com.squareup.picasso.Picasso; import org.jetbrains.annotations.NotNull; import tech.shipr.socialdev.R; import tech.shipr.socialdev.model.Profile; public class EditProfile extends AppCompatActivity { String githubUrl = "https://github.com/"; private EditText usernameEdit; private EditText titleEditText; private EditText progSkillsEditText; private String profilePic; private String name; private String username; private String title; private String progSkill; private String email; private String mobilenumber; private EditText emailEdit; private EditText ageEditemailEdit; private EditText langEdit; private EditText gitEdit; private EditText twitEdit; private EditText linkEdit; private EditText instaEdit; private EditText mobileNumberEditText; private DatabaseReference mprofileDatabaseReference; private String fullName; private String languages; private String github; private String twitter; private String linkedin; private String insta; private Profile mProfile; private static final int RC_PROFILE_PHOTO_PICKER = 4; String linkedinUrl = "https://linkedin.com/in/"; String twitterUrl = "https://twitter.com/"; String instaUrl = "https://instagram.com/"; /** * Add support for the following in here * DP * age * languages * prog languages * job status * projecrs * eduction\ * about * custom * personal site * resume * role */ private EditText nameEditText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_profile); //SETTING TOOLBAR FOR WALLFRAGMENR Toolbar toolbar = findViewById(R.id.toolbar); TextView toolbarTitle = findViewById(R.id.toolbarTitle); toolbarTitle.setText(getString(R.string.edit_profile)); //set toolbar appearance //for crate home button setSupportActionBar(toolbar); getSupportActionBar().setTitle(""); getSupportActionBar().setDisplayHomeAsUpEnabled(true); nameEditText = findViewById(R.id.nameEditText); usernameEdit = findViewById(R.id.usernameEditText); titleEditText = findViewById(R.id.titleEditText); progSkillsEditText = findViewById(R.id.proskillEditText); emailEdit = findViewById(R.id.emailEditText); gitEdit = findViewById(R.id.GithubEditText); twitEdit = findViewById(R.id.TwitterEditText); linkEdit = findViewById(R.id.LinkedinEditText); instaEdit = findViewById(R.id.InstaEditText); mobileNumberEditText = findViewById(R.id.mobileNumberEditText); ImageView profileImageView = findViewById(R.id.img_profile_userimage); // mProgressBar = findViewById(R.id.pProgressBar); FirebaseApp.initializeApp(this); FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance(); FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); assert user != null; String id = user.getUid(); mprofileDatabaseReference = mFirebaseDatabase.getReference().child("users" + "/" + id + "/" + "profile"); //mProgressBarPresent = true; Uri photoUri = user.getPhotoUrl(); String privateEmail = user.getEmail(); setEditIfNotEmpty(privateEmail, emailEdit); // Check if user's email is verified boolean emailVerified = user.isEmailVerified(); //TODO Add a listener and if false, add verift email button ValueEventListener postListener = new ValueEventListener() { @Override public void onDataChange(@NotNull DataSnapshot dataSnapshot) { // Get Post object and use the values to update the UI mProfile = dataSnapshot.getValue(Profile.class); if (mProfile != null) { name = mProfile.getFullName(); username = mProfile.getUsername(); title = mProfile.getTitle(); progSkill = mProfile.getProgSkill(); mobilenumber = mProfile.getMobilenumber(); linkedin = mProfile.getLinkedin(); insta = mProfile.getInsta(); twitter = mProfile.getTwitter(); github = mProfile.getGithub(); setEditIfNotEmpty(name, nameEditText); setEditIfNotEmpty(username, usernameEdit); setEditIfNotEmpty(title, titleEditText); setEditIfNotEmpty(progSkill, progSkillsEditText); setEditIfNotEmpty(github, gitEdit); setEditIfNotEmpty(twitter, twitEdit); setEditIfNotEmpty(linkedin, linkEdit); setEditIfNotEmpty(insta, instaEdit); setEditIfNotEmpty(mobilenumber, mobileNumberEditText); if (photoUri != null && !photoUri.equals(Uri.EMPTY)) { Picasso.get().load(photoUri).fit().into(profileImageView); } } // mProgressBarCheck(); } @Override public void onCancelled(@NotNull DatabaseError databaseError) { // Getting Post failed, log a message Log.w("ProfileActivity", "loadPost:onCancelled", databaseError.toException()); // ... } }; mprofileDatabaseReference.addListenerForSingleValueEvent(postListener); } private void setEditIfNotEmpty(String sstring, EditText editText) { if (sstring != null && !sstring.isEmpty()) { editText.setText(sstring); } } private void setTextIfNotEmpty(String ssstring, TextView seditText) { if (ssstring != null && !ssstring.isEmpty()) { seditText.setText(ssstring); } } private void getVariablesFromEditText() { fullName = nameEditText.getText().toString(); username = usernameEdit.getText().toString(); title = titleEditText.getText().toString(); progSkill = progSkillsEditText.getText().toString(); // email = emailEdit.getText().toString(); // age = ageEditemailEdit.getText().toString(); // languages = langEdit.getText().toString(); github = gitEdit.getText().toString(); twitter = twitEdit.getText().toString(); linkedin = linkEdit.getText().toString(); insta = instaEdit.getText().toString(); mobilenumber = mobileNumberEditText.getText().toString(); if (linkedin != null && !linkedin.isEmpty() && !linkedin.contains("http")) { linkedin = linkedinUrl + linkedin; } if (insta != null && !insta.isEmpty() && !insta.contains("http")) { insta = instaUrl + insta; } if (twitter != null && !twitter.isEmpty() && !twitter.contains("http")) { twitter = twitterUrl + twitter; } if (github != null && !github.isEmpty() && !github.contains("http")) { github = githubUrl + github; } } public void submit(View v) { getVariablesFromEditText(); mProfile = new Profile( fullName, username, title, null, "", languages, github, twitter, linkedin, progSkill, insta, mobilenumber ); mprofileDatabaseReference.setValue(mProfile); Toast.makeText(this, "Updated Profile", Toast.LENGTH_SHORT).show(); finish(); } private void clearPic() { FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder() .setPhotoUri(null) .build(); } public void openImagePicker() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/jpeg"); intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true); startActivityForResult(Intent.createChooser(intent, "Complete action using"), RC_PROFILE_PHOTO_PICKER); } /* private void mProgressBarCheck(){ if(mProgressBarPresent){ mProgressBar.setVisibility(View.GONE); mProgressBarPresent=false; } }*/ }