package net.coding.program.project.detail.file;
import android.content.Intent;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
import net.coding.program.R;
import net.coding.program.common.Global;
import net.coding.program.common.ui.BackActivity;
import net.coding.program.common.umeng.UmengEvent;
import net.coding.program.model.AttachmentFileObject;
import net.coding.program.model.ProjectObject;
import net.coding.program.model.RequestData;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.Extra;
import org.androidannotations.annotations.ViewById;
import org.json.JSONException;
import org.json.JSONObject;
@EActivity(R.layout.activity_share_file_link)
public class ShareFileLinkActivity extends BackActivity {
private static final String TAG_SHARE_LINK_ON = "TAG_SHARE_LINK_ON";
private static final String TAG_SHARE_LINK_OFF = "TAG_SHARE_LINK_OFF";
@Extra
ProjectObject mProject;
@Extra
AttachmentFileObject mAttachmentFileObject;
@ViewById
View layoutShareLink;
@ViewById
CheckBox clickSettingShare;
@ViewById
TextView linkContent;
private CompoundButton.OnCheckedChangeListener settingShareLister = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (clickSettingShare.isChecked()) {
RequestData request = mAttachmentFileObject.getHttpShareLinkOn(mProject);
postNetwork(request, TAG_SHARE_LINK_ON);
} else {
String url = mAttachmentFileObject.getHttpShareLinkOff();
deleteNetwork(url, TAG_SHARE_LINK_OFF);
}
showProgressBar(true, "");
}
};
@AfterViews
protected final void initShareFileLinkActivity() {
clickSettingShare.setOnCheckedChangeListener(null);
if (mAttachmentFileObject.isShared()) {
clickSettingShare.setChecked(true);
} else {
clickSettingShare.setChecked(false);
}
clickSettingShare.setOnCheckedChangeListener(settingShareLister);
bindData();
}
@Click
void clickShareLink() {
String shareLink = mAttachmentFileObject.getShareLink();
Global.copy(this, shareLink);
showButtomToast("共享链接已复制");
finish();
}
@Override
public void parseJson(int code, JSONObject respanse, String tag, int pos, Object data) throws JSONException {
if (tag.equals(TAG_SHARE_LINK_ON)) {
showProgressBar(false);
if (code == 0) {
umengEvent(UmengEvent.FILE, "开启共享");
AttachmentFileObject.Share mShare = new AttachmentFileObject.Share(respanse.optJSONObject("data"));
mAttachmentFileObject.setShereLink(mShare.getUrl());
bindData();
} else {
showErrorMsg(code, respanse);
}
} else if (tag.equals(TAG_SHARE_LINK_OFF)) {
showProgressBar(false);
if (code == 0) {
umengEvent(UmengEvent.FILE, "关闭共享");
mAttachmentFileObject.setShereLink("");
bindData();
} else {
showErrorMsg(code, respanse);
}
}
}
private void bindData() {
if (mAttachmentFileObject.isShared()) {
layoutShareLink.setVisibility(View.VISIBLE);
linkContent.setText(mAttachmentFileObject.getShareLink());
} else {
layoutShareLink.setVisibility(View.GONE);
}
}
@Override
public void finish() {
Intent intent = new Intent();
intent.putExtra("data", mAttachmentFileObject);
setResult(RESULT_OK, intent);
super.finish();
}
}