package com.quickblox.sample.user.activities; import android.content.Context; import android.content.Intent; import android.databinding.DataBindingUtil; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.EditText; import com.quickblox.core.QBEntityCallback; import com.quickblox.core.exception.QBResponseException; import com.quickblox.core.helper.StringifyArrayList; import com.quickblox.sample.core.utils.Toaster; import com.quickblox.sample.user.R; import com.quickblox.sample.user.databinding.ActivityShowUserBinding; import com.quickblox.sample.user.helper.DataHolder; import com.quickblox.users.QBUsers; import com.quickblox.users.model.QBUser; public class ShowUserActivity extends BaseActivity { private static final String QB_USER = "qbUser"; private QBUser qbUser; private boolean currentUserSignIn; private EditText fullNameEditText; private EditText emailEditText; private EditText phoneNumberEditText; private EditText tagsEditText; private ActivityShowUserBinding showUserBinding; public static void start(Context context, QBUser qbUser) { Intent intent = new Intent(context, ShowUserActivity.class); intent.putExtra(QB_USER, qbUser); context.startActivity(intent); } @Override public void onCreate(Bundle savedInstanceBundle) { super.onCreate(savedInstanceBundle); initUI(); qbUser = (QBUser) getIntent().getSerializableExtra(QB_USER); showUserBinding.setUser(qbUser); setFieldsFocusable(qbUser); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_sign_in_up, menu); menu.getItem(0).setVisible(currentUserSignIn); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_sign_in_up: updateProfile(); return true; default: return super.onOptionsItemSelected(item); } } @Override protected void initUI() { actionBar.setDisplayHomeAsUpEnabled(true); showUserBinding = DataBindingUtil.setContentView(this, R.layout.activity_show_user); fullNameEditText = _findViewById(R.id.full_name_textview); emailEditText = _findViewById(R.id.email_textview); phoneNumberEditText = _findViewById(R.id.phone_textview); tagsEditText = _findViewById(R.id.tag_textview); } private void setFieldsFocusable(QBUser qbUser) { if (DataHolder.getInstance().isSignedIn()) { currentUserSignIn = DataHolder.getInstance().getSignInQbUser().equals(qbUser); } fullNameEditText.setEnabled(currentUserSignIn); emailEditText.setEnabled(currentUserSignIn); phoneNumberEditText.setEnabled(currentUserSignIn); tagsEditText.setEnabled(currentUserSignIn); } private void updateProfile() { String fullName = fullNameEditText.getText().toString().trim(); String email = emailEditText.getText().toString().trim(); String phoneNumber = phoneNumberEditText.getText().toString().trim(); String tags = tagsEditText.getText().toString().trim(); StringifyArrayList<String> tagsArray = new StringifyArrayList<>(); tagsArray.add(tags); qbUser.setFullName(fullName); qbUser.setEmail(email); qbUser.setPhone(phoneNumber); qbUser.setTags(tagsArray); QBUsers.updateUser(qbUser).performAsync(new QBEntityCallback<QBUser>() { @Override public void onSuccess(QBUser user, Bundle args) { int location = DataHolder.getInstance().getQBUsers().indexOf(user); DataHolder.getInstance().updateQbUserList(location, user); DataHolder.getInstance().setSignInQbUser(user); Toaster.shortToast(R.string.update); progressDialog.dismiss(); finish(); } @Override public void onError(QBResponseException errors) { progressDialog.dismiss(); View rootLayout = findViewById(R.id.activity_show_user); showSnackbarError(rootLayout, R.string.errors, errors, new View.OnClickListener() { @Override public void onClick(View v) { updateProfile(); } }); } }); progressDialog.show(); } }