Skip to content

Commit 9b4c22c

Browse files
committed
Update to material3-adaptive alpha10
Change-Id: I810c36323a35c445c22dd3876c52df0360a5cb48
1 parent 0be0bc1 commit 9b4c22c

File tree

3 files changed

+52
-123
lines changed

3 files changed

+52
-123
lines changed

app/dependencies/prodReleaseRuntimeClasspath.txt

Lines changed: 50 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ androidx.activity:activity-compose:1.8.0
22
androidx.activity:activity-ktx:1.8.0
33
androidx.activity:activity:1.8.0
44
androidx.annotation:annotation-experimental:1.4.0
5-
androidx.annotation:annotation-jvm:1.7.1
6-
androidx.annotation:annotation:1.7.1
5+
androidx.annotation:annotation-jvm:1.8.0-beta01
6+
androidx.annotation:annotation:1.8.0-beta01
77
androidx.appcompat:appcompat-resources:1.6.1
88
androidx.appcompat:appcompat:1.6.1
99
androidx.arch.core:core-common:2.2.0
@@ -13,20 +13,20 @@ androidx.browser:browser:1.8.0
1313
androidx.collection:collection-jvm:1.4.0
1414
androidx.collection:collection-ktx:1.4.0
1515
androidx.collection:collection:1.4.0
16-
androidx.compose.animation:animation-android:1.6.3
17-
androidx.compose.animation:animation-core-android:1.6.3
18-
androidx.compose.animation:animation-core:1.6.3
19-
androidx.compose.animation:animation:1.6.3
16+
androidx.compose.animation:animation-android:1.7.0-alpha06
17+
androidx.compose.animation:animation-core-android:1.7.0-alpha06
18+
androidx.compose.animation:animation-core:1.7.0-alpha06
19+
androidx.compose.animation:animation:1.7.0-alpha06
2020
androidx.compose.foundation:foundation-android:1.6.3
2121
androidx.compose.foundation:foundation-layout-android:1.6.3
2222
androidx.compose.foundation:foundation-layout:1.6.3
2323
androidx.compose.foundation:foundation:1.6.3
24-
androidx.compose.material3.adaptive:adaptive-android:1.0.0-alpha08
25-
androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-alpha08
26-
androidx.compose.material3.adaptive:adaptive-layout:1.0.0-alpha08
27-
androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-alpha08
28-
androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha08
29-
androidx.compose.material3.adaptive:adaptive:1.0.0-alpha08
24+
androidx.compose.material3.adaptive:adaptive-android:1.0.0-alpha10
25+
androidx.compose.material3.adaptive:adaptive-layout-android:1.0.0-alpha10
26+
androidx.compose.material3.adaptive:adaptive-layout:1.0.0-alpha10
27+
androidx.compose.material3.adaptive:adaptive-navigation-android:1.0.0-alpha10
28+
androidx.compose.material3.adaptive:adaptive-navigation:1.0.0-alpha10
29+
androidx.compose.material3.adaptive:adaptive:1.0.0-alpha10
3030
androidx.compose.material3:material3-android:1.2.1
3131
androidx.compose.material3:material3-window-size-class-android:1.2.1
3232
androidx.compose.material3:material3-window-size-class:1.2.1
@@ -37,25 +37,25 @@ androidx.compose.material:material-icons-extended-android:1.6.3
3737
androidx.compose.material:material-icons-extended:1.6.3
3838
androidx.compose.material:material-ripple-android:1.6.3
3939
androidx.compose.material:material-ripple:1.6.3
40-
androidx.compose.runtime:runtime-android:1.6.3
41-
androidx.compose.runtime:runtime-saveable-android:1.6.3
42-
androidx.compose.runtime:runtime-saveable:1.6.3
40+
androidx.compose.runtime:runtime-android:1.7.0-alpha06
41+
androidx.compose.runtime:runtime-saveable-android:1.7.0-alpha06
42+
androidx.compose.runtime:runtime-saveable:1.7.0-alpha06
4343
androidx.compose.runtime:runtime-tracing:1.0.0-beta01
44-
androidx.compose.runtime:runtime:1.6.3
45-
androidx.compose.ui:ui-android:1.6.3
46-
androidx.compose.ui:ui-geometry-android:1.6.3
47-
androidx.compose.ui:ui-geometry:1.6.3
48-
androidx.compose.ui:ui-graphics-android:1.6.3
49-
androidx.compose.ui:ui-graphics:1.6.3
50-
androidx.compose.ui:ui-text-android:1.6.3
51-
androidx.compose.ui:ui-text:1.6.3
52-
androidx.compose.ui:ui-tooling-preview-android:1.6.3
53-
androidx.compose.ui:ui-tooling-preview:1.6.3
54-
androidx.compose.ui:ui-unit-android:1.6.3
55-
androidx.compose.ui:ui-unit:1.6.3
56-
androidx.compose.ui:ui-util-android:1.6.3
57-
androidx.compose.ui:ui-util:1.6.3
58-
androidx.compose.ui:ui:1.6.3
44+
androidx.compose.runtime:runtime:1.7.0-alpha06
45+
androidx.compose.ui:ui-android:1.7.0-alpha06
46+
androidx.compose.ui:ui-geometry-android:1.7.0-alpha06
47+
androidx.compose.ui:ui-geometry:1.7.0-alpha06
48+
androidx.compose.ui:ui-graphics-android:1.7.0-alpha06
49+
androidx.compose.ui:ui-graphics:1.7.0-alpha06
50+
androidx.compose.ui:ui-text-android:1.7.0-alpha06
51+
androidx.compose.ui:ui-text:1.7.0-alpha06
52+
androidx.compose.ui:ui-tooling-preview-android:1.7.0-alpha06
53+
androidx.compose.ui:ui-tooling-preview:1.7.0-alpha06
54+
androidx.compose.ui:ui-unit-android:1.7.0-alpha06
55+
androidx.compose.ui:ui-unit:1.7.0-alpha06
56+
androidx.compose.ui:ui-util-android:1.7.0-alpha06
57+
androidx.compose.ui:ui-util:1.7.0-alpha06
58+
androidx.compose.ui:ui:1.7.0-alpha06
5959
androidx.compose:compose-bom:2024.02.02
6060
androidx.concurrent:concurrent-futures:1.1.0
6161
androidx.core:core-ktx:1.12.0
@@ -74,26 +74,32 @@ androidx.emoji2:emoji2-views-helper:1.3.0
7474
androidx.emoji2:emoji2:1.3.0
7575
androidx.exifinterface:exifinterface:1.3.7
7676
androidx.fragment:fragment:1.5.1
77+
androidx.graphics:graphics-path:1.0.0-beta02
7778
androidx.hilt:hilt-common:1.1.0
7879
androidx.hilt:hilt-navigation-compose:1.2.0
7980
androidx.hilt:hilt-navigation:1.2.0
8081
androidx.hilt:hilt-work:1.1.0
8182
androidx.interpolator:interpolator:1.0.0
8283
androidx.legacy:legacy-support-core-utils:1.0.0
83-
androidx.lifecycle:lifecycle-common-java8:2.7.0
84-
androidx.lifecycle:lifecycle-common:2.7.0
85-
androidx.lifecycle:lifecycle-livedata-core-ktx:2.7.0
86-
androidx.lifecycle:lifecycle-livedata-core:2.7.0
87-
androidx.lifecycle:lifecycle-livedata:2.7.0
88-
androidx.lifecycle:lifecycle-process:2.7.0
89-
androidx.lifecycle:lifecycle-runtime-compose:2.7.0
90-
androidx.lifecycle:lifecycle-runtime-ktx:2.7.0
91-
androidx.lifecycle:lifecycle-runtime:2.7.0
92-
androidx.lifecycle:lifecycle-service:2.7.0
93-
androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0
94-
androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0
95-
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.7.0
96-
androidx.lifecycle:lifecycle-viewmodel:2.7.0
84+
androidx.lifecycle:lifecycle-common-java8:2.8.0-alpha04
85+
androidx.lifecycle:lifecycle-common-jvm:2.8.0-alpha04
86+
androidx.lifecycle:lifecycle-common:2.8.0-alpha04
87+
androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.0-alpha04
88+
androidx.lifecycle:lifecycle-livedata-core:2.8.0-alpha04
89+
androidx.lifecycle:lifecycle-livedata:2.8.0-alpha04
90+
androidx.lifecycle:lifecycle-process:2.8.0-alpha04
91+
androidx.lifecycle:lifecycle-runtime-android:2.8.0-alpha04
92+
androidx.lifecycle:lifecycle-runtime-compose:2.8.0-alpha04
93+
androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.0-alpha04
94+
androidx.lifecycle:lifecycle-runtime-ktx:2.8.0-alpha04
95+
androidx.lifecycle:lifecycle-runtime:2.8.0-alpha04
96+
androidx.lifecycle:lifecycle-service:2.8.0-alpha04
97+
androidx.lifecycle:lifecycle-viewmodel-android:2.8.0-alpha04
98+
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.0-alpha04
99+
androidx.lifecycle:lifecycle-viewmodel-compose:2.8.0-alpha04
100+
androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.0-alpha04
101+
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.0-alpha04
102+
androidx.lifecycle:lifecycle-viewmodel:2.8.0-alpha04
97103
androidx.loader:loader:1.0.0
98104
androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
99105
androidx.metrics:metrics-performance:1.0.0-alpha04

