133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows;
26eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz
32c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowhamimport android.view.View;
42c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowhamimport android.view.ViewGroup;
52c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowhamimport android.view.animation.Animation.AnimationListener;
62c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowhamimport com.xtremelabs.robolectric.internal.Implementation;
72c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowhamimport com.xtremelabs.robolectric.internal.Implements;
8a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams
9aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwinimport java.io.PrintStream;
10aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwinimport java.util.ArrayList;
11aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwinimport java.util.List;
12aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin
13aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwinimport static com.xtremelabs.robolectric.Robolectric.shadowOf;
14aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin
15ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin/**
16ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin * Shadow for {@code ViewGroup} that simulates its implementation
17ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin */
180b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@SuppressWarnings({"UnusedDeclaration"})
190b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@Implements(ViewGroup.class)
20afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowViewGroup extends ShadowView {
2163bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    private List<View> children = new ArrayList<View>();
22b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz    private AnimationListener animListener;
23aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin    private boolean disallowInterceptTouchEvent = false;
2463bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
2563bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Implementation
2663bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Override
2763bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    public View findViewById(int id) {
2863bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        if (id == getId()) {
2963bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams            return realView;
3063bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        }
3163bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
3263bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        for (View child : children) {
3363bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams            View found = child.findViewById(id);
3463bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams            if (found != null) {
3563bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams                return found;
3663bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams            }
3763bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        }
3863bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        return null;
3963bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    }
40b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz
41593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken    @Implementation
42593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken    @Override
43593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken    public View findViewWithTag(Object obj) {
44b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        if (obj.equals(realView.getTag())) {
45593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken            return realView;
46593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken        }
47b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz
48593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken        for (View child : children) {
49593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken            View found = child.findViewWithTag(obj);
50593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken            if (found != null) {
51593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken                return found;
52593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken            }
53593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken        }
54593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken
55593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken        return null;
56593543dfecc0d06e016c66504f24cd361b353a44Chris Van Vranken    }
5763bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
5863bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Implementation
5963bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    public void addView(View child) {
60b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        ((ViewGroup) realView).addView(child, -1);
61adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    }
62adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams
63adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    @Implementation
64adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    public void addView(View child, int index) {
65adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams        if (index == -1) {
66adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams            children.add(child);
67adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams        } else {
68adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams            children.add(index, child);
69adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams        }
70a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams        shadowOf(child).parent = this;
7163bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    }
72b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz
7363bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Implementation
74adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    public void addView(View child, int width, int height) {
75b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        ((ViewGroup) realView).addView(child, -1);
76adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    }
77adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams
78adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    @Implementation
79adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    public void addView(View child, ViewGroup.LayoutParams params) {
80b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        ((ViewGroup) realView).addView(child, -1);
81adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    }
82adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams
83adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    @Implementation
84adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    public void addView(View child, int index, ViewGroup.LayoutParams params) {
85b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        ((ViewGroup) realView).addView(child, index);
86adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    }
87adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams
88adc0e08f20f0c0df8303e304c460865f1b25e190Christian Williams    @Implementation
890e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams    public int indexOfChild(View child) {
900e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams        int count = getChildCount();
910e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams        for (int i = 0; i < count; i++) {
920e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams            if (children.get(i) == child) {
930e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams                return i;
940e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams            }
950e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams        }
960e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams        return -1;
970e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams    }
980e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams
990e1c92ca35030e2c173b141c41341636bbb7a258Christian Williams    @Implementation
10063bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    public int getChildCount() {
10163bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        return children.size();
10263bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    }
10363bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
10463bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Implementation
10563bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    public View getChildAt(int index) {
10638706c42aada3881f234bdb7d33c59c00f1cb528Wenhui Yao    	if( index >= children.size() ){ return null; }
10763bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        return children.get(index);
10863bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    }
10963bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
11063bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Implementation
11163bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    public void removeAllViews() {
11263bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        for (View child : children) {
113a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams            shadowOf(child).parent = null;
11463bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        }
11563bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams        children.clear();
11663bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    }
11763bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
11863bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    @Implementation
11963bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    public void removeViewAt(int position) {
120a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams        shadowOf(children.remove(position)).parent = null;
12163bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams    }
12263bd7c4e869525014879db3428e17eb4d2728cf9Christian Williams
123dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    @Implementation
124dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    public void removeView(View view) {
125dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        removeViewInLayout(view);
126dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    }
127dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo
128dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    @Implementation
129dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    public void removeViewInLayout(View view) {
130dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        int index = indexOfChild(view);
131dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        if (index >= 0) {
132dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo            removeViewAt(index);
133dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        }
134dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    }
135dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo
136dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    @Implementation
137dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    public void removeViews(int start, int count) {
138dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        removeViewsInLayout(start, count);
139dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    }
140dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo
141dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    @Implementation
142dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    public void removeViewsInLayout(int start, int count) {
143dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        int lastIndex = start + count - 1;
144dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        for (int i = lastIndex; i >= start; i--) {
145dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo            removeViewAt(i);
146dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo        }
147dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo    }
148dfd21b7f55f0f13f01db5b46170f779b5149da20Farand Koo
149b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz    @Override
150b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz    @Implementation
1519729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin    public boolean hasFocus() {
1529729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin        if (super.hasFocus()) return true;
1539729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin
1549729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin        for (View child : children) {
1559729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin            if (child.hasFocus()) return true;
1569729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin        }
1579729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin
1589729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin        return false;
1599729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin    }
1609729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin
1619729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin    @Implementation
1629729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin    @Override
1639729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin    public void clearFocus() {
1649729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin        if (hasFocus()) {
1659729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin            super.clearFocus();
1669729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin
1679729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin            for (View child : children) {
1689729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin                child.clearFocus();
1699729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin            }
1709729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin        }
1719729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin    }
1729729911f8638b6bb4d55b3d67e6d68a6b3f19dc7Phil Goodwin
17310afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias    @Implementation
17410afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias    @Override
17510afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias    public View findFocus() {
17610afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias        if (super.hasFocus()) {
17710afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias            return this.realView;
17810afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias        }
17910afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias
18010afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias        for (View child : children) {
18110afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias            View focusedView = child.findFocus();
18210afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias            if (focusedView != null) {
18310afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias                return focusedView;
18410afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias            }
18510afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias        }
18610afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias
18710afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias        return null;
18810afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias    }
18910afa627a8dc3aba930189ee6b15d1aa99531ec8Cristian Esquivias
190ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin    /**
191da9cd404c0db2ebcef4ecfb50836de00b56622f1Christian Williams     * Returns a string representation of this {@code ViewGroup} by concatenating all of the strings contained in all
192da9cd404c0db2ebcef4ecfb50836de00b56622f1Christian Williams     * of the descendants of this {@code ViewGroup}.
19340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams     * <p/>
194da9cd404c0db2ebcef4ecfb50836de00b56622f1Christian Williams     * Robolectric extension.
195ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin     */
1962ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin    @Override
1972ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin    public String innerText() {
1982ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin        String innerText = "";
199a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz        String delimiter = "";
200a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz
2012ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin        for (int i = 0; i < getChildCount(); i++) {
2022ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin            View child = getChildAt(i);
203a8486da7c7a0b6a10e943c55992f34d9c256456dChristian Williams            String childText = shadowOf(child).innerText();
204a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz            if (childText.length() > 0) {
205a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz                innerText += delimiter;
206a89236397e869467b3fc6f7208f551da61235795Christian Williams & Tyler Schultz                delimiter = " ";
2072ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin            }
2082ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin            innerText += childText;
2092ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin        }
2102ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin        return innerText;
2112ff94a9e4df5b0d3eb21bda70793b27d9f1f353cChristian Williams & Phil Goodwin    }
21286e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams
213ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin    /**
214ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin     * Non-Android method that dumps the state of this {@code ViewGroup} to {@code System.out}
215ac58b328bde3c77d1d9687408e547faad3b77e2bPhil Goodwin     */
216b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz    @Override
217b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz    public void dump(PrintStream out, int indent) {
21886e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams        dumpFirstPart(out, indent);
21986e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams        if (children.size() > 0) {
22086e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams            out.println(">");
22186e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams
22286e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams            for (View child : children) {
22386e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams                shadowOf(child).dump(out, indent + 2);
22486e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams            }
22586e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams
22686e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams            dumpIndent(out, indent);
22786e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams            out.println("</" + realView.getClass().getSimpleName() + ">");
22886e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams        } else {
22986e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams            out.println("/>");
23086e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams        }
23186e98619f5f1b5f6b1fd5742ba911d7ebc83c2ddChristian Williams    }
232b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz
2332c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowham    @Implementation
234b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz    public void setLayoutAnimationListener(AnimationListener listener) {
235b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        animListener = listener;
2362c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowham    }
237b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz
2382c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowham    @Implementation
2392c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowham    public AnimationListener getLayoutAnimationListener() {
240b551a870eb9fb9acae0f8a6632fefea12a5f8598Ryan Richard & Tyler Schultz        return animListener;
2412c9c757ef2fb2ffd9dffb5b4227144d15922bcf4adriancowham    }
242aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin
243aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin    @Implementation
244aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin    public void requestDisallowInterceptTouchEvent(boolean disallowIntercept) {
245aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin        disallowInterceptTouchEvent = disallowIntercept;
246aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin    }
247aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin
248aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin    public boolean getDisallowInterceptTouchEvent() {
249aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin        return disallowInterceptTouchEvent;
250aafe6e8069d9c7fc9c9b2a8793deddf3fe71127fAaron VonderHaar & Phil Goodwin    }
2516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz}
252