ShadowPreference.java revision 5773573687f3d05e5e97816b1c5d31e6a4d7f212
1079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreypackage com.xtremelabs.robolectric.shadows;
2079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
3079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.content.Context;
4079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.preference.Preference;
5079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.util.AttributeSet;
6079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
7079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport com.xtremelabs.robolectric.internal.Implementation;
8079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport com.xtremelabs.robolectric.internal.Implements;
9079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
10079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey@Implements(Preference.class)
11079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreypublic class ShadowPreference {
12079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
13079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	protected Context context;
14079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	protected AttributeSet attrs;
15079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	protected int defStyle;
165773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
1765b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	protected String key;
18d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	protected CharSequence title;
19d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	protected CharSequence summary;
20395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	protected Object defaultValue;
215ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	protected int order;
225773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected boolean enabled = true;
235773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
245773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected boolean shouldPersist = false;
255773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected int persistedInt;
265773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected Object callChangeListenerValue = null;
275773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
285773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected Preference.OnPreferenceClickListener  onClickListener;
29860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
30ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey	public void __constructor__(Context context) {
31ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		__constructor__(context, null, 0);
32ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey	}
33ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey
3438c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public void __constructor__(Context context, AttributeSet attributeSet) {
3538c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		__constructor__(context, attributeSet, 0);
36079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	}
3738c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey
3838c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public void __constructor__(Context context, AttributeSet attributeSet, int defStyle) {
39079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey		this.context = context;
4038c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		this.attrs = attributeSet;
4138c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		this.defStyle = defStyle;
4238c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey
4338c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		if (attributeSet != null) {
4438c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey			key = attributeSet.getAttributeValue("android", "key");
4538c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey        }
46079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	}
47079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
48079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	@Implementation
4938c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public Context getContext() {
50079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    	return context;
51079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
52079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
53079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    public AttributeSet getAttrs() {
54079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    	return attrs;
55079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
56079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
57079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    public int getDefStyle() {
58079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    	return defStyle;
59079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
60860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
61860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	@Implementation
62860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	public void setEnabled(boolean enabled) {
63860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		this.enabled = enabled;
64860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	}
65860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
66860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	@Implementation
67860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	public boolean isEnabled() {
68860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		return enabled;
69860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	}
70860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
7197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Implementation
7297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	public boolean shouldPersist() {
7397f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		return shouldPersist;
7497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
7597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
7697f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	public void setShouldPersist(boolean shouldPersist) {
7797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		this.shouldPersist = shouldPersist;
7897f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
7997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
8097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Implementation
8197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	public int getPersistedInt(int defaultReturnValue) {
8297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		return shouldPersist ? persistedInt : defaultReturnValue;
8397f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
8497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
85c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	@Implementation
86c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	public boolean persistInt(int value) {
87c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		this.persistedInt = value;
88c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		return shouldPersist;
89c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	}
90c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
91c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	@Implementation
92c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	public boolean callChangeListener(Object newValue) {
93c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		callChangeListenerValue = newValue;
94c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		return true;
95c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	}
96c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
97c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	public Object getCallChangeListenerValue() {
98c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		return callChangeListenerValue;
9997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
10065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
10165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
102d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public void setSummary(int summaryResId) {
103d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		this.summary = context.getResources().getText(summaryResId);
104d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
105d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
106d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Implementation
107d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public void setSummary(CharSequence summary) {
108d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		this.summary = summary;
109d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
110d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
111d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Implementation
112d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public CharSequence getSummary() {
113d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		return summary;
114d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
115d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
116d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Implementation
11765b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void setTitle(int titleResId) {
11865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		this.title = context.getResources().getText(titleResId);
11965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
12065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
12165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
12265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void setTitle(CharSequence title) {
12365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		this.title = title;
12465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
12565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
12665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
12765b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public CharSequence getTitle() {
12865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		return title;
12965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
13065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
13165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
13265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void setKey(String key) {
13365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		this.key = key;
13465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
13565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
13665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
13765b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public String getKey() {
13865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		return key;
13965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
14065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
141395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	@Implementation
142395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	public void setDefaultValue(Object defaultValue) {
143395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		this.defaultValue = defaultValue;
144395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	}
145395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey
146395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	public Object getDefaultValue() {
147395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		return defaultValue;
148395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	}
149395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey
1505ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	@Implementation
1515ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	public int getOrder() {
1525ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		return order;
1535ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	}
1545ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey
1555ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	@Implementation
1565ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	public void setOrder(int order) {
1575ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		this.order = order;
1585ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	}
1595ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey
1605773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	@Implementation
1615773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public void setOnPreferenceClickListener( Preference.OnPreferenceClickListener onPreferenceClickListener ) {
1625773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		this.onClickListener = onPreferenceClickListener;
1635773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	}
1645773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
1655773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public Preference.OnPreferenceClickListener getOnPreferenceClickListener() {
1665773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		return onClickListener;
1675773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	}
168079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey}
169