diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/consentstatus/ConsentStatusView.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/consentstatus/ConsentStatusView.kt new file mode 100644 index 0000000000000000000000000000000000000000..ed8ba874646c1390e98a8bfd6c875748e5925a3a --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/consentstatus/ConsentStatusView.kt @@ -0,0 +1,43 @@ +package de.rki.coronawarnapp.ui.submission.consentstatus + +import android.content.Context +import android.util.AttributeSet +import android.util.TypedValue +import android.view.LayoutInflater +import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.databinding.BindingAdapter +import de.rki.coronawarnapp.R + +class ConsentStatusView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) { + + private var titleTextView: TextView + + init { + LayoutInflater.from(context).inflate(R.layout.view_consent_status, this, true) + + val outValue = TypedValue() + getContext().theme.resolveAttribute(android.R.attr.selectableItemBackground, outValue, true) + setBackgroundResource(outValue.resourceId) + + titleTextView = findViewById(R.id.consent_status_message) + } + + var consent: Boolean = false + set(value) { + when (value) { + true -> R.string.submission_consent_view_consent_given + false -> R.string.submission_consent_view_consent_not_given + }.let { titleTextView.setText(it) } + field = value + } +} + +@BindingAdapter("consent") +fun ConsentStatusView.consent(newConsent: Boolean) { + consent = newConsent +} diff --git a/Corona-Warn-App/src/main/res/drawable/ic_consent_status_view_icon.xml b/Corona-Warn-App/src/main/res/drawable/ic_consent_status_view_icon.xml new file mode 100644 index 0000000000000000000000000000000000000000..20ff1116059d81ba8e6495c064ee2bcd4e09b051 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_consent_status_view_icon.xml @@ -0,0 +1,11 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="16dp" + android:viewportWidth="24" + android:viewportHeight="16"> + <path + android:pathData="M19.35,6.04C18.67,2.59 15.64,0 12,0C9.11,0 6.6,1.64 5.35,4.04C2.34,4.36 0,6.91 0,10C0,13.31 2.69,16 6,16H19C21.76,16 24,13.76 24,11C24,8.36 21.95,6.22 19.35,6.04ZM19,14H6C3.79,14 2,12.21 2,10C2,7.95 3.53,6.24 5.56,6.03L6.63,5.92L7.13,4.97C8.08,3.14 9.94,2 12,2C14.62,2 16.88,3.86 17.39,6.43L17.69,7.93L19.22,8.04C20.78,8.14 22,9.45 22,11C22,12.65 20.65,14 19,14ZM10.55,9H8L12,5L16,9H13.45V12H10.55V9Z" + android:fillColor="#17191A" + android:fillAlpha="0.3" + android:fillType="evenOdd"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/layout/view_consent_status.xml b/Corona-Warn-App/src/main/res/layout/view_consent_status.xml new file mode 100644 index 0000000000000000000000000000000000000000..c40f41e737b54ef716c061c5a11197e19ee16aeb --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/view_consent_status.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<merge 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:focusable="true" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + <View + android:id="@+id/test_result_illustration_divider" + android:layout_width="match_parent" + android:layout_height="@dimen/card_divider" + android:background="@color/colorHairline" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageView + android:id="@+id/consent_icon" + style="@style/icon" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginBottom="16dp" + android:focusable="false" + android:importantForAccessibility="no" + android:paddingTop="4dp" + android:src="@drawable/ic_consent_status_view_icon" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_bias="0.0" /> + + <TextView + android:id="@+id/consent_status_message" + style="@style/headline6" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="56dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="16dp" + android:text="@string/submission_consent_view_consent_not_given" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="Einverständnis\n“Andere warnen†nicht erteilt" /> + + <View + android:layout_width="match_parent" + android:layout_height="@dimen/card_divider" + android:layout_marginTop="@dimen/spacing_small" + android:background="@color/colorHairline" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + +</merge> \ No newline at end of file