# HG changeset patch # User Da Risk # Date 1745433826 14400 # Node ID baa92ecc200188b522adebafd43cd8c2be598d35 # Parent fb2afa1f40d4d3ac56fad8f29106b09a768643c1 sample: add PrebuiltLicensesWindows for desktop diff -r fb2afa1f40d4 -r baa92ecc2001 sample/src/desktopMain/kotlin/PrebuiltLicensesViewModel.desktop.kt --- a/sample/src/desktopMain/kotlin/PrebuiltLicensesViewModel.desktop.kt Wed Apr 23 14:42:24 2025 -0400 +++ b/sample/src/desktopMain/kotlin/PrebuiltLicensesViewModel.desktop.kt Wed Apr 23 14:43:46 2025 -0400 @@ -23,7 +23,7 @@ import androidx.lifecycle.viewmodel.CreationExtras import com.geekorum.aboutoss.core.licensee.LicenseeLicenseInfoRepository -import com.geekorum.aboutoss.ui.common.BrowserLauncher +import com.geekorum.aboutoss.ui.common.DesktopBrowserLauncher import com.geekorum.aboutoss.ui.common.OpenSourceLicensesViewModel import kotlinx.coroutines.Dispatchers import org.jetbrains.compose.resources.ExperimentalResourceApi @@ -38,20 +38,6 @@ return OpenSourceLicensesViewModel( licenseInfoRepository, - object : BrowserLauncher { - override fun warmUp() { - } - - override fun launchUrl(link: String) { - TODO("Not yet implemented") - } - - override fun mayLaunchUrl(vararg uris: String) { - TODO("Not yet implemented") - } - - override fun shutdown() { - } - } + DesktopBrowserLauncher() ) } \ No newline at end of file diff -r fb2afa1f40d4 -r baa92ecc2001 sample/src/desktopMain/kotlin/PrebuiltLicensesWindows.kt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sample/src/desktopMain/kotlin/PrebuiltLicensesWindows.kt Wed Apr 23 14:43:46 2025 -0400 @@ -0,0 +1,52 @@ +/* + * AboutOss is an utility library to retrieve and display + * opensource licenses in Android applications. + * + * Copyright (C) 2023-2025 by Frederic-Charles Barthelery. + * + * This file is part of AboutOss. + * + * AboutOss is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AboutOss is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AboutOss. If not, see . + */ +package com.geekorum.aboutoss.sampleapp + +import androidx.compose.runtime.Composable +import androidx.compose.ui.window.WindowState +import androidx.compose.ui.window.rememberWindowState +import androidx.lifecycle.viewmodel.compose.viewModel +import com.geekorum.aboutoss.ui.common.OpenSourceLicensesViewModel +import com.geekorum.aboutoss.ui.material.OpenSourceLicensesWindow as Material2OpenSourceLicensesWindow +import com.geekorum.aboutoss.ui.material3.OpenSourceLicensesWindow as Material3OpenSourceLicensesWindow + +@Composable +fun PrebuiltLicencesMaterial2Window( + onCloseRequest: () -> Unit, + state: WindowState = rememberWindowState(), +) { + val viewModel: OpenSourceLicensesViewModel = viewModel(initializer = { + createPrebuildOpenSourceLicensesViewModel() + }) + Material2OpenSourceLicensesWindow(onCloseRequest, state, viewModel) +} + +@Composable +fun PrebuiltLicencesMaterial3Window( + onCloseRequest: () -> Unit, + state: WindowState = rememberWindowState(), +) { + val viewModel: OpenSourceLicensesViewModel = viewModel(initializer = { + createPrebuildOpenSourceLicensesViewModel() + }) + Material3OpenSourceLicensesWindow(onCloseRequest, state, viewModel) +} \ No newline at end of file diff -r fb2afa1f40d4 -r baa92ecc2001 sample/src/desktopMain/kotlin/main.kt --- a/sample/src/desktopMain/kotlin/main.kt Wed Apr 23 14:42:24 2025 -0400 +++ b/sample/src/desktopMain/kotlin/main.kt Wed Apr 23 14:43:46 2025 -0400 @@ -22,6 +22,10 @@ package com.geekorum.aboutoss.sampleapp import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.window.Window import androidx.compose.ui.window.application import org.jetbrains.compose.ui.tooling.preview.Preview @@ -29,8 +33,27 @@ @Composable @Preview fun SampleAppDesktop() { - SampleApp(onMaterial2Click = {}, - onMaterial3Click = {}) + var material2IsOpen by remember { mutableStateOf(false) } + var material3IsOpen by remember { mutableStateOf(false) } + SampleApp( + onMaterial2Click = { + material2IsOpen = true + }, + onMaterial3Click = { + material3IsOpen = true + }) + + if (material2IsOpen) { + PrebuiltLicencesMaterial2Window(onCloseRequest = { + material2IsOpen = false + }) + } + if (material3IsOpen) { + PrebuiltLicencesMaterial3Window(onCloseRequest = { + material3IsOpen = false + }) + } + } fun main() = application {