package cn.koolcloud.ipos.appstore.dialogs;
import org.json.JSONObject;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RatingBar;
import android.widget.TextView;
import cn.koolcloud.ipos.appstore.AppStorePreference;
import cn.koolcloud.ipos.appstore.R;
import cn.koolcloud.ipos.appstore.api.ApiService;
import cn.koolcloud.ipos.appstore.constant.Constants;
import cn.koolcloud.ipos.appstore.entity.App;
import cn.koolcloud.ipos.appstore.entity.ResultSet;
import cn.koolcloud.ipos.appstore.interfaces.CallBack;
import cn.koolcloud.ipos.appstore.ui.BaseActivity;
import cn.koolcloud.ipos.appstore.utils.JsonUtils;
import cn.koolcloud.ipos.appstore.utils.Logger;
import cn.koolcloud.ipos.appstore.utils.ToastUtil;
import cn.koolcloud.ipos.appstore.utils.Utils;
public class SoftwareCommentDialog extends BaseActivity implements View.OnClickListener {
private static final String TAG = "SoftwareCommentDialog";
public static final int SOFTWARE_COMMNET_DIALOG_REQUEST = 1;
private TextView titleTextView;
private EditText commentEditText;
private Button okButton;
private Button cancelButton;
private RatingBar ratingBar;
private App app = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.software_detail_remark);
app = (App) getIntent().getSerializableExtra(Constants.SER_KEY);
initViews();
}
private void initViews() {
titleTextView = (TextView) findViewById(R.id.dialog_title_text);
titleTextView.setText(Utils.getResourceString(getApplicationContext(), R.string.dialog_software_comment_title));
okButton = (Button) findViewById(R.id.ok);
okButton.setOnClickListener(this);
cancelButton = (Button) findViewById(R.id.cancel);
cancelButton.setOnClickListener(this);
commentEditText = (EditText) findViewById(R.id.sw_mark_edit);
ratingBar = (RatingBar) findViewById(R.id.edit_ratingBar);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.ok:
String comment = commentEditText.getText().toString();
int rating = (int) ratingBar.getRating();
if (!isCommentsEmpty(comment, rating)) {
commitComment(comment, rating);
} else {
ToastUtil.showToast(application, R.string.comment_rating_not_null);
}
break;
case R.id.cancel:
finish();
break;
default:
break;
}
}
private void commitComment(String comment, int rating) {
ApiService.commitComment(application, AppStorePreference.getTerminalID(application),
app.getId(), comment, rating, commitCommentCallBack);
}
//get categories call back
private CallBack commitCommentCallBack = new CallBack() {
@Override
public void onCancelled() {
dismissLoading();
}
@Override
public void onStart() {
showLoading();
}
@Override
public void onSuccess(JSONObject jsonObj) {
try {
String retCode = "";
String data = "";
Logger.d("-------commit Comment=" + jsonObj.toString());
retCode = JsonUtils.getStringValue(jsonObj, Constants.REQUEST_STATUS);
data = JsonUtils.getStringValue(jsonObj, Constants.REQUEST_DATA);
/*if (!Constants.REQUEST_STATUS_OK.equals(retCode)) {
onFailure(data);
} else {
if (TextUtils.isEmpty(data)) {
onFailure(Utils.getResourceString(getApplicationContext(), R.string.nonetwork_prompt_server_error));
} else {
}
}*/
if (retCode.equals(Constants.REQUEST_STATUS_OK)) {
ToastUtil.showToast(application, R.string.remark_app_success);
} else {
ToastUtil.showToast(application, R.string.remark_app_failure);
}
finish();
dismissLoading();
} catch (Exception e) {
onFailure("commit comment response error!");
}
}
@Override
public void onFailure(String msg) {
dismissLoading();
if (msg.contains(ResultSet.NET_ERROR.describe)) {
ToastUtil.showToast(application, R.string.nonetwork_prompt_server_error);
}
}
};
/**
* deal with not responding on clicking out side of dialog
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
return false;
}
private boolean isCommentsEmpty(String comment, int rating) {
boolean result = false;
if (TextUtils.isEmpty(comment.trim())) {
return true;
} else if (rating == 0) {
return true;
}
return result;
}
}