@@ -62,6 +62,7 @@ public class MainActivity extends AppCompatActivity {
62
62
private FragmentManager fragmentManager = getSupportFragmentManager ();
63
63
SharedPreferences sharedPreferences ;
64
64
private int lastExpandedGroup =-1 ;
65
+ private int lastChildExpandedGroup = -1 ;
65
66
66
67
@ Override
67
68
protected void onCreate (Bundle savedInstanceState ) {
@@ -98,26 +99,34 @@ protected void onCreate(Bundle savedInstanceState) {
98
99
expListView .setOnGroupClickListener (new ExpandableListView .OnGroupClickListener () {
99
100
@ Override
100
101
public boolean onGroupClick (ExpandableListView parent , View v , int groupPosition , long id ) {
101
- switch (groupPosition ) {
102
- case 0 :
103
- //Swapping ContactPostStaff into the fragment container dynamically
104
- Fragment contactPostStaffFragment = new ContactPostStaff ();
105
- MainActivity .swapFragmentIn (MainActivity .this ,contactPostStaffFragment ,ContactPostStaff .TAG ,true );
102
+ if (lastExpandedGroup == groupPosition ) {
103
+ if (lastExpandedGroup == 2 || lastExpandedGroup == 3 || lastExpandedGroup == 4 || lastExpandedGroup == 5 ) {
104
+ //do nothing
105
+ } else {
106
106
mDrawer .closeDrawer (GravityCompat .START );
107
- break ;
108
- case 1 :
109
- //Swapping CircleOfTrustFragment into the container
110
- CircleOfTrustFragment circleOfTrustFragment = new CircleOfTrustFragment ();
111
- MainActivity .swapFragmentIn (MainActivity .this ,circleOfTrustFragment ,CircleOfTrustFragment .TAG ,true );
112
- mDrawer .closeDrawer (GravityCompat .START );
113
- break ;
114
- case 6 :
115
- Intent intent = new Intent (MainActivity .this , UserSettingsActivity .class );
116
- startActivity (intent );
117
- mDrawer .closeDrawer (GravityCompat .START );
118
- break ;
119
- case 7 :
120
- Toast .makeText (MainActivity .this ,getString (R .string .change_name ),Toast .LENGTH_LONG ).show ();
107
+ }
108
+ } else {
109
+ switch (groupPosition ) {
110
+ case 0 :
111
+ //Swapping ContactPostStaff into the fragment container dynamically
112
+ Fragment contactPostStaffFragment = new ContactPostStaff ();
113
+ MainActivity .swapFragmentIn (MainActivity .this , contactPostStaffFragment , ContactPostStaff .TAG , true );
114
+ mDrawer .closeDrawer (GravityCompat .START );
115
+ break ;
116
+ case 1 :
117
+ //Swapping CircleOfTrustFragment into the container
118
+ CircleOfTrustFragment circleOfTrustFragment = new CircleOfTrustFragment ();
119
+ MainActivity .swapFragmentIn (MainActivity .this , circleOfTrustFragment , CircleOfTrustFragment .TAG , true );
120
+ mDrawer .closeDrawer (GravityCompat .START );
121
+ break ;
122
+ case 6 :
123
+ Intent intent = new Intent (MainActivity .this , UserSettingsActivity .class );
124
+ startActivity (intent );
125
+ mDrawer .closeDrawer (GravityCompat .START );
126
+ break ;
127
+ case 7 :
128
+ Toast .makeText (MainActivity .this , getString (R .string .change_name ), Toast .LENGTH_LONG ).show ();
129
+ }
121
130
}
122
131
return false ;
123
132
}
@@ -135,116 +144,117 @@ public void onGroupExpand(int groupPosition) {
135
144
expListView .setOnChildClickListener (new ExpandableListView .OnChildClickListener () {
136
145
@ Override
137
146
public boolean onChildClick (ExpandableListView parent , View v , int groupPosition , int childPosition , long id ) {
147
+ if (lastExpandedGroup == groupPosition && lastChildExpandedGroup == childPosition ) {
148
+ mDrawer .closeDrawer (GravityCompat .START );
149
+ } else {
150
+ switch (groupPosition ) {
151
+ case 2 :
152
+ switch (childPosition ) {
153
+ case 0 :
154
+ //Swapping RadarFragment into the container
155
+ RadarFragment radarFragment = new RadarFragment ();
156
+ MainActivity .swapFragmentIn (MainActivity .this , radarFragment , RadarFragment .TAG , true );
157
+ break ;
158
+ case 1 :
159
+ //Swapping UnwantedAttentionStrategies into the container
160
+ CopingFragment copingFragment = new CopingFragment ();
161
+ MainActivity .swapFragmentIn (MainActivity .this , copingFragment , CopingFragment .TAG , true );
162
+ break ;
163
+ case 2 :
164
+ //Swapping TacticsFragment into the container
165
+ TacticsFragment tacticsFragment = new TacticsFragment ();
166
+ MainActivity .swapFragmentIn (MainActivity .this , tacticsFragment , TacticsFragment .TAG , true );
167
+ break ;
168
+ case 3 :
169
+ //Swapping Bystander Fragment into the container
170
+ BystanderInterventionFragment bystanderInterventionFragment = new BystanderInterventionFragment ();
171
+ MainActivity .swapFragmentIn (MainActivity .this , bystanderInterventionFragment , BystanderInterventionFragment .TAG , true );
172
+ break ;
173
+ case 4 :
174
+ //Swapping Safety Plan Basics Fragment into the container
175
+ SafetyPlanBasicsFragment safetyPlanBasicsFragment = new SafetyPlanBasicsFragment ();
176
+ MainActivity .swapFragmentIn (MainActivity .this , safetyPlanBasicsFragment , SafetyPlanBasicsFragment .TAG , true );
177
+ break ;
178
+ case 5 :
179
+ //Swapping Safety Plan Fragment into the container
180
+ Intent intent = new Intent (MainActivity .this , SafetyPlanActivity .class );
181
+ startActivity (intent );
182
+ break ;
138
183
139
- switch (groupPosition )
140
- {
141
- case 2 :
142
- switch (childPosition )
143
- {
144
- case 0 :
145
- //Swapping RadarFragment into the container
146
- RadarFragment radarFragment = new RadarFragment ();
147
- MainActivity .swapFragmentIn (MainActivity .this ,radarFragment ,RadarFragment .TAG ,true );
148
- break ;
149
- case 1 :
150
- //Swapping UnwantedAttentionStrategies into the container
151
- CopingFragment copingFragment = new CopingFragment ();
152
- MainActivity .swapFragmentIn (MainActivity .this ,copingFragment ,CopingFragment .TAG ,true );
153
- break ;
154
- case 2 :
155
- //Swapping TacticsFragment into the container
156
- TacticsFragment tacticsFragment = new TacticsFragment ();
157
- MainActivity .swapFragmentIn (MainActivity .this ,tacticsFragment , TacticsFragment .TAG ,true );
158
- break ;
159
- case 3 :
160
- //Swapping Bystander Fragment into the container
161
- BystanderInterventionFragment bystanderInterventionFragment = new BystanderInterventionFragment ();
162
- MainActivity .swapFragmentIn (MainActivity .this ,bystanderInterventionFragment , BystanderInterventionFragment .TAG ,true );
163
- break ;
164
- case 4 :
165
- //Swapping Safety Plan Basics Fragment into the container
166
- SafetyPlanBasicsFragment safetyPlanBasicsFragment = new SafetyPlanBasicsFragment ();
167
- MainActivity .swapFragmentIn (MainActivity .this ,safetyPlanBasicsFragment , SafetyPlanBasicsFragment .TAG ,true );
168
- break ;
169
- case 5 :
170
- //Swapping Safety Plan Fragment into the container
171
- Intent intent = new Intent (MainActivity .this ,SafetyPlanActivity .class );
172
- startActivity (intent );
173
- break ;
174
-
175
- }
176
- break ;
177
- case 3 :
178
- switch (childPosition )
179
- {
180
- case 0 :
181
- SingleTextViewFragment .showSingleTextLayout (MainActivity .this ,getString (R .string .benefits ),getString (R .string .benefits_subtitle ),getString (R .string .benefits_info )); break ;
182
- case 1 :
183
- AvailableFragment availableFragment = new AvailableFragment ();
184
- MainActivity .swapFragmentIn (MainActivity .this ,availableFragment ,AvailableFragment .TAG ,true );
185
- break ;
186
- case 2 :
187
- SingleTextViewFragment .showSingleTextLayout (MainActivity .this ,getString (R .string .commitment ),getString (R .string .commitment_subtitle ),getString (R .string .commitment_info ));
188
- break ;
189
- case 3 :
190
- //Swapping AfterAssaultFragment into the container
191
- AfterAssaultFragment afterAssaultFragment = new AfterAssaultFragment ();
192
- MainActivity .swapFragmentIn (MainActivity .this ,afterAssaultFragment ,AfterAssaultFragment .TAG ,true );
193
- break ;
194
- case 4 :
195
- //Swapping ConfidentialityFragment into the container
196
- ConfidentialityFragment confidentialityFragment = new ConfidentialityFragment ();
197
- MainActivity .swapFragmentIn (MainActivity .this ,confidentialityFragment ,ConfidentialityFragment .TAG ,true );
198
- break ;
199
- case 5 :
200
- //Swapping MythbustersFragment into the container
201
- MythbustersFragment mythbustersFragment = new MythbustersFragment ();
202
- MainActivity .swapFragmentIn (MainActivity .this ,mythbustersFragment ,MythbustersFragment .TAG ,true );
203
- break ;
204
- }
205
- break ;
206
- case 4 :
207
- switch (childPosition )
208
- {
209
- case 0 :
210
- Fragment wasFragment = new WasFragment ();
211
- MainActivity .swapFragmentIn (MainActivity .this ,wasFragment ,WasFragment .TAG ,true );
212
- break ;
213
- case 1 :
214
- Fragment commonFragment = new CommonFragment ();
215
- MainActivity .swapFragmentIn (MainActivity .this ,commonFragment ,CommonFragment .TAG ,true );
216
- break ;
217
- case 2 :
218
- SingleTextViewFragment .showSingleTextLayout (MainActivity .this ,getString (R .string .impact ),
219
- getString (R .string .impact_subtitle ),getString (R .string .impact_sexual_assault )); break ;
220
- case 3 :
221
- Fragment harassmentFragment = new HarassmentFragment ();
222
- MainActivity .swapFragmentIn (MainActivity .this ,harassmentFragment ,HarassmentFragment .TAG ,true );
223
- break ;
224
- case 4 :
225
- Fragment helpingButton = new HelpingFragment ();
226
- MainActivity .swapFragmentIn (MainActivity .this ,helpingButton ,HelpingFragment .TAG ,true );
227
- break ;
228
- }
229
- break ;
230
- case 5 :
231
- switch (childPosition )
232
- {
233
- case 0 :
234
- SingleTextViewFragment .showSingleTextLayout (MainActivity .this ,getString (R .string .policies_title ),getString (R .string .subtitle_policies )
235
- ,getString (R .string .policies_all ));
236
- break ;
237
- case 1 :
238
- GlossaryFragment glossaryFragment = new GlossaryFragment ();
239
- MainActivity .swapFragmentIn (MainActivity .this ,glossaryFragment ,GlossaryFragment .TAG ,true );
240
- break ;
241
- case 2 :
242
- FurtherResourcesFragment furtherResourcesFragment = new FurtherResourcesFragment ();
243
- MainActivity .swapFragmentIn (MainActivity .this ,furtherResourcesFragment ,FurtherResourcesFragment .TAG ,true );
244
- break ;
245
- }
246
- break ;
184
+ }
185
+ break ;
186
+ case 3 :
187
+ switch (childPosition ) {
188
+ case 0 :
189
+ SingleTextViewFragment .showSingleTextLayout (MainActivity .this , getString (R .string .benefits ), getString (R .string .benefits_subtitle ), getString (R .string .benefits_info ));
190
+ break ;
191
+ case 1 :
192
+ AvailableFragment availableFragment = new AvailableFragment ();
193
+ MainActivity .swapFragmentIn (MainActivity .this , availableFragment , AvailableFragment .TAG , true );
194
+ break ;
195
+ case 2 :
196
+ SingleTextViewFragment .showSingleTextLayout (MainActivity .this , getString (R .string .commitment ), getString (R .string .commitment_subtitle ), getString (R .string .commitment_info ));
197
+ break ;
198
+ case 3 :
199
+ //Swapping AfterAssaultFragment into the container
200
+ AfterAssaultFragment afterAssaultFragment = new AfterAssaultFragment ();
201
+ MainActivity .swapFragmentIn (MainActivity .this , afterAssaultFragment , AfterAssaultFragment .TAG , true );
202
+ break ;
203
+ case 4 :
204
+ //Swapping ConfidentialityFragment into the container
205
+ ConfidentialityFragment confidentialityFragment = new ConfidentialityFragment ();
206
+ MainActivity .swapFragmentIn (MainActivity .this , confidentialityFragment , ConfidentialityFragment .TAG , true );
207
+ break ;
208
+ case 5 :
209
+ //Swapping MythbustersFragment into the container
210
+ MythbustersFragment mythbustersFragment = new MythbustersFragment ();
211
+ MainActivity .swapFragmentIn (MainActivity .this , mythbustersFragment , MythbustersFragment .TAG , true );
212
+ break ;
213
+ }
214
+ break ;
215
+ case 4 :
216
+ switch (childPosition ) {
217
+ case 0 :
218
+ Fragment wasFragment = new WasFragment ();
219
+ MainActivity .swapFragmentIn (MainActivity .this , wasFragment , WasFragment .TAG , true );
220
+ break ;
221
+ case 1 :
222
+ Fragment commonFragment = new CommonFragment ();
223
+ MainActivity .swapFragmentIn (MainActivity .this , commonFragment , CommonFragment .TAG , true );
224
+ break ;
225
+ case 2 :
226
+ SingleTextViewFragment .showSingleTextLayout (MainActivity .this , getString (R .string .impact ),
227
+ getString (R .string .impact_subtitle ), getString (R .string .impact_sexual_assault ));
228
+ break ;
229
+ case 3 :
230
+ Fragment harassmentFragment = new HarassmentFragment ();
231
+ MainActivity .swapFragmentIn (MainActivity .this , harassmentFragment , HarassmentFragment .TAG , true );
232
+ break ;
233
+ case 4 :
234
+ Fragment helpingButton = new HelpingFragment ();
235
+ MainActivity .swapFragmentIn (MainActivity .this , helpingButton , HelpingFragment .TAG , true );
236
+ break ;
237
+ }
238
+ break ;
239
+ case 5 :
240
+ switch (childPosition ) {
241
+ case 0 :
242
+ SingleTextViewFragment .showSingleTextLayout (MainActivity .this , getString (R .string .policies_title ), getString (R .string .subtitle_policies )
243
+ , getString (R .string .policies_all ));
244
+ break ;
245
+ case 1 :
246
+ GlossaryFragment glossaryFragment = new GlossaryFragment ();
247
+ MainActivity .swapFragmentIn (MainActivity .this , glossaryFragment , GlossaryFragment .TAG , true );
248
+ break ;
249
+ case 2 :
250
+ FurtherResourcesFragment furtherResourcesFragment = new FurtherResourcesFragment ();
251
+ MainActivity .swapFragmentIn (MainActivity .this , furtherResourcesFragment , FurtherResourcesFragment .TAG , true );
252
+ break ;
253
+ }
254
+ break ;
255
+ }
247
256
}
257
+ lastChildExpandedGroup = childPosition ;
248
258
mDrawer .closeDrawer (GravityCompat .START );
249
259
return true ;
250
260
}
0 commit comments