Fixed
Status Update
Comments
hu...@google.com <hu...@google.com>
js...@google.com <js...@google.com>
js...@google.com <js...@google.com>
js...@google.com <js...@google.com>
an...@google.com <an...@google.com> #2
Realized this also affects effectively-sealed classes (no public or protected constructors). We should consider adding ClassItem.isEffectivelySealed()
to match.
We have three options for the logic:
- Search
Codebase
for all descendent classes of each effectively sealed class and only consider the ancestor class effectively final if all its descendents are concrete or effectively sealed. This matches the behavior inherent to the language. - Disallow sealed (possibly also effectively sealed) classes from having abstract descendents altogether. This limits some potentially valid APIs (E.g.: ADT that the client extends) but might be worth doing if we think this is a bad API pattern.
- Disallow adding abstract methods to any abstract class or interface altogether. This checks is the only exception to rule against adding abstract methods, and maybe it's better to never add abstract methods to existing public classes.
an...@google.com <an...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
Author: George Mount <
Link:
Revert^2 "Add requestFocus(FocusDirection) to focusRequester"
Expand for full commit details
Revert^2 "Add requestFocus(FocusDirection) to focusRequester"
This reverts commit 274c9242bfe89dad5aeb7179750d45fa64c6ab80.
Reason for revert: The original CL was correct. The revert was incorrect.
Relnote: "Adds requestFocus(FocusDirection) to both focusRequester and
FocusTargetModifierNode to allow focusing with a specific
direction."
Bug: 220960090
Test: new test
Change-Id: I96b97720a65d2e1bf8d7f845dc05844f7e7f565c
Files:
- M
compose/ui/ui/api/1.8.0-beta01.txt
- M
compose/ui/ui/api/current.ignore
- M
compose/ui/ui/api/current.txt
- M
compose/ui/ui/api/restricted_1.8.0-beta01.txt
- M
compose/ui/ui/api/restricted_current.ignore
- M
compose/ui/ui/api/restricted_current.txt
- M
compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/focus/ExplicitEnterExitWithCustomFocusEnterExitDemo.kt
- M
compose/ui/ui/src/androidInstrumentedTest/kotlin/androidx/compose/ui/focus/RequestFocusTest.kt
- M
compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeView.android.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusOwnerImpl.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusRequester.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusTargetModifierNode.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusTargetNode.kt
- M
compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/focus/FocusTransactions.kt
Hash: fb5d4a3eebdbc0cd3034d11eae8e00f507ec1a68
Date: Wed Nov 06 19:23:12 2024
Description
When @Parcelize support was added for sealed classes the final implementation also included support for sealed interfaces , however Lint still gives the following warning for deriving classes:
Sample snippet:
This warning was fixed for the sealed class case in a previous issue , but sealed interfaces still report the warning, requiring the annotation on each child to remove the warning despite the code running successfully with just the parent annotation.
Studio Build: #AI-242.23339.11.2421.12483815
Version of Gradle Plugin: 8.3.1
Version of Gradle: 8.11
OS: MacOS 15.2