Skip to content

Commit 754997d

Browse files
authored
Merge pull request #480 from tiwiz/ro-update-ls-to-m3-140-alpha4
Update Canonical Layouts to M3 alpha 1.4.0-alpha04
2 parents 5a9cfd8 + eeb3e9a commit 754997d

File tree

8 files changed

+81
-45
lines changed

8 files changed

+81
-45
lines changed

CanonicalLayouts/list-detail-compose/app/build.gradle

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
plugins {
1717
id 'com.android.application'
1818
id 'org.jetbrains.kotlin.android'
19-
id("org.jetbrains.kotlin.plugin.compose") version "2.0.0"
19+
id("org.jetbrains.kotlin.plugin.compose") version "2.0.20"
2020
}
2121

2222
android {
@@ -66,22 +66,22 @@ composeCompiler {
6666
}
6767

6868
dependencies {
69-
def composeBom = platform('androidx.compose:compose-bom:2024.09.00')
69+
def composeBom = platform('androidx.compose:compose-bom:2024.11.00')
7070
implementation(composeBom)
7171

7272
implementation "com.google.accompanist:accompanist-adaptive:0.32.0"
73-
implementation 'androidx.core:core-ktx:1.13.1'
74-
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.5'
75-
implementation 'androidx.activity:activity-compose:1.9.2'
76-
implementation "androidx.compose.foundation:foundation:1.7.0"
77-
implementation "androidx.compose.ui:ui:1.7.0"
73+
implementation 'androidx.core:core-ktx:1.15.0'
74+
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7'
75+
implementation 'androidx.activity:activity-compose:1.9.3'
76+
implementation "androidx.compose.foundation:foundation:1.7.5"
77+
implementation "androidx.compose.ui:ui:1.7.5"
7878
implementation "androidx.compose.ui:ui-tooling-preview"
7979
implementation "androidx.window:window:1.3.0"
80-
implementation 'androidx.compose.material3:material3:1.3.0'
81-
implementation 'androidx.compose.material3.adaptive:adaptive:1.1.0-alpha02'
82-
implementation 'androidx.compose.material3.adaptive:adaptive-layout:1.1.0-alpha02'
83-
implementation 'androidx.compose.material3.adaptive:adaptive-navigation:1.1.0-alpha02'
84-
implementation "androidx.compose.material3:material3-window-size-class:1.3.0"
85-
implementation "androidx.compose.animation:animation:1.7.0"
80+
implementation 'androidx.compose.material3:material3:1.4.0-alpha04'
81+
implementation 'androidx.compose.material3.adaptive:adaptive:1.1.0-alpha07'
82+
implementation 'androidx.compose.material3.adaptive:adaptive-layout:1.1.0-alpha07'
83+
implementation 'androidx.compose.material3.adaptive:adaptive-navigation:1.1.0-alpha07'
84+
implementation "androidx.compose.material3:material3-window-size-class:1.3.1"
85+
implementation "androidx.compose.animation:animation:1.7.5"
8686
testImplementation 'junit:junit:4.13.2'
8787
}

CanonicalLayouts/list-detail-compose/app/src/main/java/com/example/listdetailcompose/ui/ListDetailSample.kt

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.compose.animation.SharedTransitionScope
2929
import androidx.compose.foundation.BorderStroke
3030
import androidx.compose.foundation.Image
3131
import androidx.compose.foundation.clickable
32+
import androidx.compose.foundation.interaction.MutableInteractionSource
3233
import androidx.compose.foundation.layout.Arrangement
3334
import androidx.compose.foundation.layout.Column
3435
import androidx.compose.foundation.layout.PaddingValues
@@ -43,29 +44,30 @@ import androidx.compose.foundation.selection.selectableGroup
4344
import androidx.compose.foundation.verticalScroll
4445
import androidx.compose.material3.Card
4546
import androidx.compose.material3.CardDefaults
47+
import androidx.compose.material3.LocalMinimumInteractiveComponentSize
4648
import androidx.compose.material3.MaterialTheme
4749
import androidx.compose.material3.Text
50+
import androidx.compose.material3.VerticalDragHandle
4851
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
49-
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
5052
import androidx.compose.material3.adaptive.layout.AnimatedPane
5153
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffold
5254
import androidx.compose.material3.adaptive.layout.ListDetailPaneScaffoldRole
5355
import androidx.compose.material3.adaptive.layout.PaneAdaptedValue
54-
import androidx.compose.material3.adaptive.layout.PaneExpansionDragHandle
5556
import androidx.compose.material3.adaptive.layout.rememberPaneExpansionState
5657
import androidx.compose.material3.adaptive.navigation.rememberListDetailPaneScaffoldNavigator
5758
import androidx.compose.runtime.Composable
5859
import androidx.compose.runtime.getValue
5960
import androidx.compose.runtime.mutableStateOf
61+
import androidx.compose.runtime.remember
62+
import androidx.compose.runtime.rememberCoroutineScope
6063
import androidx.compose.runtime.saveable.rememberSaveable
6164
import androidx.compose.runtime.setValue
6265
import androidx.compose.ui.Modifier
63-
import androidx.compose.ui.graphics.Color
6466
import androidx.compose.ui.res.painterResource
6567
import androidx.compose.ui.res.stringResource
6668
import androidx.compose.ui.unit.dp
67-
import androidx.window.core.layout.WindowWidthSizeClass
6869
import com.example.listdetailcompose.R
70+
import kotlinx.coroutines.launch
6971

7072
// Create some simple sample data
7173
private val loremIpsum = """
@@ -96,11 +98,14 @@ private data class DefinedWord(
9698
fun ListDetailSample() {
9799
var selectedWordIndex: Int? by rememberSaveable { mutableStateOf(null) }
98100
val navigator = rememberListDetailPaneScaffoldNavigator<Nothing>()
101+
val scope = rememberCoroutineScope()
99102
val isListAndDetailVisible =
100103
navigator.scaffoldValue[ListDetailPaneScaffoldRole.Detail] == PaneAdaptedValue.Expanded && navigator.scaffoldValue[ListDetailPaneScaffoldRole.List] == PaneAdaptedValue.Expanded
101104

102105
BackHandler(enabled = navigator.canNavigateBack()) {
103-
navigator.navigateBack()
106+
scope.launch {
107+
navigator.navigateBack()
108+
}
104109
}
105110

106111
SharedTransitionLayout {
@@ -122,7 +127,9 @@ fun ListDetailSample() {
122127
},
123128
onIndexClick = { index ->
124129
selectedWordIndex = index
125-
navigator.navigateTo(ListDetailPaneScaffoldRole.Detail)
130+
scope.launch {
131+
navigator.navigateTo(ListDetailPaneScaffoldRole.Detail)
132+
}
126133
},
127134
isListAndDetailVisible = isListAndDetailVisible,
128135
isListVisible = !isDetailVisible,
@@ -147,7 +154,16 @@ fun ListDetailSample() {
147154
},
148155
paneExpansionState = rememberPaneExpansionState(navigator.scaffoldValue),
149156
paneExpansionDragHandle = { state ->
150-
PaneExpansionDragHandle(state, Color.Red)
157+
val interactionSource =
158+
remember { MutableInteractionSource() }
159+
VerticalDragHandle(
160+
modifier =
161+
Modifier.paneExpansionDraggable(
162+
state,
163+
LocalMinimumInteractiveComponentSize.current,
164+
interactionSource
165+
), interactionSource = interactionSource
166+
)
151167
}
152168
)
153169
}
@@ -312,7 +328,7 @@ private fun DetailContent(
312328
state,
313329
animatedVisibilityScope = animatedVisibilityScope
314330
)
315-
}
331+
}
316332
} else {
317333
Modifier
318334
}

CanonicalLayouts/list-detail-compose/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616
plugins {
17-
id 'com.android.application' version '8.6.0' apply false
18-
id 'com.android.library' version '8.6.0' apply false
19-
id 'org.jetbrains.kotlin.android' version '2.0.0' apply false
17+
id 'com.android.application' version '8.7.3' apply false
18+
id 'com.android.library' version '8.7.3' apply false
19+
id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
2020
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Wed May 25 14:11:15 UTC 2022
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

CanonicalLayouts/supporting-pane-compose/app/build.gradle

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
plugins {
1818
id 'com.android.application'
1919
id 'org.jetbrains.kotlin.android'
20-
id("org.jetbrains.kotlin.plugin.compose") version "2.0.0"
20+
id("org.jetbrains.kotlin.plugin.compose") version "2.0.20"
2121

2222
}
2323

@@ -68,19 +68,19 @@ composeCompiler {
6868
}
6969

7070
dependencies {
71-
def composeBom = platform('androidx.compose:compose-bom:2024.09.00')
71+
def composeBom = platform('androidx.compose:compose-bom:2024.11.00')
7272
implementation(composeBom)
7373

74-
implementation 'androidx.core:core-ktx:1.13.1'
75-
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.5'
76-
implementation 'androidx.activity:activity-compose:1.9.2'
74+
implementation 'androidx.core:core-ktx:1.15.0'
75+
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.7'
76+
implementation 'androidx.activity:activity-compose:1.9.3'
7777
implementation "androidx.compose.ui:ui"
7878
implementation "androidx.compose.ui:ui-tooling-preview"
7979
implementation "androidx.window:window:1.3.0"
80-
implementation 'androidx.compose.material3:material3:1.3.0'
81-
implementation 'androidx.compose.material3.adaptive:adaptive:1.1.0-alpha02'
82-
implementation 'androidx.compose.material3.adaptive:adaptive-layout:1.1.0-alpha02'
83-
implementation 'androidx.compose.material3.adaptive:adaptive-navigation:1.1.0-alpha02'
84-
implementation "androidx.compose.material3:material3-window-size-class:1.3.0"
80+
implementation 'androidx.compose.material3:material3:1.4.0-alpha04'
81+
implementation 'androidx.compose.material3.adaptive:adaptive:1.1.0-alpha07'
82+
implementation 'androidx.compose.material3.adaptive:adaptive-layout:1.1.0-alpha07'
83+
implementation 'androidx.compose.material3.adaptive:adaptive-navigation:1.1.0-alpha07'
84+
implementation "androidx.compose.material3:material3-window-size-class:1.3.1"
8585
testImplementation 'junit:junit:4.13.2'
8686
}

CanonicalLayouts/supporting-pane-compose/app/src/main/java/com/example/supportingpanecompose/ui/SupportingPaneSample.kt

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,37 @@ package com.example.supportingpanecompose.ui
1818

1919
import androidx.activity.compose.BackHandler
2020
import androidx.compose.foundation.clickable
21+
import androidx.compose.foundation.interaction.MutableInteractionSource
2122
import androidx.compose.foundation.layout.Box
2223
import androidx.compose.foundation.layout.Column
2324
import androidx.compose.foundation.layout.fillMaxSize
2425
import androidx.compose.foundation.layout.fillMaxWidth
2526
import androidx.compose.foundation.layout.padding
2627
import androidx.compose.foundation.lazy.LazyColumn
2728
import androidx.compose.foundation.lazy.items
29+
import androidx.compose.material3.LocalMinimumInteractiveComponentSize
2830
import androidx.compose.material3.MaterialTheme
2931
import androidx.compose.material3.Text
32+
import androidx.compose.material3.VerticalDragHandle
3033
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
3134
import androidx.compose.material3.adaptive.layout.AnimatedPane
32-
import androidx.compose.material3.adaptive.layout.PaneExpansionDragHandle
3335
import androidx.compose.material3.adaptive.layout.SupportingPaneScaffold
3436
import androidx.compose.material3.adaptive.layout.SupportingPaneScaffoldRole
3537
import androidx.compose.material3.adaptive.layout.rememberPaneExpansionState
3638
import androidx.compose.material3.adaptive.navigation.rememberSupportingPaneScaffoldNavigator
3739
import androidx.compose.runtime.Composable
3840
import androidx.compose.runtime.getValue
3941
import androidx.compose.runtime.mutableStateOf
42+
import androidx.compose.runtime.remember
43+
import androidx.compose.runtime.rememberCoroutineScope
4044
import androidx.compose.runtime.saveable.rememberSaveable
4145
import androidx.compose.runtime.setValue
4246
import androidx.compose.ui.Alignment
4347
import androidx.compose.ui.Modifier
44-
import androidx.compose.ui.graphics.Color
4548
import androidx.compose.ui.res.stringResource
4649
import androidx.compose.ui.unit.dp
4750
import com.example.supportingpanecompose.R
51+
import kotlinx.coroutines.launch
4852

4953
// Create some simple sample data
5054
private val data = mapOf(
@@ -61,9 +65,12 @@ private val data = mapOf(
6165
fun SupportingPaneSample() {
6266
var selectedTopic: String by rememberSaveable { mutableStateOf(data.keys.first()) }
6367
val navigator = rememberSupportingPaneScaffoldNavigator()
68+
val scope = rememberCoroutineScope()
6469

6570
BackHandler(enabled = navigator.canNavigateBack()) {
66-
navigator.navigateBack()
71+
scope.launch {
72+
navigator.navigateBack()
73+
}
6774
}
6875

6976
SupportingPaneScaffold(
@@ -92,7 +99,9 @@ fun SupportingPaneSample() {
9299
.clickable {
93100
selectedTopic = relatedTopic
94101
if (navigator.canNavigateBack()) {
95-
navigator.navigateBack()
102+
scope.launch {
103+
navigator.navigateBack()
104+
}
96105
}
97106
}
98107
) {
@@ -120,7 +129,9 @@ fun SupportingPaneSample() {
120129
.fillMaxWidth()
121130
.padding(all = 8.dp)
122131
.clickable {
123-
navigator.navigateTo(SupportingPaneScaffoldRole.Supporting)
132+
scope.launch {
133+
navigator.navigateTo(SupportingPaneScaffoldRole.Supporting)
134+
}
124135
},
125136
contentAlignment = Alignment.Center
126137
) {
@@ -134,6 +145,15 @@ fun SupportingPaneSample() {
134145
},
135146
paneExpansionState = rememberPaneExpansionState(navigator.scaffoldValue),
136147
paneExpansionDragHandle = { state ->
137-
PaneExpansionDragHandle(state, Color.Red)
148+
val interactionSource =
149+
remember { MutableInteractionSource() }
150+
VerticalDragHandle(
151+
modifier =
152+
Modifier.paneExpansionDraggable(
153+
state,
154+
LocalMinimumInteractiveComponentSize.current,
155+
interactionSource
156+
), interactionSource = interactionSource
157+
)
138158
})
139159
}

CanonicalLayouts/supporting-pane-compose/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616
plugins {
17-
id 'com.android.application' version '8.6.0' apply false
18-
id 'com.android.library' version '8.6.0' apply false
19-
id 'org.jetbrains.kotlin.android' version '2.0.0' apply false
17+
id 'com.android.application' version '8.7.3' apply false
18+
id 'com.android.library' version '8.7.3' apply false
19+
id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
2020
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Wed May 25 14:11:15 UTC 2022
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)