1079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreypackage com.xtremelabs.robolectric.shadows;
2079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
3079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.content.Context;
48a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowhamimport android.content.Intent;
5079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.preference.Preference;
6079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.util.AttributeSet;
7079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
8079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport com.xtremelabs.robolectric.internal.Implementation;
9079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport com.xtremelabs.robolectric.internal.Implements;
1013c284c27d1e302a3564a8b4259922b64ca7678dRich Humphreyimport com.xtremelabs.robolectric.internal.RealObject;
11079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
12079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey@Implements(Preference.class)
13079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreypublic class ShadowPreference {
14079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
1513c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey    @RealObject private Preference realPreference;
1613c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey
1713c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey    protected Context context;
18079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	protected AttributeSet attrs;
19079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	protected int defStyle;
205773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
2165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	protected String key;
22d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	protected CharSequence title;
23d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	protected CharSequence summary;
24395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	protected Object defaultValue;
255ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	protected int order;
265773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected boolean enabled = true;
279d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	protected String dependencyKey;
28db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	protected boolean persistent = false;
295773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected int persistedInt;
305773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected Object callChangeListenerValue = null;
315773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
325773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	protected Preference.OnPreferenceClickListener  onClickListener;
338a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	private Intent intent;
34860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
35ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey	public void __constructor__(Context context) {
36ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		__constructor__(context, null, 0);
37ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey	}
38ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey
3938c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public void __constructor__(Context context, AttributeSet attributeSet) {
4038c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		__constructor__(context, attributeSet, 0);
41079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	}
4238c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey
4338c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public void __constructor__(Context context, AttributeSet attributeSet, int defStyle) {
44079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey		this.context = context;
4538c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		this.attrs = attributeSet;
4638c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		this.defStyle = defStyle;
4738c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey
4838c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		if (attributeSet != null) {
4938c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey			key = attributeSet.getAttributeValue("android", "key");
5038c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey        }
51079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	}
52079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
53079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	@Implementation
5438c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public Context getContext() {
55079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    	return context;
56079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
57079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
58079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    public AttributeSet getAttrs() {
59079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    	return attrs;
60079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
61079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
62079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    public int getDefStyle() {
63079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    	return defStyle;
64079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey    }
65860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
66860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	@Implementation
67860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	public void setEnabled(boolean enabled) {
68860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		this.enabled = enabled;
69860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	}
70860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
71860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	@Implementation
72860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	public boolean isEnabled() {
73860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		return enabled;
74860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	}
75860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
7697f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Implementation
7797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	public boolean shouldPersist() {
78db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		return persistent;
7997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
80db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
81db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Implementation
82db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public boolean isPersistent() {
83db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		return persistent;
84db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	}
85db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
86db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Implementation
87db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void setPersistent(boolean persistent) {
88db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		this.persistent = persistent;
8997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
9097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
9197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Implementation
9297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	public int getPersistedInt(int defaultReturnValue) {
93db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		return persistent ? persistedInt : defaultReturnValue;
9497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
9597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
96c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	@Implementation
97c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	public boolean persistInt(int value) {
98c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		this.persistedInt = value;
99db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		return persistent;
100c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	}
101c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
102c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	@Implementation
103c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	public boolean callChangeListener(Object newValue) {
104c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		callChangeListenerValue = newValue;
105c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		return true;
106c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	}
107c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
108c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	public Object getCallChangeListenerValue() {
109c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		return callChangeListenerValue;
11097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
11165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
11265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
113d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public void setSummary(int summaryResId) {
114d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		this.summary = context.getResources().getText(summaryResId);
115d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
116d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
117d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Implementation
118d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public void setSummary(CharSequence summary) {
119d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		this.summary = summary;
120d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
121d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
122d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Implementation
123d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public CharSequence getSummary() {
124d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		return summary;
125d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
126d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
127d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Implementation
12865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void setTitle(int titleResId) {
12965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		this.title = context.getResources().getText(titleResId);
13065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
13165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
13265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
13365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void setTitle(CharSequence title) {
13465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		this.title = title;
13565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
13665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
13765b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
13865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public CharSequence getTitle() {
13965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		return title;
14065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
14165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
14265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
14365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void setKey(String key) {
14465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		this.key = key;
14565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
14665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
14765b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Implementation
14865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public String getKey() {
14965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		return key;
15065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
15165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
152395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	@Implementation
153395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	public void setDefaultValue(Object defaultValue) {
154395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		this.defaultValue = defaultValue;
155395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	}
156395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey
157395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	public Object getDefaultValue() {
158395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		return defaultValue;
159395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	}
160395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey
1615ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	@Implementation
1625ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	public int getOrder() {
1635ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		return order;
1645ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	}
1655ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey
1665ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	@Implementation
1675ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	public void setOrder(int order) {
1685ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		this.order = order;
1695ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	}
1705ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey
1715773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	@Implementation
1725773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public void setOnPreferenceClickListener( Preference.OnPreferenceClickListener onPreferenceClickListener ) {
1735773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		this.onClickListener = onPreferenceClickListener;
1745773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	}
1755773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
176ecf727a38f7d70cf2e39ddcf757bfcb859e0809dadriancowham	@Implementation
1775773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public Preference.OnPreferenceClickListener getOnPreferenceClickListener() {
1785773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		return onClickListener;
1795773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	}
18013c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey
18113c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey	public boolean click() {
18213c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey		return onClickListener.onPreferenceClick(realPreference);
183ecf727a38f7d70cf2e39ddcf757bfcb859e0809dadriancowham	}
1848a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham
1858a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	@Implementation
1868a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	public void setIntent(Intent i) {
1878a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham		this.intent = i;
1888a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	}
1898a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham
1908a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	@Implementation
1918a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	public Intent getIntent() {
1928a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham		return this.intent;
1938a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham
19413c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey	}
1959d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi
1969d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	@Implementation
1979d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	public void setDependency(String dependencyKey) {
1989d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi		this.dependencyKey = dependencyKey;
1999d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	}
2009d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi
2019d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	@Implementation
2029d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	public String getDependency() {
2039d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi		return this.dependencyKey;
2049d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	}
205079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey}
206