package net.miz_hi.smileessence.command.status.impl;
import android.app.Activity;
import net.miz_hi.smileessence.command.status.StatusCommand;
import net.miz_hi.smileessence.core.MyExecutor;
import net.miz_hi.smileessence.model.status.tweet.TweetModel;
import net.miz_hi.smileessence.statuslist.StatusListAdapter;
import net.miz_hi.smileessence.statuslist.StatusListManager;
import net.miz_hi.smileessence.system.PageController;
import net.miz_hi.smileessence.talkchase.TalkChaser;
import net.miz_hi.smileessence.talkchase.TalkManager;
import net.miz_hi.smileessence.view.fragment.impl.TalkFragment;
public class StatusCommandChaseTalk extends StatusCommand
{
Activity activity;
public StatusCommandChaseTalk(Activity activity, TweetModel status)
{
super(status);
this.activity = activity;
}
@Override
public String getName()
{
return "会話をたどる";
}
@Override
public void workOnUiThread()
{
final TweetModel origin = status.getOriginal();
//すでにTalkが存在していればページを移動
TalkChaser chaser = TalkManager.searchTalk(origin);
if (chaser != null)
{
PageController.getInstance().move(PageController.getInstance().getPageIndex(chaser.fragment));
}
else
{
TalkFragment fragment = TalkFragment.newInstance(TalkManager.getNextTalkId(), origin.statusId);
final TalkChaser chaser2 = new TalkChaser(fragment);
TalkManager.addTalkChaser(chaser2);
//StatusList管理に追加
StatusListManager.registerTweetList(chaser2.talkList, new StatusListAdapter(activity, chaser2.talkList));
MyExecutor.execute(new Runnable()
{
public void run()
{
chaser2.startRelation(origin.statusId);
}
});
PageController.getInstance().addPage(fragment);
PageController.getInstance().moveToLast();
}
}
@Override
public boolean getDefaultVisibility()
{
return status.getInReplyToStatusId() > -1;
}
}