Skip to content

Commit

Permalink
changed bookmark button to saved header
Browse files Browse the repository at this point in the history
  • Loading branch information
sruthisun1 committed Feb 16, 2025
1 parent 195062d commit 09c7c3f
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class ScheduleFragment : Fragment() {

private lateinit var shift_header: TextView
private lateinit var schedule_header: TextView
private lateinit var favoriteButton: ImageButton
private lateinit var saved_header: TextView
private lateinit var scheduleViewModel: ScheduleViewModel
private lateinit var scheduleBackground: ImageView
private var showingFavorites: Boolean = false
Expand All @@ -46,9 +46,10 @@ class ScheduleFragment : Fragment() {
view.scheduleContainer.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(view.scheduleDays))
view.scheduleDays.addOnTabSelectedListener(TabLayout.ViewPagerOnTabSelectedListener(view.scheduleContainer))
setupCustomTabs(view.scheduleDays)
favoriteButton = view.findViewById(R.id.lightBookmarkButton)
schedule_header = view.findViewById(R.id.schedule_header)
shift_header = view.findViewById(R.id.shift_header)
saved_header = view.findViewById(R.id.saved_header)

scheduleBackground = view.findViewById(R.id.scheduleBackground)
scheduleBackground.setImageResource(R.drawable.saved_events_background)
scheduleBackground.alpha = 0.8f
Expand All @@ -63,8 +64,7 @@ class ScheduleFragment : Fragment() {
scheduleViewModel.showFavorites.observe(
this,
Observer {
favoriteButton.isSelected = it ?: false
favoriteButton.setImageResource(if (showingFavorites) R.drawable.light_bookmark_filled else R.drawable.light_bookmark_hollow)
saved_header.isSelected = it ?: false
}
)
scheduleViewModel.showShifts.observe(
Expand All @@ -76,26 +76,36 @@ class ScheduleFragment : Fragment() {
if (isStaff() || !hasLoggedIn()) {
Log.d("ISSTAFF", scheduleViewModel.isAttendeeViewing.toString())
scheduleViewModel.isAttendeeViewing = false
favoriteButton.visibility = View.GONE
saved_header.visibility = View.VISIBLE
shift_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.deepTeal))
schedule_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.ivoryBlush))
shift_header.setBackgroundResource(0)
schedule_header.setBackgroundResource(R.drawable.schedule_underline)
scheduleBackground.setImageResource(R.drawable.saved_events_background)

} else {
Log.d("ISATTENDEE", scheduleViewModel.isAttendeeViewing.toString())
scheduleViewModel.isAttendeeViewing = true
favoriteButton.visibility = View.VISIBLE
favoriteButton.setOnClickListener(favScheduleClickListener)
saved_header.visibility = View.VISIBLE
saved_header.setOnClickListener(favScheduleClickListener)
}
if (isStaff()) {
scheduleViewModel.initShifts()
shift_header.visibility = View.VISIBLE
saved_header.visibility = View.GONE

val context = requireActivity().applicationContext
schedule_header.setTextColor(getResources().getColor(R.color.ivoryBlush))
shift_header.setTextColor(getResources().getColor(R.color.deepTeal))
schedule_header.background = ContextCompat.getDrawable(context, R.drawable.schedule_underline)
shift_header.setOnClickListener(shiftScheduleClickListener)
schedule_header.setOnClickListener(eventScheduleClickListener)

} else {
shift_header.visibility = View.GONE
saved_header.visibility = View.VISIBLE
schedule_header.setBackgroundResource(0)
}

val time = System.currentTimeMillis()
view.scheduleContainer.currentItem = when {
time < scheduleViewModel.fridayEnd -> 0
Expand All @@ -105,11 +115,20 @@ class ScheduleFragment : Fragment() {
}
view.scheduleDays.getTabAt(view.scheduleContainer.currentItem)?.customView?.background =
context?.let { ContextCompat.getDrawable(it, R.drawable.vase_selected) }

schedule_header.setOnClickListener(eventScheduleClickListener)
saved_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.deepTeal))
shift_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.deepTeal))
schedule_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.ivoryBlush))
shift_header.setBackgroundResource(0)
schedule_header.setBackgroundResource(R.drawable.schedule_underline)
scheduleBackground.setImageResource(R.drawable.saved_events_background)

return view
}

private fun setupCustomTabs(tabLayout: TabLayout) {
val tabDayOfMonth = arrayOf("23", "24", "25")
val tabDayOfMonth = arrayOf("28", "29", "30")
val tabDayOfWeek = arrayOf("FRI", "SAT", "SUN")
for (i in tabDayOfMonth.indices) {
val tab = tabLayout.newTab()
Expand Down Expand Up @@ -165,19 +184,26 @@ class ScheduleFragment : Fragment() {
override fun getPageTitle(position: Int): CharSequence? { return null }
}

private val favScheduleClickListener = OnClickListener {
favoriteButton.apply {
isSelected = !favoriteButton.isSelected
setImageResource(
when (isSelected) {
true -> R.drawable.light_bookmark_filled
else -> R.drawable.light_bookmark_hollow
}
)
}
scheduleViewModel.showFavorites.postValue(favoriteButton.isSelected)
showingFavorites = favoriteButton.isSelected
private val favScheduleClickListener = OnClickListener {
if (!saved_header.isSelected) {
saved_header.isSelected = true

saved_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.ivoryBlush))
schedule_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.deepTeal))

saved_header.setBackgroundResource(R.drawable.schedule_underline)
schedule_header.setBackgroundResource(0)

scheduleViewModel.showFavorites.postValue(true)
showingFavorites = true

scheduleViewModel.initEvents()
view?.scheduleContainer?.adapter = SectionsPagerAdapter(childFragmentManager)
view?.scheduleContainer?.adapter?.notifyDataSetChanged()

Log.d("ScheduleFragment", "Switched to Saved events")
}
}

