@@ -5,19 +5,21 @@ import android.view.LayoutInflater
5
5
import android.view.MenuItem
6
6
import android.view.View
7
7
import android.view.ViewGroup
8
+ import androidx.appcompat.app.AppCompatActivity
8
9
import androidx.core.view.isVisible
9
10
import androidx.fragment.app.Fragment
10
11
import androidx.lifecycle.Observer
11
12
import androidx.navigation.fragment.navArgs
12
13
import com.google.android.material.appbar.AppBarLayout
13
14
import com.google.android.material.snackbar.Snackbar
15
+ import com.squareup.picasso.Picasso
14
16
import kotlinx.android.synthetic.main.fragment_about_event.view.appBar
15
17
import kotlinx.android.synthetic.main.fragment_about_event.view.progressBarAbout
16
18
import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventContent
17
19
import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventDetails
18
20
import kotlinx.android.synthetic.main.fragment_about_event.view.eventName
19
21
import kotlinx.android.synthetic.main.fragment_about_event.view.detailsHeader
20
- import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventCollapsingLayout
22
+ import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventImage
21
23
import org.fossasia.openevent.general.R
22
24
import org.fossasia.openevent.general.event.Event
23
25
import org.fossasia.openevent.general.event.EventUtils
@@ -26,12 +28,10 @@ import org.fossasia.openevent.general.utils.stripHtml
26
28
import org.koin.androidx.viewmodel.ext.android.viewModel
27
29
import org.fossasia.openevent.general.utils.Utils.setToolbar
28
30
29
- class AboutEventFragment : Fragment (), AppBarLayout.OnOffsetChangedListener {
31
+ class AboutEventFragment : Fragment () {
30
32
private lateinit var rootView: View
31
33
private val aboutEventViewModel by viewModel<AboutEventViewModel >()
32
- private var isHideToolbarView: Boolean = false
33
34
private lateinit var eventExtra: Event
34
- private var title: String = " "
35
35
private val safeArgs: AboutEventFragmentArgs by navArgs()
36
36
37
37
override fun onCreateView (inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ): View ? {
@@ -46,8 +46,6 @@ class AboutEventFragment : Fragment(), AppBarLayout.OnOffsetChangedListener {
46
46
loadEvent(it)
47
47
})
48
48
49
- rootView.appBar.addOnOffsetChangedListener(this )
50
-
51
49
aboutEventViewModel.error
52
50
.nonNull()
53
51
.observe(viewLifecycleOwner, Observer {
@@ -67,30 +65,29 @@ class AboutEventFragment : Fragment(), AppBarLayout.OnOffsetChangedListener {
67
65
68
66
private fun loadEvent (event : Event ) {
69
67
eventExtra = event
70
- title = eventExtra.name
71
68
rootView.aboutEventContent.text = event.description?.stripHtml()
72
69
val startsAt = EventUtils .getEventDateTime(event.startsAt, event.timezone)
73
70
val endsAt = EventUtils .getEventDateTime(event.endsAt, event.timezone)
71
+
74
72
rootView.aboutEventDetails.text = EventUtils .getFormattedDateTimeRangeBulleted(startsAt, endsAt)
75
73
rootView.eventName.text = event.name
76
- }
77
-
78
- override fun onOffsetChanged (appBarLayout : AppBarLayout , verticalOffset : Int ) {
79
- val maxScroll = appBarLayout.totalScrollRange
80
- val percentage = Math .abs(verticalOffset).toFloat() / maxScroll.toFloat()
74
+ Picasso .get()
75
+ .load(event.originalImageUrl)
76
+ .placeholder(R .drawable.header)
77
+ .into(rootView.aboutEventImage)
81
78
82
- if (percentage == 1f && isHideToolbarView) {
83
- // Collapsed
84
- rootView.detailsHeader.visibility = View . GONE
85
- rootView.aboutEventCollapsingLayout.title = title
86
- isHideToolbarView = ! isHideToolbarView
87
- }
88
- if (percentage < 1f && ! isHideToolbarView) {
89
- // Not Collapsed
90
- rootView.detailsHeader.visibility = View . VISIBLE
91
- rootView.aboutEventCollapsingLayout.title = " "
92
- isHideToolbarView = ! isHideToolbarView
93
- }
79
+ rootView.appBar.addOnOffsetChangedListener( AppBarLayout . OnOffsetChangedListener { appBarLayout, offset ->
80
+ val thisActivity = activity
81
+ if (thisActivity is AppCompatActivity ) {
82
+ if ( Math .abs(offset) == appBarLayout.getTotalScrollRange()) {
83
+ rootView.detailsHeader.isVisible = false
84
+ thisActivity.supportActionBar?.title = event.name
85
+ } else {
86
+ rootView.detailsHeader.isVisible = true
87
+ thisActivity.supportActionBar?.title = " "
88
+ }
89
+ }
90
+ })
94
91
}
95
92
96
93
override fun onOptionsItemSelected (item : MenuItem ): Boolean {
0 commit comments