package tk.djcrazy.MyCC98.dialog;
import tk.djcrazy.MyCC98.R;
import tk.djcrazy.MyCC98.util.SysInfo;
import tk.djcrazy.libCC98.data.Issue;
import tk.djcrazy.libCC98.util.IssueSender;
import tk.djcrazy.libCC98.util.RequestResultListener;
import android.app.ProgressDialog;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import android.util.Log;
import com.github.rtyley.android.sherlock.roboguice.fragment.RoboSherlockDialogFragment;
import com.google.inject.Inject;
/**
* Created by zsy on 8/13/13.
*/
public class FeedbackDialog extends RoboSherlockDialogFragment {
private static final String TITLE = "发送反馈";
private static final String TITLE_REQUIRED = "别忘了填写标题哦";
private static final String ISSUE_SEND_SUCCESSFUL = "非常感谢,我们会尽快处理您的反馈";
private static final String ISSUE_SEND_FAILED = "啊噢,反馈发送失败";
private static final String PROGRESS_DIALOG_TITLE = "正在将以下内容发送至 GitHub";
private static final String TAG = "FeedbackDialog";
@Inject
private IssueSender issueSender;
private EditText issueTitle;
private EditText issueBody;
private Button sendIssue;
private Button cancelIssue;
private ProgressDialog progressDialog;
private String username;
private String userProfileURL;
public FeedbackDialog() {
}
public void setUserInfo(String username, String userProfileURL) {
this.username = username;
this.userProfileURL = userProfileURL;
}
private void finish() {
dismiss();
}
private String getIssueBody() {
return issueBody.getText().toString() + '\n' + SysInfo.getSystemSummary(getActivity(), username, userProfileURL);
}
private void setViews() {
getDialog().setTitle(TITLE);
sendIssue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String title = issueTitle.getText().toString();
if (title.isEmpty() || title.trim().isEmpty()) {
Toast.makeText(getActivity(), TITLE_REQUIRED, Toast.LENGTH_SHORT).show();
} else {
progressDialog = new ProgressDialog(getActivity());
String issueBodyString = getIssueBody();
progressDialog.setTitle(PROGRESS_DIALOG_TITLE);
progressDialog.setMessage(issueBodyString);
progressDialog.show();
issueSender.send(new Issue(title, issueBodyString), getActivity().getClass(),
new RequestResultListener<String>() {
@Override
public void onRequestComplete(String result) {
progressDialog.dismiss();
Toast.makeText(getActivity(), ISSUE_SEND_SUCCESSFUL, Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onRequestError(String msg) {
progressDialog.dismiss();
Toast.makeText(getActivity(), ISSUE_SEND_FAILED + "\n" + msg, Toast.LENGTH_SHORT).show();
}
});
}
}
});
cancelIssue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
//getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_feedback, container);
issueTitle = (EditText) view.findViewById(R.id.issue_title);
issueBody = (EditText) view.findViewById(R.id.issue_body);
sendIssue = (Button) view.findViewById(R.id.send_issue);
cancelIssue = (Button) view.findViewById(R.id.cancel_issue);
setViews();
return view;
}
}