private val shiftScheduleClickListener = OnClickListener {
shift_header.setBackgroundResource(R.drawable.schedule_underline)
Expand All @@ -195,18 +221,43 @@ class ScheduleFragment : Fragment() {
}

private val eventScheduleClickListener = OnClickListener {
shift_header.setBackgroundResource(0)
schedule_header.setBackgroundResource(R.drawable.schedule_underline)
schedule_header.setTextColor(getResources().getColor(R.color.ivoryBlush))
shift_header.setTextColor(getResources().getColor(R.color.deepTeal))
scheduleBackground.setImageResource(R.drawable.saved_events_background)
for (i in 0 until scheduleDays.tabCount) {
val tab = scheduleDays.getTabAt(i)
val tabDrawable = if (tab?.isSelected == true) R.drawable.vase_selected else R.drawable.vase_unselected
tab?.customView?.background = context?.let { ContextCompat.getDrawable(it, tabDrawable) }
Log.d("ScheduleFragment", "Schedule clicked, saved_header.isSelected = ${saved_header.isSelected}, showingShifts = $showingShifts")

if (isStaff()) {
if (showingShifts) {
shift_header.isSelected = false
schedule_header.isSelected = true
showingShifts = false
shift_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.deepTeal))
schedule_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.ivoryBlush))
shift_header.setBackgroundResource(0)
schedule_header.setBackgroundResource(R.drawable.schedule_underline)
scheduleBackground.setImageResource(R.drawable.saved_events_background)
scheduleViewModel.showShifts.postValue(false)
scheduleViewModel.initEvents()
view?.scheduleContainer?.adapter = SectionsPagerAdapter(childFragmentManager)
view?.scheduleContainer?.adapter?.notifyDataSetChanged()

Log.d("ScheduleFragment", "Staff: Switched from Shifts to Full Schedule")
}
} else {
if (saved_header.isSelected) {
saved_header.isSelected = false
schedule_header.isSelected = true
saved_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.deepTeal))
schedule_header.setTextColor(ContextCompat.getColor(requireContext(), R.color.ivoryBlush))
saved_header.setBackgroundResource(0)
schedule_header.setBackgroundResource(R.drawable.schedule_underline)
scheduleViewModel.showFavorites.postValue(false)
showingFavorites = false

scheduleViewModel.initEvents()
view?.scheduleContainer?.adapter = SectionsPagerAdapter(childFragmentManager)
view?.scheduleContainer?.adapter?.notifyDataSetChanged()

Log.d("ScheduleFragment", "Attendee: Switched from Saved to Full Schedule")
}
}
scheduleViewModel.showShifts.postValue(false)
showingShifts = false
}

private fun isStaff(): Boolean {
Expand All @@ -219,3 +270,4 @@ class ScheduleFragment : Fragment() {
return JWTUtilities.readJWT(requireActivity().applicationContext) != JWTUtilities.DEFAULT_JWT
}
}

27 changes: 16 additions & 11 deletions app/src/main/res/layout/fragment_copy_schedule.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ImageButton
android:id="@+id/lightBookmarkButton"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginEnd="25dp"
android:background="@android:color/transparent"
android:src="@drawable/light_bookmark_hollow"
app:layout_constraintBottom_toBottomOf="@+id/schedule_header"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/schedule_header" />

<TextView
android:id="@+id/schedule_header"
android:layout_width="wrap_content"
Expand Down Expand Up @@ -65,6 +54,22 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/guidelineTop" />

<TextView
android:id="@+id/saved_header"
android:visibility="visible"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="35dp"
android:fontFamily="@font/montserrat_extra_bold"
android:gravity="end"
android:text="@string/saved_header"
android:textAllCaps="true"
android:textColor="@color/palePeach"
android:textSize="24sp"
android:paddingBottom="3dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/guidelineTop" />

<com.google.android.material.tabs.TabLayout
android:id="@+id/scheduleDays"
android:layout_width="match_parent"
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
<!-- Schedule Fragment -->
<string name="schedule_header">Schedule</string>
<string name="shift_header">Shifts</string>
<string name="saved_header">SAVED</string>
<string name="friday">FRI\n23</string>
<string name="saturday">SAT\n24</string>
<string name="sunday">SUN\n25</string>
Expand Down

0 comments on commit 09c7c3f

Please sign in to comment.