package net.coding.program.project.detail;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.TextView;
import net.coding.program.ImagePagerFragment;
import net.coding.program.R;
import net.coding.program.common.BlankViewDisplay;
import net.coding.program.common.Global;
import net.coding.program.common.util.FileUtil;
import net.coding.program.model.AttachmentFileObject;
import net.coding.program.project.detail.file.FileDynamicActivity;
import net.coding.program.project.detail.file.TxtEditActivity_;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.OnActivityResult;
import org.androidannotations.annotations.OptionsItem;
import org.androidannotations.annotations.ViewById;
import org.json.JSONException;
import org.json.JSONObject;
/**
* 展示某一项目文档目录下面TXT文件的Activity
* Created by yangzhen
*/
@EActivity(R.layout.activity_attachments_text)
public class AttachmentsTextDetailActivity extends AttachmentsDetailBaseActivity {
private static final int RESULT_MODIFY_TXT = 1;
@ViewById
TextView textView;
@ViewById
View blankLayout;
boolean downloadFileSuccess = false;
String urlFiles = Global.HOST_API + "/project/%s/files/%s/view";
AttachmentFileObject mFiles = new AttachmentFileObject();
@AfterViews
protected final void initAttachmentsTextDetailActivity() {
if (mExtraFile != null) {
textView.setText(Global.readTextFile(mExtraFile));
findViewById(R.id.layout_dynamic_history).setVisibility(View.GONE);
} else {
urlFiles = String.format(urlFiles, mProjectObjectId, mAttachmentFileObject.file_id);
if (mFile.exists()) {
textView.setText(Global.readTextFile(mFile));
} else {
showDialogLoading();
getFileUrlFromNetwork();
}
}
}
private void updateLoadFile() {
if (mAttachmentFileObject == null || mProjectObjectId == 0) {
return;
}
mFile = FileUtil.getDestinationInExternalPublicDir(getFileDownloadPath(), mAttachmentFileObject.getSaveName(mProjectObjectId));
if (mFile != null && mFile.exists()) {
textView.setText(Global.readTextFile(mFile));
}
}
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.project_attachment_image, menu);
// if (!mAttachmentFileObject.isOwner()) {
// menu.findItem(R.id.action_delete).setVisible(false);
// }
//
// return super.onCreateOptionsMenu(menu);
// }
private void getFileUrlFromNetwork() {
getNetwork(urlFiles, urlFiles);
}
@Override
protected int getMenuResourceId() {
return R.menu.project_attachment_txt;
}
@Override
public void parseJson(int code, JSONObject respanse, String tag, int pos, Object data) throws JSONException {
super.parseJson(code, respanse, tag, pos, data);
if (tag.equals(urlFiles)) {
if (code == 0) {
hideProgressDialog();
JSONObject file = respanse.getJSONObject("data").getJSONObject("file");
mFiles = new AttachmentFileObject(file);
String content = respanse.getJSONObject("data").optString("content");
textView.setText(content);
invalidateOptionsMenu();
} else {
if (code == ImagePagerFragment.HTTP_CODE_FILE_NOT_EXIST) {
BlankViewDisplay.setBlank(0, this, true, blankLayout, null);
} else {
BlankViewDisplay.setBlank(0, this, false, blankLayout, new View.OnClickListener() {
@Override
public void onClick(View v) {
getFileUrlFromNetwork();
}
});
}
hideProgressDialog();
showErrorMsg(code, respanse);
}
}
}
@OptionsItem
public void action_add() {
}
@OptionsItem
protected final void action_edit() {
FileDynamicActivity.ProjectFileParam param = new FileDynamicActivity.ProjectFileParam(mAttachmentFileObject,
mProject);
TxtEditActivity_.intent(this)
.mParam(param)
.startForResult(RESULT_MODIFY_TXT);
}
@OnActivityResult(RESULT_MODIFY_TXT)
protected void onResultModify(int result, Intent intent) {
if (result == Activity.RESULT_OK) {
setResult(result, intent);
mAttachmentFileObject = (AttachmentFileObject) intent.getSerializableExtra(AttachmentFileObject.RESULT);
updateLoadFile();
}
}
}