|
|
@@ -1,46 +1,151 @@
|
|
|
package com.uas.appworks.activity;
|
|
|
|
|
|
+import android.Manifest;
|
|
|
import android.content.Intent;
|
|
|
-import android.os.Bundle;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.Gravity;
|
|
|
+import android.view.LayoutInflater;
|
|
|
import android.view.Menu;
|
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
|
import android.widget.EditText;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.PopupWindow;
|
|
|
import android.widget.TextView;
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
-import com.core.base.BaseActivity;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.common.LogUtil;
|
|
|
+import com.common.data.DateFormatUtil;
|
|
|
+import com.common.data.JSONUtil;
|
|
|
+import com.common.preferences.PreferenceUtils;
|
|
|
+import com.common.system.DisplayUtil;
|
|
|
+import com.core.app.MyApplication;
|
|
|
import com.core.model.SelectBean;
|
|
|
import com.core.utils.time.wheel.DateTimePicker;
|
|
|
import com.core.widget.view.Activity.SelectActivity;
|
|
|
import com.core.widget.view.SwitchView;
|
|
|
+import com.me.network.app.http.Method;
|
|
|
+import com.modular.apputils.activity.BaseNetActivity;
|
|
|
+import com.modular.apputils.listener.OnSmartHttpListener;
|
|
|
+import com.modular.apputils.network.Parameter;
|
|
|
+import com.modular.apputils.network.Tags;
|
|
|
+import com.modular.apputils.widget.VeriftyDialog;
|
|
|
import com.uas.appworks.R;
|
|
|
+import com.uas.appworks.datainquiry.Constants;
|
|
|
+import com.uas.appworks.model.Schedule;
|
|
|
+import com.uas.appworks.utils.ScheduleUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Calendar;
|
|
|
|
|
|
-public class SchedulerCreateActivity extends BaseActivity {
|
|
|
- private final String[] warns = {"不提醒", "开始时(默认)", "提醒前5分钟", "提醒前15分钟", "提醒前30分钟", "提醒前1小时", "提醒前一天"};
|
|
|
- private final String[] warns2 = {"不提醒", "当天8点(默认)", "当天9点", "提前一天8点", "提前一天9点"};
|
|
|
- private final String[] types = {"工作(默认)", "学习", "娱乐", "运动", "约会", "纪念日"};
|
|
|
- private final String[] repeats = {"不重复(默认)", "每天重复", "每周重复", "每月重复"};
|
|
|
+public class SchedulerCreateActivity extends BaseNetActivity {
|
|
|
+
|
|
|
+ private final int SUBMIT = 0x11;
|
|
|
+ private final int DELETE = 0x12;
|
|
|
+ private final int UPDATE = 0x13;
|
|
|
+
|
|
|
+ private final String[] warns = {"不提醒", "开始时", "提醒前5分钟", "提醒前15分钟", "提醒前30分钟", "提醒前1小时", "提醒前一天"};
|
|
|
+ private final String[] warns2 = {"不提醒", "当天8点", "当天9点", "提前一天8点", "提前一天9点"};
|
|
|
+ private final String[] types = {"工作", "学习", "娱乐", "运动", "约会", "纪念日"};
|
|
|
+ private final String[] repeats = {"不重复", "每天重复", "每周重复", "每月重复"};
|
|
|
|
|
|
private EditText contentEd;
|
|
|
private SwitchView allDaySv;
|
|
|
private TextView startTimeTv, endTimeTv, warnTimeTv, repeatTv, typeTv;
|
|
|
- private boolean submiting;
|
|
|
+ private boolean submiting;//正在提交
|
|
|
+ private boolean isEnable;//是否可以编辑
|
|
|
+ private boolean isUpdate;//是否更新
|
|
|
+ private Schedule mSchedule;//当前的日程对象
|
|
|
+ private PopupWindow setWindow;
|
|
|
|
|
|
|
|
|
- private boolean isEnable;
|
|
|
+ @Override
|
|
|
+ protected int getLayoutId() {
|
|
|
+ return R.layout.activity_scheduler_create;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
- protected void onCreate(Bundle savedInstanceState) {
|
|
|
- super.onCreate(savedInstanceState);
|
|
|
- setContentView(R.layout.activity_scheduler_create);
|
|
|
- isEnable = getIntent().getBooleanExtra("isEnable", true);
|
|
|
+ protected void init() throws Exception {
|
|
|
+ isEnable = getIntent().getBooleanExtra(Constants.Intents.ENABLE, true);
|
|
|
+ if (isEnable) {
|
|
|
+ initSchedule();
|
|
|
+ } else {
|
|
|
+ mSchedule = getIntent().getParcelableExtra(Constants.Intents.MODEL);
|
|
|
+ if (mSchedule == null) {
|
|
|
+ initSchedule();
|
|
|
+ }
|
|
|
+ }
|
|
|
findById();
|
|
|
+ initView();
|
|
|
updateEnable(isEnable);
|
|
|
}
|
|
|
|
|
|
+ private void initSchedule() {
|
|
|
+ mSchedule = new Schedule();
|
|
|
+ mSchedule.setStartTime(System.currentTimeMillis() + 1000 * 5 * 60);
|
|
|
+ mSchedule.setEndTime(System.currentTimeMillis() + 1000 * 10 * 60);
|
|
|
+ mSchedule.setRepeat(repeats[0]);
|
|
|
+ mSchedule.setTag(types[0]);
|
|
|
+ mSchedule.setWarnTime(0);
|
|
|
+ mSchedule.setType(getString(R.string.app_name));
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ contentEd.setText(TextUtils.isEmpty(mSchedule.getRemarks()) ? "" : mSchedule.getRemarks());
|
|
|
+ repeatTv.setText(TextUtils.isEmpty(mSchedule.getRepeat()) ? "" : mSchedule.getRepeat());
|
|
|
+ typeTv.setText(TextUtils.isEmpty(mSchedule.getTag()) ? "" : mSchedule.getTag());
|
|
|
+
|
|
|
+ allDaySv.setChecked(mSchedule.getAllDay() == 1);
|
|
|
+ String format = allDaySv.isChecked() ? DateFormatUtil.YMD : DateFormatUtil.YMD_HM;
|
|
|
+ startTimeTv.setText(DateFormatUtil.long2Str(mSchedule.getStartTime(), format));
|
|
|
+ endTimeTv.setText(DateFormatUtil.long2Str(mSchedule.getEndTime(), format));
|
|
|
+ String warnTime = "";
|
|
|
+ switch (mSchedule.getWarnTime()) {
|
|
|
+ case 0:
|
|
|
+ warnTime = warns[1];
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ warnTime = warns[2];
|
|
|
+ break;
|
|
|
+ case 15:
|
|
|
+ warnTime = warns[3];
|
|
|
+ break;
|
|
|
+ case 30:
|
|
|
+ warnTime = warns[4];
|
|
|
+ break;
|
|
|
+ case 60:
|
|
|
+ warnTime = warns[5];
|
|
|
+ break;
|
|
|
+ case 60 * 24:
|
|
|
+ warnTime = warns[6];
|
|
|
+ break;
|
|
|
+ case 8:
|
|
|
+ warnTime = warns2[1];
|
|
|
+ break;
|
|
|
+ case 9:
|
|
|
+ warnTime = warns2[2];
|
|
|
+ break;
|
|
|
+ case 18:
|
|
|
+ warnTime = warns2[3];
|
|
|
+ break;
|
|
|
+ case 19:
|
|
|
+ warnTime = warns2[4];
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ if (mSchedule.getWarnTime() < 0) {
|
|
|
+ warnTime = warns2[0];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ warnTimeTv.setText(warnTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected String getBaseUrl() {
|
|
|
+ return "http://192.168.253.230:8080/schedule/";
|
|
|
+ }
|
|
|
+
|
|
|
private void findById() {
|
|
|
contentEd = findViewById(R.id.contentEd);
|
|
|
allDaySv = findViewById(R.id.allDaySv);
|
|
|
@@ -49,6 +154,8 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
warnTimeTv = findViewById(R.id.warnTimeTv);
|
|
|
repeatTv = findViewById(R.id.repeatTv);
|
|
|
typeTv = findViewById(R.id.typeTv);
|
|
|
+ allDaySv.setChecked(false);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -57,14 +164,59 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
return super.onCreateOptionsMenu(menu);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean onPrepareOptionsMenu(Menu menu) {
|
|
|
+ if (isEnable) {
|
|
|
+ menu.findItem(R.id.edit).setVisible(false);
|
|
|
+ menu.findItem(R.id.complete).setVisible(true);
|
|
|
+ } else {
|
|
|
+ menu.findItem(R.id.complete).setVisible(false);
|
|
|
+ menu.findItem(R.id.edit).setVisible(true);
|
|
|
+ }
|
|
|
+ return super.onPrepareOptionsMenu(menu);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
if (item.getItemId() == R.id.complete) {
|
|
|
save();
|
|
|
}
|
|
|
+ if (item.getItemId() == R.id.edit) {
|
|
|
+ showPopupWindow();
|
|
|
+ }
|
|
|
return super.onOptionsItemSelected(item);
|
|
|
}
|
|
|
|
|
|
+ private void showPopupWindow() {
|
|
|
+ if (setWindow == null) initPopupWindow();
|
|
|
+ setWindow.showAtLocation(getWindow().getDecorView().
|
|
|
+ findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0);
|
|
|
+ DisplayUtil.backgroundAlpha(this, 0.7f);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initPopupWindow() {
|
|
|
+ View viewContext = LayoutInflater.from(ct).inflate(R.layout.pop_edit_schedule_activity, null);
|
|
|
+ viewContext.findViewById(R.id.editTv).setOnClickListener(mOnClickListener);
|
|
|
+ viewContext.findViewById(R.id.deleteTv).setOnClickListener(mOnClickListener);
|
|
|
+ viewContext.findViewById(R.id.cancel_tv).setOnClickListener(mOnClickListener);
|
|
|
+ setWindow = new PopupWindow(viewContext,
|
|
|
+ LinearLayout.LayoutParams.MATCH_PARENT,
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT, true);
|
|
|
+ setWindow.setAnimationStyle(R.style.MenuAnimationFade);
|
|
|
+ setWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.bg_popuwin));
|
|
|
+ setWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
+ @Override
|
|
|
+ public void onDismiss() {
|
|
|
+ closePopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void closePopupWindow() {
|
|
|
+ if (setWindow != null)
|
|
|
+ setWindow.dismiss();
|
|
|
+ DisplayUtil.backgroundAlpha(this, 1f);
|
|
|
+ }
|
|
|
|
|
|
private void updateEnable(boolean isEnable) {
|
|
|
updateEnable(isEnable, startTimeTv, endTimeTv, warnTimeTv, repeatTv, typeTv);
|
|
|
@@ -79,6 +231,8 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
v.setOnClickListener(isEnable ? mOnClickListener : null);
|
|
|
}
|
|
|
}
|
|
|
+ contentEd.setEnabled(isEnable);
|
|
|
+ contentEd.setFocusable(isEnable);
|
|
|
allDaySv.setEnabled(isEnable);
|
|
|
allDaySv.setClickable(isEnable);
|
|
|
allDaySv.setFocusable(isEnable);
|
|
|
@@ -88,13 +242,27 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
private SwitchView.OnCheckedChangeListener mOnCheckedChangeListener = new SwitchView.OnCheckedChangeListener() {
|
|
|
@Override
|
|
|
public void onCheckedChanged(View view, boolean isChecked) {
|
|
|
-
|
|
|
+ mSchedule.setAllDay(isChecked ? 1 : 0);
|
|
|
+ String format = mSchedule.getAllDay() == 1 ? DateFormatUtil.YMD : DateFormatUtil.YMD_HM;
|
|
|
+ startTimeTv.setText(DateFormatUtil.long2Str(mSchedule.getStartTime(), format));
|
|
|
+ endTimeTv.setText(DateFormatUtil.long2Str(mSchedule.getEndTime(), format));
|
|
|
}
|
|
|
};
|
|
|
private View.OnClickListener mOnClickListener = new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View view) {
|
|
|
- if (view == startTimeTv) {
|
|
|
+ if (view.getId() == R.id.editTv) {
|
|
|
+ closePopupWindow();
|
|
|
+ isEnable = true;
|
|
|
+ isUpdate = true;
|
|
|
+ updateEnable(isEnable);
|
|
|
+ invalidateOptionsMenu();
|
|
|
+ } else if (view.getId() == R.id.deleteTv) {
|
|
|
+ closePopupWindow();
|
|
|
+ deleteSchedule();
|
|
|
+ } else if (view.getId() == R.id.cancel_tv) {
|
|
|
+ closePopupWindow();
|
|
|
+ } else if (view == startTimeTv) {
|
|
|
showTimeSelect(true);
|
|
|
} else if (view == endTimeTv) {
|
|
|
showTimeSelect(false);
|
|
|
@@ -105,13 +273,12 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
for (String e : datas) {
|
|
|
bean = new SelectBean();
|
|
|
bean.setName(e);
|
|
|
- bean.setClick(e.contains("默认") ? true : false);
|
|
|
beans.add(bean);
|
|
|
}
|
|
|
Intent intent = new Intent(ct, SelectActivity.class);
|
|
|
intent.putExtra("type", 2);
|
|
|
intent.putParcelableArrayListExtra("data", beans);
|
|
|
- intent.putExtra("title", getString(R.string.select_approvel_people));
|
|
|
+ intent.putExtra("title", "提醒时间");
|
|
|
startActivityForResult(intent, 0x11);
|
|
|
} else if (repeatTv == view) {
|
|
|
ArrayList<SelectBean> beans = new ArrayList<>();
|
|
|
@@ -146,6 +313,10 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
};
|
|
|
|
|
|
private void save() {
|
|
|
+ if (TextUtils.isEmpty(contentEd.getText())) {
|
|
|
+ showToast("请添加备注!!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (submiting) {
|
|
|
showToast("当前正在处理,请稍等!!");
|
|
|
return;
|
|
|
@@ -165,9 +336,15 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
picker.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() {
|
|
|
@Override
|
|
|
public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
|
|
|
- TextView tv = isStart ? startTimeTv : endTimeTv;
|
|
|
- tv.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00");
|
|
|
-
|
|
|
+ long time = DateFormatUtil.str2Long(year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00", DateFormatUtil.YMD_HMS);
|
|
|
+ String format = mSchedule.getAllDay() == 1 ? DateFormatUtil.YMD : DateFormatUtil.YMD_HM;
|
|
|
+ if (isStart) {
|
|
|
+ mSchedule.setStartTime(time);
|
|
|
+ startTimeTv.setText(DateFormatUtil.long2Str(time, format));
|
|
|
+ } else {
|
|
|
+ mSchedule.setEndTime(time);
|
|
|
+ endTimeTv.setText(DateFormatUtil.long2Str(time, format));
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
picker.show();
|
|
|
@@ -185,10 +362,11 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
break;
|
|
|
case 0x12:
|
|
|
repeatTv.setText(b.getName());
|
|
|
+ mSchedule.setRepeat(b.getName());
|
|
|
break;
|
|
|
case 0x13:
|
|
|
typeTv.setText(b.getName());
|
|
|
-
|
|
|
+ mSchedule.setTag(b.getName());
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
@@ -196,9 +374,201 @@ public class SchedulerCreateActivity extends BaseActivity {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private void submit() {
|
|
|
+ showProgress();
|
|
|
+ String url = isUpdate ? "schedule/updateSchedule" : "schedule/saveSchedule";
|
|
|
+ mSchedule.setRemarks(contentEd.getText().toString());
|
|
|
+ mSchedule.setTitle(contentEd.getText().toString());
|
|
|
+ long minth = 60 * 1000;
|
|
|
+
|
|
|
+ int warnTime = -1;
|
|
|
+ long warnRealTime = 0;
|
|
|
+ String warnStr = warnTimeTv.getText().toString();
|
|
|
|
|
|
+ if (mSchedule.getAllDay() == 1) {
|
|
|
+ if (warnStr.equals(warns2[1])) {
|
|
|
+ warnTime = 8;
|
|
|
+ warnRealTime = DateFormatUtil.str2Long(DateFormatUtil.long2Str(mSchedule.getStartTime(), DateFormatUtil.YMD) + " 08:00:00", DateFormatUtil.YMD_HMS);
|
|
|
+ } else if (warnStr.equals(warns2[2])) {
|
|
|
+ warnTime = 9;
|
|
|
+ warnRealTime = DateFormatUtil.str2Long(DateFormatUtil.long2Str(mSchedule.getStartTime(), DateFormatUtil.YMD) + " 09:00:00", DateFormatUtil.YMD_HMS);
|
|
|
+ } else if (warnStr.equals(warns2[3])) {
|
|
|
+ warnTime = 18;
|
|
|
+ warnRealTime = DateFormatUtil.str2Long(DateFormatUtil.long2Str(mSchedule.getStartTime(), DateFormatUtil.YMD) + " 08:00:00", DateFormatUtil.YMD_HMS) - minth * 24 * 60;
|
|
|
+ } else if (warnStr.equals(warns2[4])) {
|
|
|
+ warnTime = 19;
|
|
|
+ warnRealTime = DateFormatUtil.str2Long(DateFormatUtil.long2Str(mSchedule.getStartTime(), DateFormatUtil.YMD) + " 09:00:00", DateFormatUtil.YMD_HMS) - minth * 24 * 60;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (warnStr.equals(warns[1])) {
|
|
|
+ warnTime = 0;
|
|
|
+ } else if (warnStr.equals(warns[2])) {
|
|
|
+ warnTime = 5;
|
|
|
+ } else if (warnStr.equals(warns[3])) {
|
|
|
+ warnTime = 15;
|
|
|
+ } else if (warnStr.equals(warns[4])) {
|
|
|
+ warnTime = 30;
|
|
|
+ } else if (warnStr.equals(warns[5])) {
|
|
|
+ warnTime = 60;
|
|
|
+ } else if (warnStr.equals(warns[6])) {
|
|
|
+ warnTime = 60 * 24;
|
|
|
+ }
|
|
|
+ warnRealTime = mSchedule.getStartTime() - warnTime * minth;
|
|
|
+ }
|
|
|
+ mSchedule.setWarnRealTime(warnRealTime);
|
|
|
+ mSchedule.setWarnTime(warnTime);
|
|
|
+ Parameter.Builder mBuilder = new Parameter.Builder()
|
|
|
+ .mode(Method.POST)
|
|
|
+ .url(url)
|
|
|
+ .addParams("imid", MyApplication.getInstance().getLoginUserId())
|
|
|
+ .addParams("type", mSchedule.getType())
|
|
|
+ .addParams("allDay", mSchedule.getAllDay())
|
|
|
+ .addParams("repeat", mSchedule.getRepeat())
|
|
|
+ .addParams("title", mSchedule.getTitle())
|
|
|
+ .addParams("tag", mSchedule.getTag())
|
|
|
+ .addParams("remarks", mSchedule.getRemarks())
|
|
|
+ .addParams("startTime", mSchedule.getStartTime() / 1000)
|
|
|
+ .addParams("endTime", mSchedule.getEndTime() / 1000)
|
|
|
+ .addParams("warnTime", mSchedule.getWarnTime())
|
|
|
+ .addParams("warnRealTime", mSchedule.getWarnRealTime() / 1000)
|
|
|
+ .addParams("address", mSchedule.getAddress())
|
|
|
+ .addParams("status", mSchedule.getStatus())
|
|
|
+ .addParams("phone", MyApplication.getInstance().mLoginUser.getTelephone())
|
|
|
+ .record(isUpdate ? UPDATE : SUBMIT);
|
|
|
+ if (isUpdate) {
|
|
|
+ mBuilder.addParams("scheduleId", mSchedule.getId());
|
|
|
+ }
|
|
|
+ requestHttp(mBuilder, mOnSmartHttpListener);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void deleteSchedule() {
|
|
|
+ if (submiting) {
|
|
|
+ showToast("当前正在处理,请稍等!!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ submiting = true;
|
|
|
+ showProgress();
|
|
|
+ requestHttp(new Parameter.Builder()
|
|
|
+ .mode(Method.POST)
|
|
|
+ .addParams("scheduleId", mSchedule.getId())
|
|
|
+ .url("schedule/deleteSchedule")
|
|
|
+ .record(DELETE)
|
|
|
+ , mOnSmartHttpListener);
|
|
|
+ }
|
|
|
+
|
|
|
+ private OnSmartHttpListener mOnSmartHttpListener = new OnSmartHttpListener() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int what, String message, Tags tag) throws Exception {
|
|
|
+ LogUtil.i("gong", "onSuccess=" + message);
|
|
|
+ dismissProgress();
|
|
|
+ JSONObject object = JSON.parseObject(message);
|
|
|
+ switch (what) {
|
|
|
+ case SUBMIT:
|
|
|
+ if (JSONUtil.getBoolean(object, "success")) {
|
|
|
+ Toast.makeText(ct, "提交成功!!", Toast.LENGTH_LONG).show();
|
|
|
+ int id = JSONUtil.getInt(object, "data");
|
|
|
+ mSchedule.setId(id);
|
|
|
+ save2System(false);
|
|
|
+ setResult(0x11);
|
|
|
+ onBackPressed();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case UPDATE:
|
|
|
+ if (JSONUtil.getBoolean(object, "success")) {
|
|
|
+ Toast.makeText(ct, "更新成功!!", Toast.LENGTH_LONG).show();
|
|
|
+ int id = JSONUtil.getInt(object, "data");
|
|
|
+ mSchedule.setId(id);
|
|
|
+ save2System(true);
|
|
|
+ setResult(0x11);
|
|
|
+ onBackPressed();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case DELETE:
|
|
|
+ if (JSONUtil.getBoolean(object, "success")) {
|
|
|
+ Toast.makeText(ct, "删除成功!!", Toast.LENGTH_LONG).show();
|
|
|
+ deleteFormSystem();
|
|
|
+ int id = JSONUtil.getInt(object, "data");
|
|
|
+ mSchedule.setId(id);
|
|
|
+ deleteFormSystem();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ submiting = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFailure(int what, String message, Tags tag) throws Exception {
|
|
|
+ submiting = false;
|
|
|
+ dismissProgress();
|
|
|
+ LogUtil.i("gong", "onFailure=" + message);
|
|
|
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ private void deleteFormSystem() {
|
|
|
+ new VeriftyDialog.Builder(ct)
|
|
|
+ .setTitle(getString(R.string.app_name))
|
|
|
+ .setCanceledOnTouchOutside(false)
|
|
|
+ .setShowCancel(true)
|
|
|
+ .setContent("删除成功,是否同步删除系统日程!!")
|
|
|
+ .build(new VeriftyDialog.OnDialogClickListener() {
|
|
|
+ @Override
|
|
|
+ public void result(boolean clickSure) {
|
|
|
+ if (clickSure) {
|
|
|
+ deleteFormSystem(mSchedule);
|
|
|
+ } else {
|
|
|
+ setResult(0x11);
|
|
|
+ onBackPressed();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void deleteFormSystem(final Schedule mSchedule) {
|
|
|
+ requestPermission(Manifest.permission.WRITE_CALENDAR, new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ ScheduleUtils.deleteSystemCalendar(ct, mSchedule.getId());
|
|
|
+ setResult(0x11);
|
|
|
+ onBackPressed();
|
|
|
+ }
|
|
|
+ }, new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ showToast(R.string.not_system_permission);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void save2System(final boolean isUpdate) {
|
|
|
+ boolean needSaveSystem = PreferenceUtils.getBoolean(PreferenceUtils.Constants.SAVE_SYSTEM_SCHEDULE, true);
|
|
|
+ if (needSaveSystem) {
|
|
|
+ requestPermission(Manifest.permission.WRITE_CALENDAR, new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ saveScheduleSystem(isUpdate, mSchedule);
|
|
|
+ }
|
|
|
+ }, new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ showToast(R.string.not_system_permission);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveScheduleSystem(boolean isUpdate, Schedule mSchedule) {
|
|
|
+ if (ScheduleUtils.checkCalendarAccount(ct) > 0 || ScheduleUtils.addCalendarAccount(ct) > 0) {
|
|
|
+ if (isUpdate) {
|
|
|
+ ScheduleUtils.updateSystemCalendar(ct, mSchedule);
|
|
|
+ } else {
|
|
|
+ ScheduleUtils.addCalendarEvent(ct, mSchedule);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ showToast("添加到系统日历失败!!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|