package net.coding.program.project.detail;
import android.content.Intent;
import android.graphics.drawable.GradientDrawable;
import android.text.TextUtils;
import android.widget.EditText;
import android.widget.ImageView;
import com.loopj.android.http.RequestParams;
import net.coding.program.R;
import net.coding.program.common.Global;
import net.coding.program.common.base.MyJsonResponse;
import net.coding.program.common.network.MyAsyncHttpClient;
import net.coding.program.common.ui.BackActivity;
import net.coding.program.model.TopicLabelObject;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.OnActivityResult;
import org.androidannotations.annotations.OptionsItem;
import org.androidannotations.annotations.OptionsMenu;
import org.androidannotations.annotations.ViewById;
import org.json.JSONObject;
@EActivity(R.layout.activity_modify_label)
@OptionsMenu(R.menu.modify_label)
public class ModifyLabelActivity extends BackActivity {
private static final int RESULT_PICK_COLOR = 1;
@Extra
TopicLabelObject labelObject;
@Extra
String projectPath;
@ViewById
ImageView colorPreview;
@ViewById
EditText editText;
@AfterViews
final void initModifyLabelActivity() {
labelObject.color = 0xFF000000 | labelObject.color;
editText.setText(labelObject.name);
editText.setSelection(labelObject.name.length());
updateColorPreview();
}
@Click
void colorPreview() {
PickLabelColorActivity_.intent(this)
.generateColor(labelObject.getColor())
.startForResult(RESULT_PICK_COLOR);
}
@OnActivityResult(RESULT_PICK_COLOR)
void onResultPickColor(int result, @OnActivityResult.Extra int resultData) {
if (result == RESULT_OK) {
labelObject.color = resultData;
updateColorPreview();
}
}
private void updateColorPreview() {
GradientDrawable bgDrawable = (GradientDrawable) colorPreview.getBackground();
if (bgDrawable != null) {
bgDrawable.setColor(labelObject.getColor());
}
}
@OptionsItem
void action_save() {
String newName = editText.getText().toString();
if (TextUtils.isEmpty(newName)) {
showButtomToast("名字不能为空");
return;
}
labelObject.name = newName;
String url = Global.HOST_API + projectPath + "/topics/label/" + labelObject.id;
RequestParams params = new RequestParams();
params.put("name", labelObject.name);
String colorStringr = String.format("#%06X", labelObject.getColor() & 0x00FFFFFF);
params.put("color", colorStringr);
MyAsyncHttpClient.put(this, url, params, new MyJsonResponse(this) {
@Override
public void onMySuccess(JSONObject response) {
super.onMySuccess(response);
Intent intent = new Intent();
intent.putExtra("resultData", labelObject);
setResult(RESULT_OK, intent);
finish();
}
@Override
public void onFinish() {
super.onFinish();
showProgressBar(false);
}
});
showProgressBar(true);
}
}