From cf37677e980f20073976564fee86ffad5b66aa18 Mon Sep 17 00:00:00 2001 From: Jon Eckenrode Date: Wed, 11 Dec 2024 22:52:03 +0000 Subject: [PATCH 01/12] Replaced deprecated WindowHeightSizeClass with isHeightAtLeastBreakpoint. --- .../compose/snippets/layouts/AdaptiveLayoutSnippets.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt index 7980eae05..7eaba09ed 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt @@ -52,9 +52,9 @@ fun MyApp( windowSizeClass: WindowSizeClass = currentWindowAdaptiveInfo().windowSizeClass ) { // Perform logic on the size class to decide whether to show the top app bar. - val showTopAppBar = windowSizeClass.windowHeightSizeClass != WindowHeightSizeClass.COMPACT + val showTopAppBar = windowSizeClass.isHeightAtLeastBreakpoint(480) - // MyScreen knows nothing about window sizes, and performs logic based on a Boolean flag. + // MyScreen knows nothing about window sizes, and performs logic based on a boolean flag. MyScreen( showTopAppBar = showTopAppBar, /* ... */ From 9ced8fbbb636c34d7858114762b9c9d8724b1e79 Mon Sep 17 00:00:00 2001 From: JonEckenrode Date: Wed, 11 Dec 2024 23:08:01 +0000 Subject: [PATCH 02/12] Apply Spotless --- .../example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt index 7eaba09ed..7e5adba94 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt @@ -28,7 +28,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.unit.dp -import androidx.window.core.layout.WindowHeightSizeClass import androidx.window.core.layout.WindowSizeClass /* From 5acb8a7f5ee480f00077e810f1f071969f6fc11c Mon Sep 17 00:00:00 2001 From: Jon Eckenrode Date: Wed, 11 Dec 2024 22:52:03 +0000 Subject: [PATCH 03/12] Replaced deprecated WindowHeightSizeClass with isHeightAtLeastBreakpoint. --- .../compose/snippets/layouts/AdaptiveLayoutSnippets.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt index 7980eae05..9447582cf 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/layouts/AdaptiveLayoutSnippets.kt @@ -28,7 +28,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.unit.dp -import androidx.window.core.layout.WindowHeightSizeClass import androidx.window.core.layout.WindowSizeClass /* @@ -51,10 +50,10 @@ import androidx.window.core.layout.WindowSizeClass fun MyApp( windowSizeClass: WindowSizeClass = currentWindowAdaptiveInfo().windowSizeClass ) { - // Perform logic on the size class to decide whether to show the top app bar. - val showTopAppBar = windowSizeClass.windowHeightSizeClass != WindowHeightSizeClass.COMPACT + // Decide whether to show the top app bar based on window size class. + val showTopAppBar = windowSizeClass.isHeightAtLeastBreakpoint(WindowSizeClass.HEIGHT_DP_MEDIUM_LOWER_BOUND) - // MyScreen knows nothing about window sizes, and performs logic based on a Boolean flag. + // MyScreen logic is based on the showTopAppBar boolean flag. MyScreen( showTopAppBar = showTopAppBar, /* ... */ From 94c805cc7e88d5f48073bbf3bf2e174b3879cd7f Mon Sep 17 00:00:00 2001 From: Jon Eckenrode Date: Tue, 7 Jan 2025 21:08:18 +0000 Subject: [PATCH 04/12] Updated androidx-window to 1.4.0-alpha05. --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6b75440fe..bc15f0464 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ androidx-navigation = "2.8.4" androidx-paging = "3.3.4" androidx-test = "1.6.1" androidx-test-espresso = "3.6.1" -androidx-window = "1.3.0" +androidx-window = "1.4.0-alpha05" androidxHiltNavigationCompose = "1.2.0" coil = "2.7.0" # @keep From 2e0f6f9af178573bab9b601f12ffd5c741e63a5f Mon Sep 17 00:00:00 2001 From: Jon Eckenrode Date: Tue, 21 Jan 2025 16:32:34 +0000 Subject: [PATCH 05/12] Created new folder and file for stylus snippets. --- .../compose/snippets/stylus/StylusSnippets.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt new file mode 100644 index 000000000..865c83052 --- /dev/null +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2025 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 + * + * https://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. + */ + +@file:Suppress("unused") + +package com.example.compose.snippets.stylus + +import androidx.compose.foundation.Canvas +import androidx.compose.ui.Modifier + +// [START android_compose_stylus_motion_event_access] +@Composable +@OptIn(ExperimentalComposeUiApi::class) +fun DrawArea(modifier: Modifier = Modifier) { + Canvas(modifier = modifier + .clipToBounds() + .pointerInteropFilter { + viewModel.processMotionEvent(it) + } + + ) { + // Drawing code here. + } +} +// [END android_compose_stylus_motion_event_access] From 1cb1cc93a529ed26c4a0d2d54122932911c2e95a Mon Sep 17 00:00:00 2001 From: JonEckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:40:49 +0000 Subject: [PATCH 06/12] Apply Spotless --- .../compose/snippets/stylus/StylusSnippets.kt | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index 865c83052..ff60e0f54 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -25,14 +25,15 @@ import androidx.compose.ui.Modifier @Composable @OptIn(ExperimentalComposeUiApi::class) fun DrawArea(modifier: Modifier = Modifier) { - Canvas(modifier = modifier - .clipToBounds() - .pointerInteropFilter { - viewModel.processMotionEvent(it) - } + Canvas( + modifier = modifier + .clipToBounds() + .pointerInteropFilter { + viewModel.processMotionEvent(it) + } - ) { - // Drawing code here. - } + ) { + // Drawing code here. + } } // [END android_compose_stylus_motion_event_access] From ce3511a71fb599c62c52f1c9fc589c313cc545a7 Mon Sep 17 00:00:00 2001 From: Jon Eckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Wed, 5 Mar 2025 16:39:27 -0500 Subject: [PATCH 07/12] Update StylusSnippets.kt --- .../java/com/example/compose/snippets/stylus/StylusSnippets.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index ff60e0f54..6efb59060 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -20,6 +20,7 @@ package com.example.compose.snippets.stylus import androidx.compose.foundation.Canvas import androidx.compose.ui.Modifier +import androidx.compose.runtime.Composable // [START android_compose_stylus_motion_event_access] @Composable From 8e7b8d47f82f06bbbd85e86b81c115c824953c41 Mon Sep 17 00:00:00 2001 From: JonEckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Wed, 5 Mar 2025 21:41:02 +0000 Subject: [PATCH 08/12] Apply Spotless --- .../java/com/example/compose/snippets/stylus/StylusSnippets.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index 6efb59060..455e642cf 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -19,8 +19,8 @@ package com.example.compose.snippets.stylus import androidx.compose.foundation.Canvas -import androidx.compose.ui.Modifier import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier // [START android_compose_stylus_motion_event_access] @Composable From 50f2d53cba956c88d9b9a86bca6b776a5bf7df97 Mon Sep 17 00:00:00 2001 From: Jon Eckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Wed, 5 Mar 2025 16:58:21 -0500 Subject: [PATCH 09/12] Update StylusSnippets.kt --- .../java/com/example/compose/snippets/stylus/StylusSnippets.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index 455e642cf..5e18defbd 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -20,6 +20,7 @@ package com.example.compose.snippets.stylus import androidx.compose.foundation.Canvas import androidx.compose.runtime.Composable +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier // [START android_compose_stylus_motion_event_access] From 1c2e8afefdc9f277f9d6c4bae0a4951ce3e12257 Mon Sep 17 00:00:00 2001 From: Jon Eckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:39:11 -0500 Subject: [PATCH 10/12] Update StylusSnippets.kt --- .../example/compose/snippets/stylus/StylusSnippets.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index 5e18defbd..7e5c2fcaf 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -22,6 +22,17 @@ import androidx.compose.foundation.Canvas import androidx.compose.runtime.Composable import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clipToBounds +import androidx.compose.ui.input.pointer.pointerInteropFilter +import androidx.lifecycle.ViewModel + +class UserViewModel: ViewModel() { + fun processMotionEvent(e: MotionEvent): Boolean { + return true + } +} + +val viewModel = UserViewModel() // [START android_compose_stylus_motion_event_access] @Composable From bed1a8c0482968eb53145277b157b699cc1e754a Mon Sep 17 00:00:00 2001 From: JonEckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Wed, 5 Mar 2025 22:40:52 +0000 Subject: [PATCH 11/12] Apply Spotless --- .../com/example/compose/snippets/stylus/StylusSnippets.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index 7e5c2fcaf..bfbad652b 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -26,10 +26,10 @@ import androidx.compose.ui.draw.clipToBounds import androidx.compose.ui.input.pointer.pointerInteropFilter import androidx.lifecycle.ViewModel -class UserViewModel: ViewModel() { - fun processMotionEvent(e: MotionEvent): Boolean { - return true - } +class UserViewModel : ViewModel() { + fun processMotionEvent(e: MotionEvent): Boolean { + return true + } } val viewModel = UserViewModel() From 5f5654fb5d4ff1c9b6685c9920be5fb53be2f734 Mon Sep 17 00:00:00 2001 From: Jon Eckenrode <112520815+JonEckenrode@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:47:57 -0500 Subject: [PATCH 12/12] Update StylusSnippets.kt --- .../java/com/example/compose/snippets/stylus/StylusSnippets.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt index bfbad652b..82c785984 100644 --- a/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt +++ b/compose/snippets/src/main/java/com/example/compose/snippets/stylus/StylusSnippets.kt @@ -18,6 +18,7 @@ package com.example.compose.snippets.stylus +import android.view.MotionEvent import androidx.compose.foundation.Canvas import androidx.compose.runtime.Composable import androidx.compose.ui.ExperimentalComposeUiApi