package net.coding.program.task; import android.content.DialogInterface; import android.content.Intent; import android.support.v4.app.Fragment; import net.coding.program.R; import net.coding.program.common.Global; import net.coding.program.common.ui.BackActivity; import net.coding.program.model.TaskObject; import net.coding.program.project.detail.TopicAddActivity; import net.coding.program.project.detail.TopicAddActivity.TopicData; import net.coding.program.project.detail.TopicEditFragment; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.json.JSONException; import org.json.JSONObject; @EActivity(R.layout.activity_task_description) public class TaskDescriptionActivity extends BackActivity implements TaskDescrip, TopicEditFragment.SaveData { @Extra TaskObject.TaskDescription descriptionData; @Extra int taskId; @Extra String projectPath; // int projectId; String HOST_DESCRIPTION = Global.HOST_API + "/task/%s/description"; TaskDespEditFragment editFragment; Fragment previewFragment; private TopicData modifyData = new TopicData(); @AfterViews protected final void initTaskDescriptionActivity() { editFragment = TaskDespEditFragment_.builder().build(); previewFragment = TaskDespPreviewFragment_.builder().build(); String markdown = descriptionData.markdown; if (markdown.isEmpty()) { getSupportFragmentManager().beginTransaction().replace(R.id.container, editFragment).commit(); } else { modifyData.content = markdown; getSupportFragmentManager().beginTransaction().replace(R.id.container, previewFragment).commit(); } } @Override public void onBackPressed() { if (editFragment.isContentModify()) { showDialog("任务描述", "确定放弃此次编辑?", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }); } else { finish(); } } @Override public void parseJson(int code, JSONObject respanse, String tag, int pos, Object data) throws JSONException { if (tag.equals(HOST_DESCRIPTION)) { hideProgressDialog(); if (code == 0) { showButtomToast("修改描述成功"); setResult(RESULT_OK); finish(); } else { showErrorMsg(code, respanse); } } } @Override public void closeAndSave(String s) { Intent intent = new Intent(); intent.putExtra("data", s); setResult(RESULT_OK, intent); finish(); } @Override public String createLocateHtml(String s) { try { final String bubble = Global.readTextFile(getAssets().open("topic-android.html")); return bubble.replace("${webview_content}", s); } catch (Exception e) { Global.errorLog(e); return ""; } } @Override public void saveData(TopicData data) { modifyData = data; } @Override public TopicAddActivity.TopicData loadData() { return modifyData; } @Override public void switchPreview() { getSupportFragmentManager().beginTransaction().replace(R.id.container, previewFragment).commit(); } @Override public void switchEdit() { getSupportFragmentManager().beginTransaction().replace(R.id.container, editFragment).commit(); } @Override public void exit() { Intent intent = new Intent(); intent.putExtra("data", modifyData.content); setResult(RESULT_OK, intent); finish(); } @Override public String getProjectPath() { return projectPath; } // 有任务的项目必定是私有项目 @Override public boolean isProjectPublic() { return false; } }