aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/miz_hi/smileessence/listener/PageChangeListener.java
blob: 1592f4929d8b2fcd19331a546371b5baa340f0a7 (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
70
71
72
73
74
75
76
77
package net.miz_hi.smileessence.listener;

import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import net.miz_hi.smileessence.Client;
import net.miz_hi.smileessence.core.MyExecutor;
import net.miz_hi.smileessence.preference.EnumPreferenceKey;
import net.miz_hi.smileessence.system.PageController;
import net.miz_hi.smileessence.util.UiHandler;
import net.miz_hi.smileessence.view.fragment.impl.ListFragment;
import net.miz_hi.smileessence.view.fragment.impl.PostFragment;

public class PageChangeListener implements OnPageChangeListener
{

    boolean isOpening = false;

    @Override
    public void onPageScrollStateChanged(int position)
    {
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2)
    {
    }

    @Override
    public void onPageSelected(final int position)
    {
        MyExecutor.execute(new Runnable()
        {

            @Override
            public void run()
            {
                if (position == PageController.PAGE_POST)
                {
                    PostFragment.singleton().load();
                    isOpening = true;
                }
                else
                {
                    if (isOpening)
                    {
                        PostFragment.singleton().save();
                    }
                    isOpening = false;

                    Fragment fragment = PageController.getInstance().getAdapter().getItem(position);

                    if (fragment instanceof ListFragment)
                    {
                        if (Client.<Boolean>getPreferenceValue(EnumPreferenceKey.LIST_LOAD))
                        {
                            final ListFragment page = (ListFragment) fragment;
                            if (page.isNotInited())
                            {
                                new UiHandler()
                                {

                                    @Override
                                    public void run()
                                    {
                                        page.refresh();
                                    }
                                }.post();
                            }
                        }
                    }
                }
            }
        });

    }

}