alpha 0.0.2
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / Vorlesungsplan.java
index caf8c88de80ce9314fcd64fd89cc492f778d5b14..d4b8bb692e892aa8eee8b79b397d8cb51352268c 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,15 +25,26 @@ 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[] {
                 new SearchIndices("Vorlesungsplan", true) {{
                     setUpdateTime(1);
                     setTarget("#Vorlesungsplan");
-                    setTitle("Vorlesungsplan");
-                    setDescription("Vorlesungsplan dienes Kurses");
-                    addKeyWord("vorlesung, vorlesungen, plan, vorlesungsplan, stundenplan, termin, termine, kursplan, blockplan, block, zeit, zeiten");
+                    setTitle(R.string.search_vorlesungsplan_title);
+                    setDescription(R.string.search_vorlesungsplan_description);
+                    addKeyWord(R.string.search_vorlesungsplan_keywords);
+                }},
+                new SearchIndices("Vorlesungsplan", true) {{
+                    setUpdateTime(1);
+                    setTarget("#Vorlesungsplan#view=exams");
+                    setTitle(R.string.search_vorlesungsplan_klausur_title);
+                    setDescription(R.string.search_vorlesungsplan_klausur_description);
+                    addKeyWord(R.string.search_vorlesungsplan_klausur_keywords);
                 }},
         };
     }
@@ -32,9 +53,77 @@ public class Vorlesungsplan extends CampusAppFragment {
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                              Bundle savedInstanceState) {
         View view = inflater.inflate(R.layout.fragment_vorlesungsplan, container, false);
-        AppContext.setTitle("Vorlesungsplan");
+        AppContext.setTitle(AppContext.getResString(R.string.vorlesungsplan_title));
+
+        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);
+        }
+    }
+
 }