diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_crashreporter_overview.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_crashreporter_overview.xml index 66f38d075fb3cc8c03b5080f5f9293bf3cbcad5c..64f0d33f6a3de65bdc0481f9b59451570d794d51 100644 --- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_crashreporter_overview.xml +++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_crashreporter_overview.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" tools:context=".ui.main.MainActivity"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbarErrorReport" style="@style/Widget.AppCompat.Toolbar" android:layout_width="match_parent" @@ -70,5 +70,4 @@ tools:context="SettingsCrashReporterFragment" tools:listitem="@layout/view_crashreport_list_item" /> - </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_keydownload.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_keydownload.xml index 8140fa2cbc54b5dadbd4998342ed00092755ae04..c05c8054e842dedc6d42bd6289d596470d246b4e 100644 --- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_keydownload.xml +++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_keydownload.xml @@ -32,7 +32,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - <Switch + <com.google.android.material.switchmaterial.SwitchMaterial android:id="@+id/fake_metered_connection_toggle" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml index 807e881a75173a9c0229d1a547d2b588ec679a5c..4e8e908b151cdf6396aa2cb127b3293c532de135 100644 --- a/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml +++ b/Corona-Warn-App/src/deviceForTesters/res/layout/fragment_test_menu.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/Widget.AppCompat.Toolbar" android:layout_width="match_parent" diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/consent/SurveyConsentFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/consent/SurveyConsentFragment.kt index 2042fb57bd8372625789e06181417b388d08dea8..9935ba7d6b212466f85504dfe7389aa59618267a 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/consent/SurveyConsentFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/consent/SurveyConsentFragment.kt @@ -8,7 +8,7 @@ import androidx.navigation.fragment.navArgs import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.SurveyConsentFragmentBinding import de.rki.coronawarnapp.util.DialogHelper -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.doNavigate import de.rki.coronawarnapp.util.ui.observe2 @@ -48,7 +48,7 @@ class SurveyConsentFragment : Fragment(R.layout.survey_consent_fragment), AutoIn activity?.onBackPressed() is SurveyConsentNavigationEvents.NavigateWeb -> { - ExternalActionHelper.openUrl(this, event.url) + openUrl(event.url) popBackStack() } is SurveyConsentNavigationEvents.NavigateToMoreInformationScreen -> { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsFragment.kt index 283bcea25957d8972633835d4f8225bcbf45c2dc..94891a7dd1ab9f2bbb43d908feab2e1053fee2ba 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/details/TracingDetailsFragment.kt @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.TracingDetailsFragmentLayoutBinding -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.getDrawableCompat import de.rki.coronawarnapp.util.lists.diffutil.update @@ -58,10 +58,7 @@ class TracingDetailsFragment : Fragment(R.layout.tracing_details_fragment_layout is TracingDetailsNavigationEvents.NavigateToSurveyConsentFragment -> doNavigate( TracingDetailsFragmentDirections.actionRiskDetailsFragmentToSurveyConsentFragment(it.type) ) - is TracingDetailsNavigationEvents.NavigateToSurveyUrlInBrowser -> ExternalActionHelper.openUrl( - this, - it.url - ) + is TracingDetailsNavigationEvents.NavigateToSurveyUrlInBrowser -> openUrl(it.url) } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/settings/SettingsTracingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/settings/SettingsTracingFragment.kt index 3c2da3aa538b007d7881ed8f4e521e02460f50af..e6c4f67d8b7e00f2d1c690da682d74cf9ec0b6fa 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/settings/SettingsTracingFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/tracing/ui/settings/SettingsTracingFragment.kt @@ -12,7 +12,7 @@ import de.rki.coronawarnapp.nearby.InternalExposureNotificationClient import de.rki.coronawarnapp.tracing.ui.TracingConsentDialog import de.rki.coronawarnapp.tracing.ui.settings.SettingsTracingFragmentViewModel.Event import de.rki.coronawarnapp.util.DialogHelper -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openDeviceSettings import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.doNavigate import de.rki.coronawarnapp.util.ui.observe2 @@ -30,7 +30,7 @@ import javax.inject.Inject class SettingsTracingFragment : Fragment(R.layout.fragment_settings_tracing), AutoInject { @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory - private val vm: SettingsTracingFragmentViewModel by cwaViewModels( + private val viewModel: SettingsTracingFragmentViewModel by cwaViewModels( ownerProducer = { requireActivity().viewModelStore }, factoryProducer = { viewModelFactory } ) @@ -40,10 +40,10 @@ class SettingsTracingFragment : Fragment(R.layout.fragment_settings_tracing), Au override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - vm.loggingPeriod.observe2(this) { + viewModel.loggingPeriod.observe2(this) { binding.loggedPeriod = it } - vm.tracingSettingsState.observe2(this) { state -> + viewModel.tracingSettingsState.observe2(this) { state -> binding.settingsTracingState = state binding.switchRow.apply { @@ -58,24 +58,22 @@ class SettingsTracingFragment : Fragment(R.layout.fragment_settings_tracing), Au } } - vm.events.observe2(this) { + viewModel.events.observe2(this) { when (it) { is Event.RequestPermissions -> it.permissionRequest.invoke(requireActivity()) - Event.ManualCheckingDialog -> showManualCheckingRequiredDialog() - is Event.TracingConsentDialog -> { - TracingConsentDialog(requireContext()).show( - onConsentGiven = { it.onConsentResult(true) }, - onConsentDeclined = { it.onConsentResult(false) } - ) - } + is Event.ManualCheckingDialog -> showManualCheckingRequiredDialog() + is Event.TracingConsentDialog -> TracingConsentDialog(requireContext()).show( + onConsentGiven = { it.onConsentResult(true) }, + onConsentDeclined = { it.onConsentResult(false) } + ) } } - vm.isTracingSwitchChecked.observe2(this) { checked -> + viewModel.isTracingSwitchChecked.observe2(this) { checked -> binding.switchRow.setChecked(checked) } - vm.ensErrorEvents.observe2(this) { error -> + viewModel.ensErrorEvents.observe2(this) { error -> error.toErrorDialogBuilder(requireContext()).show() } @@ -88,42 +86,31 @@ class SettingsTracingFragment : Fragment(R.layout.fragment_settings_tracing), Au } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - vm.handleActivityResult(requestCode, resultCode, data) + viewModel.handleActivityResult(requestCode, resultCode, data) } - private fun setButtonOnClickListener() { - - binding.toolbar.setNavigationOnClickListener { + private fun setButtonOnClickListener() = with(binding) { + toolbar.setNavigationOnClickListener { popBackStack() } - val bluetooth = binding.settingsTracingStatusBluetooth.tracingStatusCardButton - bluetooth.setOnClickListener { - ExternalActionHelper.toMainSettings(requireContext()) + settingsTracingStatusBluetooth.tracingStatusCardButton.setOnClickListener { + openDeviceSettings() } - val location = binding.settingsTracingStatusLocation.tracingStatusCardButton - location.setOnClickListener { - ExternalActionHelper.toMainSettings(requireContext()) + settingsTracingStatusLocation.tracingStatusCardButton.setOnClickListener { + openDeviceSettings() } - val interoperability = binding.settingsInteroperabilityRow - interoperability.setOnClickListener { - navigateToInteroperability() + settingsInteroperabilityRow.setOnClickListener { + doNavigate( + SettingsTracingFragmentDirections.actionSettingsTracingFragmentToInteropCountryConfigurationFragment() + ) } } - private fun onTracingToggled(isChecked: Boolean) { - if (isChecked) - vm.turnTracingOn() - else - vm.turnTracingOff() - } - - private fun navigateToInteroperability() { - doNavigate( - SettingsTracingFragmentDirections.actionSettingsTracingFragmentToInteropCountryConfigurationFragment() - ) + private fun onTracingToggled(isChecked: Boolean) = with(viewModel) { + if (isChecked) turnTracingOn() else turnTracingOff() } private fun showManualCheckingRequiredDialog() { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationAboutFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationAboutFragment.kt index 82aed69cd82abcdeb1b657b78858ae9b78cff7f3..60ef5d4f7799480fe64e79aa4ec4ab9511261f73 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationAboutFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationAboutFragment.kt @@ -8,7 +8,7 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInformationAboutBinding -import de.rki.coronawarnapp.ui.main.MainActivity +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -42,7 +42,7 @@ class InformationAboutFragment : Fragment(R.layout.fragment_information_about) { private fun setButtonOnClickListener() { binding.informationAboutHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt index 34ca2c6cf8bb9e469804f2fd13cb75209129f210..ad4112ba454d8b4f4c8bdcfc6badf2684ece83a2 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationContactFragment.kt @@ -6,9 +6,9 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInformationContactBinding -import de.rki.coronawarnapp.ui.main.MainActivity -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.callPhone import de.rki.coronawarnapp.util.linkifyPhoneNumbers +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -32,15 +32,13 @@ class InformationContactFragment : Fragment(R.layout.fragment_information_contac private fun setButtonOnClickListener() { binding.informationContactHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } binding.informationContactNavigationRowPhone.navigationRow.setOnClickListener { - val number = getString(R.string.information_contact_phone_call_number) - ExternalActionHelper.call(this, number) + callPhone(getString(R.string.information_contact_phone_call_number)) } binding.informationContactNavigationRowInternationalPhone.navigationRow.setOnClickListener { - val number = getString(R.string.information_contact_button_international_phone) - ExternalActionHelper.call(this, number) + callPhone(getString(R.string.information_contact_button_international_phone)) } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt index c18bdc0f69407b190ab0c8a18fe4d7ed2246c77c..0f9f90ed9879a3fd04452c987e85dd5e13f905ed 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationFragment.kt @@ -9,11 +9,11 @@ import androidx.fragment.app.Fragment import com.google.android.gms.nearby.exposurenotification.ExposureNotificationClient import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInformationBinding -import de.rki.coronawarnapp.ui.main.MainActivity -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl import de.rki.coronawarnapp.util.di.AutoInject 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.setGone import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider @@ -95,7 +95,7 @@ class InformationFragment : Fragment(R.layout.fragment_information), AutoInject ) } binding.informationHelp.mainRow.setOnClickListener { - ExternalActionHelper.openUrl(this, requireContext().getString(R.string.main_about_link)) + openUrl(getString(R.string.main_about_link)) } binding.informationLegal.mainRow.setOnClickListener { doNavigate( @@ -113,7 +113,7 @@ class InformationFragment : Fragment(R.layout.fragment_information), AutoInject ) } binding.informationHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } binding.informationRelease.mainRow.setOnClickListener { doNavigate( diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationLegalFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationLegalFragment.kt index 560b64eb7029a5b307952a82fcac44b6d9fce725..2bf01043795a3445000392db1574221f2febc2be 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationLegalFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationLegalFragment.kt @@ -7,8 +7,8 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInformationLegalBinding -import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.util.convertToHyperlink +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -41,7 +41,7 @@ class InformationLegalFragment : Fragment(R.layout.fragment_information_legal) { private fun setButtonOnClickListener() { binding.informationLegalHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTechnicalFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTechnicalFragment.kt index 0a98ff88bfbcd7352f9b0d3260b3116e8f069b5d..fe10de37f7a1676275f86ef90b05e54e3dc4f0b6 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTechnicalFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTechnicalFragment.kt @@ -6,7 +6,7 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInformationTechnicalBinding -import de.rki.coronawarnapp.ui.main.MainActivity +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -31,7 +31,7 @@ class InformationTechnicalFragment : Fragment(R.layout.fragment_information_tech private fun setButtonOnClickListener() { binding.informationTechnicalHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTermsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTermsFragment.kt index 5c0046ebea1ee3ed37a93482be699babbc0955c9..63c99ca82f865f7f0e0484a0a522e1146e37dbba 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTermsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/information/InformationTermsFragment.kt @@ -6,7 +6,7 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInformationTermsBinding -import de.rki.coronawarnapp.ui.main.MainActivity +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -28,7 +28,7 @@ class InformationTermsFragment : Fragment(R.layout.fragment_information_terms) { private fun setButtonOnClickListener() { binding.informationTermsHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/interoperability/InteroperabilityConfigurationFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/interoperability/InteroperabilityConfigurationFragment.kt index 29b4061f30531d9941187388a30e020f54a208e7..28cd0f394b7dc29ef1d634efc52b4c55a9b9d254 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/interoperability/InteroperabilityConfigurationFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/interoperability/InteroperabilityConfigurationFragment.kt @@ -9,10 +9,10 @@ import androidx.fragment.app.Fragment import de.rki.coronawarnapp.CoronaWarnApplication import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentInteroperabilityConfigurationBinding -import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.util.ConnectivityHelper import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.observe2 +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModels @@ -56,7 +56,7 @@ class InteroperabilityConfigurationFragment : vm.navigateBack.observe2(this) { if (it) { - (requireActivity() as MainActivity).goBack() + popBackStack() } } 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 4c29cfed00bbd859dca32876331190bfd1ce6723..159a0b9d53c42f3a9e8c41688640d83cc3afa72f 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 @@ -259,11 +259,4 @@ class MainActivity : AppCompatActivity(), HasAndroidInjector { data ) } - - /** - * Function is called from back buttons in fragments. - */ - fun goBack() { - onBackPressed() - } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt index bda8566ff07baf6857daa64eafd76c1da555013b..1e380642608d495ef7211d55284c53ebd70c97c0 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeFragment.kt @@ -7,6 +7,7 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import androidx.navigation.NavGraph import androidx.navigation.fragment.findNavController +import androidx.navigation.ui.onNavDestinationSelected import androidx.recyclerview.widget.DefaultItemAnimator import androidx.recyclerview.widget.LinearLayoutManager import de.rki.coronawarnapp.R @@ -15,9 +16,10 @@ import de.rki.coronawarnapp.coronatest.type.CoronaTest import de.rki.coronawarnapp.databinding.HomeFragmentLayoutBinding import de.rki.coronawarnapp.tracing.ui.TracingExplanationDialog import de.rki.coronawarnapp.ui.main.home.popups.DeviceTimeIncorrectDialog +import de.rki.coronawarnapp.util.CWADebug import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat import de.rki.coronawarnapp.util.DialogHelper -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.errors.RecoveryByResetDialogFactory import de.rki.coronawarnapp.util.lists.decorations.TopBottomPaddingDecorator @@ -44,7 +46,6 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject { val binding: HomeFragmentLayoutBinding by viewBindingLazy() - @Inject lateinit var homeMenu: HomeMenu @Inject lateinit var tracingExplanationDialog: TracingExplanationDialog @Inject lateinit var deviceTimeIncorrectDialog: DeviceTimeIncorrectDialog @@ -53,7 +54,10 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - homeMenu.setupMenu(binding.toolbar) + with(binding.toolbar) { + menu.findItem(R.id.test_nav_graph).isVisible = CWADebug.isDeviceForTestersBuild + setOnMenuItemClickListener { it.onNavDestinationSelected(findNavController()) } + } viewModel.tracingHeaderState.observe2(this) { binding.tracingHeader = it @@ -79,11 +83,11 @@ class HomeFragment : Fragment(R.layout.home_fragment_layout), AutoInject { } viewModel.openFAQUrlEvent.observe2(this) { - ExternalActionHelper.openUrl(this@HomeFragment, getString(R.string.main_about_link)) + openUrl(getString(R.string.main_about_link)) } viewModel.openIncompatibleEvent.observe2(this) { - ExternalActionHelper.openUrl(this@HomeFragment, getString(R.string.incompatible_link)) + openUrl(getString(R.string.incompatible_link)) } viewModel.openTraceLocationOrganizerFlow.observe2(this) { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeMenu.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeMenu.kt deleted file mode 100644 index 4189f6bd9082e22bf122324b1e4f19159be4b696..0000000000000000000000000000000000000000 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/home/HomeMenu.kt +++ /dev/null @@ -1,49 +0,0 @@ -package de.rki.coronawarnapp.ui.main.home - -import android.view.MenuItem.SHOW_AS_ACTION_ALWAYS -import androidx.appcompat.widget.Toolbar -import androidx.navigation.NavController -import androidx.navigation.fragment.findNavController -import de.rki.coronawarnapp.R -import de.rki.coronawarnapp.ui.doNavigate -import de.rki.coronawarnapp.util.CWADebug -import javax.inject.Inject - -class HomeMenu @Inject constructor( - private val homeFragment: HomeFragment -) { - - private val navController: NavController - get() = homeFragment.findNavController() - - fun setupMenu(toolbar: Toolbar) = toolbar.apply { - inflateMenu(R.menu.menu_main) - menu.findItem(R.id.menu_test).isVisible = CWADebug.isDeviceForTestersBuild - menu.findItem(R.id.menu_share).setShowAsAction(SHOW_AS_ACTION_ALWAYS) - setOnMenuItemClickListener { - return@setOnMenuItemClickListener when (it.itemId) { - R.id.menu_share -> { - navController.doNavigate(HomeFragmentDirections.actionMainFragmentToMainSharingFragment()) - true - } - R.id.menu_help -> { - navController.doNavigate(HomeFragmentDirections.actionMainFragmentToMainOverviewFragment()) - true - } - R.id.menu_information -> { - navController.doNavigate(HomeFragmentDirections.actionMainFragmentToInformationFragment()) - true - } - R.id.menu_settings -> { - navController.doNavigate(HomeFragmentDirections.actionMainFragmentToSettingsFragment()) - true - } - R.id.menu_test -> { - navController.doNavigate(HomeFragmentDirections.actionMainFragmentToTestNavGraph()) - true - } - else -> homeFragment.onOptionsItemSelected(it) - } - } - } -} diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/overview/MainOverviewFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/overview/MainOverviewFragment.kt index 0a4dce381da1918101babbfd72f70007bb19af3e..4696cb1367faff604b6775589543b6b1d58769e0 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/overview/MainOverviewFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/overview/MainOverviewFragment.kt @@ -6,7 +6,7 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentMainOverviewBinding -import de.rki.coronawarnapp.ui.main.MainActivity +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -32,7 +32,7 @@ class MainOverviewFragment : Fragment(R.layout.fragment_main_overview) { private fun setButtonOnClickListener() { binding.mainOverviewHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/share/MainShareFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/share/MainShareFragment.kt index baf25b71c87cb06f8833dfa9417be4304de2d135..0fb6b9eaf491b211acfac1505e5975c3edd6561f 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/share/MainShareFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/main/share/MainShareFragment.kt @@ -6,8 +6,8 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentMainShareBinding -import de.rki.coronawarnapp.ui.main.MainActivity -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.shareText +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy /** @@ -24,10 +24,10 @@ class MainShareFragment : Fragment(R.layout.fragment_main_share) { private fun setButtonOnClickListener() { binding.mainShareButton.setOnClickListener { - ExternalActionHelper.shareText(this, getString(R.string.main_share_message), null) + shareText(getString(R.string.main_share_message), null) } binding.mainShareHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt index 38f0c37dfd467790e03ca074f4f6f287c57c30a2..dc080acf55a7faf3509763a87fe63f2f02224ada 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/onboarding/OnboardingFragment.kt @@ -7,7 +7,7 @@ import androidx.annotation.VisibleForTesting import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentOnboardingBinding -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl import de.rki.coronawarnapp.util.ui.doNavigate import de.rki.coronawarnapp.util.ui.viewBindingLazy import java.util.Locale @@ -41,7 +41,7 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) { } private fun openEasyLanguageLink() { - ExternalActionHelper.openUrl(this, getString(R.string.onboarding_tracing_easy_language_explanation_url)) + openUrl(getString(R.string.onboarding_tracing_easy_language_explanation_url)) } override fun onResume() { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt index a38a3c447d166eadeba49cda769ed2c204a4e0f1..0d7b28cd67eeb742ea1b1dec0b942821e4602ccf 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterFragment.kt @@ -151,7 +151,7 @@ class QrCodePosterFragment : Fragment(R.layout.qr_code_poster_fragment), AutoInj getString(R.string.app_name), PrintingAdapter(file), PrintAttributes.Builder() - .setMediaSize(PrintAttributes.MediaSize.ISO_A3) + .setMediaSize(PrintAttributes.MediaSize.ISO_A4) .build() ) diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt index 4e7facefc6fdff6626a1fece1e42fee551241d37..4f903050f79ca8c91daa2885f382f8ff21f1fd2e 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt @@ -53,10 +53,12 @@ class QrCodePosterViewModel @AssistedInject constructor( val file = File(directory, "cwa-qr-code.pdf") val weakView = weakViewRef.get() ?: return@launch // View is not existing anymore - val pageInfo = PdfDocument.PageInfo.Builder(weakView.width, weakView.height, 1).create() - + val pageInfo = PdfDocument.PageInfo.Builder(A4_WIDTH, A4_HEIGHT, 1).create() PdfDocument().apply { startPage(pageInfo).apply { + val sx = A4_WIDTH.toFloat() / weakView.width + val sy = A4_HEIGHT.toFloat() / weakView.height + canvas.scale(sx, sy) weakView.draw(canvas) finishPage(this) } @@ -70,7 +72,7 @@ class QrCodePosterViewModel @AssistedInject constructor( sharingIntent.postValue(fileSharing.getFileIntentProvider(file, traceLocation().description)) } catch (e: Exception) { Timber.d(e, "Creating pdf failed") - e.report(ExceptionCategory.INTERNAL) + e.report(ExceptionCategory.UI) } } @@ -96,7 +98,7 @@ class QrCodePosterViewModel @AssistedInject constructor( } catch (e: Exception) { Timber.d(e, "Generating poster failed") posterLiveData.postValue(Poster()) - e.report(ExceptionCategory.INTERNAL) + e.report(ExceptionCategory.UI) } } @@ -108,6 +110,15 @@ class QrCodePosterViewModel @AssistedInject constructor( traceLocationId: Long ): QrCodePosterViewModel } + + companion object { + /** + * A4 size in PostScript + * @see <a href="https://www.cl.cam.ac.uk/~mgk25/iso-paper-ps.txt">Iso-paper-ps</a> + */ + private const val A4_WIDTH = 595 // PostScript + private const val A4_HEIGHT = 842 // PostScript + } } data class Poster( diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt index c1af5db433504f3806510a07a03b27022575ffdd..8cf49a835c079029b9757ac50f57a0e6c745da50 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/SettingsResetFragment.kt @@ -7,12 +7,12 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentSettingsResetBinding -import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.ui.onboarding.OnboardingActivity import de.rki.coronawarnapp.util.ContextExtensions.getColorCompat import de.rki.coronawarnapp.util.DialogHelper import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.observe2 +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModels @@ -38,7 +38,7 @@ class SettingsResetFragment : Fragment(R.layout.fragment_settings_reset), AutoIn vm.clickEvent.observe2(this) { when (it) { is SettingsEvents.ResetApp -> confirmReset() - is SettingsEvents.GoBack -> (activity as MainActivity).goBack() + is SettingsEvents.GoBack -> popBackStack() is SettingsEvents.GoToOnboarding -> navigateToOnboarding() } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/backgroundpriority/SettingsBackgroundPriorityFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/backgroundpriority/SettingsBackgroundPriorityFragment.kt index 4edfee1a4a158af5c9032ac4a3fc90680691df13..e4ae1166f822ebd64404d4962920936c232b4d32 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/backgroundpriority/SettingsBackgroundPriorityFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/backgroundpriority/SettingsBackgroundPriorityFragment.kt @@ -10,6 +10,7 @@ import de.rki.coronawarnapp.ui.base.startActivitySafely import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.observe2 +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModels @@ -60,7 +61,7 @@ class SettingsBackgroundPriorityFragment : Fragment(R.layout.fragment_settings_b // back navigation binding.settingsBackgroundPriorityHeader.headerButtonBack.buttonIcon.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/notifications/NotificationSettingsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/notifications/NotificationSettingsFragment.kt index bd9eac9b26b758bca23ed18cc867bd19a15fc84b..f5f75de0b1166b3b9144a1702a28cd4252b47fb0 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/notifications/NotificationSettingsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/notifications/NotificationSettingsFragment.kt @@ -6,7 +6,7 @@ import android.view.accessibility.AccessibilityEvent import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentSettingsNotificationsBinding -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openAppNotificationSettings import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.observe2 import de.rki.coronawarnapp.util.ui.popBackStack @@ -53,7 +53,7 @@ class NotificationSettingsFragment : popBackStack() } binding.settingsNotificationsCard.tracingStatusCardButton.setOnClickListener { - ExternalActionHelper.toNotifications(requireContext()) + requireContext().openAppNotificationSettings() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragment.kt index 93995c1038b075335d493a2b3575fdde83d3806a..e2c60ec83049bbe65c2fd4529019e658ff61badd 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/settings/start/SettingsFragment.kt @@ -8,9 +8,9 @@ import androidx.navigation.fragment.findNavController import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentSettingsBinding import de.rki.coronawarnapp.ui.doNavigate -import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.ui.observe2 +import de.rki.coronawarnapp.util.ui.popBackStack import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModels @@ -87,7 +87,7 @@ class SettingsFragment : Fragment(R.layout.fragment_settings), AutoInject { } goBack.setOnClickListener { - (activity as MainActivity).goBack() + popBackStack() } } } diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt index 1cfcb3edcb2063e3b657184d3ad01764fa00d885..7d6e8d04fd17a57cef8474283fc89e2ef550b1d1 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/fragment/SubmissionContactFragment.kt @@ -9,7 +9,7 @@ import de.rki.coronawarnapp.R import de.rki.coronawarnapp.databinding.FragmentSubmissionContactBinding import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionContactViewModel import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionNavigationEvents -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.callPhone import de.rki.coronawarnapp.util.di.AutoInject import de.rki.coronawarnapp.util.linkifyPhoneNumbers import de.rki.coronawarnapp.util.ui.doNavigate @@ -58,13 +58,11 @@ class SubmissionContactFragment : Fragment(R.layout.fragment_submission_contact) } binding.includeSubmissionContact.submissionContactNavigationRowPhone.navigationRow .setOnClickListener { - val number = getString(R.string.submission_contact_number_display) - ExternalActionHelper.call(this, number) + callPhone(getString(R.string.submission_contact_number_display)) } binding.includeSubmissionContact.submissionContactNavigationRowInternationalPhone.navigationRow .setOnClickListener { - val number = getString(R.string.submission_contact_button_international_phone) - ExternalActionHelper.call(this, number) + callPhone(getString(R.string.submission_contact_button_international_phone)) } binding.submissionContactButtonEnter.setOnClickListener { viewModel.onEnterTanPressed() diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/tan/SubmissionTanFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/tan/SubmissionTanFragment.kt index 083d67a6601505ff81f9c9a7c65b992b8cb8b0f1..eaad5f6f953b567e3e7ffa71353c81a6e9abfe9b 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/tan/SubmissionTanFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/tan/SubmissionTanFragment.kt @@ -11,13 +11,13 @@ import de.rki.coronawarnapp.exception.http.BadRequestException import de.rki.coronawarnapp.exception.http.CwaClientError import de.rki.coronawarnapp.exception.http.CwaServerError import de.rki.coronawarnapp.exception.http.CwaWebException -import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.ui.submission.ApiRequestState import de.rki.coronawarnapp.ui.submission.viewmodel.SubmissionNavigationEvents import de.rki.coronawarnapp.util.DialogHelper import de.rki.coronawarnapp.util.di.AutoInject 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.setGone import de.rki.coronawarnapp.util.ui.viewBindingLazy import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider @@ -102,7 +102,9 @@ class SubmissionTanFragment : Fragment(R.layout.fragment_submission_tan), AutoIn binding.submissionTanRoot.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT) } - private fun goBack() = (activity as MainActivity).goBack() + private fun goBack() { + popBackStack() + } private fun buildErrorDialog(exception: CwaWebException): DialogHelper.DialogInstance { return when (exception) { diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentFragment.kt index 6fbff88ab60419f4f7ff9ddd8ec708d5c73736a6..6c0ba694a688232986ddc22069c15cdcd906d58f 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentFragment.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/submission/yourconsent/SubmissionYourConsentFragment.kt @@ -8,10 +8,10 @@ import androidx.navigation.fragment.navArgs import de.rki.coronawarnapp.R import de.rki.coronawarnapp.bugreporting.ui.toErrorDialogBuilder import de.rki.coronawarnapp.databinding.FragmentSubmissionYourConsentBinding -import de.rki.coronawarnapp.ui.main.MainActivity import de.rki.coronawarnapp.util.di.AutoInject 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 import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactoryProvider import de.rki.coronawarnapp.util.viewmodel.cwaViewModelsAssisted @@ -56,7 +56,7 @@ class SubmissionYourConsentFragment : Fragment(R.layout.fragment_submission_your vm.clickEvent.observe2(this) { when (it) { - is SubmissionYourConsentEvents.GoBack -> (activity as MainActivity).goBack() + is SubmissionYourConsentEvents.GoBack -> popBackStack() is SubmissionYourConsentEvents.GoLegal -> doNavigate( SubmissionYourConsentFragmentDirections .actionSubmissionYourConsentFragmentToInformationPrivacyFragment() diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt index d9b1aa103170b0b6a62bd3fda04f0355f7e3ddb6..acc91f7c4a9131e70a02d8719b1a9bb18967f3e8 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ExternalActionHelper.kt @@ -15,18 +15,14 @@ import de.rki.coronawarnapp.exception.reporting.report * */ object ExternalActionHelper { - private val TAG: String? = ExternalActionHelper::class.simpleName - /** * Opens the share default overlay to provide the Corona-Warn-App installation link - * - * @param fragment * @param text * @param title */ - fun shareText(fragment: Fragment, text: String, title: String?) { + fun Fragment.shareText(text: String, title: String?) { try { - fragment.startActivity( + startActivity( Intent.createChooser( Intent().apply { action = Intent.ACTION_SEND @@ -47,17 +43,12 @@ object ExternalActionHelper { /** * Opens the client default phone app and inserts a given number - * - * @param fragment - * @param uri + * @param phoneNumber */ - fun call(fragment: Fragment, uri: String) { + fun Fragment.callPhone(phoneNumber: String) { try { - fragment.startActivity( - Intent( - Intent.ACTION_DIAL, - Uri.parse("tel:$uri") - ) + startActivity( + Intent(Intent.ACTION_DIAL, Uri.parse("tel:$phoneNumber")) ) } catch (exception: Exception) { // catch generic exception on call @@ -70,17 +61,12 @@ object ExternalActionHelper { /** * Opens a given url in the client default browser - * - * @param fragment * @param url */ - fun openUrl(fragment: Fragment, url: String) { + fun Fragment.openUrl(url: String) { try { - fragment.startActivity( - Intent( - Intent.ACTION_VIEW, - Uri.parse(url) - ) + startActivity( + Intent(Intent.ACTION_VIEW, Uri.parse(url)) ) } catch (exception: Exception) { // catch generic exception on url navigation @@ -92,47 +78,25 @@ object ExternalActionHelper { } } - /** - * Navigate the user to the os connection settings. - * - * @param context - */ - fun toConnections(context: Context) { - try { - val intent = Intent(Settings.ACTION_WIRELESS_SETTINGS) - context.startActivity(intent) - } catch (exception: Exception) { - // catch generic exception on settings navigation - // most likely due to device / rom specific intent issue - ExternalActionException(exception).report( - ExceptionCategory.UI - ) - } - } - /** * Navigate the user to the os notification settings. - * - * @param context */ - fun toNotifications(context: Context) { + fun Context.openAppNotificationSettings() { try { - val intent = Intent() - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS - intent.putExtra( - Settings.EXTRA_APP_PACKAGE, - context.packageName - ) - } else { - intent.action = "android.settings.APP_NOTIFICATION_SETTINGS" - intent.putExtra( - "app_package", - context.packageName - ) - intent.putExtra("app_uid", context.applicationInfo.uid) + val intent = Intent().apply { + when { + Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> { + action = Settings.ACTION_APP_NOTIFICATION_SETTINGS + putExtra(Settings.EXTRA_APP_PACKAGE, packageName) + } + else -> { + action = "android.settings.APP_NOTIFICATION_SETTINGS" + putExtra("app_package", packageName) + putExtra("app_uid", applicationInfo.uid) + } + } } - context.startActivity(intent) + startActivity(intent) } catch (exception: Exception) { // catch generic exception on settings navigation // most likely due to device / rom specific intent issue @@ -145,13 +109,11 @@ object ExternalActionHelper { /** * Navigate the user to the os settings as navigation to * bluetooth settings directly is not reliable for all devices - * - * @param context */ - fun toMainSettings(context: Context) { + fun Fragment.openDeviceSettings() { try { val intent = Intent(Settings.ACTION_SETTINGS) - context.startActivity(intent) + startActivity(intent) } catch (exception: Exception) { // catch generic exception on settings navigation // most likely due to device / rom specific intent issue diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/errors/RecoveryByResetDialogFactory.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/errors/RecoveryByResetDialogFactory.kt index c8804aaad1d50729150f7a593bea8d8c80356665..f94c3128088bbd190a0f51c516243bc359fee925 100644 --- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/errors/RecoveryByResetDialogFactory.kt +++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/errors/RecoveryByResetDialogFactory.kt @@ -5,7 +5,7 @@ import androidx.annotation.StringRes import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import de.rki.coronawarnapp.R -import de.rki.coronawarnapp.util.ExternalActionHelper +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl class RecoveryByResetDialogFactory(private val fragment: Fragment) { @@ -27,7 +27,7 @@ class RecoveryByResetDialogFactory(private val fragment: Fragment) { .create() dialog.show() dialog.getButton(AlertDialog.BUTTON_NEUTRAL)?.setOnClickListener { - ExternalActionHelper.openUrl(fragment, context.getString(detailsLink)) + fragment.openUrl(context.getString(detailsLink)) } } } diff --git a/Corona-Warn-App/src/main/res/layout/analytics_ppa_userinfo_input_fragment.xml b/Corona-Warn-App/src/main/res/layout/analytics_ppa_userinfo_input_fragment.xml index a729a715dec1edf4577bd2c4a2331ae868b0b139..a4edac6db8479de1a38df269c66eedf71bdccaed 100644 --- a/Corona-Warn-App/src/main/res/layout/analytics_ppa_userinfo_input_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/analytics_ppa_userinfo_input_fragment.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.Close" android:layout_width="match_parent" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_comment_info_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_comment_info_fragment.xml index b2d7b3114fcaeacdf31acd056688e643154c1a15..0a0d9d9b17d8448ff87c6a633d02331d121f87fb 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_comment_info_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_comment_info_fragment.xml @@ -5,13 +5,12 @@ android:layout_height="wrap_content" android:orientation="vertical"> - <Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" - style="@style/CWAToolbar" + style="@style/CWAToolbar.Close" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:navigationIcon="@drawable/ic_close" /> + android:layout_marginStart="8dp" /> <ScrollView android:layout_width="match_parent" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_day_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_day_fragment.xml index 101c40867eddf5c040ebc1710c1c2a1bb715c77b..5e28a5a9d8b813d544f754488e757ae5d0b95163 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_day_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_day_fragment.xml @@ -9,7 +9,7 @@ android:layout_height="match_parent" android:focusable="true"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/contact_diary_day_header" style="@style/CWAToolbar.BackArrow" android:layout_width="0dp" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_edit_locations_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_edit_locations_fragment.xml index 72bfa17005cd72bc5645155e10d221a8b56c88c9..9006453c6aa2e54b871fc94490d1b04cc31b4a24 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_edit_locations_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_edit_locations_fragment.xml @@ -9,7 +9,7 @@ android:layout_height="match_parent" android:contentDescription="@string/contact_diary_edit_locations_title"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.Close" android:layout_width="0dp" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_edit_persons_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_edit_persons_fragment.xml index e58bf18b26d95cd7af8ceffafc57a420435a63f2..bb23fa72b8a706320cefde91fb426e0c86d08591 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_edit_persons_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_edit_persons_fragment.xml @@ -9,7 +9,7 @@ android:layout_height="match_parent" android:contentDescription="@string/contact_diary_edit_persons_title"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_homescreen_card_include.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_homescreen_card_include.xml index 390d2b13cf7b3690a5cbb5178106cc0717f36be4..b7f33780b8a4d465a9183d1661ea7e357ec6d3f0 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_homescreen_card_include.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_homescreen_card_include.xml @@ -34,7 +34,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/contact_diary_card_homescreen_title" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_diary_card_homescreen_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_location_list_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_location_list_fragment.xml index ea59fb9e0b29f95ecfe8689bef0ecfc0824d7edb..4a5fcd8614870ddc5ae57476f2dbfe2a0876c639 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_location_list_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_location_list_fragment.xml @@ -27,7 +27,7 @@ android:visibility="gone" app:constraint_referenced_ids="contact_diary_location_list_no_items_image,contact_diary_location_list_no_items_title,contact_diary_location_list_no_items_subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_diary_location_list_no_items_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_onboarding_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_onboarding_fragment.xml index e726b8d0cc6036164b243272ae9d2242f4d81892..e13817189b34f388922075b048ec033ac77bf580 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_onboarding_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_onboarding_fragment.xml @@ -12,7 +12,7 @@ android:contentDescription="@string/contact_diary_title" android:focusable="true"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_overview_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_overview_fragment.xml index 503bc98d761c9f55006ca2d5e430f0e8d5e602c9..b66cdd2c0d60badf6f5f74d4c2de9fdd381d7979 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_overview_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_overview_fragment.xml @@ -9,7 +9,7 @@ android:background="@color/colorBackground" android:orientation="vertical"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_person_list_fragment.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_person_list_fragment.xml index 37cf73437b095a12485cb8d39825bbbf51492352..42d76704e7c2750b5f23e767f65caa73dfc0ffdd 100644 --- a/Corona-Warn-App/src/main/res/layout/contact_diary_person_list_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/contact_diary_person_list_fragment.xml @@ -27,7 +27,7 @@ android:visibility="gone" app:constraint_referenced_ids="contact_diary_person_list_no_items_image,contact_diary_person_list_no_items_title,contact_diary_person_list_no_items_subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_diary_person_list_no_items_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml index a34da0c9424fbd812f17a364ab83371d645a6a1e..7723129e1f0043eb2067f5a1ef7fc31ca2ea2550 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding.xml @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:paddingBottom="@dimen/spacing_medium"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/onboarding_illustration" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_delta_ppa.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_delta_ppa.xml index 464d8c50f8ee5babb217b25ac47cb0f9f474a57e..945b64ea86c12facceeacbcdec192b5e6a346009 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_delta_ppa.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_delta_ppa.xml @@ -280,7 +280,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/bullet_point_consent" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" @@ -303,7 +303,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_point_consent" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/bullet_point_identity" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" @@ -326,7 +326,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_point_identity" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/bullet_point_sixteen" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_ppa.xml b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_ppa.xml index bd4f247b1a02d8edb40a9dec2995681519711807..fddc1bafe696935ba1f7a27e09be7a3f6b214e2e 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_onboarding_ppa.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_onboarding_ppa.xml @@ -286,7 +286,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/bullet_point_consent" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" @@ -309,7 +309,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_point_consent" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/bullet_point_identity" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" @@ -332,7 +332,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_point_identity" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/bullet_point_sixteen" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_ppa_more_info.xml b/Corona-Warn-App/src/main/res/layout/fragment_ppa_more_info.xml index 4acd20f2b086f3d68190b79faa099565a4b4f012..02379b9dd847711461895979192a3a02f555ee2b 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_ppa_more_info.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_ppa_more_info.xml @@ -597,7 +597,7 @@ <TableRow android:layout_marginTop="@dimen/spacing_small"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/other_info_point_1" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_settings_privacy_preserving_analytics.xml b/Corona-Warn-App/src/main/res/layout/fragment_settings_privacy_preserving_analytics.xml index eec2f250912951aac825936469576328b904fe19..cfba7139fe405ba1334bd3e855b81dc997fa4e81 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_settings_privacy_preserving_analytics.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_settings_privacy_preserving_analytics.xml @@ -36,7 +36,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/onboarding_illustration" android:layout_width="0dp" android:layout_height="wrap_content" @@ -168,7 +168,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@id/bullet_point_consent" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" @@ -191,7 +191,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@+id/legal_point_consent" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@id/bullet_point_identity" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" @@ -214,7 +214,7 @@ app:layout_constraintStart_toStartOf="@id/bullet_point_consent" app:layout_constraintTop_toBottomOf="@id/legal_point_identity" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@id/bullet_point_sixteen" android:layout_width="@dimen/bullet_point_size" android:layout_height="@dimen/bullet_point_size" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml b/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml index 906b8f3dd1a67de9385be0f5034837247e0beaab..fe996c6bc980a66d4f6ae2eda6151dc322df9d63 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_settings_tracing.xml @@ -23,7 +23,7 @@ android:contentDescription="@string/settings_tracing_title" android:focusable="true"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.Close" android:layout_width="match_parent" @@ -108,7 +108,7 @@ app:layout_constraintStart_toStartOf="@id/guideline_start" app:layout_constraintTop_toBottomOf="@id/switch_row"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/flag_eu" android:layout_width="26dp" android:layout_height="26dp" @@ -127,7 +127,7 @@ app:layout_constraintStart_toEndOf="@id/flag_eu" app:layout_constraintTop_toTopOf="@id/flag_eu" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/flag_ch" android:layout_width="0dp" android:layout_height="22dp" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_statistics_explanation.xml b/Corona-Warn-App/src/main/res/layout/fragment_statistics_explanation.xml index 082aa18e15213023e746986a0d2735bad6b20ecd..fa6a203d8cad9043160c76755aa14d9a7e5220a8 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_statistics_explanation.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_statistics_explanation.xml @@ -108,7 +108,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/interoperability_illustration" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -346,7 +346,7 @@ android:layout_marginTop="25dp" android:layout_marginEnd="@dimen/guideline_end"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/statistics_explanation_trend_increasing_arrow" android:layout_width="0dp" android:layout_height="wrap_content" @@ -371,7 +371,7 @@ app:layout_constraintStart_toEndOf="@+id/statistics_explanation_trend_increasing_arrow" app:layout_constraintTop_toTopOf="@+id/statistics_explanation_trend_increasing_arrow" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/statistics_explanation_trend_decreasing_arrow" android:layout_width="0dp" android:layout_height="wrap_content" @@ -397,7 +397,7 @@ app:layout_constraintStart_toEndOf="@+id/statistics_explanation_trend_decreasing_arrow" app:layout_constraintTop_toTopOf="@+id/statistics_explanation_trend_decreasing_arrow" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/statistics_explanation_trend_stable_arrow" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml index 5b89dec0d5222de7328ab7f2a25781a5dc5c3c18..5d0f28070e10d837bf41d284d8ab620c481c7100 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_deletion_warning.xml @@ -8,7 +8,7 @@ android:contentDescription="@string/submission_deletion_warning_title" android:focusable="true"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="wrap_content" @@ -31,7 +31,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/deletion_warning_illustration" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_done.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_done.xml index 25844017a9edf419fd46c3b30e697558c7e78cab..b4ed1f9ee9db30e0c4a1652430e2b8ffa5e17dad 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_submission_done.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_done.xml @@ -11,7 +11,7 @@ android:fillViewport="true" tools:context=".ui.submission.fragment.SubmissionDoneFragment"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_no_consent_positive_other_warning.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_no_consent_positive_other_warning.xml index 07ef45ea131f55b072dff90511434bd3a21dc6a9..c73df8d501d1b27d3ef6abd18af52b5f5c05dacc 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_submission_no_consent_positive_other_warning.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_no_consent_positive_other_warning.xml @@ -18,7 +18,7 @@ android:fillViewport="true" tools:context=".ui.submission.warnothers.SubmissionResultPositiveOtherWarningNoConsentFragment"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_positive_keys_shared.xml b/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_positive_keys_shared.xml index 7f26366943bd40fbdf4faf1306c7d6efcd6be2bc..ece322a33f4623cc8971e60e9ff11edc8f5095b5 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_positive_keys_shared.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_submission_test_result_positive_keys_shared.xml @@ -9,7 +9,7 @@ android:accessibilityLiveRegion="assertive" android:contentDescription="@string/submission_test_result_headline"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.Close" android:layout_width="match_parent" diff --git a/Corona-Warn-App/src/main/res/layout/fragment_test_home_test_cards_layout.xml b/Corona-Warn-App/src/main/res/layout/fragment_test_home_test_cards_layout.xml index 03465872a364efac9d328977fc27308d20df4190..696c625e8541069f76f81dd850bd06836fa77cb8 100644 --- a/Corona-Warn-App/src/main/res/layout/fragment_test_home_test_cards_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/fragment_test_home_test_cards_layout.xml @@ -18,11 +18,11 @@ android:orientation="vertical" tools:context=".ui.main.MainActivity"> - <Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" + style="@style/CWAToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - style="@style/CWAToolbar" app:popupTheme="@style/CWAToolbar.Menu"> <ImageView android:id="@+id/main_header_logo" @@ -34,7 +34,7 @@ android:src="@drawable/ic_main_header" bind:cwaContentDescription="@{@string/accessibility_logo}" tools:ignore="ContentDescription" /> - </Toolbar> + </com.google.android.material.appbar.MaterialToolbar> <androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" @@ -42,16 +42,16 @@ <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" - android:theme="@style/CWAToolbar" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:theme="@style/CWAToolbar"> - <Toolbar + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/main_tracing" + style="@style/CWAToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:elevation="8dp" - style="@style/CWAToolbar" - android:id="@+id/main_tracing" android:clickable="true" + android:elevation="8dp" android:focusable="true" android:foreground="?selectableItemBackground" app:layout_scrollFlags="scroll|snap|enterAlways"> @@ -78,7 +78,7 @@ app:animation="@{tracingHeader.getTracingAnimation(context)}" app:animation_tint="@{tracingHeader.getTracingTint(context)}" /> - </Toolbar> + </com.google.android.material.appbar.MaterialToolbar> </com.google.android.material.appbar.AppBarLayout> diff --git a/Corona-Warn-App/src/main/res/layout/home_create_trace_location_card.xml b/Corona-Warn-App/src/main/res/layout/home_create_trace_location_card.xml index ff2b328fa8a3cf07118805662e7f490c649bd83f..bf6780e5a569092f3fb8c84b75a813b0cefe7728 100644 --- a/Corona-Warn-App/src/main/res/layout/home_create_trace_location_card.xml +++ b/Corona-Warn-App/src/main/res/layout/home_create_trace_location_card.xml @@ -31,7 +31,7 @@ app:layout_constraintTop_toBottomOf="@id/create_trace_location_card_headline" tools:text="@string/create_trace_location_card_subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/create_trace_location_card_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_fragment_layout.xml b/Corona-Warn-App/src/main/res/layout/home_fragment_layout.xml index 79b703795f468257a51a13d58ebfecdfef24be0e..234652b8581199bbada6bf74cdf7babd56186181 100644 --- a/Corona-Warn-App/src/main/res/layout/home_fragment_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_fragment_layout.xml @@ -20,9 +20,10 @@ <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" + style="@style/CWAToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - style="@style/CWAToolbar" + app:menu="@menu/menu_main" app:popupTheme="@style/CWAToolbar.Menu"> <ImageView android:id="@+id/main_header_logo" @@ -42,16 +43,16 @@ <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" - android:theme="@style/CWAToolbar" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:theme="@style/CWAToolbar"> - <Toolbar + <com.google.android.material.appbar.MaterialToolbar + android:id="@+id/main_tracing" + style="@style/CWAToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:elevation="8dp" - style="@style/CWAToolbar" - android:id="@+id/main_tracing" android:clickable="true" + android:elevation="8dp" android:focusable="true" android:foreground="?selectableItemBackground" app:layout_scrollFlags="scroll|snap|enterAlways"> @@ -78,7 +79,7 @@ app:animation="@{tracingHeader.getTracingAnimation(context)}" app:animation_tint="@{tracingHeader.getTracingTint(context)}" /> - </Toolbar> + </com.google.android.material.appbar.MaterialToolbar> </com.google.android.material.appbar.AppBarLayout> diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml index 7eee9560c166dc4b7e507df6d0fd25f7b1a25c92..d1969a13b506b7a8312375d84a17fe9e7bc9e1ec 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_incidence_layout.xml @@ -12,7 +12,7 @@ android:id="@+id/incidence_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/background_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml index 1d54ca078e19c2008ac9b13851aaa11bb7d8fe20..31410db6eb5357070b2345ee9459f302430f0bc6 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_infections_layout.xml @@ -12,7 +12,7 @@ android:id="@+id/infections_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/background_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml index 1d486842a6fee8dbac82c1637f95608e5b6e3114..0b64677699659882b8cbf5f59ff4dd1ff523b5c0 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_keysubmissions_layout.xml @@ -12,7 +12,7 @@ android:id="@+id/keysubmissions_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/background_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml index 57f7e82475116fe8e63ca7d7a8eab9beb0c464b0..07640dab4df1f979a97a523b9aa0c064252de88f 100644 --- a/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/home_statistics_cards_sevendayrvalue_layout.xml @@ -12,7 +12,7 @@ android:id="@+id/seven_day_r_value_container" tools:showIn="@layout/home_statistics_cards_basecard_layout"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/background_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_error.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_error.xml index c49ecb6fb79e3c97427dfdd60238de2e7cf77e75..ec8c361b3e950098e33db28e2a380a78321337f3 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_error.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_error.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_invalid.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_invalid.xml index 6c03a73581718fbcb1cc1ae1141b536c37c3d49f..9b5813b1737ad52d076897abaa584f171a664c95 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_invalid.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_invalid.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_negative.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_negative.xml index 6b23023977d63eda004770d1cf3ba16fa93d96d8..ccdbe8acef0a1dcba6f74f3ff02bdae8c2362ccf 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_negative.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_negative.xml @@ -91,7 +91,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_pending.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_pending.xml index da6cb6b82918c50ac40cc55550cf4f550ff4f7f9..6c0fcf602fca67c1c2097e8c3c6eda6456f20615 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_pending.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_pending.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_not_shared.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_not_shared.xml index 65812e9d4cd43430cba8cc75fd50b5139125c4f6..f69b2b2634964a7451b048a8aa7766960d869a27 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_not_shared.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_not_shared.xml @@ -84,7 +84,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -115,7 +115,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/divider" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_icon" style="@style/icon" android:layout_width="wrap_content" @@ -143,7 +143,7 @@ app:layout_constraintStart_toEndOf="@+id/contact_icon" app:layout_constraintTop_toTopOf="@+id/contact_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contagious_icon" style="@style/icon" android:layout_width="wrap_content" @@ -171,7 +171,7 @@ app:layout_constraintStart_toEndOf="@+id/contagious_icon" app:layout_constraintTop_toTopOf="@+id/contagious_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/share_icon" style="@style/icon" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_shared.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_shared.xml index bc0dd85a63b74a3bc6535adf01720ef3b162ce55..80b89358a8100e99634fc7e788238a6f5e7f4634 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_shared.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_positive_shared.xml @@ -84,7 +84,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -115,7 +115,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/divider" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_icon" style="@style/icon" android:layout_width="wrap_content" @@ -143,7 +143,7 @@ app:layout_constraintStart_toEndOf="@+id/contact_icon" app:layout_constraintTop_toTopOf="@+id/contact_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contagious_icon" style="@style/icon" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_ready.xml b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_ready.xml index b4d9ecbbc923c8b46b325a88aee703e881bc1484..28ff61c8a38d395b9e7047b8fcaec70a1c062564 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_ready.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_pcr_status_card_ready.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_error.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_error.xml index eec3d36c7890f062905f402dea4b655fb337c9cd..007dcea8d5c2d82ad55c85752c89b4aa89f09264 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_error.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_error.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_invalid.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_invalid.xml index 5ee0fdbae1dff0e9e2f1e858e0c6c246cc3d1c0e..8527df7657a5494994f24bfbf5b5b6ee3ac83b47 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_invalid.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_invalid.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_negative.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_negative.xml index c08d9fef1b9255c8f777133500ac06f80c87b5cc..dd1da1efc4dcb11211a9e6db6a406cdc08a8647e 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_negative.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_negative.xml @@ -91,7 +91,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_outdated.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_outdated.xml index 8ba510968c65f48c5a71a07cf4fd0832fe514ff7..906c9dc733b14cb0a09dacd7c455dd1351d38057 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_outdated.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_outdated.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_pending.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_pending.xml index 5c9eb6e5541b817f82f7dfaa98704166d77bf1bc..3522c0bd30e1217601bb972078c2a6c2759f7948 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_pending.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_pending.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_not_shared.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_not_shared.xml index 33bf2d3e74a207b9d98019a3d909ac701ceb5355..380fce89b3016e3ca2d4b27d521cf9f0410672e7 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_not_shared.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_not_shared.xml @@ -84,7 +84,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -115,7 +115,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/divider" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/prc_icon" style="@style/icon" android:layout_width="wrap_content" @@ -144,7 +144,7 @@ app:layout_constraintStart_toEndOf="@+id/prc_icon" app:layout_constraintTop_toTopOf="@+id/prc_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_icon" style="@style/icon" android:layout_width="wrap_content" @@ -172,7 +172,7 @@ app:layout_constraintStart_toEndOf="@+id/contact_icon" app:layout_constraintTop_toTopOf="@+id/contact_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contagious_icon" style="@style/icon" android:layout_width="wrap_content" @@ -200,7 +200,7 @@ app:layout_constraintStart_toEndOf="@+id/contagious_icon" app:layout_constraintTop_toTopOf="@+id/contagious_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/share_icon" style="@style/icon" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_shared.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_shared.xml index 9ecf98e1234564db8b62a7b6c85f92dd1929c866..0b0c503b0d9a73884815c30a999b362365de2246 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_shared.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_positive_shared.xml @@ -84,7 +84,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/body" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -115,7 +115,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/divider" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/prc_icon" style="@style/icon" android:layout_width="wrap_content" @@ -144,7 +144,7 @@ app:layout_constraintStart_toEndOf="@+id/prc_icon" app:layout_constraintTop_toTopOf="@+id/prc_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contact_icon" style="@style/icon" android:layout_width="wrap_content" @@ -172,7 +172,7 @@ app:layout_constraintStart_toEndOf="@+id/contact_icon" app:layout_constraintTop_toTopOf="@+id/contact_icon" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/contagious_icon" style="@style/icon" android:layout_width="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_ready.xml b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_ready.xml index 26747ccb991403571436853831e9c862d6b917f0..1211238ff9b1ceb053dcf2810787cd82284a73b8 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_ready.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_rapid_status_card_ready.xml @@ -48,7 +48,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/home_submission_status_card_unregistered.xml b/Corona-Warn-App/src/main/res/layout/home_submission_status_card_unregistered.xml index 4004baa2d329e216b4ca2f88560529a381f8bfed..edf3afd3b6afc1dfe6a61d5d0d2ff46b631cee9d 100644 --- a/Corona-Warn-App/src/main/res/layout/home_submission_status_card_unregistered.xml +++ b/Corona-Warn-App/src/main/res/layout/home_submission_status_card_unregistered.xml @@ -37,7 +37,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/title" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/include_submission_behaviour_row.xml b/Corona-Warn-App/src/main/res/layout/include_submission_behaviour_row.xml index 046b5250db1ee8551e37d106a3fc851bc58875a7..f88e80dbe8e9e73427924d27f140b34424bea65b 100644 --- a/Corona-Warn-App/src/main/res/layout/include_submission_behaviour_row.xml +++ b/Corona-Warn-App/src/main/res/layout/include_submission_behaviour_row.xml @@ -27,7 +27,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> - <androidx.appcompat.widget.AppCompatImageView + <ImageView style="@style/icon" android:layout_width="@dimen/icon_size_risk_details_behavior" android:layout_height="@dimen/icon_size_risk_details_behavior" diff --git a/Corona-Warn-App/src/main/res/layout/new_release_info_screen_fragment.xml b/Corona-Warn-App/src/main/res/layout/new_release_info_screen_fragment.xml index 9761fcdcf4c4c0ac5dc8596a25ea536ce56538fc..27abf1496b5df95f0927ab61caa7c7fefd6adb42 100644 --- a/Corona-Warn-App/src/main/res/layout/new_release_info_screen_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/new_release_info_screen_fragment.xml @@ -9,7 +9,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.Close" android:layout_width="0dp" diff --git a/Corona-Warn-App/src/main/res/layout/survey_consent_fragment.xml b/Corona-Warn-App/src/main/res/layout/survey_consent_fragment.xml index fe1c3c7ef61715c5c5e095444fe87ac18213bc71..ede7afa130e49722de36bf32e763906aa3dadb7c 100644 --- a/Corona-Warn-App/src/main/res/layout/survey_consent_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/survey_consent_fragment.xml @@ -10,7 +10,7 @@ android:background="@drawable/contact_diary_onboarding_background" android:focusable="true"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.BackArrow" android:layout_width="0dp" diff --git a/Corona-Warn-App/src/main/res/layout/trace_location_create_fragment.xml b/Corona-Warn-App/src/main/res/layout/trace_location_create_fragment.xml index 2cd6a15dfe3c635c017cb1d6d3ede275c89fe840..d7acf8accc7f5ee9afe626355776fefb7a67752c 100644 --- a/Corona-Warn-App/src/main/res/layout/trace_location_create_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/trace_location_create_fragment.xml @@ -51,8 +51,7 @@ android:layout_height="wrap_content" android:imeOptions="actionNext" android:inputType="textCapWords" - android:maxLength="100" - android:textStyle="bold" /> + android:maxLength="100" /> </com.google.android.material.textfield.TextInputLayout> diff --git a/Corona-Warn-App/src/main/res/layout/trace_location_organizer_trace_locations_list_fragment.xml b/Corona-Warn-App/src/main/res/layout/trace_location_organizer_trace_locations_list_fragment.xml index 7cc778f51698899505c2beef24786640fd99ec0a..255ed0fa8049672d69931d78a26e98a4cd1080b8 100644 --- a/Corona-Warn-App/src/main/res/layout/trace_location_organizer_trace_locations_list_fragment.xml +++ b/Corona-Warn-App/src/main/res/layout/trace_location_organizer_trace_locations_list_fragment.xml @@ -42,7 +42,7 @@ android:layout_height="wrap_content" app:constraint_referenced_ids="qr_codes__list_no_items_image,qr_codes_list_no_items_title,qr_codes_list_no_items_subtitle" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/qr_codes__list_no_items_image" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/trace_location_privacy_card.xml b/Corona-Warn-App/src/main/res/layout/trace_location_privacy_card.xml index cd37450cf9ba6b4a96d717d4efff30f5775ee0b2..ca0459380a09c51c00f3a3230568399e3fbec235 100644 --- a/Corona-Warn-App/src/main/res/layout/trace_location_privacy_card.xml +++ b/Corona-Warn-App/src/main/res/layout/trace_location_privacy_card.xml @@ -106,7 +106,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="@dimen/spacing_normal" - android:text="@string/trace_location_privacy_card_third_bulletpoint_text" + android:text="@string/trace_location_privacy_card_fourth_bulletpoint_text" app:layout_constraintEnd_toEndOf="@id/second_bulletpoint_subtitle" app:layout_constraintStart_toStartOf="@id/second_bulletpoint_subtitle" app:layout_constraintTop_toBottomOf="@id/second_bulletpoint_subtitle" /> @@ -126,7 +126,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/spacing_normal" android:paddingBottom="@dimen/spacing_medium" - android:text="@string/trace_location_privacy_card_fourth_bulletpoint_text" + android:text="@string/trace_location_privacy_card_third_bulletpoint_text" app:layout_constraintEnd_toEndOf="@id/third_bulletpoint_text" app:layout_constraintStart_toStartOf="@id/third_bulletpoint_text" app:layout_constraintTop_toBottomOf="@id/third_bulletpoint_text" /> diff --git a/Corona-Warn-App/src/main/res/layout/tracing_content_disabled_view.xml b/Corona-Warn-App/src/main/res/layout/tracing_content_disabled_view.xml index b5ab40269e5bcc93d7b540ce596642d053fd03b1..527c1a7f5325a8ffc3999058859d8d9f812d3fd0 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_content_disabled_view.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_content_disabled_view.xml @@ -28,7 +28,7 @@ app:layout_constraintTop_toTopOf="parent" app:layout_goneMarginEnd="0dp" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/details_icon" gone="@{state.isInDetailsMode}" android:layout_width="@dimen/icon_size_risk_card" diff --git a/Corona-Warn-App/src/main/res/layout/tracing_content_failed_view.xml b/Corona-Warn-App/src/main/res/layout/tracing_content_failed_view.xml index 31da8067055d0218e12fe0675f01f10b53026c44..874f5f839c50f2d36a072b84c6bc7588fdfe1719 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_content_failed_view.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_content_failed_view.xml @@ -27,7 +27,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/risk_card_header_icon" gone="@{state.isInDetailsMode}" android:layout_width="@dimen/icon_size_risk_card" diff --git a/Corona-Warn-App/src/main/res/layout/tracing_content_increased_view.xml b/Corona-Warn-App/src/main/res/layout/tracing_content_increased_view.xml index 79688669a658d2ce286d953b6c04897b3dc5cc3c..0fe181f52e7da0a49ee22938f87a4ab587fb937a 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_content_increased_view.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_content_increased_view.xml @@ -29,7 +29,7 @@ app:layout_constraintTop_toTopOf="parent" app:layout_goneMarginEnd="0dp" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/details_icon" gone="@{state.isInDetailsMode}" android:layout_width="@dimen/icon_size_risk_card" diff --git a/Corona-Warn-App/src/main/res/layout/tracing_content_low_view.xml b/Corona-Warn-App/src/main/res/layout/tracing_content_low_view.xml index 0c569562d3d1fe3ad86431eb15aa91f29f59327d..8d6e9e7260307b80843e9bd8617a1ad477695e47 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_content_low_view.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_content_low_view.xml @@ -31,7 +31,7 @@ tools:text="@string/risk_card_low_risk_headline" tools:textColor="@color/colorStableLight" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/details_icon" gone="@{state.isInDetailsMode}" android:layout_width="@dimen/icon_size_risk_card" diff --git a/Corona-Warn-App/src/main/res/layout/tracing_content_progress_view.xml b/Corona-Warn-App/src/main/res/layout/tracing_content_progress_view.xml index 10154cbf3cecfb6b580dac8e08dc49c4b288f87d..25892b2a8efc99a6f95587f4883b76eefb6a6a95 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_content_progress_view.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_content_progress_view.xml @@ -29,7 +29,7 @@ app:layout_goneMarginEnd="0dp" tools:text="Daten werden herunter geladen" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/details_icon" gone="@{state.isInDetailsMode}" android:layout_width="@dimen/icon_size_risk_card" diff --git a/Corona-Warn-App/src/main/res/layout/tracing_details_access_survey_card.xml b/Corona-Warn-App/src/main/res/layout/tracing_details_access_survey_card.xml index 69635c8f19b5127277f2e49069fd13d12ef6c1e8..bdfb816c9842767120df9e5559552e14692b0a09 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_details_access_survey_card.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_details_access_survey_card.xml @@ -42,7 +42,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tracing_details_survey_card_title" /> - <androidx.appcompat.widget.AppCompatImageView + <ImageView android:id="@+id/tracing_details_survey_card_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/Corona-Warn-App/src/main/res/layout/tracing_details_fragment_layout.xml b/Corona-Warn-App/src/main/res/layout/tracing_details_fragment_layout.xml index d6ff95745ba0aab96ca1166ee1aa12d0bcc15cf9..a239f18d87d0048a566e21d5269b2c1addec331f 100644 --- a/Corona-Warn-App/src/main/res/layout/tracing_details_fragment_layout.xml +++ b/Corona-Warn-App/src/main/res/layout/tracing_details_fragment_layout.xml @@ -16,7 +16,7 @@ android:layout_height="match_parent" android:contentDescription="@string/risk_details_accessibility_title"> - <androidx.appcompat.widget.Toolbar + <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/CWAToolbar.Close" android:layout_width="match_parent" diff --git a/Corona-Warn-App/src/main/res/menu/menu_main.xml b/Corona-Warn-App/src/main/res/menu/menu_main.xml index 12e95ff6cc53a47de62326631e25d872e2671d0a..494829eb627f3989af88fe4ba0aed3dc4490cf55 100644 --- a/Corona-Warn-App/src/main/res/menu/menu_main.xml +++ b/Corona-Warn-App/src/main/res/menu/menu_main.xml @@ -4,7 +4,7 @@ tools:context=".MainActivity"> <item - android:id="@+id/menu_share" + android:id="@+id/mainSharingFragment" android:contentDescription="@string/button_share" android:icon="@drawable/ic_main_share" android:title="@string/button_share" @@ -12,16 +12,16 @@ app:showAsAction="always" /> <item - android:id="@+id/menu_help" + android:id="@+id/mainOverviewFragment" android:title="@string/menu_help" /> <item - android:id="@+id/menu_information" + android:id="@+id/informationFragment" android:title="@string/menu_information" /> <item - android:id="@+id/menu_settings" + android:id="@+id/settingsFragment" android:title="@string/menu_settings" /> <item - android:id="@+id/menu_test" + android:id="@+id/test_nav_graph" android:title="Test Menu" android:visible="false" tools:ignore="HardcodedText" /> diff --git a/Corona-Warn-App/src/main/res/values-night/bools.xml b/Corona-Warn-App/src/main/res/values-night/bools.xml new file mode 100644 index 0000000000000000000000000000000000000000..2f4026b34a8ce418bb0c66dd37c1790efdf34ffa --- /dev/null +++ b/Corona-Warn-App/src/main/res/values-night/bools.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <bool name="lightSystemUI">false</bool> +</resources> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/values-night/colors.xml b/Corona-Warn-App/src/main/res/values-night/colors.xml index 5048bc35d9f3a0b2e1453465631456740198a04c..98ab8628d60233f4e20f818f634cf1ff47ad9347 100644 --- a/Corona-Warn-App/src/main/res/values-night/colors.xml +++ b/Corona-Warn-App/src/main/res/values-night/colors.xml @@ -13,6 +13,7 @@ <color name="colorSurface2">#434445</color> <color name="colorSurface2Pressed">#565757</color> <color name="colorHairline">#4DFFFFFF</color> + <color name="colorSystemUI">#000000</color> <!-- Text --> <color name="colorTextPrimary1">#FFFFFF</color> diff --git a/Corona-Warn-App/src/main/res/values/bools.xml b/Corona-Warn-App/src/main/res/values/bools.xml new file mode 100644 index 0000000000000000000000000000000000000000..8ca6391ddb023064b3cc2f09c27333655e7d5a55 --- /dev/null +++ b/Corona-Warn-App/src/main/res/values/bools.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <bool name="lightSystemUI">true</bool> +</resources> \ No newline at end of file diff --git a/Corona-Warn-App/src/main/res/values/colors.xml b/Corona-Warn-App/src/main/res/values/colors.xml index b7063323ae1e42e5116b21d203e7f41824ac4718..0c537ee78bf3599e4114803c7a7d9fbf89b59585 100644 --- a/Corona-Warn-App/src/main/res/values/colors.xml +++ b/Corona-Warn-App/src/main/res/values/colors.xml @@ -15,6 +15,7 @@ <color name="colorHairline">#3317191A</color> <color name="cwaGrayHighlight">#5D6F80</color> + <color name="colorSystemUI">#F5F5F5</color> <!--Cards--> <color name="colorCardBackgroundHighlightGray">@color/cwaGrayHighlight</color> diff --git a/Corona-Warn-App/src/main/res/values/styles.xml b/Corona-Warn-App/src/main/res/values/styles.xml index dbdaf8ec64842f97a24b27b26a8ef05293f79b64..5d15c348679f1361518f54ef889e8edb9b53f6c0 100644 --- a/Corona-Warn-App/src/main/res/values/styles.xml +++ b/Corona-Warn-App/src/main/res/values/styles.xml @@ -1,4 +1,4 @@ -<resources xmlns:android="http://schemas.android.com/apk/res/android"> +<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.Bridge"> <item name="colorPrimary">@color/colorBrandSecondary</item> @@ -11,6 +11,13 @@ <item name="materialTimePickerTheme">@style/ThemeOverlay.App.TimePicker</item> <item name="buttonStyle">@style/Widget.AppCompat.Button.Borderless.Colored</item> + + <item name="android:windowLightNavigationBar" tools:targetApi="o_mr1">@bool/lightSystemUI + </item> + <item name="android:windowLightStatusBar">@bool/lightSystemUI</item> + + <item name="android:navigationBarColor">@color/colorSystemUI</item> + <item name="android:statusBarColor">@color/colorSystemUI</item> </style> <style name="ThemeOverlay.App.DatePicker" parent="ThemeOverlay.MaterialComponents.MaterialCalendar"> diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt index 45c6063ee6fb5b7482bca133cc421971c854083b..2d35e3e1d05299469413643e044c4ce7a0699fcd 100644 --- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt +++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/ExternalActionHelperTest.kt @@ -4,6 +4,10 @@ import android.content.Context import android.content.pm.ApplicationInfo import androidx.fragment.app.Fragment import de.rki.coronawarnapp.CoronaWarnApplication +import de.rki.coronawarnapp.util.ExternalActionHelper.callPhone +import de.rki.coronawarnapp.util.ExternalActionHelper.openAppNotificationSettings +import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl +import de.rki.coronawarnapp.util.ExternalActionHelper.shareText import io.mockk.MockKAnnotations import io.mockk.Runs import io.mockk.every @@ -30,51 +34,40 @@ class ExternalActionHelperTest : BaseTest() { mockkObject(CoronaWarnApplication) } - @Test - fun toConnectionsTest() { - every { context.startActivity(any()) } just Runs - ExternalActionHelper.toConnections(context = context) - verify(exactly = 1) { context.startActivity(any()) } - } - @Test fun toNotificationsTest() { every { context.startActivity(any()) } just Runs every { context.packageName } returns "package_name" every { context.applicationInfo } returns applicationInfo - ExternalActionHelper.toNotifications(context = context) - verify(exactly = 1) { context.startActivity(any()) } - } - - @Test - fun toMainSettingsTest() { - every { context.startActivity(any()) } just Runs - ExternalActionHelper.toConnections(context = context) + context.openAppNotificationSettings() verify(exactly = 1) { context.startActivity(any()) } } @Test fun openUrlTest() { - val fragment = mockk<Fragment>() - every { fragment.startActivity(any()) } just Runs - ExternalActionHelper.openUrl(fragment = fragment, url = "url_path") - verify(exactly = 1) { fragment.startActivity(any()) } + mockk<Fragment>().apply { + every { startActivity(any()) } just Runs + openUrl(url = "url_path") + verify(exactly = 1) { startActivity(any()) } + } } @Test fun callTest() { - val fragment = mockk<Fragment>() - every { fragment.startActivity(any()) } just Runs - ExternalActionHelper.call(fragment = fragment, uri = "call_path") - verify(exactly = 1) { fragment.startActivity(any()) } + mockk<Fragment>().apply { + every { startActivity(any()) } just Runs + callPhone(phoneNumber = "01234343535") + verify(exactly = 1) { startActivity(any()) } + } } @Test fun shareTextTest() { - val fragment = mockk<Fragment>() - every { fragment.startActivity(any()) } just Runs - ExternalActionHelper.shareText(fragment = fragment, text = "text", title = "title") - verify(exactly = 1) { fragment.startActivity(any()) } + mockk<Fragment>().apply { + every { startActivity(any()) } just Runs + shareText(text = "text", title = "title") + verify(exactly = 1) { startActivity(any()) } + } } }