mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 19:29:06 +01:00
[android] pass ContactId via ViewModel to AliasDialogFragment
This commit is contained in:
@@ -12,7 +12,6 @@ import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
|
||||
import org.briarproject.bramble.api.contact.Contact;
|
||||
import org.briarproject.bramble.api.contact.ContactId;
|
||||
import org.briarproject.briar.R;
|
||||
import org.briarproject.briar.android.activity.BriarActivity;
|
||||
|
||||
@@ -28,28 +27,16 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
|
||||
ViewModelProvider.Factory viewModelFactory;
|
||||
|
||||
private ConversationViewModel viewModel;
|
||||
private ContactId contactId;
|
||||
private EditText aliasEditText;
|
||||
|
||||
public static AliasDialogFragment newInstance(ContactId id) {
|
||||
AliasDialogFragment f = new AliasDialogFragment();
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putInt("contactId", id.getInt());
|
||||
f.setArguments(args);
|
||||
|
||||
return f;
|
||||
public static AliasDialogFragment newInstance() {
|
||||
return new AliasDialogFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
if (getArguments() == null) throw new IllegalArgumentException();
|
||||
int contactIdInt = getArguments().getInt("contactId", -1);
|
||||
if (contactIdInt == -1) throw new IllegalArgumentException();
|
||||
contactId = new ContactId(contactIdInt);
|
||||
|
||||
setStyle(STYLE_NO_TITLE, R.style.BriarDialogTheme);
|
||||
|
||||
if (getActivity() == null) return;
|
||||
@@ -73,8 +60,7 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
|
||||
|
||||
Button setButton = v.findViewById(R.id.setButton);
|
||||
setButton.setOnClickListener(v1 -> {
|
||||
viewModel.setContactAlias(contactId,
|
||||
aliasEditText.getText().toString());
|
||||
viewModel.setContactAlias(aliasEditText.getText().toString());
|
||||
getDialog().dismiss();
|
||||
});
|
||||
|
||||
|
||||
@@ -293,7 +293,7 @@ public class ConversationActivity extends BriarActivity
|
||||
startActivityForResult(intent, REQUEST_INTRODUCTION);
|
||||
return true;
|
||||
case R.id.action_set_alias:
|
||||
AliasDialogFragment.newInstance(contactId).show(
|
||||
AliasDialogFragment.newInstance().show(
|
||||
getSupportFragmentManager(), AliasDialogFragment.TAG);
|
||||
return true;
|
||||
case R.id.action_social_remove_person:
|
||||
|
||||
@@ -22,6 +22,7 @@ import java.util.logging.Logger;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import static java.util.Objects.requireNonNull;
|
||||
import static java.util.logging.Level.WARNING;
|
||||
import static java.util.logging.Logger.getLogger;
|
||||
import static org.briarproject.bramble.util.LogUtils.logDuration;
|
||||
@@ -60,20 +61,19 @@ public class ConversationViewModel extends AndroidViewModel {
|
||||
void setContactId(ContactId contactId) {
|
||||
if (this.contactId == null) {
|
||||
this.contactId = contactId;
|
||||
loadContact(contactId);
|
||||
loadContact();
|
||||
} else if (!contactId.equals(this.contactId)) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
private void loadContact(ContactId contactId) {
|
||||
if (!contactId.equals(this.contactId)) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
private void loadContact() {
|
||||
dbExecutor.execute(() -> {
|
||||
try {
|
||||
long start = now();
|
||||
contact.postValue(contactManager.getContact(contactId));
|
||||
Contact c =
|
||||
contactManager.getContact(requireNonNull(contactId));
|
||||
contact.postValue(c);
|
||||
logDuration(LOG, "Loading contact", start);
|
||||
} catch (NoSuchContactException e) {
|
||||
contactDeleted.postValue(true);
|
||||
@@ -83,15 +83,12 @@ public class ConversationViewModel extends AndroidViewModel {
|
||||
});
|
||||
}
|
||||
|
||||
void setContactAlias(ContactId contactId, String alias) {
|
||||
if (!contactId.equals(this.contactId)) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
void setContactAlias(String alias) {
|
||||
dbExecutor.execute(() -> {
|
||||
try {
|
||||
contactManager.setContactAlias(contactId,
|
||||
contactManager.setContactAlias(requireNonNull(contactId),
|
||||
alias.isEmpty() ? null : alias);
|
||||
loadContact(contactId);
|
||||
loadContact();
|
||||
} catch (DbException e) {
|
||||
logException(LOG, WARNING, e);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user