diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/RIADigiDocAppNavigation.kt b/app/src/main/kotlin/ee/ria/DigiDoc/RIADigiDocAppNavigation.kt
index bdeb3cfc..09064da0 100644
--- a/app/src/main/kotlin/ee/ria/DigiDoc/RIADigiDocAppNavigation.kt
+++ b/app/src/main/kotlin/ee/ria/DigiDoc/RIADigiDocAppNavigation.kt
@@ -207,6 +207,7 @@ fun RIADigiDocAppScreen(
modifier = Modifier.safeDrawingPadding(),
navController = navController,
sharedMenuViewModel = sharedMenuViewModel,
+ sharedSettingsViewModel = sharedSettingsViewModel,
)
}
composable(route = Route.Diagnostics.route) {
diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/InfoFragment.kt b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/InfoFragment.kt
index c90a2ffb..24737101 100644
--- a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/InfoFragment.kt
+++ b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/InfoFragment.kt
@@ -39,6 +39,7 @@ import androidx.navigation.compose.rememberNavController
import ee.ria.DigiDoc.fragment.screen.InfoScreen
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
+import ee.ria.DigiDoc.viewmodel.shared.SharedSettingsViewModel
@OptIn(ExperimentalComposeUiApi::class)
@Composable
@@ -46,6 +47,7 @@ fun InfoFragment(
navController: NavHostController,
modifier: Modifier = Modifier,
sharedMenuViewModel: SharedMenuViewModel,
+ sharedSettingsViewModel: SharedSettingsViewModel,
) {
Surface(
modifier =
@@ -61,6 +63,7 @@ fun InfoFragment(
navController = navController,
modifier = modifier,
sharedMenuViewModel = sharedMenuViewModel,
+ sharedSettingsViewModel = sharedSettingsViewModel,
)
}
}
@@ -73,6 +76,7 @@ fun InfoFragmentPreview() {
InfoFragment(
navController = rememberNavController(),
sharedMenuViewModel = hiltViewModel(),
+ sharedSettingsViewModel = hiltViewModel(),
)
}
}
diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/InfoScreen.kt b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/InfoScreen.kt
index 947e7e79..6787924f 100644
--- a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/InfoScreen.kt
+++ b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/InfoScreen.kt
@@ -23,17 +23,19 @@ package ee.ria.DigiDoc.fragment.screen
import android.content.Intent
import android.content.res.Configuration
-import androidx.compose.foundation.Image
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
-import androidx.compose.foundation.layout.wrapContentSize
+import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ButtonDefaults
@@ -54,20 +56,25 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
+import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.draw.shadow
+import androidx.compose.ui.graphics.BlendMode
+import androidx.compose.ui.graphics.ImageBitmap
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.testTag
-import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.imageResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
+import androidx.compose.ui.semantics.Role
import androidx.compose.ui.semantics.contentDescription
import androidx.compose.ui.semantics.heading
+import androidx.compose.ui.semantics.role
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.testTagsAsResourceId
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.ui.unit.sp
+import androidx.compose.ui.unit.IntSize
import androidx.core.net.toUri
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.lifecycle.asFlow
@@ -75,6 +82,7 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import ee.ria.DigiDoc.BuildConfig
import ee.ria.DigiDoc.R
+import ee.ria.DigiDoc.domain.model.theme.ThemeSetting
import ee.ria.DigiDoc.ui.component.info.InfoComponent
import ee.ria.DigiDoc.ui.component.info.InfoComponentItem
import ee.ria.DigiDoc.ui.component.menu.SettingsMenuBottomSheet
@@ -85,12 +93,15 @@ import ee.ria.DigiDoc.ui.theme.Dimensions.MCornerRadius
import ee.ria.DigiDoc.ui.theme.Dimensions.MPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.XSPadding
+import ee.ria.DigiDoc.ui.theme.Dimensions.iconSizeXXL
import ee.ria.DigiDoc.ui.theme.Dimensions.iconSizeXXS
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
import ee.ria.DigiDoc.ui.theme.buttonRoundCornerShape
import ee.ria.DigiDoc.utils.extensions.notAccessible
import ee.ria.DigiDoc.utilsLib.text.TextUtil
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
+import ee.ria.DigiDoc.viewmodel.shared.SharedSettingsViewModel
+import kotlin.math.roundToInt
@OptIn(ExperimentalComposeUiApi::class)
@Composable
@@ -98,6 +109,7 @@ fun InfoScreen(
modifier: Modifier = Modifier,
navController: NavHostController,
sharedMenuViewModel: SharedMenuViewModel,
+ sharedSettingsViewModel: SharedSettingsViewModel,
) {
val context = LocalContext.current
@@ -106,6 +118,23 @@ fun InfoScreen(
val isEstonianLanguageUsed = remember { mutableStateOf(false) }
val isTtsInitialized by sharedMenuViewModel.isTtsInitialized.asFlow().collectAsState(false)
+ val themeSetting = remember { sharedSettingsViewModel.dataStore.getThemeSetting() }
+ val isDarkTheme =
+ when (themeSetting) {
+ ThemeSetting.DARK -> true
+ ThemeSetting.LIGHT -> false
+ ThemeSetting.SYSTEM -> isSystemInDarkTheme()
+ }
+ val cofundedLogo =
+ ImageBitmap.imageResource(
+ if (isDarkTheme) R.drawable.cofunded_eu else R.drawable.cofunded_eu_tp,
+ )
+ // Remove border from image
+ val cofundedLogoWidthPx = cofundedLogo.width - XSPadding.value.toInt()
+ val cofundedLogoBlendMode = if (isDarkTheme) BlendMode.Lighten else BlendMode.SrcOver
+ val logoSurfaceColor = MaterialTheme.colorScheme.surface
+ val logoDescription = stringResource(R.string.main_about_digidoc_and_el_logos)
+
LaunchedEffect(isTtsInitialized) {
if (isTtsInitialized) {
isEstonianLanguageUsed.value = sharedMenuViewModel.isEstonianLanguageUsed()
@@ -157,48 +186,33 @@ fun InfoScreen(
) {
Row(
modifier =
- modifier
+ Modifier
.padding(horizontal = XSPadding, vertical = SPadding),
+ verticalAlignment = Alignment.CenterVertically,
) {
- Column(
+ Box(
modifier =
- modifier
+ Modifier
+ .fillMaxWidth(0.4f)
+ .widthIn(max = iconSizeXXL)
.padding(end = XSPadding)
- .weight(.35f),
- horizontalAlignment = Alignment.CenterHorizontally,
- ) {
- Image(
- painter = painterResource(id = R.drawable.eesti_flag),
- alignment = Alignment.Center,
- modifier = modifier.wrapContentSize(),
- contentDescription = stringResource(id = R.string.main_about_1_logo_text),
- )
- Text(
- modifier = modifier.notAccessible(),
- text = stringResource(id = R.string.main_about_1_logo_text),
- style = MaterialTheme.typography.labelSmall,
- fontSize = 9.sp,
- textAlign = TextAlign.Center,
- )
- Image(
- painter = painterResource(id = R.drawable.eu_flag),
- alignment = Alignment.Center,
- modifier = modifier.wrapContentSize(),
- contentDescription = stringResource(id = R.string.main_about_2_logo_text),
- )
- Text(
- modifier = modifier.notAccessible(),
- text = stringResource(id = R.string.main_about_2_logo_text),
- style = MaterialTheme.typography.labelSmall,
- fontSize = 9.sp,
- textAlign = TextAlign.Center,
- )
- }
+ .aspectRatio(cofundedLogoWidthPx.toFloat() / cofundedLogo.height)
+ .semantics {
+ contentDescription = logoDescription
+ role = Role.Image
+ }.drawBehind {
+ drawRect(logoSurfaceColor)
+ drawImage(
+ image = cofundedLogo,
+ srcSize = IntSize(cofundedLogoWidthPx, cofundedLogo.height),
+ dstSize = IntSize(size.width.roundToInt(), size.height.roundToInt()),
+ blendMode = cofundedLogoBlendMode,
+ )
+ },
+ )
+
Column(
- modifier =
- modifier
- .padding(start = XSPadding)
- .weight(.65f),
+ modifier = Modifier.weight(1f),
horizontalAlignment = Alignment.Start,
) {
Text(
@@ -214,7 +228,7 @@ fun InfoScreen(
style = MaterialTheme.typography.bodyMedium,
)
Text(
- modifier = modifier.padding(vertical = SPadding),
+ modifier = Modifier.padding(vertical = SPadding),
text = stringResource(id = R.string.main_about_info_title),
style = MaterialTheme.typography.labelMedium,
)
@@ -233,7 +247,7 @@ fun InfoScreen(
}
ElevatedButton(
modifier =
- modifier
+ Modifier
.shadow(
elevation = MCornerRadius,
shape = buttonRoundCornerShape,
@@ -266,16 +280,16 @@ fun InfoScreen(
},
) {
Icon(
- modifier = modifier.size(iconSizeXXS),
+ modifier = Modifier.size(iconSizeXXS),
imageVector =
ImageVector.vectorResource(
id = R.drawable.ic_m3_open_in_new_48dp_wght400,
),
contentDescription = null,
)
- Spacer(modifier = modifier.width(XSPadding))
+ Spacer(modifier = Modifier.width(XSPadding))
Text(
- modifier = modifier.notAccessible(),
+ modifier = Modifier.notAccessible(),
text = stringResource(id = R.string.main_about_help_center),
color = MaterialTheme.colorScheme.onPrimary,
fontSize = MaterialTheme.typography.labelMedium.fontSize,
@@ -322,6 +336,7 @@ fun InfoScreenPreview() {
InfoScreen(
navController = rememberNavController(),
sharedMenuViewModel = hiltViewModel(),
+ sharedSettingsViewModel = hiltViewModel(),
)
}
}
diff --git a/app/src/main/res/drawable-et-nodpi/cofunded_eu.png b/app/src/main/res/drawable-et-nodpi/cofunded_eu.png
new file mode 100644
index 00000000..93d8a693
Binary files /dev/null and b/app/src/main/res/drawable-et-nodpi/cofunded_eu.png differ
diff --git a/app/src/main/res/drawable-et-nodpi/cofunded_eu_tp.png b/app/src/main/res/drawable-et-nodpi/cofunded_eu_tp.png
new file mode 100644
index 00000000..69176957
Binary files /dev/null and b/app/src/main/res/drawable-et-nodpi/cofunded_eu_tp.png differ
diff --git a/app/src/main/res/drawable-nodpi/cofunded_eu.png b/app/src/main/res/drawable-nodpi/cofunded_eu.png
new file mode 100644
index 00000000..e930fb76
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/cofunded_eu.png differ
diff --git a/app/src/main/res/drawable-nodpi/cofunded_eu_tp.png b/app/src/main/res/drawable-nodpi/cofunded_eu_tp.png
new file mode 100644
index 00000000..a453dae9
Binary files /dev/null and b/app/src/main/res/drawable-nodpi/cofunded_eu_tp.png differ
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 1acea466..b2a920da 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -502,9 +502,7 @@
Magnification (Android, sisseehitatud) https://support.google.com/accessibility/android/answer/6006949?hl=en
- Eesti tuleviku heaks
- Kaasrahastanud Euroopa Liit
- Projekti on toetatud Euroopa Liidu Regionaalarengu Fondist
+ Projekti on kaasrahastanud Euroopa Liit
RIA DigiDoc
versioon %1$s
Eesti ID-tarkvara on välja antud Riigi Infosüsteemi Ameti poolt. Küsimuste korral pöördu:
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8985798d..ff479692 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -502,9 +502,7 @@
Magnification (Android, built in) https://support.google.com/accessibility/android/answer/6006949?hl=en
- Eesti tuleviku heaks
- Kaasrahastanud Euroopa Liit
- The project is supported by the European Regional Development Fund
+ The project is co-funded by the European Union
RIA DigiDoc
version %1$s
Estonian ID software is issued by the Estonian Information System Authority. If you have any questions, please contact: