Skip to content

Commit 1f5f64d

Browse files
committedNov 29, 2015
User can now make polls ranging from 2 to 4 options. I didnt make buttons to add or subtract buttons, its dpendent on how they fill up the MakePollActivity
1 parent 7954832 commit 1f5f64d

File tree

6 files changed

+224
-174
lines changed

6 files changed

+224
-174
lines changed
 

‎app/src/main/java/ndejaco/pollgeo/HomeViewAdapter.java

+21
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public class HomeViewAdapter extends ArrayAdapter<Poll> {
5151

5252
private Poll votedPoll;
5353
private int votedOption;
54+
private int optionCount;
5455

5556
private static final String TAG = HomeViewAdapter.class.getSimpleName();
5657

@@ -95,6 +96,9 @@ public View getView(int position, View v, ViewGroup parent) {
9596
chart.setDescription("");
9697
chart.invalidate();
9798

99+
optionCount = poll.getOptions();
100+
Log.d(TAG, "option count: " + optionCount);
101+
98102
// Creates buttons and textviews
99103
TextView title = (TextView) v.findViewById(R.id.title);
100104
TextView option1 = (TextView) v.findViewById(R.id.option1);
@@ -150,6 +154,23 @@ public View getView(int position, View v, ViewGroup parent) {
150154
votes3.setText((String) (poll.getOptionCount(2) + ""));
151155
votes4.setText((String) (poll.getOptionCount(3) + ""));
152156

157+
// make some elements invisible depending on the option count
158+
if (optionCount == 3){
159+
//set all elements corresponding to option 4 invisible/gone
160+
votes4.setVisibility(View.GONE);
161+
option4.setVisibility(View.GONE);
162+
option4button.setVisibility(View.GONE);
163+
}
164+
if (optionCount == 2){
165+
//set all elements corresponding to option 3 and 4 invisible/gone
166+
votes4.setVisibility(View.GONE);
167+
option4.setVisibility(View.GONE);
168+
option4button.setVisibility(View.GONE);
169+
170+
votes3.setVisibility(View.GONE);
171+
option3.setVisibility(View.GONE);
172+
option3button.setVisibility(View.GONE);
173+
}
153174

154175
boolean buttonSet = false;
155176
if (!buttonSet && poll.getList("option" + 0 + "count") != null) {

‎app/src/main/java/ndejaco/pollgeo/MakePollActivity.java

+24
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.view.View;
1313
import android.widget.Button;
1414
import android.widget.EditText;
15+
import android.widget.ImageView;
1516

1617
import com.parse.ParseException;
1718
import com.parse.ParseGeoPoint;
@@ -37,6 +38,9 @@ public class MakePollActivity extends Activity {
3738
private ParseGeoPoint geoPoint;
3839
private String type;
3940
private String objectId;
41+
private ImageView optionButton3;
42+
private ImageView optionButton4;
43+
private int optionCount;
4044

4145
@Override
4246
protected void onCreate(Bundle savedInstanceState) {
@@ -98,6 +102,24 @@ public void onClick(View v) {
98102
dialog.show();
99103
} else {
100104

105+
//check the poll's options that are filled out and set the correct optionCount
106+
if (!o1.isEmpty() && !o2.isEmpty() && !o3.isEmpty() && !o4.isEmpty()){
107+
optionCount = 4;
108+
}
109+
if (o3.isEmpty() && o4.isEmpty()){
110+
optionCount = 2;
111+
}
112+
if (!o3.isEmpty() && o4.isEmpty()) {
113+
optionCount = 3;
114+
}
115+
if (o3.isEmpty() && !(o4.isEmpty())){
116+
optionCount = 3;
117+
//set o3 == o4 to help make things easier, there will only be 3 options in the poll and
118+
// since the user left option3 empty, switch option4's content into option3
119+
Log.i(MakePollActivity.class.getSimpleName(), "option count set TO: " + optionCount);
120+
o3 = o4;
121+
}
122+
Log.i(MakePollActivity.class.getSimpleName(), "option count set TO: " + optionCount);
101123
// Adds options to an array list.
102124
ArrayList<String> options = new ArrayList<String>();
103125
options.add(o1);
@@ -157,6 +179,7 @@ private Poll createPoll(String title, ArrayList<String> options) {
157179

158180
if (type.equals("local")) {
159181
LocalPoll currentPoll = new LocalPoll();
182+
currentPoll.setOptionCount(optionCount);
160183
currentPoll.setOptions(options);
161184
currentPoll.setUser(ParseUser.getCurrentUser());
162185
currentPoll.setTitle(title);
@@ -169,6 +192,7 @@ private Poll createPoll(String title, ArrayList<String> options) {
169192
else if (type.equals("group")) {
170193
GroupPoll currentPoll = new GroupPoll();
171194
currentPoll.setOptions(options);
195+
currentPoll.setOptionCount(optionCount);
172196
currentPoll.setUser(ParseUser.getCurrentUser());
173197
currentPoll.setTitle(title);
174198
currentPoll.setGroup(objectId);

‎app/src/main/java/ndejaco/pollgeo/Model/Poll.java

+6
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ public int getOptionCount(int opt) {
5050
return 0;
5151
}
5252

53+
// setOptionCount sets the options that the user gave in the poll, can range between 2 - 4
54+
public void setOptionCount(int count){put("optionCount", count);}
55+
56+
// getOptions returns the number of options a poll has to vote on
57+
public int getOptions(){ return getInt("optionCount");}
58+
5359
public void setTotalOptions(int opt) {
5460
put("totalOptions", opt);
5561
}
4.1 KB
Loading
2.54 KB
Loading

‎app/src/main/res/layout/activity_make_poll.xml

+173-174
Original file line numberDiff line numberDiff line change
@@ -5,178 +5,177 @@
55
android:layout_height="fill_parent"
66
android:fillViewport="true" >
77

8-
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
9-
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
10-
android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin"
11-
android:paddingRight="@dimen/activity_horizontal_margin"
12-
android:paddingTop="@dimen/activity_vertical_margin"
13-
android:paddingBottom="@dimen/activity_vertical_margin"
14-
tools:context="ndejaco.pollgeo.MakePollActivity"
15-
android:background="#FFEDEDEA">
16-
17-
18-
<Button
19-
android:layout_width="match_parent"
20-
android:layout_height="wrap_content"
21-
android:text="@string/Submit_Button_Text"
22-
android:textSize="25sp"
23-
android:id="@+id/submit"
24-
android:background="@drawable/buttonshape"
25-
android:textColor="#FFDE5842"
26-
android:layout_below="@+id/add_button"
27-
android:layout_alignParentLeft="true"
28-
android:layout_alignParentStart="true"
29-
android:textStyle="bold" />
30-
31-
<TextView
32-
android:layout_width="wrap_content"
33-
android:layout_height="wrap_content"
34-
android:textAppearance="?android:attr/textAppearanceMedium"
35-
android:text="What Is Your Question?"
36-
android:id="@+id/titleText"
37-
android:layout_alignParentTop="true"
38-
android:layout_alignParentLeft="true"
39-
android:layout_alignParentStart="true"
40-
android:textColor="#000000" />
41-
42-
<EditText
43-
android:layout_width="wrap_content"
44-
android:layout_height="wrap_content"
45-
android:inputType="textMultiLine"
46-
android:ems="10"
47-
android:id="@+id/userTitleText"
48-
android:layout_below="@+id/titleText"
49-
android:layout_alignParentLeft="true"
50-
android:layout_alignParentStart="true"
51-
android:layout_alignRight="@+id/submit"
52-
android:layout_alignEnd="@+id/submit"
53-
android:maxLength="20" />
54-
55-
<TextView
56-
android:layout_width="wrap_content"
57-
android:layout_height="wrap_content"
58-
android:textAppearance="?android:attr/textAppearanceMedium"
59-
android:text="Option 1"
60-
android:id="@+id/option1TextBox"
61-
android:layout_alignParentLeft="true"
62-
android:layout_alignParentStart="true"
63-
android:textColor="#000000"
64-
android:layout_below="@+id/userTitleText" />
65-
66-
<EditText
67-
android:layout_width="wrap_content"
68-
android:layout_height="wrap_content"
69-
android:inputType="textMultiLine"
70-
android:ems="10"
71-
android:id="@+id/option1"
72-
android:layout_below="@+id/option1TextBox"
73-
android:layout_alignParentLeft="true"
74-
android:layout_alignParentStart="true"
75-
android:layout_alignParentRight="true"
76-
android:layout_alignParentEnd="true"
77-
android:maxLength="20"/>
78-
79-
<TextView
80-
android:layout_width="wrap_content"
81-
android:layout_height="wrap_content"
82-
android:textAppearance="?android:attr/textAppearanceMedium"
83-
android:text="Option 2"
84-
android:id="@+id/option2TextBox"
85-
android:layout_below="@+id/option1"
86-
android:layout_alignParentLeft="true"
87-
android:layout_alignParentStart="true"
88-
android:textColor="#000000"
89-
/>
90-
91-
<EditText
92-
android:layout_width="wrap_content"
93-
android:layout_height="wrap_content"
94-
android:inputType="textMultiLine"
95-
android:ems="10"
96-
android:id="@+id/option2"
97-
android:layout_below="@+id/option2TextBox"
98-
android:layout_alignParentLeft="true"
99-
android:layout_alignParentStart="true"
100-
android:layout_alignRight="@+id/option1"
101-
android:layout_alignEnd="@+id/option1"
102-
android:maxLength="20"/>
103-
104-
<TextView
105-
android:layout_width="wrap_content"
106-
android:layout_height="wrap_content"
107-
android:textAppearance="?android:attr/textAppearanceMedium"
108-
android:text="Option 3"
109-
android:id="@+id/option3TextBox"
110-
android:layout_below="@+id/option2"
111-
android:layout_alignParentLeft="true"
112-
android:layout_alignParentStart="true"
113-
android:textColor="#000000" />
114-
115-
<EditText
116-
android:layout_width="wrap_content"
117-
android:layout_height="wrap_content"
118-
android:inputType="textMultiLine"
119-
android:ems="10"
120-
android:id="@+id/option3"
121-
android:layout_below="@+id/option3TextBox"
122-
android:layout_alignParentLeft="true"
123-
android:layout_alignParentStart="true"
124-
android:layout_alignRight="@+id/submit"
125-
android:layout_alignEnd="@+id/submit"
126-
android:maxLength="20"/>
127-
128-
<TextView
129-
android:layout_width="wrap_content"
130-
android:layout_height="wrap_content"
131-
android:textAppearance="?android:attr/textAppearanceMedium"
132-
android:text="Option 4"
133-
android:id="@+id/option4TextBox"
134-
android:layout_below="@+id/option3"
135-
android:layout_alignParentLeft="true"
136-
android:layout_alignParentStart="true"
137-
android:textColor="#000000" />
138-
139-
<EditText
140-
android:layout_width="wrap_content"
141-
android:layout_height="wrap_content"
142-
android:inputType="textMultiLine"
143-
android:ems="10"
144-
android:id="@+id/option4"
145-
android:layout_below="@+id/option4TextBox"
146-
android:layout_alignParentRight="true"
147-
android:layout_alignParentEnd="true"
148-
android:layout_alignParentLeft="true"
149-
android:layout_alignParentStart="true"
150-
android:maxLength="20"/>
151-
152-
<Button
153-
android:id="@+id/add_button"
154-
android:layout_width="60dp"
155-
android:layout_height="60dp"
156-
android:background="@drawable/addoptionbutton"
157-
android:gravity="center"
158-
android:stateListAnimator="@null"
159-
android:text="+"
160-
android:textSize="25sp"
161-
android:elevation="3dp"
162-
android:fontFamily="sans-serif-light"
163-
android:textColor="#FFDE5842"
164-
tools:ignore="HardcodedText,UnusedAttribute"
165-
android:layout_below="@+id/option4"
166-
android:layout_alignParentLeft="true"
167-
android:layout_alignParentStart="true"
168-
android:textStyle="bold" />
169-
170-
<Button
171-
android:layout_width="wrap_content"
172-
android:layout_height="wrap_content"
173-
android:text="Upload Photo"
174-
android:id="@+id/photo"
175-
android:layout_below="@+id/submit"
176-
android:layout_alignParentLeft="true"
177-
android:layout_alignParentStart="true"
178-
android:layout_alignParentRight="true"
179-
android:layout_alignParentEnd="true"/>
180-
181-
</RelativeLayout>
8+
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
9+
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
10+
android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_horizontal_margin"
11+
android:paddingRight="@dimen/activity_horizontal_margin"
12+
android:paddingTop="@dimen/activity_vertical_margin"
13+
android:paddingBottom="@dimen/activity_vertical_margin"
14+
tools:context="ndejaco.pollgeo.MakePollActivity"
15+
android:background="#FFEDEDEA"
16+
>
17+
18+
19+
<Button
20+
android:layout_width="match_parent"
21+
android:layout_height="wrap_content"
22+
android:text="@string/Submit_Button_Text"
23+
android:textSize="25sp"
24+
android:id="@+id/submit"
25+
android:background="@drawable/button_border"
26+
android:textColor="#FFFFFF"
27+
android:textStyle="bold"
28+
android:layout_below="@+id/photo"
29+
android:layout_alignParentLeft="true"
30+
android:layout_alignParentStart="true" />
31+
32+
<TextView
33+
android:layout_width="wrap_content"
34+
android:layout_height="wrap_content"
35+
android:textAppearance="?android:attr/textAppearanceMedium"
36+
android:text="What Is Your Question? "
37+
android:id="@+id/titleText"
38+
android:layout_alignParentTop="true"
39+
android:layout_alignParentLeft="true"
40+
android:layout_alignParentStart="true"
41+
android:textColor="#000000"
42+
android:layout_alignRight="@+id/userTitleText"
43+
android:layout_alignEnd="@+id/userTitleText" />
44+
45+
<EditText
46+
android:layout_width="wrap_content"
47+
android:layout_height="wrap_content"
48+
android:inputType="textMultiLine"
49+
android:ems="10"
50+
android:id="@+id/userTitleText"
51+
android:layout_below="@+id/titleText"
52+
android:layout_alignParentLeft="true"
53+
android:layout_alignParentStart="true"
54+
android:layout_alignRight="@+id/submit"
55+
android:layout_alignEnd="@+id/submit"
56+
android:maxLength="20" />
57+
58+
<TextView
59+
android:layout_width="wrap_content"
60+
android:layout_height="wrap_content"
61+
android:textAppearance="?android:attr/textAppearanceMedium"
62+
android:text="Option 1"
63+
android:id="@+id/option1TextBox"
64+
android:textColor="#000000"
65+
android:layout_below="@+id/limitWarning"
66+
android:layout_alignParentLeft="true"
67+
android:layout_alignParentStart="true" />
68+
69+
<EditText
70+
android:layout_width="wrap_content"
71+
android:layout_height="wrap_content"
72+
android:inputType="textMultiLine"
73+
android:ems="10"
74+
android:id="@+id/option1"
75+
android:maxLength="20"
76+
android:layout_below="@+id/option1TextBox"
77+
android:layout_alignParentLeft="true"
78+
android:layout_alignParentStart="true"
79+
android:layout_alignRight="@+id/option2"
80+
android:layout_alignEnd="@+id/option2" />
81+
82+
<TextView
83+
android:layout_width="wrap_content"
84+
android:layout_height="wrap_content"
85+
android:textAppearance="?android:attr/textAppearanceMedium"
86+
android:text="Option 2"
87+
android:id="@+id/option2TextBox"
88+
android:textColor="#000000"
89+
android:layout_below="@+id/option1"
90+
android:layout_alignParentLeft="true"
91+
android:layout_alignParentStart="true" />
92+
93+
<EditText
94+
android:layout_width="wrap_content"
95+
android:layout_height="wrap_content"
96+
android:inputType="textMultiLine"
97+
android:ems="10"
98+
android:id="@+id/option2"
99+
android:maxLength="20"
100+
android:layout_below="@+id/option2TextBox"
101+
android:layout_alignParentLeft="true"
102+
android:layout_alignParentStart="true"
103+
android:layout_alignRight="@+id/userTitleText"
104+
android:layout_alignEnd="@+id/userTitleText" />
105+
106+
<TextView
107+
android:layout_width="wrap_content"
108+
android:layout_height="wrap_content"
109+
android:textAppearance="?android:attr/textAppearanceMedium"
110+
android:text="Option 3"
111+
android:id="@+id/option3TextBox"
112+
android:paddingTop="5dp"
113+
android:textColor="#000000"
114+
android:layout_alignLeft="@+id/option4TextBox"
115+
android:layout_alignStart="@+id/option4TextBox"
116+
android:layout_below="@+id/option2" />
117+
118+
<EditText
119+
android:layout_width="wrap_content"
120+
android:layout_height="wrap_content"
121+
android:inputType="textMultiLine"
122+
android:ems="10"
123+
android:id="@+id/option3"
124+
android:maxLength="20"
125+
android:layout_below="@+id/option3TextBox"
126+
android:layout_alignParentRight="true"
127+
android:layout_alignParentEnd="true"
128+
android:layout_alignParentLeft="true"
129+
android:layout_alignParentStart="true" />
130+
131+
<TextView
132+
android:layout_width="wrap_content"
133+
android:layout_height="wrap_content"
134+
android:textAppearance="?android:attr/textAppearanceMedium"
135+
android:text="Option 4"
136+
android:id="@+id/option4TextBox"
137+
android:paddingTop="5dp"
138+
android:textColor="#000000"
139+
android:layout_below="@+id/option3"
140+
android:layout_alignParentLeft="true"
141+
android:layout_alignParentStart="true" />
142+
143+
<EditText
144+
android:layout_width="wrap_content"
145+
android:layout_height="wrap_content"
146+
android:inputType="textMultiLine"
147+
android:ems="10"
148+
android:id="@+id/option4"
149+
android:maxLength="20"
150+
android:layout_below="@+id/option4TextBox"
151+
android:layout_alignParentLeft="true"
152+
android:layout_alignParentStart="true"
153+
android:layout_alignRight="@+id/option2"
154+
android:layout_alignEnd="@+id/option2" />
155+
156+
<Button
157+
android:layout_width="wrap_content"
158+
android:layout_height="wrap_content"
159+
android:text="Upload Photo"
160+
android:id="@+id/photo"
161+
android:layout_below="@+id/option4"
162+
android:layout_alignParentLeft="true"
163+
android:layout_alignParentStart="true"
164+
android:layout_alignRight="@+id/option3"
165+
android:layout_alignEnd="@+id/option3" />
166+
167+
<TextView
168+
android:layout_width="wrap_content"
169+
android:layout_height="wrap_content"
170+
android:textAppearance="?android:attr/textAppearanceSmall"
171+
android:text="Options have 20 character limit, min 2 options"
172+
android:gravity="center"
173+
android:id="@+id/limitWarning"
174+
android:layout_below="@+id/userTitleText"
175+
android:layout_alignParentLeft="true"
176+
android:layout_alignParentStart="true"
177+
android:layout_alignRight="@+id/userTitleText"
178+
android:layout_alignEnd="@+id/userTitleText" />
179+
180+
</RelativeLayout>
182181
</ScrollView>

0 commit comments

Comments
 (0)
Please sign in to comment.