diff --git a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index a3f570ad5..9e741e932 100644 --- a/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/java/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -16,6 +16,9 @@ package com.google.samples.apps.nowinandroid.ui +import android.content.Intent +import android.net.Uri +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.Row @@ -45,11 +48,13 @@ import androidx.compose.runtime.remember import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTagsAsResourceId +import androidx.core.content.ContextCompat import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavDestination @@ -68,10 +73,10 @@ import com.google.samples.apps.nowinandroid.core.designsystem.icon.Icon.ImageVec import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.GradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalGradientColors -import com.google.samples.apps.nowinandroid.feature.settings.R as settingsR import com.google.samples.apps.nowinandroid.feature.settings.SettingsDialog import com.google.samples.apps.nowinandroid.navigation.NiaNavHost import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination +import com.google.samples.apps.nowinandroid.feature.settings.R as settingsR @OptIn( ExperimentalMaterial3Api::class, @@ -90,6 +95,7 @@ fun NiaApp( ) { val shouldShowGradientBackground = appState.currentTopLevelDestination == TopLevelDestination.FOR_YOU + val context = LocalContext.current NiaBackground { NiaGradientBackground( @@ -165,6 +171,10 @@ fun NiaApp( if (destination != null) { NiaTopAppBar( titleRes = destination.titleTextId, + navigationIcon = NiaIcons.Codebase, + navigationIconContentDescription = stringResource( + id = settingsR.string.top_app_bar_navigation_icon_description + ), actionIcon = NiaIcons.Settings, actionIconContentDescription = stringResource( id = settingsR.string.top_app_bar_action_icon_description @@ -172,7 +182,12 @@ fun NiaApp( colors = TopAppBarDefaults.centerAlignedTopAppBarColors( containerColor = Color.Transparent ), - onActionClick = { appState.setShowSettingsDialog(true) } + onNavigationClick = { + val launchResourceIntent = Intent(Intent.ACTION_VIEW, Uri.parse( + CODEBASE_URL)) + ContextCompat.startActivity(context, launchResourceIntent, null) + }, + onActionClick = { appState.setShowSettingsDialog(true) }, ) } @@ -269,3 +284,5 @@ private fun NavDestination?.isTopLevelDestinationInHierarchy(destination: TopLev this?.hierarchy?.any { it.route?.contains(destination.name, true) ?: false } ?: false + +private const val CODEBASE_URL = "https://github.com/android/nowinandroid" diff --git a/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt index 5646f088a..385153c31 100644 --- a/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt +++ b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt @@ -26,6 +26,7 @@ import androidx.compose.material.icons.rounded.Add import androidx.compose.material.icons.rounded.ArrowBack import androidx.compose.material.icons.rounded.Check import androidx.compose.material.icons.rounded.Close +import androidx.compose.material.icons.rounded.Code import androidx.compose.material.icons.rounded.ExpandLess import androidx.compose.material.icons.rounded.Fullscreen import androidx.compose.material.icons.rounded.Grid3x3 @@ -65,6 +66,7 @@ object NiaIcons { val Person = Icons.Rounded.Person val PlayArrow = Icons.Rounded.PlayArrow val Search = Icons.Rounded.Search + val Codebase = Icons.Rounded.Code val Settings = Icons.Rounded.Settings val ShortText = Icons.Rounded.ShortText val Tag = Icons.Rounded.Tag diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/src/main/res/values/strings.xml index b5265f650..47578c788 100644 --- a/feature/settings/src/main/res/values/strings.xml +++ b/feature/settings/src/main/res/values/strings.xml @@ -1,5 +1,4 @@ - - Settings + Codebase Settings Loading... Privacy policy