diff --git a/.github/renovate.json b/.github/renovate.json index 1de97b96d..f19341761 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -2,5 +2,15 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:base", "group:all", ":dependencyDashboard", "schedule:daily" + ], + "packageRules": [ + { + "matchPackageNames": ["org.objenesis:objenesis"], + "allowedVersions": "<=2.6" + }, + { + "matchPackageNames": ["com.google.protobuf"], + "allowedVersions": "<=0.8.19" + } ] } diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6d3a8e6b5..b67a3f965 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -26,8 +26,8 @@ plugins { android { defaultConfig { applicationId = "com.google.samples.apps.nowinandroid" - versionCode = 1 - versionName = "0.0.1" // X.Y.Z; X = Major, Y = minor, Z = Patch level + versionCode = 2 + versionName = "0.0.2" // X.Y.Z; X = Major, Y = minor, Z = Patch level // Custom test runner to set up Hilt dependency graph testInstrumentationRunner = "com.google.samples.apps.nowinandroid.core.testing.NiaTestRunner" diff --git a/build.gradle.kts b/build.gradle.kts index c663aadc9..6f6d375d7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -31,5 +31,4 @@ plugins { alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.hilt) apply false alias(libs.plugins.secrets) apply false - id("org.jetbrains.kotlin.android") version "1.7.10" apply false } \ No newline at end of file diff --git a/feature/settings/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt b/feature/settings/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt index 2a29becc6..07b6b272c 100644 --- a/feature/settings/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt +++ b/feature/settings/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt @@ -82,7 +82,7 @@ class SettingsDialogTest { } @Test - fun whenStateIsSuccess_allLegalLinksAreDisplayed() { + fun whenStateIsSuccess_allLinksAreDisplayed() { composeTestRule.setContent { SettingsDialog( settingsUiState = Success( @@ -100,5 +100,6 @@ class SettingsDialogTest { composeTestRule.onNodeWithText(getString(R.string.privacy_policy)).assertExists() composeTestRule.onNodeWithText(getString(R.string.licenses)).assertExists() composeTestRule.onNodeWithText(getString(R.string.brand_guidelines)).assertExists() + composeTestRule.onNodeWithText(getString(R.string.feedback)).assertExists() } } diff --git a/feature/settings/src/main/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt b/feature/settings/src/main/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt index 00e929fea..f10b2e138 100644 --- a/feature/settings/src/main/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt +++ b/feature/settings/src/main/java/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt @@ -110,7 +110,7 @@ fun SettingsDialog( } } Divider(Modifier.padding(top = 8.dp)) - LegalPanel() + LinksPanel() } }, confirmButton = { @@ -201,7 +201,7 @@ fun SettingsDialogThemeChooserRow( } @Composable -private fun LegalPanel() { +private fun LinksPanel() { Row( modifier = Modifier.padding(top = 16.dp) ) { @@ -226,6 +226,11 @@ private fun LegalPanel() { text = stringResource(string.brand_guidelines), url = BRAND_GUIDELINES_URL ) + Spacer(Modifier.width(16.dp)) + TextLink( + text = stringResource(string.feedback), + url = FEEDBACK_URL + ) } } } @@ -283,3 +288,4 @@ fun PreviewSettingsDialogLoading() { private const val PRIVACY_POLICY_URL = "https://policies.google.com/privacy" private const val LICENSES_URL = "https://github.com/android/nowinandroid/blob/main/app/LICENSES.md#open-source-licenses-and-copyright-notices" private const val BRAND_GUIDELINES_URL = "https://developer.android.com/distribute/marketing-tools/brand-guidelines" +private const val FEEDBACK_URL = "https://goo.gle/nia-app-feedback" diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/src/main/res/values/strings.xml index c7ba3ada4..b5265f650 100644 --- a/feature/settings/src/main/res/values/strings.xml +++ b/feature/settings/src/main/res/values/strings.xml @@ -21,6 +21,7 @@ Privacy policy Licenses Brand Guidelines + Feedback Theme Default Android diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index acf3253c1..dafd53947 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] accompanist = "0.27.0" -androidDesugarJdkLibs = "1.1.5" +androidDesugarJdkLibs = "1.2.0" androidGradlePlugin = "7.3.1" androidxActivity = "1.6.1" androidxAppCompat = "1.5.1" @@ -12,10 +12,9 @@ androidxCoreSplashscreen = "1.0.0" androidxDataStore = "1.0.0" androidxEspresso = "3.4.0" androidxHiltNavigationCompose = "1.0.0" -# Skipping version 2.6.0-alpha02 due to https://issuetracker.google.com/249686765 -androidxLifecycle = "2.6.0-alpha01" +androidxLifecycle = "2.6.0-alpha03" androidxMacroBenchmark = "1.1.0" -androidxNavigation = "2.5.2" +androidxNavigation = "2.5.3" androidxMetrics = "1.0.0-alpha03" androidxProfileinstaller = "1.2.0" androidxStartup = "1.1.1" @@ -28,24 +27,24 @@ androidxTracing = "1.1.0" androidxUiAutomator = "2.2.0" androidxWork = "2.7.1" coil = "2.2.2" -hilt = "2.42" +hilt = "2.44" hiltExt = "1.0.0" jacoco = "0.8.7" junit4 = "4.13.2" kotlin = "1.7.20" kotlinxCoroutines = "1.6.4" kotlinxDatetime = "0.4.0" -kotlinxSerializationJson = "1.4.0" -ksp = "1.7.20-1.0.7" -lint = "30.2.2" +kotlinxSerializationJson = "1.4.1" +ksp = "1.7.20-1.0.8" +lint = "30.3.1" okhttp = "4.10.0" protobuf = "3.21.9" protobufPlugin = "0.8.19" retrofit = "2.9.0" retrofitKotlinxSerializationJson = "0.8.0" -room = "2.5.0-alpha03" +room = "2.5.0-beta01" secrets = "2.0.1" -turbine = "0.8.0" +turbine = "0.12.1" [libraries] accompanist-flowlayout = { group = "com.google.accompanist", name = "accompanist-flowlayout", version.ref = "accompanist" }