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" }