alpha 0.0.1
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / Vorlesungsplan.java
index caf8c88de80ce9314fcd64fd89cc492f778d5b14..6428e632c009c8493e258decd4fdffdb4e3733b7 100644 (file)
@@ -2,11 +2,21 @@ package de.dhbwloe.campusapp.fragments;
 
 
 import android.os.Bundle;
+import android.support.design.widget.TabLayout;
 import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
 import de.dhbwloe.campusapp.CampusAppFragment;
 import de.dhbwloe.campusapp.R;
 import de.dhbwloe.campusapp.search.SearchIndices;
@@ -15,6 +25,10 @@ import de.dhbwloe.campusapp.search.SearchIndices;
  * A simple {@link Fragment} subclass.
  */
 public class Vorlesungsplan extends CampusAppFragment {
+    public interface VorlesungsplanFragment {
+        void setActive();
+    }
+
     /* implement this for search results ;) */
     public static SearchIndices[] GetSearchIndices() {
         return new SearchIndices[] {
@@ -25,6 +39,13 @@ public class Vorlesungsplan extends CampusAppFragment {
                     setDescription("Vorlesungsplan dienes Kurses");
                     addKeyWord("vorlesung, vorlesungen, plan, vorlesungsplan, stundenplan, termin, termine, kursplan, blockplan, block, zeit, zeiten");
                 }},
+                new SearchIndices("Vorlesungsplan", true) {{
+                    setUpdateTime(1);
+                    setTarget("#Vorlesungsplan#view=exams");
+                    setTitle("Vorlesungsplan");
+                    setDescription("Klausurübersicht dienes Kurses");
+                    addKeyWord("klausuren, prüfungen, exams, termine, zeitpunkt, plan, ergebnisse");
+                }},
         };
     }
 
@@ -34,7 +55,75 @@ public class Vorlesungsplan extends CampusAppFragment {
         View view = inflater.inflate(R.layout.fragment_vorlesungsplan, container, false);
         AppContext.setTitle("Vorlesungsplan");
 
+        ViewPager pager = (ViewPager) view.findViewById(R.id.viewpager);
+        setupViewPager(pager);
+
+        TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs);
+        tabLayout.setupWithViewPager(pager);
+
         return view;
     }
 
+    private void setupViewPager(ViewPager viewPager) {
+        final ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
+
+        adapter.addFragment(new VorlesungsplanUpcoming(), AppContext.getResString(R.string.vorlesungsplan_upcoming));
+        adapter.addFragment(new VorlesungsplanGroups(), AppContext.getResString(R.string.vorlesungsplan_groups));
+        adapter.addFragment(new VorlesungsplanExams(), AppContext.getResString(R.string.vorlesungsplan_exams));
+
+        viewPager.setAdapter(adapter);
+        viewPager.setCurrentItem(0);
+
+        VorlesungsplanFragment fragment = (VorlesungsplanFragment)adapter.getItem(0);
+        fragment.setActive();
+
+
+        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                VorlesungsplanFragment fragment = (VorlesungsplanFragment)adapter.getItem(position);
+                fragment.setActive();
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
+    }
+
+    class ViewPagerAdapter extends FragmentPagerAdapter {
+        private final List<Fragment> mFragmentList = new ArrayList<>();
+        private final List<String> mFragmentTitleList = new ArrayList<>();
+
+        public ViewPagerAdapter(FragmentManager manager) {
+            super(manager);
+        }
+
+        @Override
+        public Fragment getItem(int position) {
+            return mFragmentList.get(position);
+        }
+
+        @Override
+        public int getCount() {
+            return mFragmentList.size();
+        }
+
+        public void addFragment(Fragment fragment, String title) {
+            mFragmentList.add(fragment);
+            mFragmentTitleList.add(title);
+        }
+
+        @Override
+        public CharSequence getPageTitle(int position) {
+            return mFragmentTitleList.get(position);
+        }
+    }
+
 }