alpha 0.0.1
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / Vorlesungsplan.java
1 package de.dhbwloe.campusapp.fragments;
2
3
4 import android.os.Bundle;
5 import android.support.design.widget.TabLayout;
6 import android.support.v4.app.Fragment;
7 import android.support.v4.app.FragmentManager;
8 import android.support.v4.app.FragmentPagerAdapter;
9 import android.support.v4.view.ViewPager;
10 import android.view.LayoutInflater;
11 import android.view.View;
12 import android.view.ViewGroup;
13
14 import java.text.SimpleDateFormat;
15 import java.util.ArrayList;
16 import java.util.Calendar;
17 import java.util.Date;
18 import java.util.List;
19
20 import de.dhbwloe.campusapp.CampusAppFragment;
21 import de.dhbwloe.campusapp.R;
22 import de.dhbwloe.campusapp.search.SearchIndices;
23
24 /**
25  * A simple {@link Fragment} subclass.
26  */
27 public class Vorlesungsplan extends CampusAppFragment {
28     public interface VorlesungsplanFragment {
29         void setActive();
30     }
31
32     /* implement this for search results ;) */
33     public static SearchIndices[] GetSearchIndices() {
34         return new SearchIndices[] {
35                 new SearchIndices("Vorlesungsplan", true) {{
36                     setUpdateTime(1);
37                     setTarget("#Vorlesungsplan");
38                     setTitle("Vorlesungsplan");
39                     setDescription("Vorlesungsplan dienes Kurses");
40                     addKeyWord("vorlesung, vorlesungen, plan, vorlesungsplan, stundenplan, termin, termine, kursplan, blockplan, block, zeit, zeiten");
41                 }},
42                 new SearchIndices("Vorlesungsplan", true) {{
43                     setUpdateTime(1);
44                     setTarget("#Vorlesungsplan#view=exams");
45                     setTitle("Vorlesungsplan");
46                     setDescription("Klausurübersicht dienes Kurses");
47                     addKeyWord("klausuren, prüfungen, exams, termine, zeitpunkt, plan, ergebnisse");
48                 }},
49         };
50     }
51
52     @Override
53     public View onCreateView(LayoutInflater inflater, ViewGroup container,
54                              Bundle savedInstanceState) {
55         View view = inflater.inflate(R.layout.fragment_vorlesungsplan, container, false);
56         AppContext.setTitle("Vorlesungsplan");
57
58         ViewPager pager = (ViewPager) view.findViewById(R.id.viewpager);
59         setupViewPager(pager);
60
61         TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs);
62         tabLayout.setupWithViewPager(pager);
63
64         return view;
65     }
66
67     private void setupViewPager(ViewPager viewPager) {
68         final ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
69
70         adapter.addFragment(new VorlesungsplanUpcoming(), AppContext.getResString(R.string.vorlesungsplan_upcoming));
71         adapter.addFragment(new VorlesungsplanGroups(), AppContext.getResString(R.string.vorlesungsplan_groups));
72         adapter.addFragment(new VorlesungsplanExams(), AppContext.getResString(R.string.vorlesungsplan_exams));
73
74         viewPager.setAdapter(adapter);
75         viewPager.setCurrentItem(0);
76
77         VorlesungsplanFragment fragment = (VorlesungsplanFragment)adapter.getItem(0);
78         fragment.setActive();
79
80
81         viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
82             @Override
83             public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
84
85             }
86
87             @Override
88             public void onPageSelected(int position) {
89                 VorlesungsplanFragment fragment = (VorlesungsplanFragment)adapter.getItem(position);
90                 fragment.setActive();
91             }
92
93             @Override
94             public void onPageScrollStateChanged(int state) {
95
96             }
97         });
98     }
99
100     class ViewPagerAdapter extends FragmentPagerAdapter {
101         private final List<Fragment> mFragmentList = new ArrayList<>();
102         private final List<String> mFragmentTitleList = new ArrayList<>();
103
104         public ViewPagerAdapter(FragmentManager manager) {
105             super(manager);
106         }
107
108         @Override
109         public Fragment getItem(int position) {
110             return mFragmentList.get(position);
111         }
112
113         @Override
114         public int getCount() {
115             return mFragmentList.size();
116         }
117
118         public void addFragment(Fragment fragment, String title) {
119             mFragmentList.add(fragment);
120             mFragmentTitleList.add(title);
121         }
122
123         @Override
124         public CharSequence getPageTitle(int position) {
125             return mFragmentTitleList.get(position);
126         }
127     }
128
129 }