package com.uservoice.uservoicesdk.dialog;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.uservoice.uservoicesdk.R;
import com.uservoice.uservoicesdk.Session;
import com.uservoice.uservoicesdk.flow.SigninManager;
import com.uservoice.uservoicesdk.model.Comment;
import com.uservoice.uservoicesdk.model.Suggestion;
import com.uservoice.uservoicesdk.ui.DefaultCallback;
import com.uservoice.uservoicesdk.ui.Utils;
@SuppressLint("ValidFragment")
public class CommentDialogFragment extends DialogFragmentBugfixed {
private final Suggestion suggestion;
private final SuggestionDialogFragment suggestionDialog;
public CommentDialogFragment(Suggestion suggestion, SuggestionDialogFragment suggestionDialog) {
this.suggestion = suggestion;
this.suggestionDialog = suggestionDialog;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
if (!Utils.isDarkTheme(getActivity())) {
builder.setInverseBackgroundForced(true);
}
builder.setTitle(R.string.uv_post_a_comment);
View view = getActivity().getLayoutInflater().inflate(R.layout.uv_comment_dialog, null);
final EditText textField = (EditText) view.findViewById(R.id.uv_comment_edit_text);
View email = view.findViewById(R.id.uv_email);
View name = view.findViewById(R.id.uv_name);
final EditText emailField = (EditText) email.findViewById(R.id.uv_text_field);
final EditText nameField = (EditText) name.findViewById(R.id.uv_text_field);
if (Session.getInstance().getUser() != null) {
email.setVisibility(View.GONE);
name.setVisibility(View.GONE);
} else {
emailField.setText(Session.getInstance().getEmail());
((TextView) email.findViewById(R.id.uv_header_text)).setText(R.string.uv_your_email_address);
nameField.setText(Session.getInstance().getName());
((TextView) name.findViewById(R.id.uv_header_text)).setText(R.string.uv_your_name);
}
builder.setView(view);
builder.setNegativeButton(R.string.uv_cancel, null);
final Activity context = getActivity();
builder.setPositiveButton(R.string.uv_post_comment, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
final String text = textField.getText().toString();
if (!text.trim().isEmpty()) {
SigninManager.signIn(getActivity(), emailField.getText().toString(), nameField.getText().toString(), new Runnable() {
@Override
public void run() {
Comment.createComment(suggestion, text, new DefaultCallback<Comment>(getActivity()) {
@Override
public void onModel(Comment model) {
Toast.makeText(context, R.string.uv_msg_comment_posted, Toast.LENGTH_SHORT).show();
suggestionDialog.commentPosted(model);
}
});
}
});
}
}
});
AlertDialog dialog = builder.create();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
return dialog;
}
}