Skip to content
Snippets Groups Projects
Unverified Commit da192e1f authored by BMItter's avatar BMItter Committed by GitHub
Browse files

Survey Event UI Base (EXPOSUREAPP-4807, 4808 ) (#2271)

* tracing survey card implemented - wip

* Added user survey to risk details

* Fixed button noch clickable

* use card as parent, minor adjustments

* new layouts for survey, vectors, fragment, viewmodel - wip

* Moved fragment and viewmodel to correct spot

* Adjusted fragment and vm

* align with package structure

* Added module

* event handling for upcomiing navigation

* Navigation from tracing details to survey consent fragment

* ktlint, detekt

* adjusted res

* Pass type of survey

* klint

* Add click listener for next button, Request url from surveys (example)

* ktlint

* string res cleanup

* Added states

* delete obsolet layout

* empty space removed

* comment- data class added

* addressed reformatting issues

* bigger headline for survey headline

* adjusted view behaviour to match figma
parent bbe46007
No related branches found
No related tags found
No related merge requests found
Showing
with 698 additions and 6 deletions
......@@ -4,8 +4,11 @@ import dagger.Module
import dagger.Provides
import de.rki.coronawarnapp.datadonation.safetynet.CWASafetyNet
import de.rki.coronawarnapp.datadonation.safetynet.DeviceAttestation
import de.rki.coronawarnapp.datadonation.survey.SurveyModule
@Module
@Module(
includes = [SurveyModule::class]
)
class DataDonationModule {
@Provides
fun deviceAttestation(safetyNet: CWASafetyNet): DeviceAttestation = safetyNet
......
package de.rki.coronawarnapp.datadonation.survey
import dagger.Module
import de.rki.coronawarnapp.datadonation.survey.consent.SurveyConsentModule
@Module
@Module(
includes = [SurveyConsentModule::class]
)
class SurveyModule
......@@ -18,7 +18,7 @@ class Surveys @Inject constructor(
// TODO
return Survey(
type = Type.HIGH_RISK_ENCOUNTER,
surveyLink = ""
surveyLink = "Link to high risk encounter survey..."
)
}
......
package de.rki.coronawarnapp.datadonation.survey.consent
import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.navArgs
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.databinding.SurveyConsentFragmentBinding
import de.rki.coronawarnapp.util.di.AutoInject
import de.rki.coronawarnapp.util.ui.observe2
import de.rki.coronawarnapp.util.ui.viewBindingLazy
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider
import de.rki.coronawarnapp.util.viewmodel.cwaViewModelsAssisted
import javax.inject.Inject
class SurveyConsentFragment : Fragment(R.layout.survey_consent_fragment), AutoInject {
private val navArgs by navArgs<SurveyConsentFragmentArgs>()
@Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory
private val vm: SurveyConsentViewModel by cwaViewModelsAssisted(
factoryProducer = { viewModelFactory },
constructorCall = { factory, _ ->
factory as SurveyConsentViewModel.Factory
factory.create(navArgs.SurveyType)
}
)
private val binding: SurveyConsentFragmentBinding by viewBindingLazy()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.apply {
toolbar.setNavigationOnClickListener { vm.onBackButtonPressed() }
surveyNextButton.setOnClickListener { vm.onNextButtonPressed() }
}
vm.routeToScreen.observe2(this) {
when (it) {
is SurveyConsentNavigationEvents.NavigateBack ->
activity?.onBackPressed()
is SurveyConsentNavigationEvents.NavigateToWebView ->
Toast.makeText(requireContext(), "Open ${it.url} (WIP, next PR))", Toast.LENGTH_SHORT).show()
}
}
vm.showLoadingIndicator.observe2(this) {
// TODO
}
vm.showErrorDialog.observe2(this) {
// TODO
}
}
}
package de.rki.coronawarnapp.datadonation.survey.consent
import dagger.Binds
import dagger.Module
import dagger.android.ContributesAndroidInjector
import dagger.multibindings.IntoMap
import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelKey
@Module
abstract class SurveyConsentModule {
@Binds
@IntoMap
@CWAViewModelKey(SurveyConsentViewModel::class)
abstract fun surveyConsentVM(
factory: SurveyConsentViewModel.Factory
): CWAViewModelFactory<out CWAViewModel>
@ContributesAndroidInjector
abstract fun surveyConsentFragment(): SurveyConsentFragment
}
package de.rki.coronawarnapp.datadonation.survey.consent
sealed class SurveyConsentNavigationEvents {
object NavigateBack : SurveyConsentNavigationEvents()
data class NavigateToWebView(val url: String) : SurveyConsentNavigationEvents()
}
package de.rki.coronawarnapp.datadonation.survey.consent
import androidx.lifecycle.LiveData
import androidx.lifecycle.asLiveData
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import de.rki.coronawarnapp.datadonation.survey.SurveyException
import de.rki.coronawarnapp.datadonation.survey.Surveys
import de.rki.coronawarnapp.exception.ExceptionCategory
import de.rki.coronawarnapp.exception.reporting.report
import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
import de.rki.coronawarnapp.util.ui.SingleLiveEvent
import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
import kotlinx.coroutines.flow.MutableStateFlow
class SurveyConsentViewModel @AssistedInject constructor(
dispatcherProvider: DispatcherProvider,
private val surveys: Surveys,
@Assisted private val surveyType: Surveys.Type
) : CWAViewModel(dispatcherProvider = dispatcherProvider) {
private val internalLoadingState = MutableStateFlow(false)
val showLoadingIndicator: LiveData<Boolean> = internalLoadingState.asLiveData()
val showErrorDialog: SingleLiveEvent<SurveyException> = SingleLiveEvent()
val routeToScreen: SingleLiveEvent<SurveyConsentNavigationEvents> = SingleLiveEvent()
fun onBackButtonPressed() {
routeToScreen.postValue(SurveyConsentNavigationEvents.NavigateBack)
}
fun onNextButtonPressed() = launch {
internalLoadingState.emit(true)
try {
val surveyLink = surveys.requestDetails(surveyType).surveyLink
routeToScreen.postValue(SurveyConsentNavigationEvents.NavigateToWebView(surveyLink))
} catch (surveyException: SurveyException) {
surveyException.report(ExceptionCategory.INTERNAL)
showErrorDialog.postValue(surveyException)
}
internalLoadingState.emit(false)
}
@AssistedFactory
interface Factory : CWAViewModelFactory<SurveyConsentViewModel> {
fun create(type: Surveys.Type): SurveyConsentViewModel
}
}
......@@ -16,6 +16,7 @@ import de.rki.coronawarnapp.tracing.ui.details.items.risk.TracingProgressBox
import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsFailedCalculationBox
import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsIncreasedRiskBox
import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsLowRiskBox
import de.rki.coronawarnapp.tracing.ui.details.items.survey.UserSurveyBox
import de.rki.coronawarnapp.util.lists.BindableVH
import de.rki.coronawarnapp.util.lists.diffutil.AsyncDiffUtilAdapter
import de.rki.coronawarnapp.util.lists.diffutil.AsyncDiffer
......@@ -24,7 +25,9 @@ import de.rki.coronawarnapp.util.lists.modular.mods.DataBinderMod
import de.rki.coronawarnapp.util.lists.modular.mods.StableIdMod
import de.rki.coronawarnapp.util.lists.modular.mods.TypedVHCreatorMod
class TracingDetailsAdapter : ModularAdapter<TracingDetailsAdapter.DetailsItemVH<DetailsItem, ViewBinding>>(),
class TracingDetailsAdapter(
private val onItemClickListener: (item: DetailsItem) -> Unit
) : ModularAdapter<TracingDetailsAdapter.DetailsItemVH<DetailsItem, ViewBinding>>(),
AsyncDiffUtilAdapter<DetailsItem> {
override val asyncDiffer: AsyncDiffer<DetailsItem> = AsyncDiffer(this)
......@@ -44,7 +47,13 @@ class TracingDetailsAdapter : ModularAdapter<TracingDetailsAdapter.DetailsItemVH
TypedVHCreatorMod({ data[it] is PeriodLoggedBox.Item }) { PeriodLoggedBox(it) },
TypedVHCreatorMod({ data[it] is BehaviorIncreasedRiskBox.Item }) { BehaviorIncreasedRiskBox(it) },
TypedVHCreatorMod({ data[it] is BehaviorNormalRiskBox.Item }) { BehaviorNormalRiskBox(it) },
TypedVHCreatorMod({ data[it] is AdditionalInfoLowRiskBox.Item }) { AdditionalInfoLowRiskBox(it) }
TypedVHCreatorMod({ data[it] is AdditionalInfoLowRiskBox.Item }) { AdditionalInfoLowRiskBox(it) },
TypedVHCreatorMod({ data[it] is UserSurveyBox.Item }) {
UserSurveyBox(
parent = it,
onItemClickListener = onItemClickListener
)
}
))
}
......
......@@ -30,7 +30,7 @@ class TracingDetailsFragment : Fragment(R.layout.tracing_details_fragment_layout
)
private val binding: TracingDetailsFragmentLayoutBinding by viewBindingLazy()
private val detailsAdapter = TracingDetailsAdapter()
private val detailsAdapter = TracingDetailsAdapter { vm.onItemClicked(it) }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
......@@ -49,6 +49,14 @@ class TracingDetailsFragment : Fragment(R.layout.tracing_details_fragment_layout
binding.tracingDetailsState = it
}
vm.routeToScreen.observe2(this) {
when (it) {
is TracingDetailsNavigationEvents.NavigateToSurveyConsentFragment -> doNavigate(
TracingDetailsFragmentDirections.actionRiskDetailsFragmentToSurveyConsentFragment(it.type)
)
}
}
binding.riskDetailsHeaderButtonBack.setOnClickListener {
(activity as MainActivity).goBack()
}
......
......@@ -21,8 +21,10 @@ import de.rki.coronawarnapp.tracing.ui.details.items.risk.LowRiskBox
import de.rki.coronawarnapp.tracing.ui.details.items.risk.TracingDisabledBox
import de.rki.coronawarnapp.tracing.ui.details.items.risk.TracingFailedBox
import de.rki.coronawarnapp.tracing.ui.details.items.risk.TracingProgressBox
import de.rki.coronawarnapp.tracing.ui.details.items.survey.UserSurveyBox
import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
import de.rki.coronawarnapp.util.device.BackgroundModeStatus
import de.rki.coronawarnapp.util.ui.SingleLiveEvent
import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
import de.rki.coronawarnapp.util.viewmodel.SimpleCWAViewModelFactory
import kotlinx.coroutines.flow.combine
......@@ -90,6 +92,8 @@ class TracingDetailsFragmentViewModel @AssistedInject constructor(
.onCompletion { Timber.v("TracingDetailsState FLOW completed.") }
.asLiveData(dispatcherProvider.Default)
val routeToScreen: SingleLiveEvent<TracingDetailsNavigationEvents> = SingleLiveEvent()
fun refreshData() {
launch {
tracingRepository.refreshRiskLevel()
......@@ -101,6 +105,13 @@ class TracingDetailsFragmentViewModel @AssistedInject constructor(
tracingRepository.refreshDiagnosisKeys()
}
fun onItemClicked(item: DetailsItem) {
when (item) {
is UserSurveyBox.Item ->
routeToScreen.postValue(TracingDetailsNavigationEvents.NavigateToSurveyConsentFragment(item.type))
}
}
@AssistedFactory
interface Factory : SimpleCWAViewModelFactory<TracingDetailsFragmentViewModel>
}
package de.rki.coronawarnapp.tracing.ui.details
import dagger.Reusable
import de.rki.coronawarnapp.datadonation.survey.Surveys
import de.rki.coronawarnapp.risk.RiskState
import de.rki.coronawarnapp.risk.storage.RiskLevelStorage
import de.rki.coronawarnapp.risk.tryLatestResultsWithDefaults
......@@ -14,6 +15,7 @@ import de.rki.coronawarnapp.tracing.ui.details.items.periodlogged.PeriodLoggedBo
import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsFailedCalculationBox
import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsIncreasedRiskBox
import de.rki.coronawarnapp.tracing.ui.details.items.riskdetails.DetailsLowRiskBox
import de.rki.coronawarnapp.tracing.ui.details.items.survey.UserSurveyBox
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.onCompletion
......@@ -53,6 +55,10 @@ class TracingDetailsItemProvider @Inject constructor(
)
}.also { add(it) }
if (latestCalc.riskState == RiskState.INCREASED_RISK) {
add(UserSurveyBox.Item(Surveys.Type.HIGH_RISK_ENCOUNTER))
}
if (latestCalc.riskState != RiskState.CALCULATION_FAILED) {
PeriodLoggedBox.Item(
activeTracingDaysInRetentionPeriod = activeTracingDaysInRetentionPeriod.toInt()
......
package de.rki.coronawarnapp.tracing.ui.details
import de.rki.coronawarnapp.datadonation.survey.Surveys
sealed class TracingDetailsNavigationEvents {
class NavigateToSurveyConsentFragment(val type: Surveys.Type) : TracingDetailsNavigationEvents()
}
package de.rki.coronawarnapp.tracing.ui.details.items.survey
import android.view.ViewGroup
import androidx.annotation.LayoutRes
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.databinding.TracingDetailsAccessSurveyCardBinding
import de.rki.coronawarnapp.datadonation.survey.Surveys
import de.rki.coronawarnapp.tracing.ui.details.TracingDetailsAdapter
import de.rki.coronawarnapp.tracing.ui.details.items.DetailsItem
class UserSurveyBox(
parent: ViewGroup,
private val onItemClickListener: (item: DetailsItem) -> Unit,
@LayoutRes containerLayout: Int = R.layout.home_card_container_layout
) : TracingDetailsAdapter.DetailsItemVH<UserSurveyBox.Item, TracingDetailsAccessSurveyCardBinding>(
containerLayout,
parent
) {
override val viewBinding: Lazy<TracingDetailsAccessSurveyCardBinding> = lazy {
TracingDetailsAccessSurveyCardBinding.inflate(
layoutInflater,
itemView.findViewById(R.id.card_container),
true
)
}
override val onBindData: TracingDetailsAccessSurveyCardBinding.(
item: Item,
payloads: List<Any>
) -> Unit = { item, _ ->
tracingDetailsSurveyCardButton.setOnClickListener { onItemClickListener(item) }
}
data class Item(
val type: Surveys.Type
) : DetailsItem {
override val stableId: Long
get() = Item::class.java.name.hashCode().toLong()
}
}
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="360dp"
android:height="185dp"
android:viewportWidth="360"
android:viewportHeight="185">
<path
android:pathData="M230.919,133.645C273.583,133.645 292.169,106.736 332.003,111.83C341.472,113.041 353.496,116.824 367,127.435V157.207L-8,159.288V125.288C4,120.288 8,122.288 21,125.288C64.498,135.326 115.003,109.323 138.503,108.413C140.698,108.328 142.815,108.288 144.85,108.288C195.624,108.284 198.052,133.645 230.919,133.645Z"
android:fillColor="#E8F5FF"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M-7.961,133.288H367.096V166.288H-7.961V133.288Z"
android:fillType="evenOdd"/>
<path
android:pathData="M106.597,149.828C70.681,149.828 55.034,132.275 21.5,135.598C13.529,136.388 3.407,138.856 -7.961,145.777V165.197L367.097,166.288V152.224C365.015,151.253 362.939,150.423 360.974,149.816C360.974,149.816 323.18,137.903 281.325,148.096C245.476,156.835 204.18,133.963 184.396,133.37C182.549,133.314 180.766,133.288 179.053,133.288C136.31,133.286 134.266,149.828 106.597,149.828Z"
android:fillColor="#D8ECF9"
android:fillType="evenOdd"/>
</group>
<path
android:pathData="M288.671,126.16C288.671,126.16 274.869,106.905 284.581,104.519C294.294,102.134 293.612,114.062 300.088,109.631C306.563,105.201 295.161,84.554 310.573,82.508C329.624,79.981 315.179,99.89 313.836,104.783C313.55,105.823 313.854,106.953 314.668,107.661C316.328,109.105 321.699,109.474 329.737,104.519C342.177,96.851 333.316,132.465 309.971,133.487C309.971,133.487 295.317,133.828 288.671,126.16Z"
android:fillColor="#B8E0FA"
android:fillType="evenOdd"/>
<path
android:pathData="M307.322,133.593C307.311,133.507 307.001,124.844 306.717,115.255C306.333,102.35 308.349,91.905 310.899,88.248L311.408,88.767C305.431,97.337 308.604,133.183 308.646,133.526L307.322,133.593Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M307.551,127.486C307.507,127.472 303.058,126.08 298.401,123.455C294.085,121.021 288.7,116.998 287.557,111.65L287.859,111.36C289.991,121.341 307.37,126.242 307.546,126.296L307.551,127.486Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M307.487,124.102L307.375,122.935C307.545,122.882 324.4,118.144 327.204,110.783L327.573,111.095C326.364,114.269 322.611,117.424 316.419,120.472C311.827,122.733 307.53,124.088 307.487,124.102Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M38.992,43.291C33.473,43.441 30.315,51.868 30.051,55.87C28.926,72.999 19.154,85.217 20.058,111.9C20.652,129.383 26.37,147.347 32.418,150.491C44.063,156.547 51.876,143.06 53.191,130.481C54.506,117.903 55.294,99.607 46.617,76.738C41.8,64.039 50.043,42.989 38.992,43.291Z"
android:fillColor="#B8E0FA"
android:fillType="evenOdd"/>
<path
android:pathData="M38.557,152.643C37.528,147.893 35.22,124.088 35.159,98.318C35.122,82.671 35.912,66.293 38.32,53.001L38.968,53.127C36.569,66.376 35.781,82.71 35.818,98.318C35.878,124.035 38.177,147.764 39.2,152.493L38.557,152.643Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M35.845,122.732C35.869,122.69 43.451,109.301 44.619,103.905L45.263,104.056C44.072,109.557 36.438,123.04 36.414,123.083L35.845,122.732Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M35.228,92.462C35.211,92.439 28.679,84.119 29.118,77.912L29.716,77.964C29.298,83.889 35.667,91.998 35.684,92.02L35.228,92.462Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M63.111,153.573C68.352,149.667 72.911,142.82 73.59,126.783C74.268,110.746 72.938,106.813 69.188,105.412C65.439,104.012 62.491,106.007 60.388,111.19C58.285,116.375 57.405,121.804 55.357,123.549C53.309,125.293 41.595,135.014 44.896,146.029C48.198,157.044 57.713,156.153 63.111,153.573Z"
android:fillColor="#B8E0FA"
android:fillType="evenOdd"/>
<path
android:pathData="M51.709,154.603C53.75,151.785 58.164,143.848 61.771,134.759C64.191,128.662 66.251,122.042 66.993,116.092L66.483,116.026C65.745,121.934 63.698,128.51 61.293,134.571C57.703,143.617 53.318,151.506 51.292,154.302L51.709,154.603Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M58.758,141.558C58.366,141.853 66.87,138.414 69.272,133.819L68.832,133.585C66.52,138.007 58.896,140.92 58.874,140.929L58.758,141.558Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M54.611,149.963C54.602,149.943 51.466,142.964 51.725,138.299L51.251,138.288C50.985,143.094 54.173,150.188 54.182,150.208L54.611,149.963Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M267.985,7.147C265.714,7.607 262.907,9.681 263.002,10.288C263.035,10.5 270.118,10.3 277.398,10.288C288.375,10.271 293.863,10.288 294.562,10.288H308.403C309.484,10.288 307.501,6.726 306.742,6.1C305.429,5.018 303.437,4.543 301.759,5.053C299.461,5.751 299.504,7.765 297.33,8.194C295.911,8.474 294.387,7.914 293.454,7.147C292.032,5.978 292.623,4.856 291.239,3.483C290.27,2.521 289.006,2.079 287.364,2.436C285.447,2.852 285.703,2.959 282.934,5.053C281.962,5.789 280.912,7.902 279.059,8.194C274.03,8.987 271.932,6.347 267.985,7.147Z"
android:fillColor="#D8ECF9"
android:fillType="evenOdd"/>
<path
android:pathData="M7.75,21.288H37.201C36.069,19.735 34.948,19.245 34.133,19.085C32.131,18.69 31.285,20.154 27.998,20.186C27.414,20.192 25.971,20.194 24.316,19.635C23.335,19.304 23.308,19.122 21.862,18.534C20.667,18.048 19.619,17.621 18.181,17.432C17.083,17.288 16.259,17.348 15.113,17.432C13.812,17.528 13.009,17.593 12.045,17.983C11.33,18.273 10.878,18.599 10.205,19.085C9.555,19.554 8.669,20.269 7.75,21.288Z"
android:fillColor="#D8ECF9"
android:fillType="evenOdd"/>
<path
android:pathData="M95.787,11.288H58.854C60.273,9 61.68,8.277 62.701,8.041C65.213,7.46 66.272,9.617 70.396,9.664C71.129,9.673 72.938,9.676 75.012,8.853C76.243,8.364 76.277,8.095 78.09,7.229C79.588,6.513 80.904,5.884 82.706,5.605C84.084,5.393 85.117,5.482 86.554,5.605C88.185,5.746 89.191,5.842 90.401,6.417C91.299,6.844 91.865,7.324 92.71,8.041C93.524,8.732 94.635,9.786 95.787,11.288Z"
android:fillColor="#D8ECF9"
android:fillType="evenOdd"/>
<path
android:pathData="M238,37.288H196C195.448,37.288 195,36.84 195,36.288C195,35.736 195.448,35.288 196,35.288H238C238.552,35.288 239,35.736 239,36.288C239,36.84 238.552,37.288 238,37.288Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M230,44.288H196C195.448,44.288 195,43.84 195,43.288C195,42.736 195.448,42.288 196,42.288H230C230.552,42.288 231,42.736 231,43.288C231,43.84 230.552,44.288 230,44.288Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M224,30.288H196C195.448,30.288 195,29.84 195,29.288C195,28.736 195.448,28.288 196,28.288H224C224.552,28.288 225,28.736 225,29.288C225,29.84 224.552,30.288 224,30.288Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M247.705,48H191.294C188.922,48 187,45.621 187,42.684V22.316C187,19.379 188.922,17 191.294,17H247.705C250.076,17 252,19.379 252,22.316V42.684C252,45.621 250.076,48 247.705,48Z"
android:fillColor="#657887"
android:fillType="evenOdd"/>
<path
android:pathData="M196.689,44.594L188.167,51.835C187.678,52.251 187,51.835 187,51.12V43.879C187,43.394 187.33,43 187.738,43H196.26C196.978,43 197.273,44.097 196.689,44.594Z"
android:fillColor="#657887"
android:fillType="evenOdd"/>
<path
android:pathData="M158.927,46.469C158.927,46.469 166.919,53.947 169.944,55.966C172.45,57.64 180.079,61.146 180.079,61.146L177.161,65.083C177.161,65.083 169.899,63.465 167.664,62.424C165.372,61.357 159.307,56.726 159.307,56.726L158.927,46.469Z"
android:fillColor="#F6B893"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M117.893,171.26H136.353V184.924H117.893V171.26Z"
android:fillType="evenOdd"/>
<path
android:pathData="M120.963,171.26L118.077,176.74C117.68,177.495 117.945,178.429 118.681,178.859C122.169,180.892 131.702,186.088 135.818,184.688C136.395,184.491 136.537,183.737 136.088,183.324C133.463,180.908 125.299,173.198 125.931,171.304L120.963,171.26Z"
android:fillColor="#4A4A4A"
android:fillType="evenOdd"/>
</group>
<path
android:pathData="M120.698,171.77L126.278,172.513L153.875,108.792L139.503,79.926L139.336,119.436C139.336,119.436 126.518,144.915 124.472,154.911C122.453,164.779 120.698,171.77 120.698,171.77Z"
android:fillColor="#B96161"
android:fillType="evenOdd"/>
<path
android:pathData="M138.6,70.71L160.256,70.998C160.256,70.998 179.024,165.129 186.532,171.481L182.49,174.369C182.49,174.369 159.39,142.896 161.411,122.683C161.411,122.683 132.825,76.773 138.6,70.71Z"
android:fillColor="#C66A61"
android:fillType="evenOdd"/>
<path
android:pathData="M153.883,34.496L152.492,24.656C152.492,24.656 158.542,24.925 158.402,16.485C158.376,14.921 158.267,12.244 156.823,10.215L151.289,8.445L147.787,19.63L144.457,33.204L150.354,36.956L154.418,36.849L153.883,34.496Z"
android:fillColor="#F6B893"
android:fillType="evenOdd"/>
<path
android:pathData="M182.49,174.369L183.381,180.499C183.503,181.342 184.267,181.942 185.115,181.856C189.132,181.448 199.898,180.04 202.402,176.486C202.753,175.988 202.424,175.295 201.818,175.225C198.274,174.816 187.136,173.385 186.532,171.482L182.49,174.369Z"
android:fillColor="#4A4A4A"
android:fillType="evenOdd"/>
<path
android:pathData="M133.89,83.725L135.397,65.307L143.183,67.53L137.718,86.474C137.718,86.474 136.344,97.468 131.73,94.228C126.004,90.208 133.694,85.983 133.89,83.725Z"
android:fillColor="#F6B893"
android:fillType="evenOdd"/>
<path
android:pathData="M152.935,34.452C150.849,36.798 148.529,32.461 143.966,33.634C139.653,34.743 135.807,62.288 135.397,65.306C135.374,65.482 135.362,65.574 135.362,65.574C136.538,68.869 141.947,67.812 142.993,67.574L142.225,71.016L160.257,70.998C167.291,51.522 155.021,32.105 152.935,34.452Z"
android:fillColor="#B1DAEF"
android:fillType="evenOdd"/>
<path
android:pathData="M158.412,16.555C158.412,16.555 162.76,13.748 159.872,6.261C159.872,6.261 159.23,3.053 154.738,3.16C154.738,3.16 147.573,-3.257 140.835,2.197C134.097,7.651 138.696,13.106 138.696,13.106C138.696,13.106 129.712,21.234 132.813,32.25C132.813,32.25 136.129,39.416 139.979,36.956C143.829,34.496 143.616,39.844 145.647,32.678C147.68,25.512 151.209,26.582 149.819,14.496C149.819,14.496 154.631,14.817 155.701,9.898C155.701,9.898 158.253,11.1 158.412,16.555Z"
android:fillColor="#663014"
android:fillType="evenOdd"/>
<path
android:pathData="M174.341,67.847C175.252,68.352 178.71,69.325 179.852,69.554C180.13,69.609 180.827,69.645 181.118,69.093C182.736,66.026 187.601,58.544 187.904,58.094C188.234,57.604 188.204,57.472 187.776,57.193C187.491,57.008 183.608,55.917 182.479,55.589C182.095,55.477 181.762,56.088 181.641,56.233C179.761,58.478 174.639,66.238 174.311,66.729C173.914,67.322 173.971,67.642 174.341,67.847Z"
android:fillColor="#4A4A4A"
android:fillType="evenOdd"/>
<path
android:pathData="M185.209,61.816C186.749,61.493 184.794,64.428 184.052,65.474C183.373,66.43 182.761,67.38 182.299,67.156C181.837,66.932 182.211,65.432 182.786,64.247C183.36,63.062 184.272,62.013 185.209,61.816Z"
android:fillColor="#F6B893"
android:fillType="evenOdd"/>
<path
android:pathData="M202,39.773C202.164,39.773 202.398,39.664 202.57,39.562C206.968,36.75 209.757,33.476 209.757,30.148C209.757,27.382 207.859,25.429 205.406,25.429C203.882,25.429 202.71,26.273 202,27.562C201.304,26.281 200.117,25.429 198.593,25.429C196.14,25.429 194.242,27.382 194.242,30.148C194.242,33.476 197.031,36.75 201.437,39.562C201.601,39.664 201.835,39.773 202,39.773Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M218.5,27L244.5,27A1.5,1.5 0,0 1,246 28.5L246,28.5A1.5,1.5 0,0 1,244.5 30L218.5,30A1.5,1.5 0,0 1,217 28.5L217,28.5A1.5,1.5 0,0 1,218.5 27z"
android:fillColor="#ffffff"/>
<path
android:pathData="M218.5,34L236.5,34A1.5,1.5 0,0 1,238 35.5L238,35.5A1.5,1.5 0,0 1,236.5 37L218.5,37A1.5,1.5 0,0 1,217 35.5L217,35.5A1.5,1.5 0,0 1,218.5 34z"
android:fillColor="#ffffff"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="125dp"
android:viewportWidth="108"
android:viewportHeight="125">
<group>
<clip-path
android:pathData="M-6,-5h114v130h-114z"/>
<path
android:pathData="M79.807,114.696L39.983,122.087C35.927,122.841 32.02,120.156 31.266,116.101L12.828,16.711C12.073,12.656 14.747,8.76 18.802,8.006H18.814L58.638,0.615C62.682,-0.117 66.566,2.557 67.321,6.601L85.793,105.991C86.547,110.046 83.874,113.942 79.818,114.696C79.818,114.696 79.818,114.696 79.807,114.696Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M26.674,38.891l37.031,-7.066l10.133,53.1l-37.031,7.066z"/>
<path
android:pathData="M47.256,87.315L38.36,89.012C37.62,89.154 36.904,88.673 36.763,87.936L35.077,79.099C34.937,78.364 35.422,77.651 36.165,77.51L45.061,75.812C45.801,75.671 46.516,76.151 46.657,76.889L48.343,85.726C48.481,86.464 47.996,87.174 47.256,87.315Z"
android:strokeAlpha="0.7"
android:fillColor="#657888"
android:fillAlpha="0.7"/>
<path
android:pathData="M69.677,82.601L61.127,84.233C60.407,84.37 59.714,83.903 59.577,83.187L57.957,74.695C57.82,73.979 58.292,73.289 59.013,73.152L67.562,71.52C68.283,71.383 68.976,71.851 69.112,72.566L70.733,81.059C70.869,81.774 70.397,82.464 69.677,82.601Z"
android:strokeAlpha="0.7"
android:fillColor="#657888"
android:fillAlpha="0.7"/>
<path
android:pathData="M63.99,81.632C62.918,80.925 61.853,80.205 60.79,79.481C60.579,79.339 60.545,79.143 60.682,78.93C60.851,78.665 60.669,78.927 60.853,78.675C61.024,78.437 61.221,78.402 61.468,78.562C62.086,78.968 62.702,79.382 63.318,79.793C63.321,79.795 63.321,79.795 63.324,79.797C63.485,79.893 63.683,80.007 63.806,80.08C63.869,80.116 63.946,80.094 63.983,80.031C64.043,79.921 64.138,79.748 64.213,79.597C65.07,77.64 65.929,75.679 66.789,73.723C66.952,73.35 67.137,73.279 67.52,73.442C67.756,73.541 68.046,73.729 67.923,74.018C67.597,74.781 67.269,75.542 66.938,76.304C66.196,77.999 65.452,79.695 64.708,81.388C64.595,81.693 64.314,81.823 63.99,81.632Z"
android:fillColor="#ffffff"/>
<group>
<clip-path
android:pathData="M63.99,81.632C62.918,80.925 61.853,80.205 60.79,79.481C60.579,79.339 60.545,79.143 60.682,78.93C60.851,78.665 60.669,78.927 60.853,78.675C61.024,78.437 61.221,78.402 61.468,78.562C62.086,78.968 62.702,79.382 63.318,79.793C63.321,79.795 63.321,79.795 63.324,79.797C63.485,79.893 63.683,80.007 63.806,80.08C63.869,80.116 63.946,80.094 63.983,80.031C64.043,79.921 64.138,79.748 64.213,79.597C65.07,77.64 65.929,75.679 66.789,73.723C66.952,73.35 67.137,73.279 67.52,73.442C67.756,73.541 68.046,73.729 67.923,74.018C67.597,74.781 67.269,75.542 66.938,76.304C66.196,77.999 65.452,79.695 64.708,81.388C64.595,81.693 64.314,81.823 63.99,81.632Z"/>
<path
android:pathData="M63.99,81.632L61.239,85.807L61.344,85.876L61.451,85.939L63.99,81.632ZM60.79,79.481L63.603,75.348L63.595,75.342L63.586,75.336L60.79,79.481ZM60.682,78.93L64.885,81.638L64.893,81.626L64.901,81.613L60.682,78.93ZM60.853,78.675L64.897,81.614L64.904,81.606L64.91,81.597L60.853,78.675ZM61.468,78.562L64.215,74.384L64.202,74.376L64.19,74.368L61.468,78.562ZM63.318,79.793L66.115,75.648L66.105,75.642L66.095,75.635L63.318,79.793ZM63.324,79.797L60.528,83.942L60.645,84.021L60.766,84.094L63.324,79.797ZM63.806,80.08L61.27,84.389L61.295,84.404L61.319,84.418L63.806,80.08ZM63.983,80.031L68.304,82.546L68.336,82.492L68.366,82.436L63.983,80.031ZM64.213,79.597L68.685,81.835L68.742,81.72L68.794,81.602L64.213,79.597ZM66.789,73.723L71.366,75.735L71.369,75.729L66.789,73.723ZM67.52,73.442L65.567,78.045L65.577,78.049L67.52,73.442ZM67.923,74.018L72.522,75.98L72.523,75.977L67.923,74.018ZM66.938,76.304L71.519,78.307L71.523,78.297L66.938,76.304ZM64.708,81.388L60.131,79.376L60.07,79.515L60.017,79.657L64.708,81.388ZM66.741,77.456C65.701,76.771 64.661,76.068 63.603,75.348L57.977,83.615C59.045,84.342 60.135,85.079 61.239,85.807L66.741,77.456ZM63.586,75.336C64.252,75.785 65.219,76.732 65.517,78.295C65.81,79.828 65.28,81.025 64.885,81.638L56.479,76.221C55.947,77.048 55.366,78.45 55.694,80.17C56.028,81.919 57.118,83.035 57.994,83.626L63.586,75.336ZM64.901,81.613C64.916,81.59 64.93,81.567 64.944,81.545C64.958,81.523 64.972,81.5 64.986,81.478C65,81.455 65.016,81.43 65.032,81.403C65.04,81.389 65.049,81.374 65.059,81.357C65.068,81.341 65.079,81.323 65.091,81.302C65.103,81.282 65.116,81.257 65.132,81.23C65.14,81.216 65.148,81.2 65.157,81.183C65.166,81.167 65.176,81.148 65.187,81.127C65.198,81.106 65.21,81.083 65.223,81.056C65.237,81.03 65.252,81 65.268,80.965C65.277,80.948 65.286,80.929 65.295,80.909C65.304,80.888 65.315,80.866 65.325,80.842C65.336,80.818 65.348,80.792 65.36,80.763C65.372,80.735 65.385,80.703 65.399,80.668C65.413,80.633 65.429,80.594 65.445,80.551C65.461,80.508 65.479,80.459 65.497,80.404C65.516,80.349 65.536,80.285 65.558,80.214C65.568,80.178 65.579,80.139 65.59,80.097C65.602,80.055 65.613,80.01 65.625,79.962C65.637,79.913 65.649,79.86 65.66,79.802C65.672,79.745 65.684,79.682 65.695,79.614C65.706,79.545 65.718,79.47 65.727,79.388C65.737,79.305 65.746,79.214 65.752,79.114C65.759,79.014 65.763,78.902 65.762,78.78C65.762,78.732 65.76,78.635 65.758,78.585C65.755,78.532 65.748,78.424 65.744,78.369C65.738,78.31 65.725,78.19 65.717,78.13C65.708,78.064 65.687,77.932 65.674,77.864C65.66,77.792 65.628,77.646 65.61,77.572C65.589,77.492 65.543,77.332 65.517,77.251C65.445,77.029 65.349,76.786 65.22,76.533C65.091,76.279 64.929,76.014 64.727,75.751C64.649,75.652 64.483,75.458 64.397,75.364C64.304,75.269 64.113,75.086 64.013,74.999C63.909,74.912 63.695,74.748 63.586,74.671C63.473,74.596 63.244,74.457 63.129,74.393C63.011,74.332 62.776,74.221 62.659,74.171C62.541,74.125 62.308,74.042 62.193,74.007C61.886,73.915 61.594,73.86 61.325,73.829C61.225,73.819 61.033,73.805 60.939,73.801C60.849,73.798 60.674,73.798 60.59,73.8C60.509,73.804 60.352,73.814 60.277,73.821C60.204,73.829 60.065,73.846 59.998,73.856C59.933,73.867 59.809,73.889 59.75,73.901C59.693,73.913 59.583,73.939 59.53,73.952C59.479,73.965 59.382,73.992 59.335,74.005C59.29,74.019 59.204,74.047 59.162,74.06C59.054,74.097 58.957,74.134 58.871,74.169C58.786,74.204 58.708,74.238 58.639,74.27C58.571,74.303 58.508,74.334 58.453,74.363C58.397,74.392 58.347,74.419 58.302,74.445C58.256,74.47 58.215,74.494 58.178,74.517C58.141,74.539 58.108,74.56 58.078,74.579C58.048,74.598 58.021,74.616 57.996,74.632C57.972,74.648 57.95,74.663 57.931,74.676C57.912,74.689 57.895,74.701 57.881,74.711C57.867,74.721 57.855,74.73 57.845,74.736C57.836,74.743 57.828,74.748 57.824,74.751C57.823,74.753 57.821,74.754 57.82,74.755C57.819,74.755 57.82,74.755 57.82,74.754C57.821,74.754 57.824,74.752 57.826,74.75C57.828,74.748 57.834,74.744 57.838,74.742C57.842,74.739 57.852,74.732 57.858,74.727C57.864,74.723 57.878,74.713 57.887,74.707C57.896,74.701 57.917,74.686 57.928,74.678C57.941,74.669 57.97,74.65 57.986,74.639C58.004,74.627 58.045,74.6 58.068,74.585C58.094,74.569 58.152,74.533 58.185,74.513C58.223,74.49 58.309,74.44 58.358,74.413C58.416,74.382 58.551,74.313 58.628,74.276C58.723,74.232 58.951,74.137 59.084,74.088C59.258,74.029 59.688,73.914 59.944,73.865C60.303,73.819 61.198,73.817 61.727,73.892C62.428,74.084 63.847,74.863 64.5,75.478C65.005,76.154 65.6,77.539 65.725,78.194C65.759,78.655 65.72,79.442 65.667,79.764C65.618,79.987 65.508,80.37 65.452,80.531C65.406,80.65 65.317,80.859 65.275,80.949C65.241,81.02 65.175,81.147 65.145,81.204C65.119,81.25 65.071,81.334 65.048,81.372C65.029,81.404 64.992,81.462 64.975,81.489C64.961,81.512 64.933,81.555 64.92,81.575C64.908,81.592 64.886,81.624 64.876,81.639C64.867,81.652 64.849,81.677 64.841,81.689C64.834,81.699 64.82,81.719 64.813,81.728C64.807,81.736 64.796,81.752 64.79,81.759C64.777,81.777 64.765,81.793 64.756,81.805C64.747,81.817 64.739,81.828 64.732,81.836C64.726,81.845 64.72,81.852 64.716,81.858C64.707,81.869 64.7,81.878 64.696,81.883C64.692,81.888 64.689,81.893 64.687,81.895C64.685,81.897 64.684,81.899 64.684,81.899C64.683,81.899 64.683,81.899 64.683,81.899C64.683,81.899 64.683,81.899 64.683,81.899C64.683,81.899 64.684,81.899 64.684,81.899C64.684,81.898 64.685,81.897 64.686,81.896C64.69,81.891 64.696,81.884 64.702,81.875C64.709,81.867 64.715,81.858 64.722,81.85C64.735,81.834 64.747,81.818 64.758,81.803C64.769,81.788 64.78,81.774 64.79,81.76C64.801,81.746 64.812,81.731 64.823,81.716C64.844,81.687 64.869,81.653 64.897,81.614L56.808,75.735C56.77,75.787 56.769,75.788 56.787,75.765C56.799,75.748 56.818,75.724 56.839,75.697C56.851,75.682 56.835,75.702 56.827,75.712C56.824,75.717 56.798,75.749 56.767,75.79C56.751,75.811 56.72,75.853 56.682,75.907C56.662,75.934 56.635,75.974 56.604,76.021C56.573,76.066 56.528,76.136 56.475,76.224C56.428,76.303 56.341,76.451 56.248,76.646C56.206,76.737 56.117,76.946 56.071,77.065C56.015,77.225 55.905,77.608 55.856,77.832C55.803,78.154 55.764,78.94 55.798,79.401C55.923,80.057 56.518,81.442 57.023,82.118C57.676,82.732 59.095,83.512 59.796,83.704C60.325,83.779 61.22,83.777 61.578,83.731C61.835,83.681 62.265,83.566 62.439,83.508C62.572,83.459 62.799,83.364 62.895,83.32C63.103,83.222 63.26,83.13 63.338,83.083C63.426,83.03 63.496,82.984 63.537,82.957C63.58,82.928 63.615,82.904 63.636,82.889C63.658,82.873 63.676,82.861 63.685,82.854C63.694,82.847 63.702,82.842 63.703,82.841C63.71,82.836 63.694,82.848 63.678,82.859C63.645,82.883 63.559,82.944 63.446,83.016C63.339,83.084 63.143,83.203 62.884,83.325C62.75,83.387 62.574,83.463 62.362,83.535C62.152,83.605 61.869,83.686 61.526,83.739C61.186,83.791 60.73,83.826 60.199,83.766C59.657,83.704 59.029,83.543 58.396,83.202C57.752,82.856 57.213,82.385 56.797,81.844C56.392,81.316 56.151,80.786 56.007,80.344C55.865,79.907 55.806,79.519 55.781,79.226C55.755,78.93 55.76,78.676 55.772,78.481C55.796,78.106 55.858,77.808 55.899,77.635C55.944,77.448 55.992,77.297 56.027,77.193C56.063,77.086 56.097,76.997 56.124,76.93C56.177,76.8 56.224,76.698 56.254,76.637C56.285,76.572 56.312,76.518 56.332,76.481C56.37,76.409 56.401,76.353 56.417,76.325C56.45,76.268 56.473,76.23 56.475,76.229C56.479,76.222 56.476,76.226 56.463,76.246L64.901,81.613ZM64.91,81.597C64.568,82.071 63.66,83.092 62.025,83.389C60.405,83.683 59.211,83.058 58.747,82.757L64.19,74.368C63.478,73.906 62.062,73.219 60.239,73.549C58.401,73.883 57.308,75.04 56.796,75.752L64.91,81.597ZM58.721,82.74C59.319,83.133 59.912,83.531 60.542,83.952L66.095,75.635C65.492,75.233 64.852,74.803 64.215,74.384L58.721,82.74ZM60.522,83.938C60.522,83.938 60.522,83.938 60.522,83.938C60.521,83.938 60.521,83.938 60.522,83.938C60.523,83.939 60.525,83.94 60.528,83.942L66.12,75.652C66.12,75.652 66.12,75.652 66.121,75.653C66.121,75.653 66.121,75.653 66.121,75.653C66.119,75.652 66.118,75.65 66.115,75.648L60.522,83.938ZM60.766,84.094C60.929,84.19 61.214,84.356 61.27,84.389L66.342,75.771C66.151,75.658 66.041,75.596 65.882,75.501L60.766,84.094ZM61.319,84.418C63.863,85.876 66.941,84.887 68.304,82.546L59.661,77.516C60.951,75.3 63.875,74.356 66.293,75.742L61.319,84.418ZM68.366,82.436C68.42,82.339 68.56,82.085 68.685,81.835L59.742,77.359C59.734,77.376 59.715,77.411 59.686,77.466C59.658,77.519 59.629,77.571 59.599,77.626L68.366,82.436ZM68.794,81.602C69.65,79.645 70.508,77.687 71.366,75.735L62.212,71.711C61.35,73.67 60.49,75.634 59.633,77.592L68.794,81.602ZM71.369,75.729C71.319,75.842 70.699,77.345 68.865,78.049C67.074,78.737 65.637,78.074 65.567,78.044L69.473,68.839C69.02,68.647 67.299,67.938 65.279,68.714C63.216,69.507 62.422,71.231 62.209,71.717L71.369,75.729ZM65.577,78.049C65.48,78.008 64.805,77.737 64.155,77.02C63.783,76.611 63.294,75.917 63.069,74.929C62.831,73.878 62.977,72.872 63.323,72.059L72.523,75.977C72.931,75.019 73.087,73.881 72.821,72.711C72.568,71.603 72.016,70.802 71.557,70.297C70.733,69.39 69.795,68.975 69.463,68.835L65.577,78.049ZM63.324,72.055C63.004,72.806 62.68,73.556 62.352,74.311L71.523,78.297C71.857,77.528 72.191,76.756 72.522,75.98L63.324,72.055ZM62.356,74.3C61.617,75.992 60.874,77.685 60.131,79.376L69.285,83.4C70.031,81.705 70.776,80.006 71.519,78.307L62.356,74.3ZM60.017,79.657C60.341,78.78 61.138,77.587 62.68,77.012C64.276,76.416 65.704,76.838 66.529,77.324L61.451,85.939C62.6,86.616 64.331,87.069 66.177,86.38C67.969,85.712 68.962,84.302 69.399,83.119L60.017,79.657Z"
android:fillColor="#ffffff"/>
</group>
<path
android:pathData="M30.411,51.324L65.021,44.72C65.717,44.679 66.294,45.387 66.5,46.47C66.682,47.423 66.458,48.563 65.769,48.642L31.159,55.246C30.28,55.47 29.676,54.622 29.47,53.54C29.262,52.453 29.538,51.582 30.411,51.324Z"
android:strokeAlpha="0.7"
android:fillColor="#657888"
android:fillAlpha="0.7"/>
<path
android:pathData="M27.991,38.64L62.601,32.036C63.296,31.995 63.873,32.704 64.08,33.787C64.262,34.741 64.038,35.882 63.35,35.961L28.74,42.565C27.86,42.789 27.256,41.941 27.049,40.854C26.842,39.77 27.118,38.899 27.991,38.64Z"
android:strokeAlpha="0.7"
android:fillColor="#657888"
android:fillAlpha="0.7"/>
<path
android:pathData="M32.791,63.798L67.401,57.194C68.097,57.153 68.674,57.863 68.881,58.948C69.064,59.903 68.84,61.045 68.151,61.123L33.541,67.728C32.661,67.948 32.058,67.102 31.85,66.014C31.643,64.929 31.919,64.057 32.791,63.798Z"
android:strokeAlpha="0.7"
android:fillColor="#657888"
android:fillAlpha="0.7"/>
</group>
<path
android:pathData="M16.232,25.588L13.205,24.926C13.205,24.926 0.866,21.738 0.409,28.136C-0.047,34.533 13.833,38.92 13.833,38.92L14.964,39.012L19.111,40.988L19.808,44.758L15.558,48.448C15.558,48.448 3.951,62.442 4.522,67.48C5.093,72.518 11.331,72.153 11.331,72.153C11.331,72.153 4.739,76.802 7.664,80.618C9.823,83.417 14.45,84.891 14.45,84.891C14.45,84.891 8.418,89.906 10.783,95.321C11.834,97.709 18.482,98.897 18.482,98.897L29.587,98.257C29.015,94.784 16.7,28.239 16.232,25.588Z"
android:fillColor="#F7B994"
android:fillType="evenOdd"/>
<path
android:pathData="M79.807,114.696L39.983,122.087C35.927,122.841 32.02,120.156 31.266,116.101L12.828,16.711C12.073,12.656 14.747,8.76 18.802,8.006H18.814L58.638,0.615C62.682,-0.117 66.566,2.557 67.321,6.601L85.793,105.991C86.547,110.046 83.874,113.942 79.818,114.696C79.818,114.696 79.818,114.696 79.807,114.696Z"
android:strokeWidth="3.1542"
android:fillColor="#00000000"
android:strokeColor="#4A4A4A"/>
<path
android:pathData="M15.535,71.684L28.729,70.039C28.729,70.039 35.641,67.24 34.853,62.899C33.928,57.621 27.998,57.45 27.998,57.45L17.397,57.781L15.535,71.684Z"
android:fillColor="#F7B994"
android:fillType="evenOdd"/>
<path
android:pathData="M15.775,84.548C15.775,84.548 26.502,84.765 29.975,83.908C32.306,83.325 41.136,80.698 37.869,74.575C35.344,69.811 31.003,69.091 29.038,69.799C25.451,71.067 18.311,70.782 18.311,70.782L15.775,84.548Z"
android:fillColor="#F7B994"
android:fillType="evenOdd"/>
<path
android:pathData="M18.414,98.737C18.414,98.737 29.472,98.325 33.562,98.017C35.71,97.845 42.221,94.772 41.136,91.105C39.937,86.65 35.63,83.748 31.049,84.319C27.85,84.902 22.56,83.759 22.56,83.759L18.414,98.737Z"
android:fillColor="#F7B994"
android:fillType="evenOdd"/>
<path
android:pathData="M108.984,68.177C103.261,57.621 93.448,35.595 90.226,33.95C90.226,33.95 86.273,19.373 77.465,18.573C77.465,18.573 74.049,6.418 73.101,6.452C72.153,6.486 67.435,6.624 66.327,12.69C65.219,18.756 67.675,29.7 73.558,32.579L86.982,102.346C88.067,107.761 87.701,108.115 87.347,110.24C94.693,111.794 103.204,114.41 110.927,116.878C120.626,119.962 135.1,123.618 138.996,125C139.007,118.123 138.996,85.416 138.973,79.921C131.558,78.001 122.145,77.419 115.759,76.151C114.102,75.831 110.47,70.667 108.984,68.177Z"
android:fillColor="#F7B994"
android:fillType="evenOdd"/>
</group>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/content_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/contact_diary_onboarding_background"
android:focusable="true">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
style="@style/CWAToolbar.BackArrow"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:title="@string/risk_details_accessibility_title" />
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/spacing_small"
app:layout_constraintBottom_toTopOf="@id/survey_next_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/survey_top_illustration"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:contentDescription="@string/contact_diary_onboarding_image_content_description"
android:focusable="true"
android:src="@drawable/ic_illustration_datenspende"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_illustration_datenspende" />
<TextView
android:id="@+id/survey_bottom_info_headline"
style="@style/headline4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
android:accessibilityHeading="true"
android:focusable="true"
android:text="@string/datadonation_details_survey_consent_top_title"
app:layout_constraintEnd_toEndOf="@id/guideline_end"
app:layout_constraintStart_toStartOf="@id/guideline_start"
app:layout_constraintTop_toBottomOf="@id/survey_top_illustration"
tools:text="@string/datadonation_details_survey_consent_top_title" />
<TextView
android:id="@+id/survey_bottom_info_body"
style="@style/subtitleMedium"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_normal"
android:focusable="true"
android:text="@string/datadonation_details_survey_consent_top_body"
app:layout_constraintEnd_toEndOf="@id/guideline_end"
app:layout_constraintStart_toStartOf="@id/guideline_start"
app:layout_constraintTop_toBottomOf="@id/survey_bottom_info_headline"
tools:text="@string/datadonation_details_survey_consent_top_body" />
<include
android:id="@+id/survey_bottom_info_box"
layout="@layout/include_tracing_status_card"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
app:body="@{@string/datadonation_details_survey_consent_info_card_body}"
app:headline="@{@string/datadonation_details_survey_consent_info_card_title}"
app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
app:layout_constraintTop_toBottomOf="@+id/survey_bottom_info_body" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="@dimen/guideline_start" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_end="@dimen/guideline_end" />
<include layout="@layout/merge_guidelines_card" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
<android.widget.Button
android:id="@+id/survey_next_button"
style="@style/buttonPrimary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_normal"
android:layout_marginEnd="@dimen/spacing_normal"
android:layout_marginBottom="@dimen/spacing_small"
android:text="@string/datadonation_details_survey_consent_button_title"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="@string/datadonation_details_survey_consent_button_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tracing_details_survey_card_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
tools:showIn="@layout/home_card_container_layout">
<TextView
android:id="@+id/tracing_details_survey_card_title"
style="@style/headline5"
_toStartOf="parent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/card_padding"
android:layout_marginTop="@dimen/card_padding"
android:layout_marginEnd="16dp"
android:accessibilityHeading="true"
android:focusable="false"
android:text="@string/datadonation_details_access_survey_card_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginEnd="0dp"
tools:text="Befragung zur Corona-Warn-App" />
<TextView
android:id="@+id/tracing_details_survey_card_body"
style="@style/subtitleMedium"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/card_padding"
android:layout_marginTop="@dimen/spacing_normal"
android:layout_marginEnd="@dimen/spacing_small"
android:focusable="false"
android:text="@string/datadonation_details_access_survey_card_content"
app:layout_constraintEnd_toStartOf="@+id/tracing_details_survey_card_icon"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tracing_details_survey_card_title" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/tracing_details_survey_card_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/contact_diary_homescreen_card_image_content_description"
android:importantForAccessibility="no"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tracing_details_survey_card_body"
app:srcCompat="@drawable/ic_tracing_survey_icon" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/tracing_details_survey_card_barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="tracing_details_survey_card_icon,tracing_details_survey_card_body" />
<Button
android:id="@+id/tracing_details_survey_card_button"
style="@style/buttonPrimary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/card_padding"
android:layout_marginTop="@dimen/spacing_normal"
android:layout_marginEnd="@dimen/card_padding"
android:layout_marginBottom="@dimen/card_padding"
android:text="@string/datadonation_details_access_survey_card_button_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tracing_details_survey_card_barrier" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
......@@ -229,6 +229,9 @@
<action
android:id="@+id/action_riskDetailsFragment_to_settingsTracingFragment"
app:destination="@id/settingsTracingFragment" />
<action
android:id="@+id/action_riskDetailsFragment_to_surveyConsentFragment"
app:destination="@id/surveyConsentFragment" />
</fragment>
......@@ -513,4 +516,13 @@
android:defaultValue="false"
app:argType="boolean" />
</fragment>
<fragment
android:id="@+id/surveyConsentFragment"
android:name="de.rki.coronawarnapp.datadonation.survey.consent.SurveyConsentFragment"
android:label="survey_consent_fragment"
tools:layout="@layout/survey_consent_fragment" >
<argument
android:name="SurveyType"
app:argType="de.rki.coronawarnapp.datadonation.survey.Surveys$Type" />
</fragment>
</navigation>
......@@ -133,4 +133,5 @@
<string name="accessibility_action_deselect">"Auswahl aufheben"</string>
<!-- XTXT: Edit (description for screen readers) -->
<string name="accessibility_edit">"Bearbeiten"</string>
</resources>
......@@ -1643,6 +1643,25 @@
<string name="statistics_trend_decreasing">Trend fallend</string>
<!-- XTXT: Statistics trend stable (Accessibilty) -->
<string name="statistics_trend_stable">Trend stabil</string>
<!-- XHED: Title for the access survey card displayed in the risk details screen -->
<string name="datadonation_details_access_survey_card_title">"Befragung zur Corona-Warn-App"</string>
<!-- XHED: Text for the access survey card displayed in the risk details screen -->
<string name="datadonation_details_access_survey_card_content">"Helfen Sie uns, die App zu verbessern, indem Sie einige einfache Fragen beantworten."</string>
<!-- XHED: Text for the access survey card displayed in the risk details screen -->
<string name="datadonation_details_access_survey_card_button_text">"Zur Befragung"</string>
<!-- XHED: Title for the access survey button displayed at the bottom of the screen -->
<string name="datadonation_details_survey_consent_button_title">"Weiter"</string>
<!-- XHED: Text for the access survey title displayed at the top of survey consent screen -->
<string name="datadonation_details_survey_consent_top_title">"Befragung zur Verbesserung der Corona-Warn-App"</string>
<!-- XHED: Text for the access survey body displayed under the title of survey consent screen -->
<string name="datadonation_details_survey_consent_top_body">"Mit Ihrer Teilnahme helfen Sie uns zu verstehen, wie sich Warnungen über die App auf das Verhalten von Personen mit erhöhtem Risiko auswirken."</string>
<!-- XHED: Text for the consent part title displayed over the button in the survey consent screen -->
<string name="datadonation_details_survey_consent_info_card_title">"Ihr Einverständnis"</string>
<!-- XHED: Text for the consent part body displayed over the button in the survey consent screen -->
<string name="datadonation_details_survey_consent_info_card_body">"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut t amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."</string>
<!-- XHED: Title for BottomNav main screen title -->
<string name="bottom_nav_home_title">Startseite</string>
<!-- XHED: Title for BottomNav diary screen title -->
......
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