From e1ab02f13bbfd7cf7c9ab12595c63c537451ee85 Mon Sep 17 00:00:00 2001 From: Philipp Nowak <10376534+PhilippNowak96@users.noreply.github.com> Date: Fri, 20 Nov 2020 15:37:29 +0100 Subject: [PATCH] Fix scrolling for SubmissionQRCodeInfoFragment and refactor layout code structure to match the other layouts (EXPOSUREAPP-3436) (#1607) (#1662) Co-authored-by: Katharina Seiz <Katharina.Seiz@sap.com> Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com> Co-authored-by: AlexanderAlferov <64849422+AlexanderAlferov@users.noreply.github.com> --- .../fragment_submission_qr_code_info.xml | 228 +----------------- .../include_submission_qr_code_info.xml | 219 +++++++++++++++++ 2 files changed, 229 insertions(+), 218 deletions(-) create mode 100644 Corona-Warn-App/src/main/res/layout/include_submission_qr_code_info.xml diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_qr_code_info.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_qr_code_info.xml index d5a9a1cd1..1c9774776 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_submission_qr_code_info.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_qr_code_info.xml @@ -5,9 +5,9 @@ <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/submission_done_container" - android:contentDescription="@string/submission_done_title" android:layout_width="match_parent" android:layout_height="match_parent" + android:contentDescription="@string/submission_done_title" android:fillViewport="true" tools:context=".ui.submission.fragment.SubmissionQRCodeInfo"> @@ -17,228 +17,20 @@ android:layout_width="@dimen/match_constraint" android:layout_height="wrap_content" app:icon="@{@drawable/ic_back}" - app:title="@string/submission_qr_info_headline" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintBottom_toTopOf="@id/submission_qr_code_info_scrollview" /> + app:layout_constraintTop_toTopOf="parent" + app:title="@string/submission_qr_info_headline" /> - <ScrollView - android:id="@+id/submission_qr_code_info_scrollview" - android:layout_width="match_parent" - android:layout_height="wrap_content" + <include + android:id="@+id/include_submission_qr_code_info" + layout="@layout/include_submission_qr_code_info" + android:layout_width="@dimen/match_constraint" + android:layout_height="@dimen/match_constraint" + app:layout_constraintBottom_toTopOf="@id/guideline_action" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/submission_qr_code_info_header"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:focusable="true"> - - <ImageView - android:id="@+id/submission_qr_info_illustration" - android:layout_width="@dimen/match_constraint" - android:layout_height="wrap_content" - android:focusable="true" - android:src="@drawable/ic_illustrations_qr_code_scan_info" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_1" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:focusable="true" - android:layout_marginTop="@dimen/bullet_point_spacing_after" - android:layout_marginHorizontal="@dimen/guideline_card" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/submission_qr_info_illustration"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_1_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:background="@drawable/circle" - android:backgroundTint="@color/card_dark" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <ImageView - style="@style/icon" - android:layout_width="@dimen/icon_size_risk_details_behavior" - android:layout_height="@dimen/icon_size_risk_details_behavior" - android:layout_margin="@dimen/icon_margin_risk_details_behavior" - android:focusable="false" - android:importantForAccessibility="no" - android:src="@drawable/ic_qr_icon_personal_result" - android:tint="@color/button_primary" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <TextView - style="@style/subtitle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_small" - android:text="@string/submission_qr_info_point_1_body" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/qr_info_step_1_icon" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_2" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:focusable="true" - android:layout_marginTop="@dimen/bullet_point_spacing_after" - android:layout_marginHorizontal="@dimen/guideline_card" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/qr_info_step_1"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_2_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:background="@drawable/circle" - android:backgroundTint="@color/card_dark" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <ImageView - style="@style/icon" - android:layout_width="@dimen/icon_size_risk_details_behavior" - android:layout_height="@dimen/icon_size_risk_details_behavior" - android:layout_margin="@dimen/icon_margin_risk_details_behavior" - android:focusable="false" - android:importantForAccessibility="no" - android:src="@drawable/ic_qr_icon_test_scan" - android:tint="@color/button_primary" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <TextView - style="@style/subtitle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_small" - android:text="@string/submission_qr_info_point_2_body" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/qr_info_step_2_icon" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_3" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:focusable="true" - android:layout_marginTop="@dimen/bullet_point_spacing_after" - android:layout_marginHorizontal="@dimen/guideline_card" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/qr_info_step_2"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_3_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:background="@drawable/circle" - android:backgroundTint="@color/card_dark" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <ImageView - style="@style/icon" - android:layout_width="@dimen/icon_size_risk_details_behavior" - android:layout_height="@dimen/icon_size_risk_details_behavior" - android:layout_margin="@dimen/icon_margin_risk_details_behavior" - android:focusable="false" - android:importantForAccessibility="no" - android:src="@drawable/ic_qr_icon_multiple_tests" - android:tint="@color/button_primary" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <TextView - style="@style/subtitle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_small" - android:text="@string/submission_qr_info_point_3_body" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/qr_info_step_3_icon" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_4" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:focusable="true" - android:layout_marginTop="@dimen/bullet_point_spacing_after" - android:layout_marginHorizontal="@dimen/guideline_card" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/qr_info_step_3"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:id="@+id/qr_info_step_4_icon" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:background="@drawable/circle" - android:backgroundTint="@color/card_dark" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <ImageView - style="@style/icon" - android:layout_width="@dimen/icon_size_risk_details_behavior" - android:layout_height="@dimen/icon_size_risk_details_behavior" - android:layout_margin="@dimen/icon_margin_risk_details_behavior" - android:focusable="false" - android:importantForAccessibility="no" - android:src="@drawable/ic_qr_icon_info" - android:tint="@color/button_primary" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - <TextView - style="@style/subtitle" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_small" - android:text="@string/submission_qr_info_point_4_body" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/qr_info_step_4_icon" - app:layout_constraintTop_toTopOf="parent" /> - </androidx.constraintlayout.widget.ConstraintLayout> - </androidx.constraintlayout.widget.ConstraintLayout> - - </ScrollView> + app:layout_constraintTop_toBottomOf="@+id/submission_qr_code_info_header" /> <Button android:id="@+id/submission_qr_info_button_next" diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_qr_code_info.xml b/Corona-Warn-App/src/main/res/layout/include_submission_qr_code_info.xml new file mode 100644 index 000000000..2f68632b6 --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/include_submission_qr_code_info.xml @@ -0,0 +1,219 @@ +<?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"> + + <ScrollView + android:id="@+id/submission_qr_code_info_scrollview" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:focusable="true"> + + <ImageView + android:id="@+id/submission_qr_info_illustration" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:focusable="true" + android:src="@drawable/ic_illustrations_qr_code_scan_info" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_1" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/guideline_card" + android:layout_marginTop="@dimen/bullet_point_spacing_after" + android:focusable="true" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/submission_qr_info_illustration"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_1_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/circle" + android:backgroundTint="@color/card_dark" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <ImageView + style="@style/icon" + android:layout_width="@dimen/icon_size_risk_details_behavior" + android:layout_height="@dimen/icon_size_risk_details_behavior" + android:layout_margin="@dimen/icon_margin_risk_details_behavior" + android:focusable="false" + android:importantForAccessibility="no" + android:src="@drawable/ic_qr_icon_personal_result" + android:tint="@color/button_primary" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <TextView + style="@style/subtitle" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_small" + android:text="@string/submission_qr_info_point_1_body" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/qr_info_step_1_icon" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_2" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/guideline_card" + android:layout_marginTop="@dimen/bullet_point_spacing_after" + android:focusable="true" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/qr_info_step_1"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_2_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/circle" + android:backgroundTint="@color/card_dark" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <ImageView + style="@style/icon" + android:layout_width="@dimen/icon_size_risk_details_behavior" + android:layout_height="@dimen/icon_size_risk_details_behavior" + android:layout_margin="@dimen/icon_margin_risk_details_behavior" + android:focusable="false" + android:importantForAccessibility="no" + android:src="@drawable/ic_qr_icon_test_scan" + android:tint="@color/button_primary" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <TextView + style="@style/subtitle" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_small" + android:text="@string/submission_qr_info_point_2_body" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/qr_info_step_2_icon" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_3" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/guideline_card" + android:layout_marginTop="@dimen/bullet_point_spacing_after" + android:focusable="true" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/qr_info_step_2"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_3_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/circle" + android:backgroundTint="@color/card_dark" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <ImageView + style="@style/icon" + android:layout_width="@dimen/icon_size_risk_details_behavior" + android:layout_height="@dimen/icon_size_risk_details_behavior" + android:layout_margin="@dimen/icon_margin_risk_details_behavior" + android:focusable="false" + android:importantForAccessibility="no" + android:src="@drawable/ic_qr_icon_multiple_tests" + android:tint="@color/button_primary" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <TextView + style="@style/subtitle" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_small" + android:text="@string/submission_qr_info_point_3_body" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/qr_info_step_3_icon" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_4" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/guideline_card" + android:layout_marginTop="@dimen/bullet_point_spacing_after" + android:focusable="true" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/qr_info_step_3"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/qr_info_step_4_icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/circle" + android:backgroundTint="@color/card_dark" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <ImageView + style="@style/icon" + android:layout_width="@dimen/icon_size_risk_details_behavior" + android:layout_height="@dimen/icon_size_risk_details_behavior" + android:layout_margin="@dimen/icon_margin_risk_details_behavior" + android:focusable="false" + android:importantForAccessibility="no" + android:src="@drawable/ic_qr_icon_info" + android:tint="@color/button_primary" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + + <TextView + style="@style/subtitle" + android:layout_width="@dimen/match_constraint" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_small" + android:text="@string/submission_qr_info_point_4_body" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/qr_info_step_4_icon" + app:layout_constraintTop_toTopOf="parent" /> + </androidx.constraintlayout.widget.ConstraintLayout> + </androidx.constraintlayout.widget.ConstraintLayout> + + </ScrollView> +</layout> \ No newline at end of file -- GitLab