diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 74e166b..edbba82 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -13,7 +13,7 @@ android { applicationId = "alt.nainapps.sharepaste" minSdk = 26 targetSdk = 34 - versionCode = 1728150000 + versionCode = 1728159000 versionName = "2024.10.05" setProperty("archivesBaseName", "sharepaste.oo") @@ -112,6 +112,7 @@ dependencies { implementation(libs.composePrefs) implementation(libs.androidx.preference.ktx) implementation(libs.androidx.material.icons.extended) + implementation(libs.androidx.navigation.compose) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/android/app/src/main/java/alt/nainapps/sharepaste/settings/SettingsActivity.kt b/android/app/src/main/java/alt/nainapps/sharepaste/settings/SettingsActivity.kt index 0e64708..90babaa 100644 --- a/android/app/src/main/java/alt/nainapps/sharepaste/settings/SettingsActivity.kt +++ b/android/app/src/main/java/alt/nainapps/sharepaste/settings/SettingsActivity.kt @@ -13,12 +13,15 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarDefaults.topAppBarColors import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.tooling.preview.Preview +import androidx.core.content.ContextCompat.getString import me.zhanghai.compose.preference.ProvidePreferenceLocals import me.zhanghai.compose.preference.textFieldPreference @@ -42,26 +45,8 @@ class SettingsActivity : ComponentActivity() { ) } ) { innerPadding -> - ProvidePreferenceLocals { - LazyColumn( - modifier = Modifier.fillMaxSize().padding(innerPadding) - ) { - textFieldPreference( - key = "privatebin_host_url", - defaultValue = getString(R.string.default_privatebin_host_url), - textToValue = { it }, - title = { Text(text = "Privatebin host (server)") }, - summary = { - Text( - text = if (looksValidUrl(it)) { - it - } else { - "Invalid looking url: " + it.ifBlank { "" } - } - ) - } - ) - } + Surface(modifier = Modifier.fillMaxSize().padding(innerPadding)) { + SettingsUI() } } } @@ -69,6 +54,33 @@ class SettingsActivity : ComponentActivity() { } } +@Composable +fun SettingsUI() { + val context = LocalContext.current + ProvidePreferenceLocals { + LazyColumn( + ) { + textFieldPreference( + key = "privatebin_host_url", + defaultValue = getString(context, R.string.default_privatebin_host_url), + textToValue = { it }, + title = { Text(text = "Privatebin host (server)") }, + summary = { + Text( + text = if (looksValidUrl(it)) { + it + } else { + "Invalid looking url: " + it.ifBlank { "" } + } + ) + } + ) + } + } +} + + + fun looksValidUrl(potentialUrl: String) = Patterns.WEB_URL.matcher(potentialUrl).matches() @Composable