thailanrg
04/17/2025, 8:55 PMthailanrg
04/17/2025, 9:01 PMjava.util.zip.ZipException: zip END header not found
. I ran a build scan and this was the resultSlackbot
04/18/2025, 8:13 AMAndi
04/18/2025, 9:24 AMPoonam
04/18/2025, 9:38 AMSlackbot
04/18/2025, 11:14 AMNitesh Singh
04/19/2025, 12:36 PMVivek Modi
04/19/2025, 12:47 PMbuild.gradle.kts
file.Nitesh Singh
04/20/2025, 9:04 AMHarjot Singh
04/22/2025, 1:56 PMbuszi0809
04/22/2025, 8:18 PMsetFragmentResultListener
pattern, but is designed to be modular, minimal, and easy to drop into both Compose and Fragment projects—no matter what navigation library you use.
A few things I focused on:
• Decoupling producers and consumers of navigation results
• Preserving results across configuration changes and process death
• Supporting mixed projects (Compose + Fragments)
• Keeping dependencies minimal
There’s a sample app in the repo showing both Compose and Fragment usage. Feedback, bug reports, and feature requests are all welcome! (via Github Issues)
Repo: https://github.com/buszi/Boomerangneuber
04/23/2025, 9:16 PMmattinger
04/24/2025, 1:40 PM@OptIn(ExperimentalMaterial3Api::class)
@Composable
@Preview
fun ModalBottomSheetPreview() {
ModalBottomSheet(
sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true),
onDismissRequest = {}
) {
Column(modifier = Modifier.verticalScroll(rememberScrollState())){
(0..100).forEach {
Text(text = "Text${it}")
}
}
}
}
thailanrg
04/28/2025, 5:21 PMSlackbot
04/30/2025, 1:48 PMEdric Chan
05/02/2025, 7:41 AMkotlinOptions
extension on AGP's extension DSLs, as I'm now getting a compile-time error regarding KotlinJvmOptions
when attempting to sync my project:
e: file///<project>/buildSrc/build/generated sources/kotlin dsl accessors/kotlin/gradle/kotlin/dsl/accessors/ 90f4d750eb0eb7c178e5c9286b37eba5/Accessorsddyeb7w41u46k0luktll7npb.kt65:96 Using 'KotlinJvmOptions' is an error. Please migrate to the compilerOptions DSL. More details are here: https://kotl.in/u1r8lnwhich links to
/**
* Retrieves the [kotlinOptions][org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions] extension.
*/
internal
val com.android.build.gradle.LibraryExtension.`kotlinOptions`: org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions get() =
(this as org.gradle.api.plugins.ExtensionAware).extensions.getByName("kotlinOptions") as org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
/**
* Configures the [kotlinOptions][org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions] extension.
*/
internal
fun com.android.build.gradle.LibraryExtension.`kotlinOptions`(configure: Action<org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions>): Unit =
(this as org.gradle.api.plugins.ExtensionAware).extensions.configure("kotlinOptions", configure)
Nitish
05/05/2025, 9:21 AMAsadullah Nadeem
05/05/2025, 9:28 AMUsman
05/06/2025, 5:03 AMUsman
05/06/2025, 6:12 AMdead.fish
05/07/2025, 7:22 AMwhen (someSealedThing) { SomeOption -> Unit; SomeOtherOption -> { ... } }
is used, Kotlin 2.1.20 now reports for SomeOption -> Unit
the warning "Expression is unused". If I change this to SomeOption -> { }
it's all fine.Timz Owen
05/07/2025, 8:05 PMYusuf Ibragimov
05/08/2025, 6:44 AMHinaka
05/08/2025, 10:05 AMFragmentArgs
classes are generated correctly and the project builds and runs fine, but Android Studio still shows them as unresolved (red). It's pretty annoying since there's no autocomplete or type reference support in the IDE. Anyone found a fix for this?Jose Monteiro
05/09/2025, 9:17 AMcompileOnly
in our application, to get access to some `@SystemApi`s or @hide
, however starting with 2.1.20 classes that are hidden are still working but @SystemApi
methods no longer resolve. I managed to get around it by setting the library manually in the KotlinCompile
task like so tasks.withType(KotlinCompile::class.java) { libraries.setFrom("pathToLib") }
.
We could have also stripped the @SystemApi
annotation from the sources but we didn't want to rebuild it and have to maintain all those changes.
Is anyone aware that this change was intensional? simply making the compile stricter in relation to its dependencies?Andi
05/11/2025, 7:14 AMMohammad Zaki
05/11/2025, 9:47 AM0xf1f1
05/11/2025, 3:06 PMsealed interface/sealed class
and using copy()
, how does one create common functions that are shared by all the inheriting data classes without repeating the code ? See changeFooVal()
below. The function performs the exact same operation for all data classes which makes it repetitive + more lines/maintenance overhead.
sealed interface Foo {
val fooVal: String
data class FooX(val fooVal: String) {
fun changeFooVal(value: String): FooX = copy(fooVal = value)
}
data class FooY(val fooVal: String) {
fun changeFooVal(value: String): FooY = copy(fooVal = value)
}
}
Pablo
05/12/2025, 11:40 AMreactormonk
05/12/2025, 6:31 PM@Parcelize
to generate me the CREATOR
for this class:
interface Ringing {
val token: String
val other: Uuid
}
interface NoCall
@Parcelize
sealed class JCallState: Parcelable {
data class IncomingRing(val caller: Uuid, override val token: String) : Ringing, JCallState() {
override val other: Uuid
get() = caller
}
data class OutgoingRing(val callee: Uuid, override val token: String) : Ringing, JCallState() {
override val other: Uuid
get() = callee
}
data class Connecting(val callee: Uuid) : JCallState()
data class InCall(val other: Uuid, val token: String) : JCallState()
data class Rejected(val other: Uuid) : NoCall, JCallState()
data class HungUp(val x: String = "foo") : NoCall, JCallState()
}
But when trying to use it in aidl via
parcelable JCallState;
It tells me there is no CREATOR
.