docs/ui-material3.md
author Da Risk <da_risk@geekorum.com>
Tue, 06 May 2025 16:27:22 -0400
changeset 96 8ec76e3b9b6c
parent 84 f1e51fe391c2
permissions -rw-r--r--
build: bump version to 0.2.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
84
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     1
Ui-Material3
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     2
============
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     3
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     4
Setup
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     5
=====
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     6
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     7
Add the dependency to your project
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     8
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     9
```kotlin title="build.gradle.kts"
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    10
dependencies {
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    11
    implementation("com.geekorum.aboutoss:ui-material3:<latest-version>")
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    12
}
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    13
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    14
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    15
Usage
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    16
=====
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    17
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    18
The [OpenSourceDependenciesNavHost](api/ui/material3/com.geekorum.aboutoss.ui.material3/-open-source-dependencies-nav-host.html)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    19
composable allows to display the licenses.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    20
It takes an [OpenSourceLicensesViewModel](api/ui/common/com.geekorum.aboutoss.ui.common/-open-source-licenses-view-model/index.html)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    21
that you can create with the [LicenseInfoRepository](license-sources.md) of your choice.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    23
```kotlin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    24
val licenseInfoRepository = LicenseeLicenseInfoRepository()
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
val viewModel = viewModel<OpenSourceLicensesViewModel>(factory = OpenSourceLicensesViewModel.Factory(licenseInfoRepository))
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
OpenSourceDependenciesNavHost(
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
    openSourceLicensesViewModel = viewModel,
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
    navigateUp = {
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
        // close screen
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    30
    }
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    31
)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    32
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    33
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    34
The [AdaptiveOpenSourceDependenciesScreen](api/ui/material3/com.geekorum.aboutoss.ui.material3/-adaptive-open-source-dependencies-screen.html)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
composable display the licenses in an adaptive screen. The User interface will adapt based on the available space.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    36
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    37
```kotlin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    38
val licenseInfoRepository = LicenseeLicenseInfoRepository()
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    39
val viewModel = viewModel<OpenSourceLicensesViewModel>(factory = OpenSourceLicensesViewModel.Factory(licenseInfoRepository))
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    40
AdaptiveOpenSourceDependenciesScreen(
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    41
    openSourceLicensesViewModel = viewModel,
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    42
    navigateUp = {
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
        // close screen
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
    }
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    45
)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    46
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    47
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    48
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    49
Android
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    50
=======
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    51
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    52
The [OpenSourceLicensesActivity](api/ui/material3/com.geekorum.aboutoss.ui.material3/-open-source-licenses-activity/index.html) is configured to work with the [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    53
You can launch the activity like this:
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    54
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    55
```kotlin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    56
val intent = Intent(this, OpenSourceLicensesActivity::class.java)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    57
startActivity(intent)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    58
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    59
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    60
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    61
Desktop
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    62
=======
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    63
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    64
On Desktop the [OpenSourceLicensesWindow](api/ui/material3/com.geekorum.aboutoss.ui.material3/-open-source-licenses-window.html) is configured to work with [licensee](https://github.com/cashapp/licensee).
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    65
You can use it like this:
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    66
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    67
```kotlin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    68
OpenSourceLicensesWindow(onCloseRequest = {
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    69
    // close window
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    70
})
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    71
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    72