aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/miz_hi/smileessence/command/status/impl/StatusCommandChaseTalk.java
blob: d34613723c7288136bc8f47faedadd264745bad4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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().getAdapter().getItemPosition(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;
    }


}