From cbfc2b8f6ba9e6236c6d745e880842b205cae837 Mon Sep 17 00:00:00 2001
From: Kolya Opahle <k.opahle@sap.com>
Date: Mon, 26 Oct 2020 14:06:29 +0100
Subject: [PATCH] Unreliable background priority (EXPOSUREAPP-3094) (#1356)

* Removed background priority settings from the settings ui

* Revert "Removed background priority settings from the settings ui"

This reverts commit c0447a1a52da6a4bc33aac01ceb28afce049cf98.

* Removed background priority switch from settings ui and replaced with intent to open settings,
also replaced in notification on first launch

Signed-off-by: Kolya Opahle <k.opahle@sap.com>

* Card is now always visible and changed text

Signed-off-by: Kolya Opahle <k.opahle@sap.com>

* Revert "Card is now always visible and changed text"

This reverts commit cae7c0fcc4575c67fb1a3d12b8a304a2416543f0.

* Added new german strings to status card and made it permanently visible

* Removed unnecessary constraint layout from xml file

Signed-off-by: Kolya Opahle <k.opahle@sap.com>

* Removed additional unneeded constraint layout

Signed-off-by: Kolya Opahle <k.opahle@sap.com>

Co-authored-by: harambasicluka <64483219+harambasicluka@users.noreply.github.com>
Co-authored-by: Ralf Gehrer <ralfgehrer@users.noreply.github.com>
---
 .../rki/coronawarnapp/ui/main/MainActivity.kt |  2 +-
 .../SettingsBackgroundPriorityFragment.kt     | 15 ++---
 .../fragment_settings_background_priority.xml | 56 ++++++++++++++-----
 .../src/main/res/values-de/strings.xml        |  6 +-
 4 files changed, 51 insertions(+), 28 deletions(-)

diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
index 897dd2d86..0abb8c245 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/MainActivity.kt
@@ -105,7 +105,7 @@ class MainActivity : AppCompatActivity(), HasAndroidInjector {
             R.string.onboarding_energy_optimized_dialog_button_negative,
             false, {
                 // go to battery optimization
-                startActivitySafely(powerManagement.disableBatteryOptimizationsIntent)
+                startActivitySafely(powerManagement.toBatteryOptimizationSettingsIntent)
             }, {
                 // keep battery optimization enabled
                 showManualCheckingRequiredDialog()
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsBackgroundPriorityFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsBackgroundPriorityFragment.kt
index e5c40a847..6092d9cf4 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsBackgroundPriorityFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsBackgroundPriorityFragment.kt
@@ -38,19 +38,12 @@ class SettingsBackgroundPriorityFragment :
     }
 
     private fun setButtonOnClickListener() {
-        val switch = binding.settingsSwitchRowBackgroundPriority.settingsSwitchRowSwitch
-        val switchRow = binding.settingsSwitchRowBackgroundPriority.settingsSwitchRow
+        val settingsRow = binding.settingsRowBackgroundPriority
 
         // enable background priority
-        setOf(switch, switchRow).forEach {
-            it.setOnClickListener {
-                val isPriorityEnabled = settingsViewModel.isBackgroundPriorityEnabled.value == true
-
-                if (!isPriorityEnabled) {
-                    (requireActivity() as MainActivity).apply {
-                        startActivitySafely(powerManagement.disableBatteryOptimizationsIntent)
-                    }
-                }
+        settingsRow.setOnClickListener {
+            (requireActivity() as MainActivity).apply {
+                startActivitySafely(powerManagement.toBatteryOptimizationSettingsIntent)
             }
         }
 
diff --git a/Corona-Warn-App/src/main/res/layout/fragment_settings_background_priority.xml b/Corona-Warn-App/src/main/res/layout/fragment_settings_background_priority.xml
index fba3d512d..f212dc67a 100644
--- a/Corona-Warn-App/src/main/res/layout/fragment_settings_background_priority.xml
+++ b/Corona-Warn-App/src/main/res/layout/fragment_settings_background_priority.xml
@@ -57,20 +57,51 @@
                     app:layout_constraintStart_toStartOf="parent"
                     app:layout_constraintTop_toTopOf="parent" />
 
-                <include
-                    android:id="@+id/settings_switch_row_background_priority"
-                    layout="@layout/include_settings_switch_row"
-                    android:layout_width="@dimen/match_constraint"
+
+                <androidx.constraintlayout.widget.ConstraintLayout
+                    android:id="@+id/settings_row_background_priority"
+                    style="@style/row"
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="@dimen/spacing_small"
-                    app:enabled="@{!settingsViewModel.isBackgroundPriorityEnabled()}"
+                    android:focusable="true"
+                    app:layout_constraintEnd_toEndOf="parent"
+                    app:layout_constraintStart_toStartOf="parent"
+                    app:layout_constraintTop_toBottomOf="@+id/settings_background_priority_header_details">
+
+                        <TextView
+                            android:id="@+id/settings_row_background_priority_header_subtitle"
+                            style="@style/subtitle"
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:text="@string/settings_background_priority_title"
+                            app:layout_constraintEnd_toEndOf="parent"
+                            app:layout_constraintStart_toStartOf="parent"
+                            app:layout_constraintTop_toTopOf="parent" />
+
+                        <TextView
+                            android:id="@+id/settings_row_background_priority_header_body"
+                            style="@style/body2Medium"
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="@dimen/spacing_mega_tiny"
+                            android:accessibilityLiveRegion="assertive"
+                            android:text="@{FormatterSettingsHelper.formatStatus(settingsViewModel.isBackgroundPriorityEnabled())}"
+                            app:layout_constraintBottom_toBottomOf="parent"
+                            app:layout_constraintEnd_toEndOf="parent"
+                            app:layout_constraintStart_toStartOf="parent"
+                            app:layout_constraintTop_toBottomOf="@+id/settings_row_background_priority_header_subtitle" />
+
+                </androidx.constraintlayout.widget.ConstraintLayout>
+
+                <include
+                    layout="@layout/include_divider"
+                    android:layout_width="0dp"
+                    android:layout_height="@dimen/card_divider"
+                    android:layout_marginStart="@dimen/guideline_start"
+                    android:layout_marginEnd="@dimen/guideline_end"
                     app:layout_constraintEnd_toEndOf="parent"
                     app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@+id/settings_background_priority_header_details"
-                    app:showDivider="@{true}"
-                    app:status="@{settingsViewModel.isBackgroundPriorityEnabled()}"
-                    app:statusText="@{FormatterSettingsHelper.formatStatus(settingsViewModel.isBackgroundPriorityEnabled())}"
-                    app:subtitle="@{@string/settings_background_priority_title}" />
+                    app:layout_constraintTop_toBottomOf="@+id/settings_row_background_priority" />
 
                 <include
                     android:id="@+id/settings_tracing_status_connection"
@@ -78,13 +109,12 @@
                     android:layout_width="@dimen/match_constraint"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="@dimen/spacing_small"
-                    android:visibility="@{FormatterHelper.formatVisibility(settingsViewModel.isBackgroundPriorityEnabled())}"
                     app:body="@{@string/settings_background_priority_card_body}"
                     app:buttonText="@{@string/settings_background_priority_card_button}"
                     app:headline="@{@string/settings_background_priority_card_headline}"
                     app:layout_constraintEnd_toStartOf="@+id/guideline_card_end"
                     app:layout_constraintStart_toStartOf="@+id/guideline_card_start"
-                    app:layout_constraintTop_toBottomOf="@id/settings_switch_row_background_priority" />
+                    app:layout_constraintTop_toBottomOf="@id/settings_row_background_priority" />
 
                 <include layout="@layout/merge_guidelines_side" />
 
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 3c7dd2a1c..293608ea2 100644
--- a/Corona-Warn-App/src/main/res/values-de/strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/strings.xml
@@ -624,11 +624,11 @@
     <!-- XACT: settings(background priority) - illustraction description -->
     <string name="settings_background_priority_illustration_description" />
     <!-- XTXT: settings(background priority) - explains user what to do on card if background priority is enabled -->
-    <string name="settings_background_priority_card_body">"Um die priorisierte Hintergrundaktivität auszuschalten, deaktivieren Sie sie bitte in den Geräte-Einstellungen."</string>
+    <string name="settings_background_priority_card_body">"Sie können die priorisierte Hintergrundaktivität in den Einstellungen Ihres Smartphones ein- beziehungsweise ausschalten."</string>
     <!-- XBUT: settings(background priority) - go to operating system settings button on card -->
-    <string name="settings_background_priority_card_button">"Geräte-Einstellungen öffnen"</string>
+    <string name="settings_background_priority_card_button">"Smartphone-Einstellungen öffnen"</string>
     <!-- XHED : settings(background priority) - headline on card about the current status and what to do -->
-    <string name="settings_background_priority_card_headline">"Priorisierte Hintergrundaktivität ausschalten"</string>
+    <string name="settings_background_priority_card_headline">"Priorisierte Hintergrundaktivität ändern"</string>
 
     <!-- ####################################
                App Information
-- 
GitLab