Refactor Navigation Suite Scaffold APIs into new material3-adaptive-navigation-suite module
Relnote: Add new material3-adaptive-navigation-suite module for the Navigation Suite Scaffold
Test: manually tested + presubmits
Change-Id: I80da16fc0144141fc1559510749bd330ae57f4fc
diff --git a/compose/material3/benchmark/build.gradle b/compose/material3/benchmark/build.gradle
index 490c06c..8077fa7 100644
--- a/compose/material3/benchmark/build.gradle
+++ b/compose/material3/benchmark/build.gradle
@@ -26,7 +26,7 @@
androidTestImplementation(project(":compose:material:material-icons-core"))
androidTestImplementation(project(":compose:material3:material3"))
- androidTestImplementation(project(":compose:material3:material3-adaptive"))
+ androidTestImplementation(project(":compose:material3:material3-adaptive-navigation-suite"))
androidTestImplementation(project(":compose:material3:material3-window-size-class"))
androidTestImplementation(project(":benchmark:benchmark-junit4"))
androidTestImplementation(project(":compose:runtime:runtime"))
diff --git a/compose/material3/benchmark/src/androidTest/java/androidx/compose/material3/benchmark/NavigationSuiteScaffoldBenchmarkTest.kt b/compose/material3/benchmark/src/androidTest/java/androidx/compose/material3/benchmark/NavigationSuiteScaffoldBenchmarkTest.kt
index 2eb3cec..21b602a 100644
--- a/compose/material3/benchmark/src/androidTest/java/androidx/compose/material3/benchmark/NavigationSuiteScaffoldBenchmarkTest.kt
+++ b/compose/material3/benchmark/src/androidTest/java/androidx/compose/material3/benchmark/NavigationSuiteScaffoldBenchmarkTest.kt
@@ -19,8 +19,8 @@
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size
import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
-import androidx.compose.material3.adaptive.NavigationSuiteScaffold
+import androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi
+import androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScaffold
import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableIntState
import androidx.compose.runtime.mutableIntStateOf
@@ -59,7 +59,7 @@
}
}
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveNavigationSuiteApi::class)
internal class NavigationSuiteScaffoldTestCase : LayeredComposeTestCase(), ToggleableTestCase {
private lateinit var selectedIndexState: MutableIntState
diff --git a/compose/material3/material3-adaptive-navigation-suite/androidx-compose-material3-adaptive-navigation-suite-documentation.md b/compose/material3/material3-adaptive-navigation-suite/androidx-compose-material3-adaptive-navigation-suite-documentation.md
new file mode 100644
index 0000000..645b7b6
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/androidx-compose-material3-adaptive-navigation-suite-documentation.md
@@ -0,0 +1,5 @@
+# Module root
+
+Compose Material Adaptive Navigation Suite
+
+# Package androidx.compose.material3.adaptive.navigation.suite
\ No newline at end of file
diff --git a/compose/material3/material3-adaptive-navigation-suite/api/current.txt b/compose/material3/material3-adaptive-navigation-suite/api/current.txt
new file mode 100644
index 0000000..db286e5
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/api/current.txt
@@ -0,0 +1,65 @@
+// Signature format: 4.0
+package androidx.compose.material3.adaptive.navigation.suite {
+
+ @SuppressCompatibility @kotlin.RequiresOptIn(message="This material3-adaptive-navigation-suite API is experimental and is likely to" + "change or to be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveNavigationSuiteApi {
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteColors {
+ method public long getNavigationBarContainerColor();
+ method public long getNavigationBarContentColor();
+ method public long getNavigationDrawerContainerColor();
+ method public long getNavigationDrawerContentColor();
+ method public long getNavigationRailContainerColor();
+ method public long getNavigationRailContentColor();
+ property public final long navigationBarContainerColor;
+ property public final long navigationBarContentColor;
+ property public final long navigationDrawerContainerColor;
+ property public final long navigationDrawerContentColor;
+ property public final long navigationRailContainerColor;
+ property public final long navigationRailContentColor;
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteDefaults {
+ method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor);
+ field public static final androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteDefaults INSTANCE;
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteItemColors {
+ method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors();
+ method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors();
+ method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors();
+ property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors;
+ property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors;
+ property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors;
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteScaffoldDefaults {
+ method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo);
+ field public static final androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScaffoldDefaults INSTANCE;
+ }
+
+ public final class NavigationSuiteScaffoldKt {
+ method @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScope,kotlin.Unit> content);
+ method @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScope,kotlin.Unit> navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ method @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0<kotlin.Unit> navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public interface NavigationSuiteScope {
+ method public void item(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? badge, optional androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @kotlin.jvm.JvmInline public final value class NavigationSuiteType {
+ field public static final androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteType.Companion Companion;
+ }
+
+ public static final class NavigationSuiteType.Companion {
+ method public String getNavigationBar();
+ method public String getNavigationDrawer();
+ method public String getNavigationRail();
+ property public final String NavigationBar;
+ property public final String NavigationDrawer;
+ property public final String NavigationRail;
+ }
+
+}
+
diff --git a/compose/material3/material3-adaptive-navigation-suite/api/public_plus_experimental_current.txt b/compose/material3/material3-adaptive-navigation-suite/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/api/public_plus_experimental_current.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/compose/material3/material3-adaptive-navigation-suite/api/res-current.txt b/compose/material3/material3-adaptive-navigation-suite/api/res-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/api/res-current.txt
diff --git a/compose/material3/material3-adaptive-navigation-suite/api/restricted_current.txt b/compose/material3/material3-adaptive-navigation-suite/api/restricted_current.txt
new file mode 100644
index 0000000..db286e5
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/api/restricted_current.txt
@@ -0,0 +1,65 @@
+// Signature format: 4.0
+package androidx.compose.material3.adaptive.navigation.suite {
+
+ @SuppressCompatibility @kotlin.RequiresOptIn(message="This material3-adaptive-navigation-suite API is experimental and is likely to" + "change or to be removed in the future.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalMaterial3AdaptiveNavigationSuiteApi {
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteColors {
+ method public long getNavigationBarContainerColor();
+ method public long getNavigationBarContentColor();
+ method public long getNavigationDrawerContainerColor();
+ method public long getNavigationDrawerContentColor();
+ method public long getNavigationRailContainerColor();
+ method public long getNavigationRailContentColor();
+ property public final long navigationBarContainerColor;
+ property public final long navigationBarContentColor;
+ property public final long navigationDrawerContainerColor;
+ property public final long navigationDrawerContentColor;
+ property public final long navigationRailContainerColor;
+ property public final long navigationRailContentColor;
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteDefaults {
+ method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor);
+ field public static final androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteDefaults INSTANCE;
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteItemColors {
+ method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors();
+ method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors();
+ method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors();
+ property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors;
+ property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors;
+ property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors;
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public final class NavigationSuiteScaffoldDefaults {
+ method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo);
+ field public static final androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScaffoldDefaults INSTANCE;
+ }
+
+ public final class NavigationSuiteScaffoldKt {
+ method @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScope,kotlin.Unit> content);
+ method @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScope,kotlin.Unit> navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ method @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0<kotlin.Unit> navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi public interface NavigationSuiteScope {
+ method public void item(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? badge, optional androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
+ }
+
+ @SuppressCompatibility @androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi @kotlin.jvm.JvmInline public final value class NavigationSuiteType {
+ field public static final androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteType.Companion Companion;
+ }
+
+ public static final class NavigationSuiteType.Companion {
+ method public String getNavigationBar();
+ method public String getNavigationDrawer();
+ method public String getNavigationRail();
+ property public final String NavigationBar;
+ property public final String NavigationDrawer;
+ property public final String NavigationRail;
+ }
+
+}
+
diff --git a/compose/material3/material3-adaptive-navigation-suite/build.gradle b/compose/material3/material3-adaptive-navigation-suite/build.gradle
new file mode 100644
index 0000000..08afef3
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/build.gradle
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import androidx.build.AndroidXComposePlugin
+import androidx.build.KmpPlatformsKt
+import androidx.build.LibraryType
+import androidx.build.PlatformIdentifier
+import androidx.build.Publish
+
+plugins {
+ id("AndroidXPlugin")
+ id("com.android.library")
+ id("AndroidXComposePlugin")
+}
+
+androidXMultiplatform {
+ android()
+ desktop()
+
+ defaultPlatform(PlatformIdentifier.ANDROID)
+
+ sourceSets {
+ commonMain {
+ dependencies {
+ implementation(libs.kotlinStdlibCommon)
+ implementation(project(":compose:material3:material3"))
+ implementation(project(":compose:material3:material3-adaptive"))
+ implementation(project(":compose:material3:material3-window-size-class"))
+ implementation(project(":compose:ui:ui-util"))
+ }
+ }
+
+ commonTest {
+ dependencies {
+ }
+ }
+
+ jvmMain {
+ dependsOn(commonMain)
+ dependencies {
+ implementation(libs.kotlinStdlib)
+ }
+ }
+
+ androidMain {
+ dependsOn(jvmMain)
+ dependencies {
+ api("androidx.annotation:annotation:1.1.0")
+ implementation(project(":lifecycle:lifecycle-runtime-compose"))
+ implementation(project(":window:window"))
+ }
+ }
+
+ desktopMain {
+ dependsOn(jvmMain)
+ dependencies {
+ }
+ }
+
+ jvmTest {
+ dependencies {
+ }
+ }
+
+ desktopTest {
+ dependsOn(jvmTest)
+ }
+
+ androidInstrumentedTest {
+ dependsOn(jvmTest)
+ dependsOn(androidMain)
+ dependencies {
+ implementation(project(":compose:test-utils"))
+ implementation(project(":window:window-testing"))
+ implementation(libs.junit)
+ implementation(libs.testRunner)
+ implementation(libs.truth)
+ }
+ }
+
+ androidUnitTest {
+ dependsOn(jvmTest)
+ dependencies {
+ implementation(libs.junit)
+ implementation(libs.testRunner)
+ implementation(libs.truth)
+ }
+ }
+ }
+}
+
+android {
+ namespace "androidx.compose.material3.adaptive.navigation.suite"
+}
+
+androidx {
+ name = "Material Adaptive Navigation Suite"
+ mavenVersion = LibraryVersions.COMPOSE_MATERIAL3_ADAPTIVE_NAVIGATION_SUITE
+ type = LibraryType.PUBLISHED_LIBRARY
+ publish = Publish.SNAPSHOT_ONLY
+ inceptionYear = "2023"
+ description = "Compose Material Design Adaptive Navigation Suite Library"
+}
diff --git a/compose/material3/material3-adaptive-navigation-suite/samples/build.gradle b/compose/material3/material3-adaptive-navigation-suite/samples/build.gradle
new file mode 100644
index 0000000..cd05fed
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/samples/build.gradle
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import androidx.build.LibraryType
+
+plugins {
+ id("AndroidXPlugin")
+ id("com.android.library")
+ id("AndroidXComposePlugin")
+ id("org.jetbrains.kotlin.android")
+}
+
+dependencies {
+
+ implementation(libs.kotlinStdlib)
+
+ compileOnly(project(":annotation:annotation-sampled"))
+
+ implementation(project(":compose:foundation:foundation"))
+ implementation(project(":compose:foundation:foundation-layout"))
+ implementation(project(":compose:material3:material3"))
+ implementation(project(":compose:material3:material3-adaptive"))
+ implementation(project(":compose:material3:material3-adaptive-navigation-suite"))
+ implementation(project(":compose:material3:material3-window-size-class"))
+ implementation(project(":compose:ui:ui-util"))
+ implementation("androidx.compose.ui:ui-tooling-preview:1.4.1")
+
+ debugImplementation("androidx.compose.ui:ui-tooling:1.4.1")
+}
+
+androidx {
+ name = "Compose Material3 Adaptive Navigation Suite Samples"
+ type = LibraryType.SAMPLES
+ inceptionYear = "2023"
+ description = "Contains the sample code for the AndroidX Compose Material Adaptive Navigation" +
+ " Suite."
+}
+
+android {
+ namespace "androidx.compose.material3.adaptive.navigation.suite.samples"
+}
diff --git a/compose/material3/material3-adaptive/samples/src/main/java/androidx/compose/material3-adaptive/samples/NavigationSuiteScaffoldSamples.kt b/compose/material3/material3-adaptive-navigation-suite/samples/src/main/java/androidx/compose/material3-adaptive-navigation-suite/samples/NavigationSuiteScaffoldSamples.kt
similarity index 84%
rename from compose/material3/material3-adaptive/samples/src/main/java/androidx/compose/material3-adaptive/samples/NavigationSuiteScaffoldSamples.kt
rename to compose/material3/material3-adaptive-navigation-suite/samples/src/main/java/androidx/compose/material3-adaptive-navigation-suite/samples/NavigationSuiteScaffoldSamples.kt
index bba3254..ed9664a 100644
--- a/compose/material3/material3-adaptive/samples/src/main/java/androidx/compose/material3-adaptive/samples/NavigationSuiteScaffoldSamples.kt
+++ b/compose/material3/material3-adaptive-navigation-suite/samples/src/main/java/androidx/compose/material3-adaptive-navigation-suite/samples/NavigationSuiteScaffoldSamples.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.compose.material3.adaptive.samples
+package androidx.compose.material3.adaptive.navigation.suite.samples
import androidx.annotation.Sampled
import androidx.compose.foundation.layout.padding
@@ -23,10 +23,11 @@
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
-import androidx.compose.material3.adaptive.NavigationSuiteScaffold
-import androidx.compose.material3.adaptive.NavigationSuiteScaffoldDefaults
-import androidx.compose.material3.adaptive.NavigationSuiteType
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
+import androidx.compose.material3.adaptive.navigation.suite.ExperimentalMaterial3AdaptiveNavigationSuiteApi
+import androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScaffold
+import androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteScaffoldDefaults
+import androidx.compose.material3.adaptive.navigation.suite.NavigationSuiteType
import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@@ -37,7 +38,8 @@
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveApi::class,
+ ExperimentalMaterial3AdaptiveNavigationSuiteApi::class)
@Preview
@Sampled
@Composable
@@ -67,7 +69,8 @@
}
}
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveApi::class,
+ ExperimentalMaterial3AdaptiveNavigationSuiteApi::class)
@Preview
@Sampled
@Composable
diff --git a/compose/material3/material3-adaptive-navigation-suite/src/androidMain/AndroidManifest.xml b/compose/material3/material3-adaptive-navigation-suite/src/androidMain/AndroidManifest.xml
new file mode 100644
index 0000000..3150d7d
--- /dev/null
+++ b/compose/material3/material3-adaptive-navigation-suite/src/androidMain/AndroidManifest.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+
+</manifest>
\ No newline at end of file
diff --git a/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.android.kt b/compose/material3/material3-adaptive-navigation-suite/src/androidMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.android.kt
similarity index 75%
rename from compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.android.kt
rename to compose/material3/material3-adaptive-navigation-suite/src/androidMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.android.kt
index ce6c321..be34e16 100644
--- a/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.android.kt
+++ b/compose/material3/material3-adaptive-navigation-suite/src/androidMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.android.kt
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-package androidx.compose.material3.adaptive
+package androidx.compose.material3.adaptive.navigation.suite
+import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
+import androidx.compose.material3.adaptive.WindowAdaptiveInfo
+import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
import androidx.compose.runtime.Composable
@OptIn(ExperimentalMaterial3AdaptiveApi::class)
diff --git a/compose/material3/material3-adaptive/src/androidUnitTest/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffoldTest.kt b/compose/material3/material3-adaptive-navigation-suite/src/androidUnitTest/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffoldTest.kt
similarity index 93%
rename from compose/material3/material3-adaptive/src/androidUnitTest/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffoldTest.kt
rename to compose/material3/material3-adaptive-navigation-suite/src/androidUnitTest/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffoldTest.kt
index 6ab65eb..745cccb 100644
--- a/compose/material3/material3-adaptive/src/androidUnitTest/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffoldTest.kt
+++ b/compose/material3/material3-adaptive-navigation-suite/src/androidUnitTest/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffoldTest.kt
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-package androidx.compose.material3.adaptive
+package androidx.compose.material3.adaptive.navigation.suite
+import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
+import androidx.compose.material3.adaptive.Posture
+import androidx.compose.material3.adaptive.WindowAdaptiveInfo
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.ui.unit.DpSize
@@ -25,7 +28,8 @@
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
-@OptIn(ExperimentalMaterial3AdaptiveApi::class, ExperimentalMaterial3WindowSizeClassApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveNavigationSuiteApi::class,
+ ExperimentalMaterial3AdaptiveApi::class, ExperimentalMaterial3WindowSizeClassApi::class)
@RunWith(JUnit4::class)
class NavigationSuiteScaffoldTest {
diff --git a/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.android.kt b/compose/material3/material3-adaptive-navigation-suite/src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/ExperimentalMaterial3AdaptiveComponentsApi.kt
similarity index 65%
copy from compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.android.kt
copy to compose/material3/material3-adaptive-navigation-suite/src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/ExperimentalMaterial3AdaptiveComponentsApi.kt
index ce6c321..054c8e5 100644
--- a/compose/material3/material3-adaptive/src/androidMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.android.kt
+++ b/compose/material3/material3-adaptive-navigation-suite/src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/ExperimentalMaterial3AdaptiveComponentsApi.kt
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package androidx.compose.material3.adaptive
+package androidx.compose.material3.adaptive.navigation.suite
-import androidx.compose.runtime.Composable
-
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
-internal actual val WindowAdaptiveInfoDefault: WindowAdaptiveInfo
- @Composable
- get() = currentWindowAdaptiveInfo()
+@RequiresOptIn(
+ "This material3-adaptive-navigation-suite API is experimental and is likely to" +
+ "change or to be removed in the future."
+)
+@Retention(AnnotationRetention.BINARY)
+annotation class ExperimentalMaterial3AdaptiveNavigationSuiteApi
diff --git a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt b/compose/material3/material3-adaptive-navigation-suite/src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.kt
similarity index 95%
rename from compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt
rename to compose/material3/material3-adaptive-navigation-suite/src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.kt
index 33e9865..85338443 100644
--- a/compose/material3/material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.kt
+++ b/compose/material3/material3-adaptive-navigation-suite/src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.compose.material3.adaptive
+package androidx.compose.material3.adaptive.navigation.suite
import androidx.compose.foundation.interaction.Interaction
import androidx.compose.foundation.interaction.MutableInteractionSource
@@ -39,6 +39,8 @@
import androidx.compose.material3.PermanentDrawerSheet
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
+import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
+import androidx.compose.material3.adaptive.WindowAdaptiveInfo
import androidx.compose.material3.contentColorFor
import androidx.compose.material3.windowsizeclass.WindowHeightSizeClass.Companion.Compact
import androidx.compose.material3.windowsizeclass.WindowWidthSizeClass.Companion.Expanded
@@ -63,9 +65,9 @@
* navigation component on the screen according to the current [NavigationSuiteType].
*
* Example default usage:
- * @sample androidx.compose.material3.adaptive.samples.NavigationSuiteScaffoldSample
+ * @sample androidx.compose.material3.adaptive.navigation.suite.samples.NavigationSuiteScaffoldSample
* Example custom configuration usage:
- * @sample androidx.compose.material3.adaptive.samples.NavigationSuiteScaffoldCustomConfigSample
+ * @sample androidx.compose.material3.adaptive.navigation.suite.samples.NavigationSuiteScaffoldCustomConfigSample
*
* @param navigationSuiteItems the navigation items to be displayed
* @param modifier the [Modifier] to be applied to the navigation suite scaffold
@@ -81,7 +83,8 @@
* [LocalContentColor] if [containerColor] is not a color from the theme
* @param content the content of your screen
*/
-@ExperimentalMaterial3AdaptiveApi
+@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
@Composable
fun NavigationSuiteScaffold(
navigationSuiteItems: NavigationSuiteScope.() -> Unit,
@@ -117,7 +120,8 @@
* [NavigationSuiteScaffoldDefaults.calculateFromAdaptiveInfo]
* @param content the content of your screen
*/
-@ExperimentalMaterial3AdaptiveApi
+@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
@Composable
fun NavigationSuiteScaffoldLayout(
navigationSuite: @Composable () -> Unit,
@@ -192,7 +196,8 @@
* @param content the content inside the current navigation component, typically
* [NavigationSuiteScope.item]s
*/
-@ExperimentalMaterial3AdaptiveApi
+@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
@Composable
fun NavigationSuite(
modifier: Modifier = Modifier,
@@ -275,7 +280,7 @@
}
/** The scope associated with the [NavigationSuiteScope]. */
-@ExperimentalMaterial3AdaptiveApi
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
interface NavigationSuiteScope {
/**
@@ -323,7 +328,7 @@
* The [NavigationSuiteType] informs the [NavigationSuite] of what navigation component to expect.
*/
@JvmInline
-@ExperimentalMaterial3AdaptiveApi
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
value class NavigationSuiteType private constructor(private val description: String) {
override fun toString(): String {
return description
@@ -357,7 +362,7 @@
}
/** Contains the default values used by the [NavigationSuiteScaffold]. */
-@ExperimentalMaterial3AdaptiveApi
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
object NavigationSuiteScaffoldDefaults {
/**
* Returns the expected [NavigationSuiteType] according to the provided [WindowAdaptiveInfo].
@@ -366,6 +371,7 @@
* @param adaptiveInfo the provided [WindowAdaptiveInfo]
* @see NavigationSuiteScaffold
*/
+ @OptIn(ExperimentalMaterial3AdaptiveApi::class)
fun calculateFromAdaptiveInfo(adaptiveInfo: WindowAdaptiveInfo): NavigationSuiteType {
return with(adaptiveInfo) {
if (posture.isTabletop || windowSizeClass.heightSizeClass == Compact) {
@@ -382,7 +388,7 @@
}
/** Contains the default values used by the [NavigationSuite]. */
-@ExperimentalMaterial3AdaptiveApi
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
object NavigationSuiteDefaults {
/**
* Creates a [NavigationSuiteColors] with the provided colors for the container color, according
@@ -439,7 +445,7 @@
* @param navigationDrawerContentColor the content color for the [PermanentDrawerSheet] of the
* [NavigationSuite]
*/
-@ExperimentalMaterial3AdaptiveApi
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
class NavigationSuiteColors
internal constructor(
val navigationBarContainerColor: Color,
@@ -463,7 +469,7 @@
* @param navigationDrawerItemColors the [NavigationDrawerItemColors] associated with the
* [NavigationDrawerItem] of the [NavigationSuiteScope.item]
*/
-@ExperimentalMaterial3AdaptiveApi
+@ExperimentalMaterial3AdaptiveNavigationSuiteApi
class NavigationSuiteItemColors
internal constructor(
val navigationBarItemColors: NavigationBarItemColors,
@@ -481,7 +487,7 @@
val itemList: MutableVector<NavigationSuiteItem>
}
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveNavigationSuiteApi::class)
private class NavigationSuiteItem(
val selected: Boolean,
val onClick: () -> Unit,
@@ -495,7 +501,7 @@
val interactionSource: MutableInteractionSource
)
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveNavigationSuiteApi::class)
private class NavigationSuiteScopeImpl : NavigationSuiteScope,
NavigationSuiteItemProvider {
@@ -533,7 +539,7 @@
get() = itemList.size
}
-@OptIn(ExperimentalMaterial3AdaptiveApi::class)
+@OptIn(ExperimentalMaterial3AdaptiveNavigationSuiteApi::class)
@Composable
private fun rememberStateOfItems(
content: NavigationSuiteScope.() -> Unit
diff --git a/compose/material3/material3-adaptive/src/desktopMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.desktop.kt b/compose/material3/material3-adaptive-navigation-suite/src/desktopMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.desktop.kt
similarity index 81%
rename from compose/material3/material3-adaptive/src/desktopMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.desktop.kt
rename to compose/material3/material3-adaptive-navigation-suite/src/desktopMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.desktop.kt
index 6a4a617..1794e73a 100644
--- a/compose/material3/material3-adaptive/src/desktopMain/kotlin/androidx/compose/material3/adaptive/NavigationSuiteScaffold.desktop.kt
+++ b/compose/material3/material3-adaptive-navigation-suite/src/desktopMain/kotlin/androidx/compose/material3/adaptive/navigation-suite/NavigationSuiteScaffold.desktop.kt
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-package androidx.compose.material3.adaptive
+package androidx.compose.material3.adaptive.navigation.suite
+import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
+import androidx.compose.material3.adaptive.Posture
+import androidx.compose.material3.adaptive.WindowAdaptiveInfo
import androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi
import androidx.compose.material3.windowsizeclass.WindowSizeClass
import androidx.compose.ui.unit.DpSize
diff --git a/compose/material3/material3-adaptive/api/current.txt b/compose/material3/material3-adaptive/api/current.txt
index 15b55c6..51cbf5f 100644
--- a/compose/material3/material3-adaptive/api/current.txt
+++ b/compose/material3/material3-adaptive/api/current.txt
@@ -77,63 +77,6 @@
property public abstract androidx.compose.material3.adaptive.ThreePaneScaffoldValue scaffoldValue;
}
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteColors {
- method public long getNavigationBarContainerColor();
- method public long getNavigationBarContentColor();
- method public long getNavigationDrawerContainerColor();
- method public long getNavigationDrawerContentColor();
- method public long getNavigationRailContainerColor();
- method public long getNavigationRailContentColor();
- property public final long navigationBarContainerColor;
- property public final long navigationBarContentColor;
- property public final long navigationDrawerContainerColor;
- property public final long navigationDrawerContentColor;
- property public final long navigationRailContainerColor;
- property public final long navigationRailContentColor;
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteDefaults {
- method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor);
- field public static final androidx.compose.material3.adaptive.NavigationSuiteDefaults INSTANCE;
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteItemColors {
- method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors();
- method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors();
- method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors();
- property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors;
- property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors;
- property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors;
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteScaffoldDefaults {
- method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo);
- field public static final androidx.compose.material3.adaptive.NavigationSuiteScaffoldDefaults INSTANCE;
- }
-
- public final class NavigationSuiteScaffoldKt {
- method @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.NavigationSuiteColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.NavigationSuiteScope,kotlin.Unit> content);
- method @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.NavigationSuiteScope,kotlin.Unit> navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
- method @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0<kotlin.Unit> navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public interface NavigationSuiteScope {
- method public void item(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? badge, optional androidx.compose.material3.adaptive.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @kotlin.jvm.JvmInline public final value class NavigationSuiteType {
- field public static final androidx.compose.material3.adaptive.NavigationSuiteType.Companion Companion;
- }
-
- public static final class NavigationSuiteType.Companion {
- method public String getNavigationBar();
- method public String getNavigationDrawer();
- method public String getNavigationRail();
- property public final String NavigationBar;
- property public final String NavigationDrawer;
- property public final String NavigationRail;
- }
-
@SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @kotlin.jvm.JvmInline public final value class PaneAdaptedValue {
field public static final androidx.compose.material3.adaptive.PaneAdaptedValue.Companion Companion;
}
diff --git a/compose/material3/material3-adaptive/api/restricted_current.txt b/compose/material3/material3-adaptive/api/restricted_current.txt
index 15b55c6..51cbf5f 100644
--- a/compose/material3/material3-adaptive/api/restricted_current.txt
+++ b/compose/material3/material3-adaptive/api/restricted_current.txt
@@ -77,63 +77,6 @@
property public abstract androidx.compose.material3.adaptive.ThreePaneScaffoldValue scaffoldValue;
}
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteColors {
- method public long getNavigationBarContainerColor();
- method public long getNavigationBarContentColor();
- method public long getNavigationDrawerContainerColor();
- method public long getNavigationDrawerContentColor();
- method public long getNavigationRailContainerColor();
- method public long getNavigationRailContentColor();
- property public final long navigationBarContainerColor;
- property public final long navigationBarContentColor;
- property public final long navigationDrawerContainerColor;
- property public final long navigationDrawerContentColor;
- property public final long navigationRailContainerColor;
- property public final long navigationRailContentColor;
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteDefaults {
- method @androidx.compose.runtime.Composable public androidx.compose.material3.adaptive.NavigationSuiteColors colors(optional long navigationBarContainerColor, optional long navigationBarContentColor, optional long navigationRailContainerColor, optional long navigationRailContentColor, optional long navigationDrawerContainerColor, optional long navigationDrawerContentColor);
- field public static final androidx.compose.material3.adaptive.NavigationSuiteDefaults INSTANCE;
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteItemColors {
- method public androidx.compose.material3.NavigationBarItemColors getNavigationBarItemColors();
- method public androidx.compose.material3.NavigationDrawerItemColors getNavigationDrawerItemColors();
- method public androidx.compose.material3.NavigationRailItemColors getNavigationRailItemColors();
- property public final androidx.compose.material3.NavigationBarItemColors navigationBarItemColors;
- property public final androidx.compose.material3.NavigationDrawerItemColors navigationDrawerItemColors;
- property public final androidx.compose.material3.NavigationRailItemColors navigationRailItemColors;
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public final class NavigationSuiteScaffoldDefaults {
- method public String calculateFromAdaptiveInfo(androidx.compose.material3.adaptive.WindowAdaptiveInfo adaptiveInfo);
- field public static final androidx.compose.material3.adaptive.NavigationSuiteScaffoldDefaults INSTANCE;
- }
-
- public final class NavigationSuiteScaffoldKt {
- method @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @androidx.compose.runtime.Composable public static void NavigationSuite(optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.NavigationSuiteColors colors, kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.NavigationSuiteScope,kotlin.Unit> content);
- method @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffold(kotlin.jvm.functions.Function1<? super androidx.compose.material3.adaptive.NavigationSuiteScope,kotlin.Unit> navigationSuiteItems, optional androidx.compose.ui.Modifier modifier, optional String layoutType, optional androidx.compose.material3.adaptive.NavigationSuiteColors navigationSuiteColors, optional long containerColor, optional long contentColor, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
- method @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @androidx.compose.runtime.Composable public static void NavigationSuiteScaffoldLayout(kotlin.jvm.functions.Function0<kotlin.Unit> navigationSuite, optional String layoutType, optional kotlin.jvm.functions.Function0<kotlin.Unit> content);
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi public interface NavigationSuiteScope {
- method public void item(boolean selected, kotlin.jvm.functions.Function0<kotlin.Unit> onClick, kotlin.jvm.functions.Function0<kotlin.Unit> icon, optional androidx.compose.ui.Modifier modifier, optional boolean enabled, optional kotlin.jvm.functions.Function0<kotlin.Unit>? label, optional boolean alwaysShowLabel, optional kotlin.jvm.functions.Function0<kotlin.Unit>? badge, optional androidx.compose.material3.adaptive.NavigationSuiteItemColors? colors, optional androidx.compose.foundation.interaction.MutableInteractionSource interactionSource);
- }
-
- @SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @kotlin.jvm.JvmInline public final value class NavigationSuiteType {
- field public static final androidx.compose.material3.adaptive.NavigationSuiteType.Companion Companion;
- }
-
- public static final class NavigationSuiteType.Companion {
- method public String getNavigationBar();
- method public String getNavigationDrawer();
- method public String getNavigationRail();
- property public final String NavigationBar;
- property public final String NavigationDrawer;
- property public final String NavigationRail;
- }
-
@SuppressCompatibility @androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi @kotlin.jvm.JvmInline public final value class PaneAdaptedValue {
field public static final androidx.compose.material3.adaptive.PaneAdaptedValue.Companion Companion;
}
diff --git a/compose/material3/material3/integration-tests/material3-catalog/build.gradle b/compose/material3/material3/integration-tests/material3-catalog/build.gradle
index c94165a..1313927 100644
--- a/compose/material3/material3/integration-tests/material3-catalog/build.gradle
+++ b/compose/material3/material3/integration-tests/material3-catalog/build.gradle
@@ -34,7 +34,7 @@
implementation project(":compose:material:material-icons-extended")
implementation project(":compose:material3:material3")
implementation project(":compose:material3:material3:material3-samples")
- implementation project(":compose:material3:material3-adaptive:material3-adaptive-samples")
+ implementation project(":compose:material3:material3-adaptive-navigation-suite:material3-adaptive-navigation-suite-samples")
implementation project(":datastore:datastore-preferences")
implementation project(":navigation:navigation-compose")
}
diff --git a/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Components.kt b/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Components.kt
index 9ab9751..12a41b1 100644
--- a/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Components.kt
+++ b/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Components.kt
@@ -18,7 +18,7 @@
import androidx.annotation.DrawableRes
import androidx.compose.material3.catalog.library.R
-import androidx.compose.material3.catalog.library.util.AdaptiveMaterial3SourceUrl
+import androidx.compose.material3.catalog.library.util.AdaptiveNavigationSuiteMaterial3SourceUrl
import androidx.compose.material3.catalog.library.util.ComponentGuidelinesUrl
import androidx.compose.material3.catalog.library.util.DocsUrl
import androidx.compose.material3.catalog.library.util.Material3SourceUrl
@@ -254,7 +254,7 @@
// No navigation suite scaffold icon
guidelinesUrl = "", // TODO: Add guidelines url when available
docsUrl = "", // TODO: Add docs url when available
- sourceUrl = "$AdaptiveMaterial3SourceUrl/NavigationSuiteScaffold.kt",
+ sourceUrl = "$AdaptiveNavigationSuiteMaterial3SourceUrl/NavigationSuiteScaffold.kt",
examples = NavigationSuiteScaffoldExamples
)
diff --git a/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Examples.kt b/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Examples.kt
index a8b34ca..cde3f65 100644
--- a/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Examples.kt
+++ b/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/model/Examples.kt
@@ -21,9 +21,9 @@
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.layout.wrapContentWidth
-import androidx.compose.material3.adaptive.samples.NavigationSuiteScaffoldCustomConfigSample
-import androidx.compose.material3.adaptive.samples.NavigationSuiteScaffoldSample
-import androidx.compose.material3.catalog.library.util.AdaptiveSampleSourceUrl
+import androidx.compose.material3.adaptive.navigation.suite.samples.NavigationSuiteScaffoldCustomConfigSample
+import androidx.compose.material3.adaptive.navigation.suite.samples.NavigationSuiteScaffoldSample
+import androidx.compose.material3.catalog.library.util.AdaptiveNavigationSuiteSampleSourceUrl
import androidx.compose.material3.catalog.library.util.SampleSourceUrl
import androidx.compose.material3.samples.AlertDialogSample
import androidx.compose.material3.samples.AlertDialogWithCustomContentSample
@@ -728,7 +728,7 @@
private const val NavigationSuiteScaffoldExampleDescription = "Navigation suite scaffold examples"
private const val NavigationSuiteScaffoldExampleSourceUrl =
- "$AdaptiveSampleSourceUrl/NavigationSuiteScaffoldSamples.kt"
+ "$AdaptiveNavigationSuiteSampleSourceUrl/NavigationSuiteScaffoldSamples.kt"
val NavigationSuiteScaffoldExamples =
listOf(
Example(
diff --git a/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/util/Url.kt b/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/util/Url.kt
index 0836cfe..175decf 100644
--- a/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/util/Url.kt
+++ b/compose/material3/material3/integration-tests/material3-catalog/src/main/java/androidx/compose/material3/catalog/library/util/Url.kt
@@ -40,12 +40,12 @@
const val SampleSourceUrl = "https://cs.android.com/androidx/platform/frameworks/support/+/" +
"androidx-main:compose/material3/" +
"material3/samples/src/main/java/androidx/compose/material3/samples"
-const val AdaptiveMaterial3SourceUrl = "https://cs.android.com/androidx/platform/frameworks/" +
- "support/+/androidx-main:compose/material3/" +
- "material3-adaptive/src/commonMain/kotlin/androidx/compose/material3/adaptive"
-const val AdaptiveSampleSourceUrl = "https://cs.android.com/androidx/platform/frameworks/" +
- "support/+/androidx-main:compose/material3/material3-adaptive" +
- "samples/src/main/java/androidx/compose/material3-adaptive/samples"
+const val AdaptiveNavigationSuiteMaterial3SourceUrl = "https://cs.android.com/androidx/platform/" +
+ "frameworks/support/+/androidx-main:compose/material3/material3-adaptive-navigation-suite/" +
+ "src/commonMain/kotlin/androidx/compose/material3/adaptive/navigation-suite"
+const val AdaptiveNavigationSuiteSampleSourceUrl = "https://cs.android.com/androidx/platform/" +
+ "frameworks/support/+/androidx-main:compose/material3/material3-adaptive-navigation-suite" +
+ "samples/src/main/java/androidx/compose/material3-adaptive-navigation-suite/samples"
const val IssueUrl = "https://issuetracker.google.com/issues/new?component=742043"
const val TermsUrl = "https://policies.google.com/terms"
const val PrivacyUrl = "https://policies.google.com/privacy"
diff --git a/docs-tip-of-tree/build.gradle b/docs-tip-of-tree/build.gradle
index e6838d3..5040829 100644
--- a/docs-tip-of-tree/build.gradle
+++ b/docs-tip-of-tree/build.gradle
@@ -89,6 +89,8 @@
kmpDocs(project(":compose:material3:material3"))
kmpDocs(project(":compose:material3:material3-adaptive"))
samples(project(":compose:material3:material3-adaptive:material3-adaptive-samples"))
+ kmpDocs(project(":compose:material3:material3-adaptive-navigation-suite"))
+ samples(project(":compose:material3:material3-adaptive-navigation-suite:material3-adaptive-navigation-suite-samples"))
samples(project(":compose:material3:material3:material3-samples"))
kmpDocs(project(":compose:material3:material3-window-size-class"))
samples(project(":compose:material3:material3-window-size-class:material3-window-size-class-samples"))
diff --git a/libraryversions.toml b/libraryversions.toml
index 3b41f13..c22ebfb 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -23,6 +23,7 @@
COMPOSE_COMPILER = "1.5.3"
COMPOSE_MATERIAL3 = "1.2.0-alpha10"
COMPOSE_MATERIAL3_ADAPTIVE = "1.0.0-alpha01"
+COMPOSE_MATERIAL3_ADAPTIVE_NAVIGATION_SUITE = "1.0.0-alpha01"
COMPOSE_RUNTIME_TRACING = "1.0.0-alpha05"
CONSTRAINTLAYOUT = "2.2.0-alpha13"
CONSTRAINTLAYOUT_COMPOSE = "1.1.0-alpha13"
diff --git a/settings.gradle b/settings.gradle
index 9c56c24..059d25a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -509,6 +509,8 @@
includeProject(":compose:material3:benchmark", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-adaptive", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-adaptive:material3-adaptive-samples", "compose/material3/material3-adaptive/samples", [BuildType.COMPOSE])
+includeProject(":compose:material3:material3-adaptive-navigation-suite", [BuildType.COMPOSE])
+includeProject(":compose:material3:material3-adaptive-navigation-suite:material3-adaptive-navigation-suite-samples", "compose/material3/material3-adaptive-navigation-suite/samples", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-lint", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-window-size-class", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-window-size-class:material3-window-size-class-samples", "compose/material3/material3-window-size-class/samples", [BuildType.COMPOSE])