24
24
import net .coding .program .message .JSONUtils ;
25
25
import net .coding .program .model .AccountInfo ;
26
26
import net .coding .program .model .ProjectObject ;
27
+ import net .coding .program .model .ProjectTaskCountModel ;
28
+ import net .coding .program .model .ProjectTaskUserCountModel ;
27
29
import net .coding .program .model .TaskLabelModel ;
28
30
import net .coding .program .model .TaskObject ;
29
31
import net .coding .program .model .TaskProjectCountModel ;
32
+ import net .coding .program .model .UserObject ;
30
33
import net .coding .program .task .TaskListParentUpdate ;
31
34
import net .coding .program .task .TaskListUpdate ;
32
35
import net .coding .program .task .add .TaskAddActivity ;
@@ -77,6 +80,7 @@ public class ProjectTaskFragment extends TaskFilterFragment implements TaskListP
77
80
MemberTaskCount mMemberTask = new MemberTaskCount ();
78
81
private MyPagerAdapter adapter ;
79
82
private DrawerLayout drawer ;
83
+ private UserObject account ;
80
84
81
85
@ AfterViews
82
86
protected final void initProjectTaskFragment () {
@@ -87,11 +91,29 @@ protected final void initProjectTaskFragment() {
87
91
tabs .setLayoutInflater (mInflater );
88
92
tabs .setVisibility (View .INVISIBLE );
89
93
94
+ account = AccountInfo .loadAccount (getActivity ());
95
+
90
96
HOST_TASK_MEMBER = String .format (HOST_TASK_MEMBER , mProjectObject .getId ());
91
97
refresh ();
92
98
93
99
adapter = new MyPagerAdapter (getChildFragmentManager ());
94
100
pager .setAdapter (adapter );
101
+ pager .addOnPageChangeListener (new ViewPager .OnPageChangeListener () {
102
+ @ Override
103
+ public void onPageScrolled (int position , float positionOffset , int positionOffsetPixels ) {
104
+
105
+ }
106
+
107
+ @ Override
108
+ public void onPageSelected (int position ) {
109
+ loadData (position );
110
+ }
111
+
112
+ @ Override
113
+ public void onPageScrollStateChanged (int state ) {
114
+
115
+ }
116
+ });
95
117
96
118
// 必须添加,否则回收恢复的时候,TaskListFragment 的 actionmenu 会显示几个出来
97
119
setHasOptionsMenu (true );
@@ -106,10 +128,54 @@ protected void initFilterViews() {
106
128
toolBarTitle .setOnClickListener (v -> {
107
129
meActionFilter ();
108
130
});
109
- toolBarTitle .setText ("我的任务" );
131
+ toolBarTitle .setText ("全部任务" );
132
+ }
133
+
134
+
135
+ loadData (0 );
136
+ }
137
+
138
+ @ Override
139
+ protected boolean isProjectInner () {
140
+ return true ;
141
+ }
142
+
143
+ private void loadData (int index ) {
144
+
145
+ mTaskProjectCountModel = new TaskProjectCountModel ();
146
+
147
+ if (index == 0 ) {
148
+ //全部成员
149
+ //「全部任务」数量 - 进行中,已完成的 「我创建的」数量 = create
150
+ getNetwork (String .format (urlProjectTaskCount , mProjectObject .getId ()), urlProjectTaskCount );
151
+ getNetwork (String .format (urlALL_Count , mProjectObject .getId ()), urlALL_Count );
152
+ getNetwork (String .format (urlALL_WATCH_Count , mProjectObject .getId (), account .id ), urlALL_WATCH_Count );
153
+
154
+ loadAllLabels ();
155
+ } else {
156
+ if (mMembersAll .size () <= index ) {
157
+ return ;
158
+ }
159
+ TaskObject .Members members = mMembersAll .get (index );
160
+
161
+ //某个成员
162
+ getNetwork (String .format (urlSome_Count , mProjectObject .getId (), members .user_id ), urlSome_Count );
163
+ getNetwork (String .format (urlSome_Label , mProjectObject .getId (), members .user_id ), urlSome_Label );
164
+ }
165
+ }
166
+
167
+ private void loadAllLabels () {
168
+ int cur = tabs .getCurrentPosition ();
169
+ if (cur != 0 ) {
170
+ TaskObject .Members members = mMembersAll .get (cur + 1 );
171
+ getNetwork (String .format (urlSome_Label , mProjectObject .getId (), members .user_id ), urlSome_Label );
172
+ } else {
173
+ if (statusIndex == 0 ) {
174
+ getNetwork (String .format (urlALL_Label , mProjectObject .owner_user_name , mProjectObject .name ), urlALL_Label );
175
+ } else {
176
+ getNetwork (String .format (urlProjectTaskLabels , mProjectObject .getId ()) + getRole (), urlProjectTaskLabels );
177
+ }
110
178
}
111
- getNetwork (String .format (urlProjectTaskCount , mProjectObject .getId ()), urlProjectTaskCount );
112
- getNetwork (String .format (urlProjectTaskLabels , mProjectObject .getId ()) + getRole (), urlProjectTaskLabels );
113
179
}
114
180
115
181
private void refresh () {
@@ -173,7 +239,29 @@ public void parseJson(int code, JSONObject respanse, String tag, int pos, Object
173
239
} else if (tag .equals (urlProjectTaskCount )) {
174
240
showLoading (false );
175
241
if (code == 0 ) {
176
- mTaskProjectCountModel = JSONUtils .getData (respanse .getString ("data" ), TaskProjectCountModel .class );
242
+ TaskProjectCountModel projectTaskCountModel = JSONUtils .getData (respanse .getString ("data" ), TaskProjectCountModel .class );
243
+ mTaskProjectCountModel .creatorDone = projectTaskCountModel .creatorDone ;
244
+ mTaskProjectCountModel .creatorProcessing = projectTaskCountModel .creatorProcessing ;
245
+ mTaskProjectCountModel .watcherDone = projectTaskCountModel .watcherDone ;
246
+ mTaskProjectCountModel .watcherProcessing = projectTaskCountModel .watcherProcessing ;
247
+ } else {
248
+ showErrorMsg (code , respanse );
249
+ }
250
+ } else if (tag .equals (urlALL_Count )) {
251
+ showLoading (false );
252
+ if (code == 0 ) {
253
+ ProjectTaskCountModel projectTaskCountModel = JSONUtils .getData (respanse .getString ("data" ), ProjectTaskCountModel .class );
254
+ mTaskProjectCountModel .owner = projectTaskCountModel .done + projectTaskCountModel .processing ;
255
+ mTaskProjectCountModel .ownerDone = projectTaskCountModel .done ;
256
+ mTaskProjectCountModel .ownerProcessing = projectTaskCountModel .processing ;
257
+ mTaskProjectCountModel .creator = projectTaskCountModel .create ;
258
+ } else {
259
+ showErrorMsg (code , respanse );
260
+ }
261
+ } else if (tag .equals (urlALL_WATCH_Count )) {
262
+ showLoading (false );
263
+ if (code == 0 ) {
264
+ mTaskProjectCountModel .watcher = JSONUtils .getJSONLong ("totalRow" , respanse .getString ("data" ));
177
265
} else {
178
266
showErrorMsg (code , respanse );
179
267
}
@@ -185,6 +273,35 @@ public void parseJson(int code, JSONObject respanse, String tag, int pos, Object
185
273
} else {
186
274
showErrorMsg (code , respanse );
187
275
}
276
+ } else if (tag .equals (urlALL_Label )) {
277
+ showLoading (false );
278
+ if (code == 0 ) {
279
+ taskLabelModels = JSONUtils .getList (respanse .getString ("data" ), TaskLabelModel .class );
280
+ Collections .sort (taskLabelModels , new PinyinComparator ());
281
+ } else {
282
+ showErrorMsg (code , respanse );
283
+ }
284
+ } else if (tag .equals (urlSome_Count )) {
285
+ showLoading (false );
286
+ if (code == 0 ) {
287
+ ProjectTaskUserCountModel item = JSONUtils .getData (respanse .getString ("data" ), ProjectTaskUserCountModel .class );
288
+ mTaskProjectCountModel .ownerDone = item .memberDone ;
289
+ mTaskProjectCountModel .ownerProcessing = item .memberProcessing ;
290
+ mTaskProjectCountModel .creatorDone = item .creatorDone ;
291
+ mTaskProjectCountModel .creatorProcessing = item .creatorProcessing ;
292
+ mTaskProjectCountModel .watcherDone = item .watcherDone ;
293
+ mTaskProjectCountModel .watcherProcessing = item .watcherProcessing ;
294
+ } else {
295
+ showErrorMsg (code , respanse );
296
+ }
297
+ } else if (tag .equals (urlSome_Label )) {
298
+ showLoading (false );
299
+ if (code == 0 ) {
300
+ taskLabelModels = JSONUtils .getList (respanse .getString ("data" ), TaskLabelModel .class );
301
+ Collections .sort (taskLabelModels , new PinyinComparator ());
302
+ } else {
303
+ showErrorMsg (code , respanse );
304
+ }
188
305
}
189
306
190
307
}
@@ -311,9 +428,17 @@ public Fragment getItem(int position) {
311
428
bundle .putSerializable ("mMembersArray" , mUsersInfo );
312
429
bundle .putSerializable ("mMemberPos" , position );
313
430
bundle .putBoolean ("mShowAdd" , true );
314
- // bundle.putString("mMeAction", "");
315
- // bundle.putString("mStatus", "");
316
- // bundle.putString("mLabel", "");
431
+
432
+ bundle .putString ("mMeAction" , mMeActions [statusIndex ]);
433
+ if (mFilterModel != null ) {
434
+ bundle .putString ("mStatus" , mFilterModel .status + "" );
435
+ bundle .putString ("mLabel" , mFilterModel .label );
436
+ bundle .putString ("mKeyword" , mFilterModel .keyword );
437
+ } else {
438
+ bundle .putString ("mStatus" , "" );
439
+ bundle .putString ("mLabel" , "" );
440
+ bundle .putString ("mKeyword" , "" );
441
+ }
317
442
fragment .setParent (ProjectTaskFragment .this );
318
443
319
444
fragment .setArguments (bundle );
@@ -346,6 +471,6 @@ protected final void action_filter() {
346
471
@ Override
347
472
protected void sureFilter () {
348
473
super .sureFilter ();
349
- getNetwork ( String . format ( urlProjectTaskLabels , mProjectObject . getId ()) + getRole (), urlProjectTaskLabels );
474
+ loadAllLabels ( );
350
475
}
351
476
}
0 commit comments