mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-21 23:29:52 +01:00
Merge branch '1484-wait-for-component-to-be-created' into 'master'
[android] AliasFragment: Wait for activity component to be created Closes #1484 See merge request briar/briar!1022
This commit is contained in:
@@ -15,6 +15,7 @@ import org.briarproject.bramble.api.contact.Contact;
|
|||||||
import org.briarproject.briar.R;
|
import org.briarproject.briar.R;
|
||||||
import org.briarproject.briar.android.activity.BriarActivity;
|
import org.briarproject.briar.android.activity.BriarActivity;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import static java.util.Objects.requireNonNull;
|
import static java.util.Objects.requireNonNull;
|
||||||
@@ -28,6 +29,7 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
|
|||||||
|
|
||||||
private ConversationViewModel viewModel;
|
private ConversationViewModel viewModel;
|
||||||
private EditText aliasEditText;
|
private EditText aliasEditText;
|
||||||
|
private Button setButton;
|
||||||
|
|
||||||
public static AliasDialogFragment newInstance() {
|
public static AliasDialogFragment newInstance() {
|
||||||
return new AliasDialogFragment();
|
return new AliasDialogFragment();
|
||||||
@@ -38,35 +40,40 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
setStyle(STYLE_NO_TITLE, R.style.BriarDialogTheme);
|
setStyle(STYLE_NO_TITLE, R.style.BriarDialogTheme);
|
||||||
|
|
||||||
if (getActivity() == null) return;
|
|
||||||
((BriarActivity) getActivity()).getActivityComponent().inject(this);
|
|
||||||
viewModel = ViewModelProviders.of(getActivity(), viewModelFactory)
|
|
||||||
.get(ConversationViewModel.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater,
|
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||||
ViewGroup container, Bundle savedInstanceState) {
|
ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
|
||||||
View v = inflater.inflate(R.layout.fragment_alias_dialog, container,
|
View v = inflater.inflate(R.layout.fragment_alias_dialog, container,
|
||||||
false);
|
false);
|
||||||
|
|
||||||
aliasEditText = v.findViewById(R.id.aliasEditText);
|
aliasEditText = v.findViewById(R.id.aliasEditText);
|
||||||
Contact contact = requireNonNull(viewModel.getContact().getValue());
|
setButton = v.findViewById(R.id.setButton);
|
||||||
String alias = contact.getAlias();
|
|
||||||
aliasEditText.setText(alias);
|
|
||||||
if (alias != null) aliasEditText.setSelection(alias.length());
|
|
||||||
|
|
||||||
Button setButton = v.findViewById(R.id.setButton);
|
|
||||||
setButton.setOnClickListener(v1 -> {
|
|
||||||
viewModel.setContactAlias(aliasEditText.getText().toString());
|
|
||||||
getDialog().dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
Button cancelButton = v.findViewById(R.id.cancelButton);
|
Button cancelButton = v.findViewById(R.id.cancelButton);
|
||||||
cancelButton.setOnClickListener(v1 -> getDialog().cancel());
|
cancelButton.setOnClickListener(v1 -> getDialog().cancel());
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
||||||
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
BriarActivity a = (BriarActivity) requireNonNull(getActivity());
|
||||||
|
a.getActivityComponent().inject(this);
|
||||||
|
|
||||||
|
viewModel = ViewModelProviders.of(getActivity(), viewModelFactory)
|
||||||
|
.get(ConversationViewModel.class);
|
||||||
|
|
||||||
|
Contact contact = requireNonNull(viewModel.getContact().getValue());
|
||||||
|
String alias = contact.getAlias();
|
||||||
|
aliasEditText.setText(alias);
|
||||||
|
if (alias != null) aliasEditText.setSelection(alias.length());
|
||||||
|
|
||||||
|
setButton.setOnClickListener(v1 -> {
|
||||||
|
viewModel.setContactAlias(aliasEditText.getText().toString());
|
||||||
|
getDialog().dismiss();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user