Status Update
Comments
wh...@gmail.com <wh...@gmail.com> #2
Doc changes when unhiding the API:
- WebMessageListener does not support ARRAY_BUFFER, review docs to make sure it clearly documented.
- WebMessageCompat: document
getData
andgetArrayBuffer
will return null, unlessgetType
is equal to string or array buffer. - WebMessagePortCompat: review docs and make sure new type is updated.
[Deleted User] <[Deleted User]> #3
Branch: androidx-main
commit ab44a8fb40979c6790385beeb83e7d52378a0212
Author: Richard He <linyhe@microsoft.com>
Date: Thu Sep 29 17:58:19 2022
Add ArrayBuffer support in WebMessageCompat.
This add a new type (ArrayBuffer) in WebMessageCompat, which can be
send from App to Chromium and vice versa. A transferable ArrayBuffer
from JavaScript is also supported.
Since the new type is not supported by framework,
`WebMessagePort#setWebMessageCallback` changed the behavior to use
WebView impl first.
And the following PostMessage API uses WebView impl if the
WebMessage typs is not support by framework:
- WebMessagePort#postMessage
- WebViewCompat#postWebMessage
To keep backwords competibility, the following APIs do not throw
exception when the type is not correct.
- String WebMessageCompat#getData
- Byte[] WebMessageCompat#getArrayBuffer
Design doc:
Test: Added WebViewWebMessageCompatTest
Change-Id: I705512d2be14315831599ceb98e37be300fa5591
Bug: 251152171
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
A webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
A webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
M webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
A webkit/integration-tests/testapp/src/main/assets/www/web_message_compat.html
M webkit/integration-tests/testapp/src/main/AndroidManifest.xml
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageCallbackAdapter.java
A webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePortImpl.java
A webkit/integration-tests/testapp/src/main/res/layout/activity_web_message_compat.xml
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
M webkit/integration-tests/testapp/src/main/res/values/donottranslate-strings.xml
il...@google.com <il...@google.com> #4
The following release(s) address this bug:
androidx.webkit:webkit:1.6.0-alpha02
jo...@jossiwolf.de <jo...@jossiwolf.de> #5
Branch: androidx-main
commit f0be00e0c911751fe832ea99d88f6b30e25e124e
Author: Richard He <linyhe@microsoft.com>
Date: Fri Apr 21 13:56:44 2023
Add ArrayBuffer support in WebMessageListener
This CL adds ArrayBuffer type support in WebMessageListener,
which can be send from App to Chromium and vice versa.
A new public API in JavaScriptReplyProxy is added to post
ArrayBuffer to Web. For receiving ArrayBuffer from Web,
WebMessageListener#onPostMessage reuses `WebMessageCompat`, which
added ArrayBuffer support in previous CL, see:
I705512d2be14315831599ceb98e37be300fa5591.
This CL also rename feature flag from
`WEB_MESSAGE_GET_MESSAGE_PAYLOAD` to `WEB_MESSAGE_ARRAY_BUFFER`.
Design doc:
Test: Add in WebViewWebMessageListenerTest
Bug: 251152171
Change-Id: I3e30d6524187b508b714e41844cfbb3c4e36d75b
M webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html
M webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
M webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerActivity.java
M webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
M webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
M webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
M webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
jo...@jossiwolf.de <jo...@jossiwolf.de> #6
il...@google.com <il...@google.com>
de...@gmail.com <de...@gmail.com> #7
Branch: androidx-main
commit bf75ca82f3a2182d583436a85f466396cf2f4f72
Author: Richard He <linyhe@microsoft.com>
Date: Thu May 18 14:47:22 2023
Unhide API for WEB_MESSAGE_ARRAY_BUFFER feature.
This CL unhides the public API related to ArrayBuffer support in
WebMessageCompat, WebMessagePortCompat and JsReplyProxy.
Lint baseline: Like WebMessageCompat String constructor, this
change still use WebMessagePortCompat array as parameter.
Fixes: 251152171
Test: ./gradlew :webkit:webkit:checkApi
Test: ./gradlew :webkit:webkit:verifyDependencyVersions
Relnote: "Add support for passing ArrayBuffer over
`WebMessagePortCompat#postMessage`, `JsReplyProxy#postMessage`
and `WebViewCompat#postWebMessage`, receiving ArrayBuffer from
JavaScript over `WebMessagePortCompat` and `WebMessageListener`,
and receiving transferable ArrayBuffer from JavaScript over
`WebMessagePortCompat`."
Change-Id: Ie756728c63c528c3e36417f7719cead78d7c99eb
M webkit/webkit/api/api_lint.ignore
M webkit/webkit/api/current.txt
M webkit/webkit/api/restricted_current.txt
A webkit/webkit/src/androidTest/java/androidx/webkit/WebMessageCompatUnitTest.java
M webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessagePortCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
pa...@gmail.com <pa...@gmail.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.webkit:webkit:1.8.0-alpha01
il...@google.com <il...@google.com> #9
Re
BottomSheetDialogFragment
, which is what you'd use in a fragment based system, has been supported since dialog
destinations were added in
ap...@google.com <ap...@google.com> #10
Branch: androidx-main
commit d65d5731e4f0dfe560b43eae886a4fabfa949b84
Author: Jeremy Woods <jbwoods@google.com>
Date: Wed Feb 21 02:14:42 2024
Add Navigation Material from Accompanists to androidx
Now that the needed compose material API are stable, we can move the
navigation material module from Accompanists to Androidx. This means we
will have a new compose-material-navigation module that provides support
for bottomsheets.
RelNote: "Providing new Compose Material Navigation module that adds
support for Bottomsheets in Compose Material."
Test: Added tests and samples
Bug: 180247978
Change-Id: Ia93eb757a32b04dac8ab3ebd2d73207a68635b80
A compose/material/material-navigation/api/current.txt
A compose/material/material-navigation/api/res-current.txt
A compose/material/material-navigation/api/restricted_current.txt
A compose/material/material-navigation/build.gradle
A compose/material/material-navigation/samples/build.gradle
A compose/material/material-navigation/samples/src/main/java/androidx/compose/material/navigation/samples/ComposeMaterialNavigationSamples.kt
A compose/material/material-navigation/src/androidTest/java/androidx/compose/material/navigation/BottomSheetNavigatorTest.kt
A compose/material/material-navigation/src/androidTest/java/androidx/compose/material/navigation/NavGraphBuilderTest.kt
A compose/material/material-navigation/src/androidTest/java/androidx/compose/material/navigation/SheetContentHostTest.kt
A compose/material/material-navigation/src/main/java/androidx/compose/material/navigation/BottomSheet.kt
A compose/material/material-navigation/src/main/java/androidx/compose/material/navigation/BottomSheetNavigator.kt
A compose/material/material-navigation/src/main/java/androidx/compose/material/navigation/NavGraphBuilder.kt
A compose/material/material-navigation/src/main/java/androidx/compose/material/navigation/SheetContentHost.kt
M compose/material/material/integration-tests/material-demos/build.gradle
M compose/material/material/integration-tests/material-demos/src/main/java/androidx/compose/material/demos/MaterialDemos.kt
M compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
M docs-tip-of-tree/build.gradle
M settings.gradle
jb...@google.com <jb...@google.com> #11
This has been added internally and will be released as part of the compose.material
library, not navigation.
na...@google.com <na...@google.com> #12
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material:material:1.7.0-alpha04
androidx.compose.material:material-android:1.7.0-alpha04
androidx.compose.material:material-desktop:1.7.0-alpha04
d....@gmail.com <d....@gmail.com> #13
gs...@gmail.com <gs...@gmail.com> #14
I guess the release that addresses this is actually:
androidx.compose.material:material-navigation:1.7.0-alpha04
As #13 said, we are missing this for Material3 bottom sheets.
I see that there's another issue tracking that here:
v....@temper.works <v....@temper.works> #15
Some guidance about usage would be very welcome. I get java.lang.IllegalStateException: Could not find Navigator with name "bottomSheet". You must call NavController.addNavigator() for each navigation type.
crash and can't find any proper example of this new extension usage:
Scaffold(
bottomBar = {...}
) { innerPadding ->
NavHost(
navController,
startDestination = "explore_graph",
Modifier.fillMaxSize()
) {
// nested graphs
bottomSheet("profile_bottom_sheet") { // CRASHES
Text("Bottom Sheet", Modifier.padding(16.dp))
}
}
}
}
}
}
}
I use androidx.compose.material:material-navigation:1.7.0-beta01
, but my project is material3, could it be the reason?
il...@google.com <il...@google.com> #16
Re
val bottomSheetNavigator = rememberBottomSheetNavigator()
val navController = rememberNavController(bottomSheetNavigator)
If you don't use those lines, you'd get that error message.
Description
Version used: 1.0.0-alpha06
It would be useful to integrate with BottomSheetScaffold so we could treat bottom sheets as navigation destinations. For example, I could call `navController.navigate(someBottomSheetRoute)` to launch a bottom sheet.