[Lint] Convert URIs to strings using toUri() (#1506)

This commit is contained in:
Ricki Hirner
2025-06-02 12:00:13 +02:00
committed by GitHub
parent 711543c5f1
commit 0321e4ab8f
8 changed files with 21 additions and 20 deletions

View File

@@ -4,7 +4,7 @@
package at.bitfire.davdroid.network
import android.net.Uri
import androidx.core.net.toUri
import at.bitfire.davdroid.BuildConfig
import at.bitfire.davdroid.db.Credentials
import kotlinx.coroutines.CompletableDeferred
@@ -49,18 +49,18 @@ class GoogleLogin(
URI("https", "apidata.googleusercontent.com", "/caldav/v2/$googleAccount/user", null)
private val serviceConfig = AuthorizationServiceConfiguration(
Uri.parse("https://accounts.google.com/o/oauth2/v2/auth"),
Uri.parse("https://oauth2.googleapis.com/token")
"https://accounts.google.com/o/oauth2/v2/auth".toUri(),
"https://oauth2.googleapis.com/token".toUri()
)
}
fun signIn(email: String, customClientId: String?, locale: String?): AuthorizationRequest {
val builder = AuthorizationRequest.Builder(
GoogleLogin.serviceConfig,
serviceConfig,
customClientId ?: CLIENT_ID,
ResponseTypeValues.CODE,
Uri.parse(BuildConfig.APPLICATION_ID + ":/oauth2/redirect")
(BuildConfig.APPLICATION_ID + ":/oauth2/redirect").toUri()
)
return builder
.setScopes(*SCOPES)

View File

@@ -10,12 +10,12 @@ import android.app.TaskStackBuilder
import android.content.ContentUris
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.provider.CalendarContract
import android.provider.ContactsContract
import android.provider.Settings
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.net.toUri
import at.bitfire.dav4jvm.exception.UnauthorizedException
import at.bitfire.davdroid.R
import at.bitfire.davdroid.db.Collection
@@ -135,7 +135,7 @@ class SyncNotificationManager @AssistedInject constructor(
}
// to make the PendingIntent unique
contentIntent.data = Uri.parse("davdroid:exception/${e.hashCode()}")
contentIntent.data = "davdroid:exception/${e.hashCode()}".toUri()
val channel: String
val priority: Int

View File

@@ -9,9 +9,9 @@ import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.graphics.drawable.BitmapDrawable
import android.net.Uri
import androidx.core.app.NotificationCompat
import androidx.core.app.TaskStackBuilder
import androidx.core.net.toUri
import at.bitfire.davdroid.R
import at.bitfire.davdroid.repository.AccountRepository
import at.bitfire.davdroid.resource.LocalDataStore
@@ -122,7 +122,7 @@ class TasksAppManager @Inject constructor(
// couldn't get provider app icon
}
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=${e.provider.packageName}"))
val intent = Intent(Intent.ACTION_VIEW, "market://details?id=${e.provider.packageName}".toUri())
val flags = PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
if (intent.resolveActivity(pm) != null)

View File

@@ -7,7 +7,6 @@ package at.bitfire.davdroid.ui
import android.Manifest
import android.accounts.Account
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.provider.Settings
import androidx.activity.compose.BackHandler
@@ -70,6 +69,7 @@ import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import at.bitfire.davdroid.BuildConfig
@@ -286,7 +286,7 @@ fun AccountsScreen(
onManageDataSaver = {
val intent = Intent(
/* action = */ Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS,
/* uri = */ Uri.parse("package:${BuildConfig.APPLICATION_ID}")
/* uri = */ "package:${BuildConfig.APPLICATION_ID}".toUri()
)
if (intent.resolveActivity(context.packageManager) != null)
context.startActivity(intent)

View File

@@ -6,12 +6,12 @@ package at.bitfire.davdroid.ui
import android.annotation.SuppressLint
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.core.net.toUri
import at.bitfire.davdroid.BuildConfig
import dagger.hilt.android.AndroidEntryPoint
@@ -31,7 +31,7 @@ class AppSettingsActivity: AppCompatActivity() {
startActivity(
Intent(
Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
Uri.parse("package:" + BuildConfig.APPLICATION_ID)
("package:" + BuildConfig.APPLICATION_ID).toUri()
)
)
},

View File

@@ -39,6 +39,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.core.text.HtmlCompat
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -110,8 +111,8 @@ fun TasksCard(
model.selectProvider(provider)
},
installApp = { packageName ->
val uri = Uri.parse("market://details?id=$packageName&referrer=" +
Uri.encode("utm_source=" + BuildConfig.APPLICATION_ID))
val uri = ("market://details?id=$packageName&referrer=" +
Uri.encode("utm_source=" + BuildConfig.APPLICATION_ID)).toUri()
val intent = Intent(Intent.ACTION_VIEW, uri)
if (intent.resolveActivity(context.packageManager) != null)
context.startActivity(intent)

View File

@@ -6,7 +6,6 @@
import android.Manifest
import android.accounts.Account
import android.content.Intent
import android.net.Uri
import android.widget.Toast
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Column
@@ -64,6 +63,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.paging.compose.LazyPagingItems
@@ -131,7 +131,7 @@ fun AccountScreen(
onUpdateCollectionSync = model::setCollectionSync,
onSubscribe = { collection ->
// subscribe
var uri = Uri.parse(collection.source.toString())
var uri = collection.source.toString().toUri()
when {
uri.scheme.equals("http", true) -> uri = uri.buildUpon().scheme("webcal").build()
uri.scheme.equals("https", true) -> uri = uri.buildUpon().scheme("webcals").build()
@@ -405,7 +405,7 @@ fun AccountScreen(
) {
val installIntent = Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=at.bitfire.icsdroid")
"market://details?id=at.bitfire.icsdroid".toUri()
)
if (context.packageManager.resolveActivity(installIntent, 0) != null)
context.startActivity(installIntent)

View File

@@ -7,9 +7,9 @@ package at.bitfire.davdroid.ui.intro
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.net.Uri
import androidx.activity.result.contract.ActivityResultContract
import androidx.compose.runtime.Composable
import androidx.core.net.toUri
import at.bitfire.davdroid.settings.SettingsManager
import at.bitfire.davdroid.ui.intro.BatteryOptimizationsPageModel.Companion.HINT_AUTOSTART_PERMISSION
import at.bitfire.davdroid.ui.intro.BatteryOptimizationsPageModel.Companion.HINT_BATTERY_OPTIMIZATIONS
@@ -46,7 +46,7 @@ class BatteryOptimizationsPage @Inject constructor(
override fun createIntent(context: Context, input: String): Intent {
return Intent(
android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
Uri.parse("package:$input")
"package:$input".toUri()
)
}