diff --git a/app/src/main/java/com/denizk0461/studip/activity/MainActivity.kt b/app/src/main/java/com/denizk0461/studip/activity/MainActivity.kt index a1ee645..c42c188 100644 --- a/app/src/main/java/com/denizk0461/studip/activity/MainActivity.kt +++ b/app/src/main/java/com/denizk0461/studip/activity/MainActivity.kt @@ -29,11 +29,11 @@ class MainActivity : AppCompatActivity() { binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) - setSupportActionBar(binding.toolbar) +// setSupportActionBar(binding.toolbar) - val navController = findNavController(R.id.nav_host_fragment_content_main) - appBarConfiguration = AppBarConfiguration(navController.graph) - setupActionBarWithNavController(navController, appBarConfiguration) +// val navController = findNavController(R.id.nav_host_fragment_content_main) +// appBarConfiguration = AppBarConfiguration(navController.graph) +// setupActionBarWithNavController(navController, appBarConfiguration) // binding.fab.setOnClickListener { view -> // findNavController(R.id.nav_host_fragment_content_main).navigate(R.id.action_FirstFragment_to_SecondFragment) diff --git a/app/src/main/java/com/denizk0461/studip/fragment/EventFragment.kt b/app/src/main/java/com/denizk0461/studip/fragment/EventFragment.kt index 2767e1a..101b0a9 100644 --- a/app/src/main/java/com/denizk0461/studip/fragment/EventFragment.kt +++ b/app/src/main/java/com/denizk0461/studip/fragment/EventFragment.kt @@ -1,6 +1,7 @@ package com.denizk0461.studip.fragment import android.os.Bundle +import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View @@ -9,12 +10,16 @@ import androidx.fragment.app.viewModels import androidx.navigation.fragment.NavHostFragment.Companion.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.PagerSnapHelper +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.OnScrollListener import com.denizk0461.studip.R import com.denizk0461.studip.adapter.StudIPEventPageAdapter import com.denizk0461.studip.data.DummyData import com.denizk0461.studip.data.StudIPParser import com.denizk0461.studip.databinding.FragmentEventBinding import com.denizk0461.studip.viewmodel.EventViewModel +import com.google.android.material.tabs.TabLayout +import com.google.android.material.tabs.TabLayout.OnTabSelectedListener import java.time.DayOfWeek import java.time.LocalDate import java.time.LocalTime @@ -31,8 +36,10 @@ class EventFragment : Fragment() { // onDestroyView. private val binding get() = _binding!! private lateinit var recyclerViewAdapter: StudIPEventPageAdapter - private lateinit var recyclerViewLayoutManager: LinearLayoutManager + private lateinit var layoutManager: LinearLayoutManager private var dayOfWeek: Int = 0 + private val pagerSnapHelper = PagerSnapHelper() + private var isUserScrolling = false private val viewModel: EventViewModel by viewModels() @@ -55,21 +62,48 @@ class EventFragment : Fragment() { viewModel.allEvents.observe(viewLifecycleOwner) { events -> recyclerViewAdapter = StudIPEventPageAdapter(events)//DummyData.events.toList()) binding.recyclerView.adapter = recyclerViewAdapter - recyclerViewLayoutManager = - LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) - binding.recyclerView.layoutManager = recyclerViewLayoutManager + layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) + binding.recyclerView.layoutManager = layoutManager binding.recyclerView.onFlingListener = null - PagerSnapHelper().attachToRecyclerView(binding.recyclerView) + pagerSnapHelper.attachToRecyclerView(binding.recyclerView) // binding.recyclerView.scheduleLayoutAnimation() binding.recyclerView.scrollToPosition(dayOfWeek) } -// viewModel.doAsync { StudIPParser().parse(requireContext()) } - binding.fab.setOnClickListener { view -> launchWebview() } + binding.recyclerView.addOnScrollListener(object : OnScrollListener() { + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { + super.onScrolled(recyclerView, dx, dy) + isUserScrolling = true + val i = if (dx < 0) { + layoutManager.findFirstVisibleItemPosition() + } else { + layoutManager.findLastVisibleItemPosition() + } + binding.dayTabs.getTabAt(i)?.select() + } + }) + + binding.dayTabs.addOnTabSelectedListener(object : OnTabSelectedListener { + override fun onTabSelected(tab: TabLayout.Tab) { + if (!isUserScrolling) { + binding.recyclerView.smoothScrollToPosition(tab.position) + Log.d("HELLO4", binding.recyclerView.scrollY.toString()) + } // TODO where to set isUserScrolling back to true? + } + override fun onTabUnselected(tab: TabLayout.Tab?) {} + override fun onTabReselected(tab: TabLayout.Tab?) {} + }) + +// binding.daytabmonday.setOnClickListener { binding.recyclerView.scrollToPosition(0) } +// binding.daytabtuesday.setOnClickListener { binding.recyclerView.scrollToPosition(1) } +// binding.daytabwednesday.setOnClickListener { binding.recyclerView.scrollToPosition(2) } +// binding.daytabthursday.setOnClickListener { binding.recyclerView.scrollToPosition(3) } +// binding.daytabfriday.setOnClickListener { binding.recyclerView.scrollToPosition(4) } + // binding.buttonFirst.setOnClickListener { // findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment) // } diff --git a/app/src/main/java/com/denizk0461/studip/fragment/ParserFragment.kt b/app/src/main/java/com/denizk0461/studip/fragment/ParserFragment.kt index 59a17b2..7a32e7d 100644 --- a/app/src/main/java/com/denizk0461/studip/fragment/ParserFragment.kt +++ b/app/src/main/java/com/denizk0461/studip/fragment/ParserFragment.kt @@ -10,7 +10,7 @@ import android.webkit.WebViewClient import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import com.denizk0461.studip.data.StudIPParser -import com.denizk0461.studip.databinding.FragmentSecondBinding +import com.denizk0461.studip.databinding.FragmentParserBinding import com.denizk0461.studip.viewmodel.ParserViewModel import java.net.URLDecoder @@ -19,7 +19,7 @@ import java.net.URLDecoder */ class ParserFragment : Fragment() { - private var _binding: FragmentSecondBinding? = null + private var _binding: FragmentParserBinding? = null private var html = "" // temporary storage for the website HTML // This property is only valid between onCreateView and @@ -33,7 +33,7 @@ class ParserFragment : Fragment() { savedInstanceState: Bundle? ): View { - _binding = FragmentSecondBinding.inflate(inflater, container, false) + _binding = FragmentParserBinding.inflate(inflater, container, false) return binding.root } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 91e87ed..8c46088 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,18 +7,6 @@ android:fitsSystemWindows="true" tools:context=".activity.MainActivity"> - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index e416e1c..e1b25df 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -16,4 +16,5 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:navGraph="@navigation/nav_graph" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_event.xml b/app/src/main/res/layout/fragment_event.xml index 03ee974..8d3572e 100644 --- a/app/src/main/res/layout/fragment_event.xml +++ b/app/src/main/res/layout/fragment_event.xml @@ -1,25 +1,77 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + android:scrollbars="horizontal" + app:layout_behavior="@string/appbar_scrolling_view_behavior"/> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_second.xml b/app/src/main/res/layout/fragment_parser.xml similarity index 100% rename from app/src/main/res/layout/fragment_second.xml rename to app/src/main/res/layout/fragment_parser.xml diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index cfde5e5..ceb618b 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -19,7 +19,7 @@ android:id="@+id/SecondFragment" android:name="com.denizk0461.studip.fragment.ParserFragment" android:label="@string/second_fragment_label" - tools:layout="@layout/fragment_second"> + tools:layout="@layout/fragment_parser"> Next Previous + MONDAY + TUESDAY + WEDNESDAY + THURSDAY + FRIDAY + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam in scelerisque sem. Mauris volutpat, dolor id interdum ullamcorper, risus dolor egestas lectus, sit amet mattis purus