Skip to content

Commit

Permalink
Configure the "material3-window-size-class" module as CMP and include…
Browse files Browse the repository at this point in the history
… it to the publication (#1466)

Configure the `material3-window-size-class` module as CMP and include it
to the publication.
Added new method to non-android source set to calculate
`WindowSizeClass`.

Fixes https://youtrack.jetbrains.com/issue/CMP-2404

## Testing
Checked it in the MPP demo app:
<img width="400" alt="image"
src="/~https://github.com/user-attachments/assets/4c1b6fab-132d-4d1f-91fb-2c5a14bd9cab">


## Release Notes
### Features - Multiple Platforms
- Commonized `material3-window-size-class` module
  • Loading branch information
terrakok authored Jul 26, 2024
1 parent ae2659b commit 16f1e84
Show file tree
Hide file tree
Showing 11 changed files with 472 additions and 288 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
public abstract interface annotation class androidx/compose/material3/windowsizeclass/ExperimentalMaterial3WindowSizeClassApi : java/lang/annotation/Annotation {
}

public final class androidx/compose/material3/windowsizeclass/WindowHeightSizeClass : java/lang/Comparable {
public static final field Companion Landroidx/compose/material3/windowsizeclass/WindowHeightSizeClass$Companion;
public static final synthetic fun box-impl (I)Landroidx/compose/material3/windowsizeclass/WindowHeightSizeClass;
public synthetic fun compareTo (Ljava/lang/Object;)I
public fun compareTo-pav6bQQ (I)I
public static fun compareTo-pav6bQQ (II)I
public fun equals (Ljava/lang/Object;)Z
public static fun equals-impl (ILjava/lang/Object;)Z
public static final fun equals-impl0 (II)Z
public fun hashCode ()I
public static fun hashCode-impl (I)I
public fun toString ()Ljava/lang/String;
public static fun toString-impl (I)Ljava/lang/String;
public final synthetic fun unbox-impl ()I
}

public final class androidx/compose/material3/windowsizeclass/WindowHeightSizeClass$Companion {
public final fun getAllSizeClasses ()Ljava/util/Set;
public final fun getCompact-Pt018CI ()I
public final fun getDefaultSizeClasses ()Ljava/util/Set;
public final fun getExpanded-Pt018CI ()I
public final fun getMedium-Pt018CI ()I
}

public final class androidx/compose/material3/windowsizeclass/WindowSizeClass {
public static final field $stable I
public static final field Companion Landroidx/compose/material3/windowsizeclass/WindowSizeClass$Companion;
public synthetic fun <init> (IILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun equals (Ljava/lang/Object;)Z
public final fun getHeightSizeClass-Pt018CI ()I
public final fun getWidthSizeClass-Y0FxcvE ()I
public fun hashCode ()I
public fun toString ()Ljava/lang/String;
}

public final class androidx/compose/material3/windowsizeclass/WindowSizeClass$Companion {
public final fun calculateFromSize-qzXmJYc (JLjava/util/Set;Ljava/util/Set;)Landroidx/compose/material3/windowsizeclass/WindowSizeClass;
public static synthetic fun calculateFromSize-qzXmJYc$default (Landroidx/compose/material3/windowsizeclass/WindowSizeClass$Companion;JLjava/util/Set;Ljava/util/Set;ILjava/lang/Object;)Landroidx/compose/material3/windowsizeclass/WindowSizeClass;
}

public final class androidx/compose/material3/windowsizeclass/WindowSizeClass_skikoKt {
public static final fun calculateWindowSizeClass (Landroidx/compose/runtime/Composer;I)Landroidx/compose/material3/windowsizeclass/WindowSizeClass;
}

public final class androidx/compose/material3/windowsizeclass/WindowWidthSizeClass : java/lang/Comparable {
public static final field Companion Landroidx/compose/material3/windowsizeclass/WindowWidthSizeClass$Companion;
public static final synthetic fun box-impl (I)Landroidx/compose/material3/windowsizeclass/WindowWidthSizeClass;
public synthetic fun compareTo (Ljava/lang/Object;)I
public fun compareTo-GxU_lZo (I)I
public static fun compareTo-GxU_lZo (II)I
public fun equals (Ljava/lang/Object;)Z
public static fun equals-impl (ILjava/lang/Object;)Z
public static final fun equals-impl0 (II)Z
public fun hashCode ()I
public static fun hashCode-impl (I)I
public fun toString ()Ljava/lang/String;
public static fun toString-impl (I)Ljava/lang/String;
public final synthetic fun unbox-impl ()I
}

public final class androidx/compose/material3/windowsizeclass/WindowWidthSizeClass$Companion {
public final fun getAllSizeClasses ()Ljava/util/Set;
public final fun getCompact-Y0FxcvE ()I
public final fun getDefaultSizeClasses ()Ljava/util/Set;
public final fun getExpanded-Y0FxcvE ()I
public final fun getMedium-Y0FxcvE ()I
}

47 changes: 35 additions & 12 deletions compose/material3/material3-window-size-class/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,29 @@
* limitations under the License.
*/

import androidx.build.AndroidXComposePlugin
import androidx.build.JetbrainsAndroidXPlugin
import androidx.build.LibraryType
import androidx.build.PlatformIdentifier

plugins {
id("AndroidXPlugin")
id("com.android.library")
id("AndroidXComposePlugin")
id("JetbrainsAndroidXPlugin")
}

androidXMultiplatform {
AndroidXComposePlugin.applyAndConfigureKotlinPlugin(project)
JetbrainsAndroidXPlugin.applyAndConfigure(project)

androidXComposeMultiplatform {
android()
desktop()
darwin()
wasm()
js()
}

defaultPlatform(PlatformIdentifier.ANDROID)

kotlin {
sourceSets {
commonMain {
dependencies {
Expand All @@ -42,7 +50,8 @@ androidXMultiplatform {

commonTest {
dependencies {

implementation(libs.kotlinTest)
implementation(libs.kotlinTestAnnotationsCommon)
}
}

Expand All @@ -55,13 +64,6 @@ androidXMultiplatform {

skikoMain {
dependsOn(commonMain)
dependencies {
// Because dependencies are pinned in the android/common code.
implementation(project(":compose:ui:ui-util"))
api(project(":compose:runtime:runtime"))
api(project(":compose:ui:ui"))
api(project(":compose:ui:ui-unit"))
}
}

androidMain {
Expand Down Expand Up @@ -111,6 +113,27 @@ androidXMultiplatform {

}
}
wasmJsMain {
dependencies {
implementation(libs.kotlinStdlib)
}
}

skikoMain.dependsOn(commonMain)
desktopMain.dependsOn(skikoMain)
nonJvmMain.dependsOn(skikoMain)
webMain.dependsOn(nonJvmMain)
jsMain.dependsOn(webMain)
wasmJsMain.dependsOn(webMain)
nativeMain.dependsOn(nonJvmMain)

skikoTest.dependsOn(commonTest)
desktopTest.dependsOn(skikoTest)
nonJvmTest.dependsOn(skikoTest)
webTest.dependsOn(nonJvmTest)
jsTest.dependsOn(webTest)
wasmJsTest.dependsOn(webTest)
nativeTest.dependsOn(nonJvmTest)
}
}

Expand Down
Loading

0 comments on commit 16f1e84

Please sign in to comment.