1package com.xtremelabs.robolectric.shadows;
2
3import android.widget.RadioGroup;
4import com.xtremelabs.robolectric.internal.Implementation;
5import com.xtremelabs.robolectric.internal.Implements;
6import com.xtremelabs.robolectric.internal.RealObject;
7
8import static android.widget.RadioGroup.OnCheckedChangeListener;
9
10@SuppressWarnings({"UnusedDeclaration"})
11@Implements(RadioGroup.class)
12public class ShadowRadioGroup extends ShadowLinearLayout {
13    @RealObject
14    protected RadioGroup realGroup;
15
16    private int checkedRadioButtonId = -1;
17    private OnCheckedChangeListener onCheckedChangeListener;
18
19    @Implementation
20    public int getCheckedRadioButtonId() {
21        return checkedRadioButtonId;
22    }
23
24    @Implementation
25    public void check(int id) {
26        checkedRadioButtonId = id;
27        notifyListener();
28    }
29
30    @Implementation
31    public void clearCheck() {
32        notifyListener();
33        checkedRadioButtonId = -1;
34        notifyListener();
35    }
36
37    private void notifyListener() {
38        if (onCheckedChangeListener != null) {
39            onCheckedChangeListener.onCheckedChanged(realGroup, checkedRadioButtonId);
40        }
41    }
42
43    @Implementation
44    public void setOnCheckedChangeListener(OnCheckedChangeListener listener) {
45        onCheckedChangeListener = listener;
46    }
47
48    public OnCheckedChangeListener getOnCheckedChangeListener() {
49    	return onCheckedChangeListener;
50    }
51}
52