package org.aisen.weibo.sina.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import org.aisen.android.common.context.GlobalContext;
import org.aisen.android.common.utils.Logger;
import org.aisen.android.network.task.TaskException;
import org.aisen.android.network.task.WorkTask;
import org.aisen.weibo.sina.base.AppContext;
import org.aisen.weibo.sina.service.PublishService;
import org.aisen.weibo.sina.support.bean.PublishBean;
import org.aisen.weibo.sina.support.bean.PublishBean.PublishStatus;
import org.aisen.weibo.sina.support.sqlit.PublishDB;
import java.util.List;
public class TimingBroadcastReceiver extends BroadcastReceiver {
public static final String TAG = "TimingReceiver";
public static final String ACTION_TIMING_PUBLISH = "org.aisen.weibo.sina.ACTION_TIMING_PUBLISH";
@Override
public void onReceive(Context context, Intent intent) {
Logger.d(TAG, "触发一个定时发布任务,开始检查发布任务");
if (intent != null && ACTION_TIMING_PUBLISH.equals(intent.getAction())) {
final long timing = intent.getLongExtra("timing", 0);
if (timing > 0) {
new WorkTask<Void, Void, Void>() {
@Override
public Void workInBackground(Void... params) throws TaskException {
List<PublishBean> beans = PublishDB.getPublishList(AppContext.getAccount().getUser());
Logger.w(TAG, String.format("任务总数%d个", beans.size()));
for (PublishBean bean : beans) {
Logger.d(TAG, String.format("bean's timing = %s, timing = %s", String.valueOf(bean.getTiming()), String.valueOf(timing)));
if (bean.getTiming() == timing) {
Logger.d(TAG, bean.getText() + "-检测到一个同一时间发布的任务,开始发布");
bean.setTiming(0);
bean.setStatus(PublishStatus.waiting);
PublishDB.updatePublish(bean, AppContext.getAccount().getUser());
PublishService.publish(GlobalContext.getInstance(), bean);
}
}
return null;
}
}.executeOnSerialExecutor();
}
}
}
}