Skip to content
Snippets Groups Projects
Unverified Commit 71415ef7 authored by Alex Paulescu's avatar Alex Paulescu Committed by GitHub
Browse files

Event registration - create event homescreen tile (EXPOSUREAPP-5411) (#2636)


* Started work on home even card.

* Added event organizer icon.

* Added tile to Home Fragment.

* Removed databinding <layout> and added more space between text and image.

* Update Corona-Warn-App/src/main/res/layout/home_create_event_card.xml

Co-authored-by: default avatarLukas Lechner <lukas.lechner@sap.com>

* Renamed event to tracing location.

Co-authored-by: default avatarLukas Lechner <lukas.lechner@sap.com>
Co-authored-by: default avatarharambasicluka <64483219+harambasicluka@users.noreply.github.com>
parent 3d98c8f2
No related branches found
No related tags found
No related merge requests found
......@@ -18,6 +18,7 @@ import de.rki.coronawarnapp.tracing.ui.homecards.LowRiskCard
import de.rki.coronawarnapp.tracing.ui.homecards.TracingDisabledCard
import de.rki.coronawarnapp.tracing.ui.homecards.TracingFailedCard
import de.rki.coronawarnapp.tracing.ui.homecards.TracingProgressCard
import de.rki.coronawarnapp.ui.main.home.items.CreateTraceLocationCard
import de.rki.coronawarnapp.ui.main.home.items.FAQCard
import de.rki.coronawarnapp.ui.main.home.items.HomeItem
import de.rki.coronawarnapp.ui.main.home.items.ReenableRiskCard
......@@ -42,6 +43,7 @@ class HomeAdapter :
StableIdMod(data),
DataBinderMod<HomeItem, HomeItemVH<HomeItem, ViewBinding>>(data),
TypedVHCreatorMod({ data[it] is FAQCard.Item }) { FAQCard(it) },
TypedVHCreatorMod({ data[it] is CreateTraceLocationCard.Item }) { CreateTraceLocationCard(it) },
TypedVHCreatorMod({ data[it] is ReenableRiskCard.Item }) { ReenableRiskCard(it) },
TypedVHCreatorMod({ data[it] is IncreasedRiskCard.Item }) { IncreasedRiskCard(it) },
TypedVHCreatorMod({ data[it] is LowRiskCard.Item }) { LowRiskCard(it) },
......
......@@ -48,6 +48,7 @@ import de.rki.coronawarnapp.tracing.ui.homecards.TracingProgressCard
import de.rki.coronawarnapp.tracing.ui.statusbar.TracingHeaderState
import de.rki.coronawarnapp.tracing.ui.statusbar.toHeaderState
import de.rki.coronawarnapp.ui.main.home.HomeFragmentEvents.ShowErrorResetDialog
import de.rki.coronawarnapp.ui.main.home.items.CreateTraceLocationCard
import de.rki.coronawarnapp.ui.main.home.HomeFragmentEvents.ShowTracingExplanation
import de.rki.coronawarnapp.ui.main.home.items.FAQCard
import de.rki.coronawarnapp.ui.main.home.items.HomeItem
......@@ -239,6 +240,8 @@ class HomeFragmentViewModel @AssistedInject constructor(
)
}
add(CreateTraceLocationCard.Item(onClickAction = { /** Todo: Add navigation on click */ }))
add(FAQCard.Item(onClickAction = { openFAQUrlEvent.postValue(Unit) }))
}
}
......
package de.rki.coronawarnapp.ui.main.home.items
import android.view.ViewGroup
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.databinding.HomeCreateTraceLocationCardBinding
import de.rki.coronawarnapp.ui.main.home.HomeAdapter
import de.rki.coronawarnapp.util.lists.diffutil.HasPayloadDiffer
class CreateTraceLocationCard(parent: ViewGroup) :
HomeAdapter.HomeItemVH<CreateTraceLocationCard.Item, HomeCreateTraceLocationCardBinding>(
R.layout.home_card_container_layout,
parent
) {
override val viewBinding = lazy {
HomeCreateTraceLocationCardBinding.inflate(layoutInflater, itemView.findViewById(R.id.card_container), true)
}
override val onBindData: HomeCreateTraceLocationCardBinding.(
item: Item,
payloads: List<Any>
) -> Unit = { item, payloads ->
itemView.setOnClickListener {
val curItem = payloads.filterIsInstance<Item>().singleOrNull() ?: item
curItem.onClickAction(item)
}
}
data class Item(val onClickAction: (Item) -> Unit) : HomeItem, HasPayloadDiffer {
override val stableId: Long = Item::class.java.name.hashCode().toLong()
override fun diffPayload(old: Any, new: Any): Any? = if (old::class == new::class) new else null
}
}
<vector android:autoMirrored="true" android:height="124dp"
android:viewportHeight="124" android:viewportWidth="105"
android:width="105dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#6A7F90" android:pathData="M19.803,116.045L21.548,115.879L18.588,84.856L16.843,85.022L19.803,116.045Z"/>
<path android:fillColor="#6A7F90" android:pathData="M48.28,115.516L50.025,115.349L47.066,84.327L45.321,84.493L48.28,115.516Z"/>
<path android:fillColor="#6A7F90" android:pathData="M0.13,112.536L1.638,112.776L12.292,46.036L10.784,45.795L0.13,112.536Z"/>
<path android:fillColor="#E1E1E1" android:pathData="M10.555,84.723L3.242,22.65H44.15L52.716,84.496L10.555,84.723Z"/>
<path android:fillColor="#3E6883" android:pathData="M11.92,35.154L11.101,29.811H36.233L37.1,35.135L11.92,35.154Z"/>
<path android:fillColor="#3E6883" android:pathData="M13.043,43.428L12.242,38.085H31.768L32.446,43.409L13.043,43.428Z"/>
<path android:fillColor="#3E6883" android:pathData="M14.192,51.806L13.429,46.453H37.355L38.203,51.787L14.192,51.806Z"/>
<path android:fillColor="#3E6883" android:pathData="M15.154,60.183L14.457,54.831H26.218L27.047,60.164L15.154,60.183Z"/>
<path android:fillColor="#6A7F90" android:pathData="M54.081,85.043L54.037,83.291L9.12,84.42L9.164,86.172L54.081,85.043Z"/>
<path android:fillColor="#F6B893" android:pathData="M95.846,59.214C95.846,59.214 89.9,63.596 92.482,64.378C95.62,65.321 97.74,64.303 99.408,61.174L95.846,59.214Z"/>
<path android:fillColor="#8C8C98" android:pathData="M70.459,85.673C70.751,90.384 72.806,116.893 72.806,116.893L77.847,116.667C78.271,107.403 80.156,80.97 82.559,71.82C83.04,75.326 84.265,113.114 84.444,116.337H88.835L95.083,60.663L94.97,59.598L71.995,58.655C71.995,58.655 70.667,80.66 70.45,84.523C70.429,84.906 70.433,85.29 70.459,85.673Z"/>
<path android:fillColor="#4A4A4A" android:pathData="M89.184,119.569C89.184,118.458 89.09,117.348 88.901,116.252L84.491,116.337C84.425,119.645 80.787,119.07 78.497,120.455C78.366,119.098 78.149,117.751 77.847,116.422L72.787,116.639C72.843,116.978 72.827,117.325 72.739,117.657C72.651,117.99 72.494,118.3 72.277,118.567C72.061,118.834 71.79,119.052 71.483,119.207C71.176,119.362 70.84,119.45 70.497,119.466C70.335,119.494 70.174,119.532 70.016,119.579C59.933,122.528 75.058,123.659 77.687,123.16C78.271,123.065 78.479,122.651 78.544,122.123C80.335,122.905 87.252,123.065 88.628,122.783C89.721,122.557 89.231,120.841 89.184,119.569Z"/>
<path android:fillColor="#F6B893" android:pathData="M81.975,5.998C81.964,5.775 81.904,5.556 81.798,5.36C81.691,5.163 81.542,4.992 81.361,4.861C81.18,4.73 80.972,4.641 80.752,4.601C80.532,4.562 80.305,4.572 80.09,4.632C79.392,4.848 79.063,5.508 78.384,7.054C76.999,10.663 77.319,13.933 81.268,16.242C82.144,16.788 81.155,20.529 80.712,20.812C80.269,21.095 75.001,24.657 72.984,26.023C72.755,26.176 72.488,26.263 72.213,26.277C71.937,26.29 71.663,26.228 71.42,26.098L66.256,23.271C66.166,23.219 66.081,23.16 66.002,23.092L49.595,9.089L49.397,8.882L48.757,8.1C48.676,8.006 48.61,7.901 48.559,7.789C47.616,5.744 46.41,-3.407 42.904,2.813L42.829,2.954C41.18,6.62 44.139,8.759 46.109,11.266C46.176,11.351 46.252,11.43 46.335,11.502L63.806,25.75C63.954,25.872 64.123,25.964 64.305,26.023L68.838,27.465C68.93,27.493 69.018,27.531 69.102,27.578L73.814,30.16C74.039,30.287 74.294,30.354 74.553,30.354C74.813,30.354 75.067,30.287 75.293,30.16C78.233,28.445 88.995,22.094 88.646,21.377C87.779,19.691 88.109,15.177 88.816,13.631C89.146,13.026 89.361,12.365 89.447,11.681C89.542,11.153 89.542,11.313 89.08,11.775C88.938,11.888 88.543,11.916 88.354,11.106C88.166,10.295 85.998,9.268 84.764,8.279C84.611,8.159 84.434,8.072 84.245,8.024L83.058,7.657C82.766,7.564 82.508,7.384 82.32,7.142C82.131,6.9 82.021,6.606 82.003,6.3L81.975,5.998Z"/>
<path android:fillColor="#C66A61" android:pathData="M79.959,20.821C82.484,21.141 90.617,20.623 93.802,22.526C95.634,23.785 97.163,25.437 98.278,27.361C98.278,27.361 103.857,40.488 104.092,42.335C105.468,46.519 100.163,58.647 99.427,61.182L95.847,59.222C96.968,52.974 99.183,49.035 98.674,44.144C98.419,41.779 97.157,39.291 95.517,36.049C94.631,37.698 94.895,59.241 95.196,60.296L89.118,61.144C86.411,61.517 83.662,61.45 80.976,60.946C77.471,60.277 71.647,60.597 71.911,58.995C72.627,54.67 74.653,39.8 74.267,33.307C74.229,32.496 73.95,31.715 73.466,31.064C72.872,30.291 72.071,29.858 70.412,29.358C67.754,28.557 65.198,27.447 62.798,26.051C60.084,24.26 53.865,19.662 51.679,16.835C50.095,15.054 48.663,14.007 48.682,13.696C48.823,12.519 51.509,9.729 51.744,10.191C53.761,12.226 64.711,19.53 69.913,20.557C72.693,21.16 77.122,20.887 79.959,20.821Z"/>
<path android:fillColor="#4A4A4A" android:pathData="M88.365,0.56C91.531,1.974 94.235,6.978 92.266,10.248C90.089,13.866 88.016,14.865 85.792,13.923C84.737,13.348 83.86,12.481 84.18,11.85C85.462,9.352 83.672,7.138 82.918,9.023C82.918,9.088 82.55,8.514 82.503,8.448C81.354,6.139 77.546,4.961 79.488,3.444C80.524,2.501 80.995,1.22 82.315,0.664C84.162,-0.062 86.828,-0.326 88.365,0.56Z"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/spacing_normal"
tools:showIn="@layout/home_card_container_layout">
<TextView
android:id="@+id/create_trace_location_card_headline"
style="@style/headline5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:accessibilityHeading="true"
android:lines="2"
android:maxLines="2"
android:text="@string/create_trace_location_card_headline"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/create_trace_location_card_subtitle"
style="@style/subtitleMedium"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_small"
android:layout_marginEnd="@dimen/spacing_small"
android:text="@string/create_trace_location_card_subtitle"
app:layout_constraintEnd_toStartOf="@id/create_trace_location_card_icon"
app:layout_constraintStart_toStartOf="@id/create_trace_location_card_headline"
app:layout_constraintTop_toBottomOf="@id/create_trace_location_card_headline" />
<ImageView
android:id="@+id/create_trace_location_card_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_event_organizer"
android:importantForAccessibility="no"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/create_trace_location_card_subtitle" />
<Button
android:id="@+id/create_trace_location_card_button"
style="@style/buttonPrimary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
android:text="@string/create_trace_location_card_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/create_trace_location_card_subtitle" />
</androidx.constraintlayout.widget.ConstraintLayout>
......@@ -107,4 +107,13 @@
<!-- XTXT: Title for other event -->
<string name="tracelocation_organizer_category_other_event_title">anderes Event</string>
<!-- Trace Location Homescreen Card-->
<!-- XHED: Headline for trace location creation card -->
<string name="create_trace_location_card_headline">"Sie planen eine\nVeranstaltung?"</string>
<!-- XTXT: Subtitle for trace location creation card -->
<string name="create_trace_location_card_subtitle">"Sie planen ein Event oder haben ein Geschäft? Erstellen Sie einen QR-Code, mit dem sich Ihre Gäste bei Ankunft einchecken können."</string>
<!-- XTXT: Text for trace location creation card -->
<string name="create_trace_location_card_button">"QR-Code erstellen"</string>
</resources>
\ No newline at end of file
......@@ -107,4 +107,14 @@
<!-- XTXT: Title for other event -->
<string name="tracelocation_organizer_category_other_event_title">anderes Event</string>
<!-- Trace Location Homescreen Card-->
<!-- XHED: Headline for trace location creation card -->
<string name="create_trace_location_card_headline">"Sie planen eine\nVeranstaltung?"</string>
<!-- XTXT: Subtitle for trace location creation card -->
<string name="create_trace_location_card_subtitle">"Sie planen ein Event oder haben ein Geschäft? Erstellen Sie einen QR-Code, mit dem sich Ihre Gäste bei Ankunft einchecken können."</string>
<!-- XTXT: Text for trace location creation card -->
<string name="create_trace_location_card_button">"QR-Code erstellen"</string>
</resources>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment