Skip to content

Commit

Permalink
Update dependency com.google.accompanist:accompanist-adaptive to v0.3…
Browse files Browse the repository at this point in the history
…7.2 (#1794)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zac Sweers <[email protected]>
  • Loading branch information
renovate[bot] and ZacSweers authored Feb 23, 2025
1 parent 375e269 commit dbf8b5f
Show file tree
Hide file tree
Showing 8 changed files with 140 additions and 168 deletions.
223 changes: 111 additions & 112 deletions app-scaffold/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -136,118 +136,117 @@ dependencies {
"kaptDebug"(projects.libraries.tooling.spiVisualizer)
}

implementation(libs.androidx.activity)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.annotations)
implementation(libs.androidx.appCompat)
implementation(libs.androidx.appCompat.resources)
implementation(libs.androidx.collection)
implementation(libs.androidx.compose.accompanist.adaptive)
implementation(libs.androidx.compose.accompanist.systemUi)
implementation(libs.androidx.compose.animation.graphics)
implementation(libs.androidx.compose.foundation)
implementation(libs.androidx.compose.material.material3)
implementation(libs.androidx.compose.material.material3.windowSizeClass)
implementation(libs.androidx.compose.material.ripple)
implementation(libs.androidx.compose.materialIcons)
implementation(libs.androidx.compose.runtime)
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.core)
implementation(libs.androidx.coreKtx)
implementation(libs.androidx.customTabs)
implementation(libs.androidx.datastore.core)
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.datastore.preferences.core)
implementation(libs.androidx.design)
implementation(libs.androidx.emojiAppcompat)
implementation(libs.androidx.lifecycle.ktx)
implementation(libs.androidx.paging.compose)
implementation(libs.androidx.palette)
implementation(libs.androidx.preference)
implementation(libs.androidx.preferenceKtx)
implementation(libs.androidx.profileinstaller)
implementation(libs.androidx.splashscreen)
implementation(libs.androidx.sqlite)
implementation(libs.androidx.window)
implementation(libs.apollo.api)
implementation(libs.apollo.httpcache)
implementation(libs.apollo.normalizedCache)
implementation(libs.apollo.normalizedCache.api)
implementation(libs.apollo.runtime)
implementation(libs.circuit.backstack)
implementation(libs.circuit.codegenAnnotations)
implementation(libs.circuit.foundation)
implementation(libs.circuit.overlay)
implementation(libs.circuit.retained)
implementation(libs.circuit.runtime)
implementation(libs.circuit.runtime.presenter)
implementation(libs.circuit.runtime.screen)
implementation(libs.circuit.runtime.ui)
implementation(libs.circuitx.android)
implementation(libs.circuitx.gestureNav)
implementation(libs.circuitx.overlays)
implementation(libs.coil.base)
implementation(libs.coil.compose)
implementation(libs.coil.compose.base)
implementation(libs.coil.default)
implementation(libs.coil.gif)
implementation(libs.collapsingToolbar)
implementation(libs.errorProneAnnotations)
implementation(libs.fileSize)
implementation(libs.firebase.core)
implementation(libs.firebase.database)
implementation(libs.kotlin.coroutines)
implementation(libs.kotlin.coroutinesAndroid)
implementation(libs.kotlin.datetime)
implementation(libs.kotlinx.immutable)
implementation(libs.markdown)
implementation(libs.misc.byteunits)
implementation(libs.misc.composeSettings.base)
implementation(libs.misc.composeSettings.datastore)
implementation(libs.misc.debug.processPhoenix)
implementation(libs.misc.moshiLazyAdapters)
implementation(libs.misc.okio)
implementation(libs.misc.tapTargetView)
implementation(libs.misc.timber)
implementation(libs.moshi.core)
implementation(libs.moshi.shimo)
implementation(libs.okhttp.core)
implementation(libs.retrofit.core)
implementation(libs.sqldelight.driver.android)
implementation(libs.sqldelight.paging)
implementation(libs.sqldelight.primitiveAdapters)
implementation(libs.sqldelight.runtime)
implementation(libs.telephoto.zoomable)
implementation(libs.telephoto.zoomableImage)
implementation(libs.telephoto.zoomableImageCoil)
implementation(libs.xmlutil.serialization)
implementation(projects.bookmarks)
implementation(projects.bookmarks.db)
implementation(projects.libraries.appconfig)
implementation(projects.libraries.auth)
implementation(projects.libraries.baseUi)
implementation(projects.libraries.composeExtensions)
implementation(projects.libraries.deeplinking)
implementation(projects.libraries.di)
implementation(projects.libraries.di.android)
implementation(projects.libraries.flowbinding)
implementation(projects.libraries.gemoji)
implementation(projects.libraries.gemoji.db)
implementation(projects.libraries.kotlinutil)
implementation(projects.libraries.sqldelightExtensions)
implementation(projects.libraries.summarizer)
implementation(projects.libraries.unfurler)
implementation(projects.libraries.util)
implementation(projects.serviceApi)
implementation(projects.serviceDb)
implementation(projects.services.dribbble)
implementation(projects.services.github)
implementation(projects.services.hackernews)
implementation(projects.services.producthunt)
implementation(projects.services.reddit)
implementation(projects.services.slashdot)
implementation(projects.services.unsplash)
implementation(projects.services.uplabs)
implementation(libs.androidx.activity)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.annotations)
implementation(libs.androidx.appCompat)
implementation(libs.androidx.appCompat.resources)
implementation(libs.androidx.collection)
implementation(libs.androidx.compose.accompanist.adaptive)
implementation(libs.androidx.compose.animation.graphics)
implementation(libs.androidx.compose.foundation)
implementation(libs.androidx.compose.material.material3)
implementation(libs.androidx.compose.material.material3.windowSizeClass)
implementation(libs.androidx.compose.material.ripple)
implementation(libs.androidx.compose.materialIcons)
implementation(libs.androidx.compose.runtime)
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.core)
implementation(libs.androidx.coreKtx)
implementation(libs.androidx.customTabs)
implementation(libs.androidx.datastore.core)
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.datastore.preferences.core)
implementation(libs.androidx.design)
implementation(libs.androidx.emojiAppcompat)
implementation(libs.androidx.lifecycle.ktx)
implementation(libs.androidx.paging.compose)
implementation(libs.androidx.palette)
implementation(libs.androidx.preference)
implementation(libs.androidx.preferenceKtx)
implementation(libs.androidx.profileinstaller)
implementation(libs.androidx.splashscreen)
implementation(libs.androidx.sqlite)
implementation(libs.androidx.window)
implementation(libs.apollo.api)
implementation(libs.apollo.httpcache)
implementation(libs.apollo.normalizedCache)
implementation(libs.apollo.normalizedCache.api)
implementation(libs.apollo.runtime)
implementation(libs.circuit.backstack)
implementation(libs.circuit.codegenAnnotations)
implementation(libs.circuit.foundation)
implementation(libs.circuit.overlay)
implementation(libs.circuit.retained)
implementation(libs.circuit.runtime)
implementation(libs.circuit.runtime.presenter)
implementation(libs.circuit.runtime.screen)
implementation(libs.circuit.runtime.ui)
implementation(libs.circuitx.android)
implementation(libs.circuitx.gestureNav)
implementation(libs.circuitx.overlays)
implementation(libs.coil.base)
implementation(libs.coil.compose)
implementation(libs.coil.compose.base)
implementation(libs.coil.default)
implementation(libs.coil.gif)
implementation(libs.collapsingToolbar)
implementation(libs.errorProneAnnotations)
implementation(libs.fileSize)
implementation(libs.firebase.core)
implementation(libs.firebase.database)
implementation(libs.kotlin.coroutines)
implementation(libs.kotlin.coroutinesAndroid)
implementation(libs.kotlin.datetime)
implementation(libs.kotlinx.immutable)
implementation(libs.markdown)
implementation(libs.misc.byteunits)
implementation(libs.misc.composeSettings.base)
implementation(libs.misc.composeSettings.datastore)
implementation(libs.misc.debug.processPhoenix)
implementation(libs.misc.moshiLazyAdapters)
implementation(libs.misc.okio)
implementation(libs.misc.tapTargetView)
implementation(libs.misc.timber)
implementation(libs.moshi.core)
implementation(libs.moshi.shimo)
implementation(libs.okhttp.core)
implementation(libs.retrofit.core)
implementation(libs.sqldelight.driver.android)
implementation(libs.sqldelight.paging)
implementation(libs.sqldelight.primitiveAdapters)
implementation(libs.sqldelight.runtime)
implementation(libs.telephoto.zoomable)
implementation(libs.telephoto.zoomableImage)
implementation(libs.telephoto.zoomableImageCoil)
implementation(libs.xmlutil.serialization)
implementation(projects.bookmarks)
implementation(projects.bookmarks.db)
implementation(projects.libraries.appconfig)
implementation(projects.libraries.auth)
implementation(projects.libraries.baseUi)
implementation(projects.libraries.composeExtensions)
implementation(projects.libraries.deeplinking)
implementation(projects.libraries.di)
implementation(projects.libraries.di.android)
implementation(projects.libraries.flowbinding)
implementation(projects.libraries.gemoji)
implementation(projects.libraries.gemoji.db)
implementation(projects.libraries.kotlinutil)
implementation(projects.libraries.sqldelightExtensions)
implementation(projects.libraries.summarizer)
implementation(projects.libraries.unfurler)
implementation(projects.libraries.util)
implementation(projects.serviceApi)
implementation(projects.serviceDb)
implementation(projects.services.dribbble)
implementation(projects.services.github)
implementation(projects.services.hackernews)
implementation(projects.services.producthunt)
implementation(projects.services.reddit)
implementation(projects.services.slashdot)
implementation(projects.services.unsplash)
implementation(projects.services.uplabs)

releaseImplementation(libs.misc.bugsnag)
releaseImplementation(libs.misc.leakCanaryObjectWatcherAndroid)
Expand Down
42 changes: 6 additions & 36 deletions app-scaffold/src/main/kotlin/catchup/app/data/LinkManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.pm.PackageManager
import android.net.Uri
import androidx.annotation.RequiresApi
import androidx.browser.customtabs.CustomTabColorSchemeParams
import androidx.browser.customtabs.CustomTabsIntent
import androidx.collection.ArrayMap
Expand All @@ -32,6 +30,7 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.graphics.toComposeRect
import androidx.compose.ui.unit.Density
import androidx.core.net.toUri
import androidx.window.layout.WindowMetricsCalculator
import catchup.app.CatchUpPreferences
import catchup.app.service.LinkHandler
Expand All @@ -43,17 +42,13 @@ import catchup.di.AppScope
import catchup.di.SingleIn
import catchup.flowbinding.intentReceivers
import catchup.util.isInNightMode
import catchup.util.kotlin.any
import catchup.util.kotlin.mergeWith
import com.squareup.anvil.annotations.ContributesBinding
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
import okhttp3.HttpUrl
import timber.log.Timber
Expand Down Expand Up @@ -136,7 +131,7 @@ constructor(
override suspend fun openUrl(url: HttpUrl, accentColor: Color): Boolean {
val context = currentActivity ?: return false
// TODO this isn't great, should we make a StateFlow backed by this?
val uri = Uri.parse(url.toString())
val uri = url.toString().toUri()
if (!catchUpPreferences.smartlinkingGlobal.first()) {
Timber.tag("LinkManager").d("Smartlinking disabled, skipping query")
openCustomTab(context, uri, accentColor)
Expand All @@ -159,18 +154,13 @@ constructor(
}
}

private suspend fun queryAndOpen(
private fun queryAndOpen(
context: Context,
uri: Uri,
intent: Intent,
accentColor: Color,
): Boolean {
val matchedUri =
if (appConfig.isSdkAtLeast(30)) {
queryAndOpen30(context, intent)
} else {
queryAndOpenLegacy(context, intent)
}
val matchedUri = queryAndOpen(context, intent)

return if (matchedUri) {
dumbCache[uri.host] = true
Expand All @@ -185,33 +175,13 @@ constructor(
* On API 30+, we can't query activities to handle intents. Instead, we do an old-fashioned
* try/catch.
*/
@RequiresApi(30)
private fun queryAndOpen30(context: Context, inputIntent: Intent): Boolean {
private fun queryAndOpen(context: Context, inputIntent: Intent): Boolean {
val intent =
Intent(inputIntent).apply { flags = flags or Intent.FLAG_ACTIVITY_REQUIRE_NON_BROWSER }
return try {
context.startActivity(intent)
true
} catch (e: ActivityNotFoundException) {
false
}
}

private suspend fun queryAndOpenLegacy(context: Context, intent: Intent): Boolean {
val manager = context.packageManager
val hasMatch =
flow {
manager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY).forEach {
emit(it)
}
}
.flowOn(Dispatchers.IO)
.any { resolveInfo -> isSpecificUriMatch(resolveInfo.match) }

return if (hasMatch) {
context.startActivity(intent)
true
} else {
} catch (_: ActivityNotFoundException) {
false
}
}
Expand Down
Loading

0 comments on commit dbf8b5f

Please sign in to comment.