66import android .content .IntentFilter ;
77import android .os .Bundle ;
88import android .support .v4 .app .Fragment ;
9- import android .support .v4 .app .FragmentManager ;
10- import android .support .v4 .view .PagerAdapter ;
119import android .support .v4 .view .ViewPager ;
1210import android .support .v4 .widget .SwipeRefreshLayout ;
13- import android .util .Log ;
1411import android .util .TypedValue ;
15- import android .view .ViewGroup ;
12+ import android .view .Menu ;
13+ import android .view .MenuInflater ;
14+ import android .view .View ;
1615
1716import net .coding .program .MyApp ;
1817import net .coding .program .R ;
1918import net .coding .program .common .Global ;
20- import net .coding .program .common .SaveFragmentPagerAdapter ;
2119import net .coding .program .common .network .BaseFragment ;
2220import net .coding .program .maopao .MaopaoAddActivity_ ;
2321import net .coding .program .model .AccountInfo ;
2826
2927import org .androidannotations .annotations .AfterViews ;
3028import org .androidannotations .annotations .EFragment ;
29+ import org .androidannotations .annotations .FragmentArg ;
3130import org .androidannotations .annotations .OptionsItem ;
32- import org .androidannotations .annotations .OptionsMenu ;
3331import org .androidannotations .annotations .ViewById ;
34- import org .androidannotations .annotations .res .StringArrayRes ;
3532import org .json .JSONArray ;
3633import org .json .JSONException ;
3734import org .json .JSONObject ;
4138import java .util .List ;
4239
4340@ EFragment (R .layout .fragment_project )
44- @ OptionsMenu (R .menu .menu_fragment_project )
4541public class ProjectFragment extends BaseFragment implements ProjectListFragment .UpdateData , SwipeRefreshLayout .OnRefreshListener {
4642
4743 public static final String RECEIVER_INTENT_REFRESH_PROJECT = "net.coding.program.project.receiver.refresh" ;
4844 final String host = Global .HOST_API + "/projects?pageSize=100&type=all&sort=hot" ;
49- @ StringArrayRes
45+
5046 String [] program_title ;
5147 @ ViewById
5248 net .coding .program .third .WechatTab tabs ;
5349 @ ViewById (R .id .pagerFragmentProgram )
5450 ViewPager pager ;
51+
52+ @ FragmentArg
53+ Type type = Type .Main ;
5554 boolean requestOk = true ;
5655 boolean needRefresh = true ;
57- private ArrayList <ProjectObject > mData = new ArrayList <>();
58- private MyPagerAdapter adapter ;
56+ ArrayList <ProjectObject > mData = new ArrayList <>();
57+ private MyProjectPagerAdapter adapter ;
5958 private BroadcastReceiver refreshReceiver = new BroadcastReceiver () {
6059 @ Override
6160 public void onReceive (Context context , Intent intent ) {
@@ -69,7 +68,16 @@ public void onReceive(Context context, Intent intent) {
6968 protected void init () {
7069 hideProgressDialog ();
7170 mData = AccountInfo .loadProjects (getActivity ());
72- adapter = new MyPagerAdapter (getChildFragmentManager ());
71+
72+ if (type == Type .Main ) {
73+ setHasOptionsMenu (true );
74+ program_title = getResources ().getStringArray (R .array .program_title );
75+ } else {
76+ setHasOptionsMenu (false );
77+ program_title = getResources ().getStringArray (R .array .program_title_pick );
78+ }
79+
80+ adapter = new MyProjectPagerAdapter (this , getChildFragmentManager ());
7381
7482 pager .setAdapter (adapter );
7583
@@ -78,13 +86,23 @@ protected void init() {
7886 pager .setPageMargin (pageMargin );
7987
8088 tabs .setViewPager (pager );
89+
90+ if (type == Type .Pick ) {
91+ tabs .setVisibility (View .GONE );
92+ }
8193 }
8294
8395 @ Override
8496 public void onRefresh () {
8597 getNetwork (host , host );
8698 }
8799
100+ @ Override
101+ public void onCreateOptionsMenu (Menu menu , MenuInflater inflater ) {
102+ inflater .inflate (net .coding .program .R .menu .menu_fragment_project , menu );
103+ super .onCreateOptionsMenu (menu , inflater );
104+ }
105+
88106 @ Override
89107 public void updateRead (int id ) {
90108 List <WeakReference <Fragment >> fragmentList = adapter .getFragments ();
@@ -216,74 +234,7 @@ public void onDestroy() {
216234 super .onDestroy ();
217235 }
218236
219- private class MyPagerAdapter extends SaveFragmentPagerAdapter {
220-
221- public MyPagerAdapter (FragmentManager fm ) {
222- super (fm );
223- }
224-
225- @ Override
226- public CharSequence getPageTitle (int position ) {
227- return program_title [position ];
228- }
229-
230- @ Override
231- public int getCount () {
232- return program_title .length ;
233- }
234-
235- @ Override
236- public int getItemPosition (Object object ) {
237- return PagerAdapter .POSITION_NONE ;
238- }
239-
240- @ Override
241- public Object instantiateItem (ViewGroup container , int position ) {
242- ProjectListFragment fragment = (ProjectListFragment ) super .instantiateItem (container , position );
243- fragment .setData (getChildData (position ), requestOk );
244-
245- return fragment ;
246- }
247-
248- @ Override
249- public Fragment getItem (int position ) {
250- Log .d ("" , "all p " + position );
251- ProjectListFragment fragment = new ProjectListFragment_ ();
252- Bundle bundle = new Bundle ();
253-
254- bundle .putSerializable ("mData" , getChildData (position ));
255- fragment .setArguments (bundle );
256-
257- saveFragment (fragment );
258-
259- return fragment ;
260- }
261-
262- private ArrayList <ProjectObject > getChildData (int position ) {
263- ArrayList <ProjectObject > childData = new ArrayList <>();
264-
265- switch (position ) {
266- case 1 :
267- stuffChildData (childData , "member" );
268- break ;
269- case 2 :
270- stuffChildData (childData , "owner" );
271- break ;
272- default :
273- childData .addAll (mData );
274- break ;
275- }
276-
277- return childData ;
278- }
279-
280- void stuffChildData (ArrayList <ProjectObject > child , String type ) {
281- for (int i = 0 ; i < mData .size (); ++i ) {
282- ProjectObject item = mData .get (i );
283- if (item .current_user_role .equals (type )) {
284- child .add (item );
285- }
286- }
287- }
237+ public enum Type {
238+ Main , Pick
288239 }
289240}
0 commit comments