From 77f04ea0c3a5247f41c8460c6a73eebe6229d529 Mon Sep 17 00:00:00 2001 From: Stefano Sansone Date: Fri, 23 Feb 2024 00:40:45 +0000 Subject: [PATCH] add social icons --- .../app/omnivore/omnivore/core/ui/LinkIcon.kt | 33 +++++++++++++++ .../omnivore/feature/settings/LogoHeader.kt | 4 +- .../feature/settings/about/AboutScreen.kt | 41 +++++++++++++++++++ .../app/src/main/res/drawable/ic_discord.xml | 9 ++++ .../app/src/main/res/drawable/ic_github.xml | 10 +++++ .../app/src/main/res/drawable/ic_omnivore.xml | 4 +- .../app/src/main/res/drawable/ic_x.xml | 9 ++++ .../app/src/main/res/values/strings.xml | 1 + 8 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/ui/LinkIcon.kt create mode 100644 android/Omnivore/app/src/main/res/drawable/ic_discord.xml create mode 100644 android/Omnivore/app/src/main/res/drawable/ic_github.xml create mode 100644 android/Omnivore/app/src/main/res/drawable/ic_x.xml diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/ui/LinkIcon.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/ui/LinkIcon.kt new file mode 100644 index 000000000..79e6f83fa --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/ui/LinkIcon.kt @@ -0,0 +1,33 @@ +package app.omnivore.omnivore.core.ui + +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.unit.dp + +@Composable +fun LinkIcon( + label: String, + icon: ImageVector, + url: String, + modifier: Modifier = Modifier, +) { + val uriHandler = LocalUriHandler.current + IconButton( + modifier = modifier.padding(4.dp), + onClick = { uriHandler.openUri(url) }, + ) { + Icon( + imageVector = icon, + contentDescription = label, + modifier = Modifier.size(24.dp), + tint = MaterialTheme.colorScheme.onSurface + ) + } +} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/LogoHeader.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/LogoHeader.kt index e32491e03..9fc95df41 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/LogoHeader.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/LogoHeader.kt @@ -25,8 +25,8 @@ fun LogoHeader() { contentDescription = null, tint = MaterialTheme.colorScheme.onSurface, modifier = Modifier - .padding(vertical = 56.dp) - .size(64.dp), + .padding(vertical = 32.dp) + .size(128.dp), ) HorizontalDivider() diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/about/AboutScreen.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/about/AboutScreen.kt index 9e0b1220c..984c62301 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/about/AboutScreen.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/settings/about/AboutScreen.kt @@ -1,8 +1,13 @@ package app.omnivore.omnivore.feature.settings.about +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.outlined.ArrowBack +import androidx.compose.material.icons.outlined.Public import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -12,11 +17,16 @@ import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.unit.dp import androidx.navigation.NavHostController import app.omnivore.omnivore.BuildConfig import app.omnivore.omnivore.R +import app.omnivore.omnivore.core.ui.LinkIcon import app.omnivore.omnivore.feature.settings.LogoHeader import app.omnivore.omnivore.feature.settings.RELEASE_URL import app.omnivore.omnivore.feature.settings.SettingRow @@ -95,6 +105,37 @@ internal fun AboutScreen( navController.navigate(Routes.TermsAndConditions.route) } } + + item { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 8.dp), + horizontalArrangement = Arrangement.Center, + ) { + LinkIcon( + label = stringResource(R.string.website), + icon = Icons.Outlined.Public, + url = "https://omnivore.app", + ) + LinkIcon( + label = "Discord", + icon = ImageVector.vectorResource(R.drawable.ic_discord), + url = "https://discord.gg/h2z5rppzz9", + ) + LinkIcon( + label = "X", + icon = ImageVector.vectorResource(R.drawable.ic_x), + url = "https://x.com/omnivoreapp", + ) + + LinkIcon( + label = "GitHub", + icon = ImageVector.vectorResource(R.drawable.ic_github), + url = "https://github.com/omnivore-app", + ) + } + } } } } diff --git a/android/Omnivore/app/src/main/res/drawable/ic_discord.xml b/android/Omnivore/app/src/main/res/drawable/ic_discord.xml new file mode 100644 index 000000000..bdec4191f --- /dev/null +++ b/android/Omnivore/app/src/main/res/drawable/ic_discord.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/Omnivore/app/src/main/res/drawable/ic_github.xml b/android/Omnivore/app/src/main/res/drawable/ic_github.xml new file mode 100644 index 000000000..34241eaa3 --- /dev/null +++ b/android/Omnivore/app/src/main/res/drawable/ic_github.xml @@ -0,0 +1,10 @@ + + + diff --git a/android/Omnivore/app/src/main/res/drawable/ic_omnivore.xml b/android/Omnivore/app/src/main/res/drawable/ic_omnivore.xml index 8608e8300..ecaad383b 100644 --- a/android/Omnivore/app/src/main/res/drawable/ic_omnivore.xml +++ b/android/Omnivore/app/src/main/res/drawable/ic_omnivore.xml @@ -1,7 +1,7 @@ + + diff --git a/android/Omnivore/app/src/main/res/values/strings.xml b/android/Omnivore/app/src/main/res/values/strings.xml index d737b53fd..451b66fa4 100644 --- a/android/Omnivore/app/src/main/res/values/strings.xml +++ b/android/Omnivore/app/src/main/res/values/strings.xml @@ -216,6 +216,7 @@ About Version What\'s new + Website Inbox