app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt

Lines changed: 1 addition & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,15 @@
1717
package com.google.samples.apps.nowinandroid.ui.interests2pane
1818

1919
import androidx.activity.compose.BackHandler
20-
import androidx.compose.foundation.layout.PaddingValues
21-
import androidx.compose.foundation.layout.WindowInsets
2220
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
23-
import androidx.compose.material3.adaptive.Posture
24-
import androidx.compose.material3.adaptive.WindowAdaptiveInfo
25-
import androidx.compose.material3.adaptive.allVerticalHingeBounds
26-
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
27-
import androidx.compose.material3.adaptive.layout.HingePolicy
2821
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffold
2922
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole
3023
import androidx.compose.material3.adaptive.layout.PaneAdaptedValue
31-
import androidx.compose.material3.adaptive.layout.PaneScaffoldDirective
32-
import androidx.compose.material3.adaptive.layout.calculateStandardPaneScaffoldDirective
3324
import androidx.compose.material3.adaptive.navigation.ThreePaneScaffoldNavigator
3425
import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaffoldNavigator
35-
import androidx.compose.material3.adaptive.occludingVerticalHingeBounds
36-
import androidx.compose.material3.adaptive.separatingVerticalHingeBounds
3726
import androidx.compose.runtime.Composable
3827
import androidx.compose.runtime.LaunchedEffect
3928
import androidx.compose.runtime.getValue
40-
import androidx.compose.ui.geometry.Rect
41-
import androidx.compose.ui.unit.Dp
42-
import androidx.compose.ui.unit.dp
4329
import androidx.hilt.navigation.compose.hiltViewModel
4430
import androidx.lifecycle.compose.collectAsStateWithLifecycle
4531
import androidx.navigation.NavGraphBuilder
@@ -48,7 +34,6 @@ import androidx.navigation.compose.NavHost
4834
import androidx.navigation.compose.composable
4935
import androidx.navigation.compose.rememberNavController
5036
import androidx.navigation.navArgument
51-
import androidx.window.core.layout.WindowWidthSizeClass
5237
import com.google.samples.apps.nowinandroid.feature.interests.InterestsRoute
5338
import com.google.samples.apps.nowinandroid.feature.interests.navigation.INTERESTS_ROUTE
5439
import com.google.samples.apps.nowinandroid.feature.interests.navigation.TOPIC_ID_ARG
@@ -91,12 +76,7 @@ internal fun InterestsListDetailScreen(
9176
selectedTopicId: String?,
9277
onTopicClick: (String) -> Unit,
9378
) {
94-
val scaffoldDirective = calculateNoContentPaddingScaffoldDirective(
95-
currentWindowAdaptiveInfo(),
96-
)
97-
val listDetailNavigator = rememberListDetailPaneScaffoldNavigator<Nothing>(
98-
scaffoldDirective = scaffoldDirective,
99-
)
79+
val listDetailNavigator = rememberListDetailPaneScaffoldNavigator()
10080
BackHandler(listDetailNavigator.canNavigateBack()) {
10181
listDetailNavigator.navigateBack()
10282
}
@@ -136,7 +116,6 @@ internal fun InterestsListDetailScreen(
136116
}
137117
}
138118
},
139-
windowInsets = WindowInsets(0, 0, 0, 0),
140119
)
141120
LaunchedEffect(Unit) {
142121
if (selectedTopicId != null) {
@@ -153,59 +132,3 @@ private fun <T> ThreePaneScaffoldNavigator<T>.isListPaneVisible(): Boolean =
153132
@OptIn(ExperimentalMaterial3AdaptiveApi::class)
154133
private fun <T> ThreePaneScaffoldNavigator<T>.isDetailPaneVisible(): Boolean =
155134
scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded
156-
157-
/**
158-
* This is a direct clone of [calculateStandardPaneScaffoldDirective] with the only change of
159-
* passing 0 content padding to the panes.
160-
*/
161-
@OptIn(ExperimentalMaterial3AdaptiveApi::class)
162-
private fun calculateNoContentPaddingScaffoldDirective(
163-
windowAdaptiveInfo: WindowAdaptiveInfo,
164-
verticalHingePolicy: HingePolicy = HingePolicy.AvoidSeparating,
165-
): PaneScaffoldDirective {
166-
val maxHorizontalPartitions: Int
167-
val verticalSpacerSize: Dp
168-
when (windowAdaptiveInfo.windowSizeClass.windowWidthSizeClass) {
169-
WindowWidthSizeClass.COMPACT -> {
170-
maxHorizontalPartitions = 1
171-
verticalSpacerSize = 0.dp
172-
}
173-
WindowWidthSizeClass.MEDIUM -> {
174-
maxHorizontalPartitions = 1
175-
verticalSpacerSize = 0.dp
176-
}
177-
else -> {
178-
maxHorizontalPartitions = 2
179-
verticalSpacerSize = 24.dp
180-
}
181-
}
182-
val maxVerticalPartitions: Int
183-
val horizontalSpacerSize: Dp
184-
185-
if (windowAdaptiveInfo.windowPosture.isTabletop) {
186-
maxVerticalPartitions = 2
187-
horizontalSpacerSize = 24.dp
188-
} else {
189-
maxVerticalPartitions = 1
190-
horizontalSpacerSize = 0.dp
191-
}
192-
193-
return PaneScaffoldDirective(
194-
PaddingValues(0.dp),
195-
maxHorizontalPartitions,
196-
verticalSpacerSize,
197-
maxVerticalPartitions,
198-
horizontalSpacerSize,
199-
getExcludedVerticalBounds(windowAdaptiveInfo.windowPosture, verticalHingePolicy),
200-
)
201-
}
202-
203-
@OptIn(ExperimentalMaterial3AdaptiveApi::class)
204-
private fun getExcludedVerticalBounds(posture: Posture, hingePolicy: HingePolicy): List<Rect> {
205-
return when (hingePolicy) {
206-
HingePolicy.AvoidSeparating -> posture.separatingVerticalHingeBounds
207-
HingePolicy.AvoidOccluding -> posture.occludingVerticalHingeBounds
208-
HingePolicy.AlwaysAvoid -> posture.allVerticalHingeBounds
209-
else -> emptyList()
210-
}
211-
}

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ androidxAppCompat = "1.6.1"
99
androidxBrowser = "1.8.0"
1010
androidxComposeBom = "2024.02.02"
1111
androidxComposeCompiler = "1.5.8"
12-
androidxComposeMaterial3Adaptive = "1.0.0-alpha08"
12+
androidxComposeMaterial3Adaptive = "1.0.0-alpha10"
1313
androidxComposeRuntimeTracing = "1.0.0-beta01"
1414
androidxCore = "1.12.0"
1515
androidxCoreSplashscreen = "1.0.1"

0 commit comments

Comments
 (0)