diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogFragment.kt index def69cfa0727f9ec0c22fbdfad50849ca48e38ac..537e312a187645989bd3a3776f625c20273670d8 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogFragment.kt @@ -4,11 +4,13 @@ import android.os.Bundle import android.text.format.Formatter import android.view.View import android.widget.Toast -import androidx.core.view.isGone import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.BugreportingDebuglogFragmentBinding +import de.rki.coronawarnapp.util.ContextExtensions.getDrawableCompat import de.rki.coronawarnapp.util.di.AutoInject +import de.rki.coronawarnapp.util.setUrl +import de.rki.coronawarnapp.util.ui.doNavigate import de.rki.coronawarnapp.util.ui.observe2 import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy @@ -27,24 +29,64 @@ class DebugLogFragment : Fragment(R.layout.bugreporting_debuglog_fragment), Auto vm.state.observe2(this) { binding.apply { - debuglogActivityIndicator.isGone = !it.isRecording + + if (explanationSectionTwo.text == + context?.getString(R.string.debugging_debuglog_intro_explanation_section_two) + ) { + explanationSectionTwo.setUrl( + R.string.debugging_debuglog_intro_explanation_section_two, + R.string.debugging_debuglog_intro_explanation_section_two_link_label, + R.string.debugging_debuglog_intro_explanation_section_two_faq_link + ) + } + + debuglogActivityIndicator.setImageDrawable( + context?.getDrawableCompat( + if (it.isRecording) + R.drawable.ic_debug_log_indicator_activated + else R.drawable.ic_debug_log_indicator_deactivated + ) + ) + debuglogStatusPrimary.text = getString( if (it.isRecording) R.string.debugging_debuglog_status_recording else R.string.debugging_debuglog_status_not_recording ) - debuglogStatusSecondary.text = getString( - R.string.debugging_debuglog_status_additional_infos, - Formatter.formatFileSize(context, it.currentSize) - ) - toggleRecording.text = getString( - if (it.isRecording) R.string.debugging_debuglog_action_stop_recording - else R.string.debugging_debuglog_action_start_recording - ) - shareRecording.isEnabled = it.currentSize > 0L && !it.sharingInProgress + + debuglogStatusSecondary.text = + getString( + R.string.debugging_debuglog_status_additional_infos, + Formatter.formatFileSize(context, it.currentSize) + ) + + toggleRecording.isActivated = it.isRecording + + toggleRecording.text = + getString( + if (it.isRecording) R.string.debugging_debuglog_action_stop_recording + else R.string.debugging_debuglog_action_start_recording + ) + + toggleSendErrorLog.visibility = if (it.isRecording) View.VISIBLE else View.GONE + toggleSendErrorLog.isEnabled = it.currentSize > 0L && !it.sharingInProgress + + toggleStoreLog.visibility = if (it.isRecording) View.VISIBLE else View.GONE + toggleRecording.isEnabled = !it.sharingInProgress } } + vm.routeToScreen.observe2(this) { + when (it) { + + DebugLogNavigationEvents.NavigateToPrivacyFragment -> { + doNavigate( + DebugLogFragmentDirections.actionDebuglogFragmentToInformationPrivacyFragment() + ) + } + } + } + vm.errorEvent.observe2(this) { Toast.makeText(requireContext(), it.toString(), Toast.LENGTH_LONG).show() } @@ -55,7 +97,9 @@ class DebugLogFragment : Fragment(R.layout.bugreporting_debuglog_fragment), Auto binding.apply { toggleRecording.setOnClickListener { vm.toggleRecording() } - shareRecording.setOnClickListener { vm.shareRecording() } + toggleSendErrorLog.setOnClickListener { vm.shareRecording() } + debugLogHistoryContainer.setOnClickListener { vm.onIdHistoryPress() } + debugLogPrivacyInformation.setOnClickListener { vm.onPrivacyButtonPress() } toolbar.setNavigationOnClickListener { popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogNavigationEvents.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogNavigationEvents.kt new file mode 100644 index 0000000000000000000000000000000000000000..c631452fc9998060e3e566fb8701246525eb3329 --- /dev/null +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogNavigationEvents.kt @@ -0,0 +1,5 @@ +package de.rki.coronawarnapp.bugreporting.debuglog.ui + +sealed class DebugLogNavigationEvents { + object NavigateToPrivacyFragment : DebugLogNavigationEvents() +} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogViewModel.kt index d31e9f34ad2ea548ae5195d118ad0a5dba0d0bd5..ddbe13966b699e6ca5e4880b5980e5c808056599 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/bugreporting/debuglog/ui/DebugLogViewModel.kt @@ -38,6 +38,18 @@ class DebugLogViewModel @AssistedInject constructor( } private val manualTick = MutableStateFlow(Unit) private val sharingInProgress = MutableStateFlow(false) + + val routeToScreen: de.rki.coronawarnapp.ui.SingleLiveEvent<DebugLogNavigationEvents> = + de.rki.coronawarnapp.ui.SingleLiveEvent() + + fun onPrivacyButtonPress() { + routeToScreen.postValue(DebugLogNavigationEvents.NavigateToPrivacyFragment) + } + + fun onIdHistoryPress() { + // TODO Add Navigation + } + val state: LiveData<State> = combine(ticker, manualTick, sharingInProgress) { _, _, sharingInProgress -> State( isRecording = debugLogger.isLogging, diff --git a/Corona-Warn-App/src/main/res/color/button_debug_log.xml b/Corona-Warn-App/src/main/res/color/button_debug_log.xml new file mode 100644 index 0000000000000000000000000000000000000000..061c98a5f2089e244665acb2c6e7852b55bd42d8 --- /dev/null +++ b/Corona-Warn-App/src/main/res/color/button_debug_log.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:color="@color/colorAccentTintButton" android:state_activated="false" /> <!-- default --> + <item android:color="@color/colorSemanticHighRiskPressed" /> <!-- enabled --> +</selector> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/drawable/ic_debug_log_indicator_activated.xml b/Corona-Warn-App/src/main/res/drawable/ic_debug_log_indicator_activated.xml new file mode 100644 index 0000000000000000000000000000000000000000..96147bb65c461b5acda1c6f1c29d6d098f85c841 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_debug_log_indicator_activated.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32dp" + android:height="32dp" + android:viewportWidth="32" + android:viewportHeight="32"> + <path + android:pathData="M16.1494,31.9512C24.6602,31.9512 31.6621,24.9492 31.6621,16.4385C31.6621,7.9131 24.6602,0.9111 16.1348,0.9111C7.6094,0.9111 0.6221,7.9131 0.6221,16.4385C0.6221,24.9492 7.624,31.9512 16.1494,31.9512ZM16.1494,22.5029C12.7656,22.5029 10.041,19.7783 10.041,16.3945C10.041,13.04 12.7656,10.3154 16.1494,10.3154C19.5186,10.3154 22.2432,13.04 22.2432,16.3945C22.2432,19.7783 19.5186,22.5029 16.1494,22.5029Z" + android:fillColor="#BF0F2D"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/drawable/ic_debug_log_indicator_deactivated.xml b/Corona-Warn-App/src/main/res/drawable/ic_debug_log_indicator_deactivated.xml new file mode 100644 index 0000000000000000000000000000000000000000..733482b1e51d00e818e624604f0c8996b4bd0e09 --- /dev/null +++ b/Corona-Warn-App/src/main/res/drawable/ic_debug_log_indicator_deactivated.xml @@ -0,0 +1,9 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32dp" + android:height="32dp" + android:viewportWidth="32" + android:viewportHeight="32"> + <path + android:pathData="M16.1494,31.9512C24.6602,31.9512 31.6621,24.9492 31.6621,16.4385C31.6621,7.9131 24.6602,0.9111 16.1348,0.9111C7.6094,0.9111 0.6221,7.9131 0.6221,16.4385C0.6221,24.9492 7.624,31.9512 16.1494,31.9512ZM16.1494,22.5029C12.7656,22.5029 10.041,19.7783 10.041,16.3945C10.041,13.04 12.7656,10.3154 16.1494,10.3154C19.5186,10.3154 22.2432,13.04 22.2432,16.3945C22.2432,19.7783 19.5186,22.5029 16.1494,22.5029Z" + android:fillColor="#D6D6D9"/> +</vector> diff --git a/Corona-Warn-App/src/main/res/layout/bugreporting_debuglog_fragment.xml b/Corona-Warn-App/src/main/res/layout/bugreporting_debuglog_fragment.xml index c33bf0eb51c4e7592e3811508f95817d162f132f..dc17cdd13931c1b267d9dcac44dca8273882f298 100644 --- a/Corona-Warn-App/src/main/res/layout/bugreporting_debuglog_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/bugreporting_debuglog_fragment.xml @@ -1,114 +1,255 @@ -<?xml version="1.0" encoding="utf-8"?> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" +<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" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <Toolbar - android:id="@+id/toolbar" - style="@style/CWAToolbar" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:navigationIcon="@drawable/ic_back" - android:title="@string/debugging_debuglog_title" /> + xmlns:tools="http://schemas.android.com/tools"> - <ScrollView + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/content_container" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:background="@drawable/contact_diary_onboarding_background" + android:contentDescription="@string/contact_diary_title" + android:focusable="true"> - <LinearLayout + <Toolbar + android:id="@+id/toolbar" + style="@style/CWAToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical"> - <TextView - android:id="@+id/explanation" - style="@style/body1" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="@dimen/spacing_normal" - android:text="@string/debugging_debuglog_intro_explanation" /> + android:navigationIcon="@drawable/ic_back" + android:title="@string/debugging_debuglog_title" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - <TextView - android:id="@+id/sensitive_information" - style="@style/body1" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@color/cwaGrayHighlight" - android:padding="@dimen/spacing_normal" - android:text="@string/debugging_debuglog_intro_warning" - android:textColor="@color/colorStableLight" /> + <ScrollView + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_marginBottom="12dp" + android:clipToPadding="false" + android:paddingBottom="32dp" + app:layout_constraintBottom_toTopOf="@+id/debug_log_analysis_title" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/toolbar"> <androidx.constraintlayout.widget.ConstraintLayout - style="@style/cardTracing" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/spacing_small" - android:layout_marginTop="@dimen/spacing_normal" - android:layout_marginEnd="@dimen/spacing_small" - android:layout_marginBottom="@dimen/spacing_tiny"> - - <ProgressBar - android:id="@+id/debuglog_activity_indicator" - android:layout_width="36dp" - android:layout_height="36dp" - android:visibility="gone" - app:layout_constraintBottom_toBottomOf="@+id/debuglog_status_secondary" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="@+id/debuglog_status_primary" - tools:visibility="visible" /> + android:layout_height="0dp"> <TextView - android:id="@+id/debuglog_status_primary" + android:id="@+id/explanation_section_one" style="@style/body1" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="16dp" + android:layout_margin="@dimen/spacing_normal" + android:text="@string/debugging_debuglog_intro_explanation_section_one" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/debuglog_activity_indicator" - app:layout_constraintTop_toTopOf="parent" - app:layout_goneMarginStart="0dp" - tools:text="@string/debugging_debuglog_status_not_recording" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> <TextView - android:id="@+id/debuglog_status_secondary" - style="@style/TextAppearance.AppCompat.Caption" + android:id="@+id/explanation_section_two" + style="@style/body1" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="16dp" + android:layout_margin="@dimen/spacing_normal" + android:text="@string/debugging_debuglog_intro_explanation_section_two" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/debuglog_activity_indicator" - app:layout_constraintTop_toBottomOf="@id/debuglog_status_primary" - app:layout_goneMarginStart="0dp" - tools:text="@string/debugging_debuglog_status_additional_infos" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/explanation_section_one" /> - <Button - android:id="@+id/share_recording" + <include + android:id="@+id/debug_log_privacy_card" + layout="@layout/include_debuglog_privacy_card" android:layout_width="0dp" android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/guideline_card" android:layout_marginTop="16dp" - android:layout_marginEnd="8dp" - android:enabled="false" - android:text="@string/debugging_debuglog_action_share_log" - app:layout_constraintEnd_toStartOf="@+id/toggle_recording" + android:focusable="true" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/explanation_section_two" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_history_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:visibility="gone" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/debug_log_privacy_card"> + + <TextView + android:id="@+id/log_history_title" + style="@style/body1" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/spacing_normal" + android:text="@string/debugging_debuglog_id_history_title" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/log_history_body" + style="@style/TextAppearance.AppCompat.Caption" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/spacing_normal" + android:layout_marginTop="4dp" + android:text="@string/debugging_debuglog_id_history_body" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/log_history_title" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <View + android:id="@+id/debug_log_first_divider" + android:layout_width="0dp" + android:layout_height="@dimen/card_divider" + android:layout_marginHorizontal="24dp" + android:layout_marginTop="24dp" + android:background="?android:attr/listDivider" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/debuglog_status_secondary" /> - <Button - android:id="@+id/toggle_recording" + app:layout_constraintTop_toBottomOf="@id/debug_log_history_container" /> + + <TextView + android:id="@+id/debug_log_privacy_information" + style="@style/subtitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:layout_marginTop="16dp" - android:text="@string/debugging_debuglog_action_start_recording" + android:layout_marginHorizontal="24dp" + android:background="?selectableItemBackground" + android:clickable="true" + android:focusable="true" + android:paddingVertical="@dimen/spacing_tiny" + android:text="@string/contact_diary_onboarding_legal_information" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@id/share_recording" - app:layout_constraintTop_toBottomOf="@id/debuglog_status_secondary" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/debug_log_first_divider" + tools:text="@string/contact_diary_onboarding_legal_information" /> + <View + android:id="@+id/debug_log_second_divider" + android:layout_width="0dp" + android:layout_height="@dimen/card_divider" + android:layout_marginHorizontal="24dp" + android:layout_marginBottom="24dp" + android:background="?android:attr/listDivider" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/debug_log_privacy_information" /> </androidx.constraintlayout.widget.ConstraintLayout> - </LinearLayout> - </ScrollView> -</LinearLayout> \ No newline at end of file + </ScrollView> + + <TextView + android:id="@+id/debug_log_analysis_title" + style="@style/headline5" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="24dp" + android:layout_marginBottom="12dp" + android:accessibilityHeading="true" + android:focusable="true" + android:text="@string/debugging_debuglog_current_status_title" + app:layout_constraintBottom_toTopOf="@+id/debug_log_current_status_card" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_current_status_card" + style="@style/cardTracing" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginHorizontal="24dp" + android:layout_marginTop="@dimen/spacing_normal" + android:layout_marginBottom="16dp" + app:layout_constraintBottom_toTopOf="@+id/toggle_send_error_log" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + + + <ImageView + android:id="@+id/debuglog_activity_indicator" + android:layout_width="36dp" + android:layout_height="36dp" + android:importantForAccessibility="no" + android:src="@drawable/ic_debug_log_indicator_deactivated" + app:layout_constraintBottom_toBottomOf="@+id/debuglog_status_secondary" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@+id/debuglog_status_primary" + tools:src="@drawable/ic_debug_log_indicator_deactivated" /> + + <TextView + android:id="@+id/debuglog_status_primary" + style="@style/body1" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/debuglog_activity_indicator" + app:layout_constraintTop_toTopOf="parent" + tools:text="@string/debugging_debuglog_status_not_recording" /> + + <TextView + android:id="@+id/debuglog_status_secondary" + style="@style/TextAppearance.AppCompat.Caption" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/debuglog_activity_indicator" + app:layout_constraintTop_toBottomOf="@id/debuglog_status_primary" + tools:text="@string/debugging_debuglog_status_additional_infos" /> + + + </androidx.constraintlayout.widget.ConstraintLayout> + + <android.widget.Button + android:id="@+id/toggle_send_error_log" + style="@style/buttonPrimary" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginVertical="@dimen/spacing_small" + android:layout_marginStart="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/spacing_normal" + android:text="@string/debugging_debuglog_action_share_log" + app:layout_constraintBottom_toTopOf="@+id/toggle_store_log" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:text="@string/debugging_debuglog_action_share_log" /> + + <android.widget.Button + android:id="@+id/toggle_store_log" + style="@style/buttonPrimary" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginVertical="@dimen/spacing_small" + android:layout_marginStart="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/spacing_normal" + android:text="@string/debugging_debuglog_action_local_log_store" + app:layout_constraintBottom_toTopOf="@+id/toggle_recording" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:text="@string/debugging_debuglog_action_local_log_store" /> + + <android.widget.Button + android:id="@+id/toggle_recording" + style="@style/debugLogButton" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginVertical="@dimen/spacing_small" + android:layout_marginStart="@dimen/spacing_normal" + android:layout_marginEnd="@dimen/spacing_normal" + android:text="@string/debugging_debuglog_action_start_recording" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:text="@string/debugging_debuglog_action_start_recording" /> + + </androidx.constraintlayout.widget.ConstraintLayout> +</layout> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/layout/fragment_information.xml b/Corona-Warn-App/src/main/res/layout/fragment_information.xml index b506237672f54d2ad6991c22004fec640dd7da96..25dfed9ca1d242afaa0acc5111e66759c8d63cd1 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_information.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_information.xml @@ -89,18 +89,18 @@ app:subtitle="@{@string/information_contact_title}" /> <include - android:id="@+id/information_legal" + android:id="@+id/information_debuglog" layout="@layout/include_row" android:layout_width="match_parent" android:layout_height="wrap_content" - app:subtitle="@{@string/information_legal_title}" /> + app:subtitle="@{@string/debugging_debuglog_title}" /> <include - android:id="@+id/information_debuglog" + android:id="@+id/information_legal" layout="@layout/include_row" android:layout_width="match_parent" android:layout_height="wrap_content" - app:subtitle="@{@string/debugging_debuglog_title}" /> + app:subtitle="@{@string/information_legal_title}" /> <TextView android:id="@+id/information_version" diff --git a/Corona-Warn-App/src/main/res/layout/include_debuglog_privacy_card.xml b/Corona-Warn-App/src/main/res/layout/include_debuglog_privacy_card.xml new file mode 100644 index 0000000000000000000000000000000000000000..94d852b774215c0e6136c35508d9b15f566afe3c --- /dev/null +++ b/Corona-Warn-App/src/main/res/layout/include_debuglog_privacy_card.xml @@ -0,0 +1,183 @@ +<?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"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_privacy_card" + style="@style/GreyCard" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="@dimen/spacing_normal" + app:layout_constraintTop_toTopOf="parent"> + + <TextView + android:id="@+id/debug_log_privacy_card_title" + style="@style/headline5" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:accessibilityHeading="true" + android:focusable="true" + android:text="@string/debugging_debuglog_privacy_card_title" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_privacy_card_container_section_one" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.104" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/debug_log_privacy_card_title"> + + <include + android:id="@+id/bulletpoint_one" + layout="@layout/include_bullet_point" + android:layout_width="@dimen/bullet_point_size" + android:layout_height="@dimen/bullet_point_size" + app:layout_constraintBaseline_toBaselineOf="@id/debug_log_privacy_card_first_section_body_one" /> + + <TextView + android:id="@+id/debug_log_privacy_card_first_section_body_one" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:focusable="true" + android:text="@string/debug_log_privacy_card_section_body_one" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/bulletpoint_one" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_privacy_card_container_section_two" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/debug_log_privacy_card_container_section_one"> + + <include + android:id="@+id/bulletpoint_two" + layout="@layout/include_bullet_point" + android:layout_width="@dimen/bullet_point_size" + android:layout_height="@dimen/bullet_point_size" + app:layout_constraintBaseline_toBaselineOf="@id/debug_log_privacy_card_first_section_body_two" /> + + <TextView + android:id="@+id/debug_log_privacy_card_first_section_body_two" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:focusable="true" + android:text="@string/debug_log_privacy_card_container_section_two" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/bulletpoint_two" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_privacy_card_container_section_three" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/debug_log_privacy_card_container_section_two"> + + <include + android:id="@+id/bulletpoint_three" + layout="@layout/include_bullet_point" + android:layout_width="@dimen/bullet_point_size" + android:layout_height="@dimen/bullet_point_size" + app:layout_constraintBaseline_toBaselineOf="@id/debug_log_privacy_card_second_section_body_one" /> + + <TextView + android:id="@+id/debug_log_privacy_card_second_section_body_one" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:focusable="true" + android:text="@string/debug_log_privacy_card_container_section_three" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/bulletpoint_three" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_privacy_card_container_section_four" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/debug_log_privacy_card_container_section_three"> + + <include + android:id="@+id/bulletpoint_four" + layout="@layout/include_bullet_point" + android:layout_width="@dimen/bullet_point_size" + android:layout_height="@dimen/bullet_point_size" + app:layout_constraintBaseline_toBaselineOf="@id/debug_log_privacy_card_second_section_body_two" /> + + <TextView + android:id="@+id/debug_log_privacy_card_second_section_body_two" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:focusable="true" + android:text="@string/debug_log_privacy_card_container_section_four" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/bulletpoint_four" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/debug_log_privacy_card_container_section_five" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_normal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/debug_log_privacy_card_container_section_four"> + + <include + android:id="@+id/bulletpoint_five" + layout="@layout/include_bullet_point" + android:layout_width="@dimen/bullet_point_size" + android:layout_height="@dimen/bullet_point_size" + app:layout_constraintBaseline_toBaselineOf="@id/debug_log_privacy_card_second_section_body_five" /> + + <TextView + android:id="@+id/debug_log_privacy_card_second_section_body_five" + style="@style/subtitle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/spacing_normal" + android:focusable="true" + android:text="@string/debug_log_privacy_card_container_section_five" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/bulletpoint_five" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.constraintlayout.widget.ConstraintLayout> +</layout> diff --git a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml index b4fe423e381104f4636848740dbe208f909fe8a7..2af00ef76c61d2a039ba6a17f2ca1737c89b0e7e 100644 --- a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml +++ b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml @@ -501,7 +501,11 @@ <fragment android:id="@+id/debuglogFragment" android:name="de.rki.coronawarnapp.bugreporting.debuglog.ui.DebugLogFragment" - android:label="DebuglogFragment" /> + android:label="DebuglogFragment" > + <action + android:id="@+id/action_debuglogFragment_to_informationPrivacyFragment" + app:destination="@id/informationPrivacyFragment" /> + </fragment> <!-- New Release --> <fragment diff --git a/Corona-Warn-App/src/main/res/values-bg/strings.xml b/Corona-Warn-App/src/main/res/values-bg/strings.xml index 658893e14fd24cd4e11d9b2f9a559d01d22910e6..69c27d8e732b09b07a5bc3d4d5c86a9cec8a32b9 100644 --- a/Corona-Warn-App/src/main/res/values-bg/strings.xml +++ b/Corona-Warn-App/src/main/res/values-bg/strings.xml @@ -866,7 +866,7 @@ <!-- XHED: Headline for debug log screen --> <string name="debugging_debuglog_title">"Отчети за грешки"</string> <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñва дейÑтвиÑта на приложението в журнал. Ðко е активна и възникне грешка, ще можете да Ñподелите отчета Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸Ñ†Ð¸Ñ‚Ðµ, за да им помогнете да решат проблема.\nÐко оÑтавите опциÑта активна, това може да доведе до запълване на проÑтранÑтвото за Ñъхранение. Ðко Ñ Ð´ÐµÐ·Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð°Ñ‚Ðµ, отчетите за грешки Ñе изтриват."</string> + <string name="debugging_debuglog_intro_explanation_section_one">"Тази Ð¾Ð¿Ñ†Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñва дейÑтвиÑта на приложението в журнал. Ðко е активна и възникне грешка, ще можете да Ñподелите отчета Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸Ñ†Ð¸Ñ‚Ðµ, за да им помогнете да решат проблема.\nÐко оÑтавите опциÑта активна, това може да доведе до запълване на проÑтранÑтвото за Ñъхранение. Ðко Ñ Ð´ÐµÐ·Ð°ÐºÑ‚Ð¸Ð²Ð¸Ñ€Ð°Ñ‚Ðµ, отчетите за грешки Ñе изтриват."</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"МолÑ, имайте предвид, че отчетите за грешки може да Ñъдържат поверителни данни (например резултати от теÑтове или запиÑи в дневника на контактите). Ето защо не бива да ÑподелÑте отчетите за грешки публично."</string> <!-- XBUT: Button text to start the log recording --> diff --git a/Corona-Warn-App/src/main/res/values-de/strings.xml b/Corona-Warn-App/src/main/res/values-de/strings.xml index 4fb850acfa2e2da6abab63c214967d5588c5facf..13d605e602870b8b650e1b86ecaf6951838af56e 100644 --- a/Corona-Warn-App/src/main/res/values-de/strings.xml +++ b/Corona-Warn-App/src/main/res/values-de/strings.xml @@ -865,17 +865,31 @@ <string name="information_legal_illustration_description">"Eine Hand hält ein Smartphone mit viel Text, daneben ist ein Paragraphenzeichen als Symbol für das Impressum."</string> <!-- XHED: Headline for debug log screen --> - <string name="debugging_debuglog_title">"Fehlerbericht"</string> - <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"Durch diese Option wird das App-Verhalten in einer Textdatei protokolliert. Ist die Option aktiviert bevor ein Fehler auftritt, können Sie diesen Bericht zur Verfügung stellen, um die Entwickler bei der Problemlösung zu unterstützen.\nEine dauerhafte Aktivierung dieser Option führt zu hohem Speicherbedarf. Der Fehlerbericht wird durch Deaktivieren der Option gelöscht."</string> + <string name="debugging_debuglog_title">"Fehlerberichte"</string> + <!-- XHED: Headline for current status of debug log screen --> + <string name="debugging_debuglog_current_status_title">"Fehleranalyse"</string> + <!-- YTXT: Description one for the debug option to record log files --> + <string name="debugging_debuglog_intro_explanation_section_one">"Um den technischen Support der App bei der Fehleranalyse zu unterstützen, können Sie einen Fehlerbericht der CWA aufzeichnen. Hierbei werden die einzelnen technischen Schritte und Ereignisse beim Ablauf der App detailliert aufgezeichnet. Den Fehlerbericht können Sie dann an den technischen Support senden und so helfen, Fehler zu erkennen und zu beheben."</string> + <!-- YTXT: Description two for the debug option to record log files --> + <string name="debugging_debuglog_intro_explanation_section_two">"Weitere Informationen finden Sie in den FAQ:\nFAQ zu den Fehlerberichten"</string> + <!-- XTXT: Debug Log screen increased risk level link label - HAS TO MATCH the link text above --> + <string name="debugging_debuglog_intro_explanation_section_two_link_label">"FAQ zu den Fehlerberichten"</string> + <!-- XTXT: Explains user about about debug log: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#further_details --> + <string name="debugging_debuglog_intro_explanation_section_two_faq_link">"https://www.coronawarn.app/en/faq/#error_log"</string> + <!-- YTXT: Title of ID History --> + <string name="debugging_debuglog_id_history_title">"ID History"</string> + <!-- YTXT: Description of ID History --> + <string name="debugging_debuglog_id_history_body">"IDs der bisher geteilten Fehleranalysen"</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"Bitte beachten Sie, dass in Fehlerberichten sensible Daten (z.B. Testergebnis oder Kontakt-Tagebuch-Einträge) enthalten sein können. Aus diesem Grund sollten Sie Fehlerberichte nicht öffentlich teilen."</string> <!-- XBUT: Button text to start the log recording --> <string name="debugging_debuglog_action_start_recording">"Starten"</string> <!-- XBUT: Button text to stop the log recording --> - <string name="debugging_debuglog_action_stop_recording">"Löschen"</string> + <string name="debugging_debuglog_action_stop_recording">"Stoppen und löschen"</string> <!-- XBUT: Button text to share the log recording --> - <string name="debugging_debuglog_action_share_log">"Teilen"</string> + <string name="debugging_debuglog_action_share_log">"Fehlerbericht senden"</string> + <!-- XBUT: Button text to locally store the log recording --> + <string name="debugging_debuglog_action_local_log_store">"Lokal speichern und fortsetzen"</string> <!-- YTXT: Status text if a debug log is being recorded --> <string name="debugging_debuglog_status_recording">"Aufzeichnung läuft"</string> <!-- YTXT: Status text if a debug log is not being recorded --> @@ -885,6 +899,13 @@ <!-- XHED: Title for native sharing dialog --> <string name="debugging_debuglog_sharing_dialog_title">"CWA Fehlerbericht teilen"</string> + <string name="debugging_debuglog_privacy_card_title">"Datenschutz und Datensicherheit"</string> + <string name="debug_log_privacy_card_section_body_one">"Die Aufzeichnung des Fehlerberichts ist freiwillig."</string> + <string name="debug_log_privacy_card_container_section_two">"Auf den Fehlerbericht haben zunächst nur Sie Zugriff. Sie können im Anschluss entscheiden, ob Sie den Fehlerbericht an den technischen Support senden, ob Sie den Fehlerbericht zunächst auf Ihrem Smartphone speichern oder die Aufzeichnung stoppen und löschen wollen. Wenn Sie den Fehlerbericht zunächst lokal speichern, haben Sie die Möglichkeit, sich den Fehlerbericht selbst anzuschauen, bevor Sie diesen an den Support übermitteln."</string> + <string name="debug_log_privacy_card_container_section_three">"Der Fehlerbericht enthält sensible Informationen, zum Beispiel Angaben über Ihr Testergebnis oder das für Sie ermittelte Ansteckungsrisiko. Er enthält keine Informationen über die QR-Codes, die Sie bei der Testregistrierung verwendet haben, über Angaben, die Sie im Kontakt-Tagebuch erfasste haben oder Angaben zu Ihrer Identität."</string> + <string name="debug_log_privacy_card_container_section_four">"Wir empfehlen die Fehlerberichte nicht zu veröffentlichen und nicht per E-Mail zu versenden."</string> + <string name="debug_log_privacy_card_container_section_five">"Private Personen oder Unternehmen dürfen von Ihnen nicht die Weitergabe eines aufgezeichneten Fehlerberichtes verlangen."</string> + <!-- #################################### Interoperability ###################################### --> diff --git a/Corona-Warn-App/src/main/res/values-en/strings.xml b/Corona-Warn-App/src/main/res/values-en/strings.xml index d8c0ec6c58b8f6db20d394c7eb2a9318fe9bb08a..5d7dd22baeeac3217f03bd3bb26de575c4706d05 100644 --- a/Corona-Warn-App/src/main/res/values-en/strings.xml +++ b/Corona-Warn-App/src/main/res/values-en/strings.xml @@ -866,7 +866,7 @@ <!-- XHED: Headline for debug log screen --> <string name="debugging_debuglog_title">"Error Report"</string> <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"This option logs the app’s behavior in a text file. If this option is activated before an error occurs, you can make this report available to help the developers solve the problem.\nIf you leave this option activated, it will result in high storage requirements. If you deactivate the option, the error report is deleted."</string> + <string name="debugging_debuglog_intro_explanation_section_one">"This option logs the app’s behavior in a text file. If this option is activated before an error occurs, you can make this report available to help the developers solve the problem.\nIf you leave this option activated, it will result in high storage requirements. If you deactivate the option, the error report is deleted."</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"Please note that error reports may contain sensitive data (such as a test result or contact journal entries). Therefore, you should not share these error reports publicly."</string> <!-- XBUT: Button text to start the log recording --> diff --git a/Corona-Warn-App/src/main/res/values-pl/strings.xml b/Corona-Warn-App/src/main/res/values-pl/strings.xml index eaa9f8c595946d738be2cbd181342b4cd91328fb..d133834d996cac691b0e90135093a490dd14f7d6 100644 --- a/Corona-Warn-App/src/main/res/values-pl/strings.xml +++ b/Corona-Warn-App/src/main/res/values-pl/strings.xml @@ -866,7 +866,7 @@ <!-- XHED: Headline for debug log screen --> <string name="debugging_debuglog_title">"Raport o błędach"</string> <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"Ta opcja umożliwia rejestrowanie zachowania aplikacji w pliku tekstowym. JeÅ›li zostanie ona aktywowana przed wystÄ…pieniem błędu, bÄ™dziesz mieć możliwość udostÄ™pnienia tego raportu, aby pomóc programistom rozwiÄ…zać problem.\nPozostawienie tej opcji w stanie aktywnoÅ›ci wiąże siÄ™ z dużym zapotrzebowaniem na pamięć. JeÅ›li jÄ… wyłączysz, raport o błędach zostanie usuniÄ™ty."</string> + <string name="debugging_debuglog_intro_explanation_section_one">"Ta opcja umożliwia rejestrowanie zachowania aplikacji w pliku tekstowym. JeÅ›li zostanie ona aktywowana przed wystÄ…pieniem błędu, bÄ™dziesz mieć możliwość udostÄ™pnienia tego raportu, aby pomóc programistom rozwiÄ…zać problem.\nPozostawienie tej opcji w stanie aktywnoÅ›ci wiąże siÄ™ z dużym zapotrzebowaniem na pamięć. JeÅ›li jÄ… wyłączysz, raport o błędach zostanie usuniÄ™ty."</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"Należy pamiÄ™tać, że raporty o błędach mogÄ… zawierać dane wrażliwe (takie jak wynik testu lub wpisy dziennika kontaktów). Z tego wzglÄ™du takie raporty nie powinny być udostÄ™pniane publicznie."</string> <!-- XBUT: Button text to start the log recording --> diff --git a/Corona-Warn-App/src/main/res/values-ro/strings.xml b/Corona-Warn-App/src/main/res/values-ro/strings.xml index 9e673a7e8cc46fbe9cfa00d71a655f6d0819e36b..4a247aeb3f5823bf930adf5d07f2c5775a585894 100644 --- a/Corona-Warn-App/src/main/res/values-ro/strings.xml +++ b/Corona-Warn-App/src/main/res/values-ro/strings.xml @@ -866,7 +866,7 @@ <!-- XHED: Headline for debug log screen --> <string name="debugging_debuglog_title">"Raport de erori"</string> <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"Această opÈ›iune înregistrează comportamentul aplicaÈ›iei într-un fiÈ™ier text de jurnal. Dacă opÈ›iunea este activată înainte de apariÈ›ia unei erori, puteÈ›i face disponibil acest raport pentru a-i ajuta pe dezvoltatori să rezolve problema.\nDacă lăsaÈ›i activată această opÈ›iune, acest lucru va conduce la cerinÈ›e de stocare ridicate. Dacă dezactivaÈ›i opÈ›iunea, raportul de erori este È™ters."</string> + <string name="debugging_debuglog_intro_explanation_section_one">"Această opÈ›iune înregistrează comportamentul aplicaÈ›iei într-un fiÈ™ier text de jurnal. Dacă opÈ›iunea este activată înainte de apariÈ›ia unei erori, puteÈ›i face disponibil acest raport pentru a-i ajuta pe dezvoltatori să rezolve problema.\nDacă lăsaÈ›i activată această opÈ›iune, acest lucru va conduce la cerinÈ›e de stocare ridicate. Dacă dezactivaÈ›i opÈ›iunea, raportul de erori este È™ters."</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"ReÈ›ineÈ›i că rapoartele de erori pot conÈ›ine date sensibile (precum un rezultat al testului sau intrări în jurnal ale contactelor). ÃŽn consecință, nu este recomandat să împărtășiÈ›i public aceste rapoarte de erori."</string> <!-- XBUT: Button text to start the log recording --> diff --git a/Corona-Warn-App/src/main/res/values-tr/strings.xml b/Corona-Warn-App/src/main/res/values-tr/strings.xml index 771a2ed84e25fd8f224652461450881497960131..0266b0162527ef5b9f926c708eb925ac4fc84285 100644 --- a/Corona-Warn-App/src/main/res/values-tr/strings.xml +++ b/Corona-Warn-App/src/main/res/values-tr/strings.xml @@ -866,7 +866,7 @@ <!-- XHED: Headline for debug log screen --> <string name="debugging_debuglog_title">"Hata Raporu"</string> <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"Bu seçenek, uygulama davranışını bir metin dosyasına kaydeder. Bir hata meydana gelmeden önce bu seçenek etkinleÅŸtirilirse geliÅŸtiricilerin sorunu çözmesine yardımcı olmak için bu raporu sunabilirsiniz.\nBu seçeneÄŸi etkinleÅŸtirilmiÅŸ durumda bırakırsanız yüksek depolama alanı gereklilikleri oluÅŸacaktır. SeçeneÄŸi devre dışı bırakırsanız hata raporu silinir."</string> + <string name="debugging_debuglog_intro_explanation_section_one">"Bu seçenek, uygulama davranışını bir metin dosyasına kaydeder. Bir hata meydana gelmeden önce bu seçenek etkinleÅŸtirilirse geliÅŸtiricilerin sorunu çözmesine yardımcı olmak için bu raporu sunabilirsiniz.\nBu seçeneÄŸi etkinleÅŸtirilmiÅŸ durumda bırakırsanız yüksek depolama alanı gereklilikleri oluÅŸacaktır. SeçeneÄŸi devre dışı bırakırsanız hata raporu silinir."</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"Lütfen hata raporlarının hassas veriler içerebileceÄŸini unutmayın (örneÄŸin, test sonucu ya da temas güncesi giriÅŸleri). Bu nedenle bu hata raporlarını herkese açık ÅŸekilde paylaÅŸmamanız gerekir."</string> <!-- XBUT: Button text to start the log recording --> diff --git a/Corona-Warn-App/src/main/res/values/strings.xml b/Corona-Warn-App/src/main/res/values/strings.xml index 0ad1b02f4a76ef9b9514663baddd37633f5dad15..d933ab4290ff02aa91dedd06decab173df8e993c 100644 --- a/Corona-Warn-App/src/main/res/values/strings.xml +++ b/Corona-Warn-App/src/main/res/values/strings.xml @@ -880,16 +880,30 @@ <!-- XHED: Headline for debug log screen --> <string name="debugging_debuglog_title">"Error Report"</string> - <!-- YTXT: Description for the debug option to record log files --> - <string name="debugging_debuglog_intro_explanation">"This option logs the app’s behavior in a text file. If this option is activated before an error occurs, you can make this report available to help the developers solve the problem.\nIf you leave this option activated, it will result in high storage requirements. If you deactivate the option, the error report is deleted."</string> + <!-- XHED: Headline for current status of debug log screen --> + <string name="debugging_debuglog_current_status_title">"Fehleranalyse"</string> + <!-- YTXT: Description one for the debug option to record log files --> + <string name="debugging_debuglog_intro_explanation_section_one">"Um den technischen Support der App bei der Fehleranalyse zu unterstützen, können Sie einen Fehlerbericht der CWA aufzeichnen. Hierbei werden die einzelnen technischen Schritte und Ereignisse beim Ablauf der App detailliert aufgezeichnet. Den Fehlerbericht können Sie dann an den technischen Support senden und so helfen, Fehler zu erkennen und zu beheben."</string> + <!-- YTXT: Description two for the debug option to record log files --> + <string name="debugging_debuglog_intro_explanation_section_two">"Weitere Informationen finden Sie in den FAQ:\nFAQ zu den Fehlerberichten"</string> + <!-- XTXT: Debug Log screen increased risk level link label - HAS TO MATCH the link text above --> + <string name="debugging_debuglog_intro_explanation_section_two_link_label">"FAQ zu den Fehlerberichten"</string> + <!-- XTXT: Explains user about about debug log: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#further_details --> + <string name="debugging_debuglog_intro_explanation_section_two_faq_link">"https://www.coronawarn.app/en/faq/#error_log"</string> + <!-- YTXT: Title of ID History --> + <string name="debugging_debuglog_id_history_title">"ID History"</string> + <!-- YTXT: Description of ID History --> + <string name="debugging_debuglog_id_history_body">"IDs der bisher geteilten Fehleranalysen"</string> <!-- YTXT: Warning regarding downsides of recording a log file --> <string name="debugging_debuglog_intro_warning">"Please note that error reports may contain sensitive data (such as a test result or contact journal entries). Therefore, you should not share these error reports publicly."</string> <!-- XBUT: Button text to start the log recording --> <string name="debugging_debuglog_action_start_recording">"Start"</string> <!-- XBUT: Button text to stop the log recording --> - <string name="debugging_debuglog_action_stop_recording">"Delete"</string> + <string name="debugging_debuglog_action_stop_recording">"Stoppen und löschen"</string> <!-- XBUT: Button text to share the log recording --> - <string name="debugging_debuglog_action_share_log">"Share"</string> + <string name="debugging_debuglog_action_share_log">"Fehlerbericht senden"</string> + <!-- XBUT: Button text to locally store the log recording --> + <string name="debugging_debuglog_action_local_log_store">"Lokal speichern und fortsetzen"</string> <!-- YTXT: Status text if a debug log is being recorded --> <string name="debugging_debuglog_status_recording">"Recording Active"</string> <!-- YTXT: Status text if a debug log is not being recorded --> @@ -899,6 +913,14 @@ <!-- XHED: Title for native sharing dialog --> <string name="debugging_debuglog_sharing_dialog_title">"Share CWA Error Report"</string> + <string name="debugging_debuglog_privacy_card_title">"Datenschutz und Datensicherheit"</string> + <string name="debug_log_privacy_card_section_body_one">"Die Aufzeichnung des Fehlerberichts ist freiwillig."</string> + <string name="debug_log_privacy_card_container_section_two">"Auf den Fehlerbericht haben zunächst nur Sie Zugriff. Sie können im Anschluss entscheiden, ob Sie den Fehlerbericht an den technischen Support senden, ob Sie den Fehlerbericht zunächst auf Ihrem Smartphone speichern oder die Aufzeichnung stoppen und löschen wollen. Wenn Sie den Fehlerbericht zunächst lokal speichern, haben Sie die Möglichkeit, sich den Fehlerbericht selbst anzuschauen, bevor Sie diesen an den Support übermitteln."</string> + <string name="debug_log_privacy_card_container_section_three">"Der Fehlerbericht enthält sensible Informationen, zum Beispiel Angaben über Ihr Testergebnis oder das für Sie ermittelte Ansteckungsrisiko. Er enthält keine Informationen über die QR-Codes, die Sie bei der Testregistrierung verwendet haben, über Angaben, die Sie im Kontakt-Tagebuch erfasste haben oder Angaben zu Ihrer Identität."</string> + <string name="debug_log_privacy_card_container_section_four">"Wir empfehlen die Fehlerberichte nicht zu veröffentlichen und nicht per E-Mail zu versenden."</string> + <string name="debug_log_privacy_card_container_section_five">"Private Personen oder Unternehmen dürfen von Ihnen nicht die Weitergabe eines aufgezeichneten Fehlerberichtes verlangen."</string> + + <!-- #################################### Interoperability ###################################### --> diff --git a/Corona-Warn-App/src/main/res/values/styles.xml b/Corona-Warn-App/src/main/res/values/styles.xml index d1fc93e477682fd469efb0b74369d1b656953e38..a8dcb7dc1f92adb0c82eea313a1db2a15b76e612 100644 --- a/Corona-Warn-App/src/main/res/values/styles.xml +++ b/Corona-Warn-App/src/main/res/values/styles.xml @@ -104,6 +104,11 @@ <item name="android:textColor">@color/button_text_color_emphasized</item> </style> + <style name="debugLogButton" parent="button"> + <item name="android:backgroundTint">@color/button_debug_log</item> + <item name="android:textColor">@color/button_text_color_emphasized</item> + </style> + <style name="contactDiaryPersonButton" parent="Widget.MaterialComponents.Button.OutlinedButton"> <item name="strokeColor">@color/button_contact_diary_person</item> <item name="strokeWidth">2dp</item>