diff --git a/app/src/main/java/org/fossasia/openevent/general/about/AboutEventFragment.kt b/app/src/main/java/org/fossasia/openevent/general/about/AboutEventFragment.kt index e3b6df8b0f..57306d5c71 100644 --- a/app/src/main/java/org/fossasia/openevent/general/about/AboutEventFragment.kt +++ b/app/src/main/java/org/fossasia/openevent/general/about/AboutEventFragment.kt @@ -5,19 +5,21 @@ import android.view.LayoutInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import androidx.navigation.fragment.navArgs import com.google.android.material.appbar.AppBarLayout import com.google.android.material.snackbar.Snackbar +import com.squareup.picasso.Picasso import kotlinx.android.synthetic.main.fragment_about_event.view.appBar import kotlinx.android.synthetic.main.fragment_about_event.view.progressBarAbout import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventContent import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventDetails import kotlinx.android.synthetic.main.fragment_about_event.view.eventName import kotlinx.android.synthetic.main.fragment_about_event.view.detailsHeader -import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventCollapsingLayout +import kotlinx.android.synthetic.main.fragment_about_event.view.aboutEventImage import org.fossasia.openevent.general.R import org.fossasia.openevent.general.event.Event import org.fossasia.openevent.general.event.EventUtils @@ -26,12 +28,10 @@ import org.fossasia.openevent.general.utils.stripHtml import org.koin.androidx.viewmodel.ext.android.viewModel import org.fossasia.openevent.general.utils.Utils.setToolbar -class AboutEventFragment : Fragment(), AppBarLayout.OnOffsetChangedListener { +class AboutEventFragment : Fragment() { private lateinit var rootView: View private val aboutEventViewModel by viewModel() - private var isHideToolbarView: Boolean = false private lateinit var eventExtra: Event - private var title: String = "" private val safeArgs: AboutEventFragmentArgs by navArgs() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { @@ -46,8 +46,6 @@ class AboutEventFragment : Fragment(), AppBarLayout.OnOffsetChangedListener { loadEvent(it) }) - rootView.appBar.addOnOffsetChangedListener(this) - aboutEventViewModel.error .nonNull() .observe(viewLifecycleOwner, Observer { @@ -67,30 +65,29 @@ class AboutEventFragment : Fragment(), AppBarLayout.OnOffsetChangedListener { private fun loadEvent(event: Event) { eventExtra = event - title = eventExtra.name rootView.aboutEventContent.text = event.description?.stripHtml() val startsAt = EventUtils.getEventDateTime(event.startsAt, event.timezone) val endsAt = EventUtils.getEventDateTime(event.endsAt, event.timezone) + rootView.aboutEventDetails.text = EventUtils.getFormattedDateTimeRangeBulleted(startsAt, endsAt) rootView.eventName.text = event.name - } - - override fun onOffsetChanged(appBarLayout: AppBarLayout, verticalOffset: Int) { - val maxScroll = appBarLayout.totalScrollRange - val percentage = Math.abs(verticalOffset).toFloat() / maxScroll.toFloat() + Picasso.get() + .load(event.originalImageUrl) + .placeholder(R.drawable.header) + .into(rootView.aboutEventImage) - if (percentage == 1f && isHideToolbarView) { - // Collapsed - rootView.detailsHeader.visibility = View.GONE - rootView.aboutEventCollapsingLayout.title = title - isHideToolbarView = !isHideToolbarView - } - if (percentage < 1f && !isHideToolbarView) { - // Not Collapsed - rootView.detailsHeader.visibility = View.VISIBLE - rootView.aboutEventCollapsingLayout.title = " " - isHideToolbarView = !isHideToolbarView - } + rootView.appBar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { appBarLayout, offset -> + val thisActivity = activity + if (thisActivity is AppCompatActivity) { + if (Math.abs(offset) == appBarLayout.getTotalScrollRange()) { + rootView.detailsHeader.isVisible = false + thisActivity.supportActionBar?.title = event.name + } else { + rootView.detailsHeader.isVisible = true + thisActivity.supportActionBar?.title = "" + } + } + }) } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/app/src/main/res/drawable/scrim_shape.xml b/app/src/main/res/drawable/scrim_shape.xml new file mode 100644 index 0000000000..03119134b2 --- /dev/null +++ b/app/src/main/res/drawable/scrim_shape.xml @@ -0,0 +1,7 @@ + + + + diff --git a/app/src/main/res/layout/fragment_about_event.xml b/app/src/main/res/layout/fragment_about_event.xml index b02995184a..d60562bc59 100644 --- a/app/src/main/res/layout/fragment_about_event.xml +++ b/app/src/main/res/layout/fragment_about_event.xml @@ -1,11 +1,10 @@ - + android:fitsSystemWindows="false"> - - - - + android:layout_height="match_parent" + android:scaleType="centerCrop" + android:foreground="@drawable/scrim_shape" + app:layout_collapseMode="parallax" + app:srcCompat="@drawable/header" /> @@ -60,7 +58,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="@dimen/padding_small" - android:textColor="@android:color/black" + android:textColor="@android:color/white" android:textSize="@dimen/text_size_large" tools:text="Thu, Jun 14 - Sat, Jun 23 | 8:00 AM" /> @@ -90,14 +88,14 @@ - - + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 45b079f550..4b7634bc43 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -75,8 +75,8 @@ 1.2dp 20dp 12dp - 220dp - 40dp + 320dp + 100dp 2dp 200dp 40dp