From 4b1884816c707b4e0c6e6f3fa22a49d6174c8c85 Mon Sep 17 00:00:00 2001 From: Patryk Michalik Date: Mon, 22 Mar 2021 19:05:52 +0100 Subject: [PATCH] Add open-source notices --- AndroidManifest-common.xml | 8 ++++ build.gradle | 3 ++ lawnchair/res/values/strings.xml | 2 +- .../src/app/lawnchair/ui/preferences/About.kt | 11 ++++++ .../ui/preferences/ClickListenerPreference.kt | 39 +++++++++++++++++++ 5 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 lawnchair/src/app/lawnchair/ui/preferences/ClickListenerPreference.kt diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml index f30d596856..1fc337c818 100644 --- a/AndroidManifest-common.xml +++ b/AndroidManifest-common.xml @@ -194,5 +194,13 @@ + + + + diff --git a/build.gradle b/build.gradle index 50bed535b9..f0457a4ee6 100644 --- a/build.gradle +++ b/build.gradle @@ -12,6 +12,7 @@ buildscript { classpath 'com.android.tools.build:gradle:7.0.0-alpha10' classpath PROTOBUF_CLASS_PATH classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.google.android.gms:oss-licenses-plugin:0.10.2' } } @@ -45,6 +46,7 @@ allprojects { apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'com.google.protobuf' +apply plugin: 'com.google.android.gms.oss-licenses-plugin' final def commitHash = { -> final def stdout = new ByteArrayOutputStream() @@ -228,6 +230,7 @@ allprojects { } dependencies { + implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0' implementation "androidx.dynamicanimation:dynamicanimation:${ANDROID_X_VERSION}" implementation "androidx.recyclerview:recyclerview:${ANDROID_X_VERSION}" implementation "androidx.preference:preference-ktx:${ANDROID_X_VERSION}" diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index 2d3b30c2f5..480dd7d113 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -44,7 +44,7 @@ Twitter GitHub Team Members - Open-Source Licenses + Acknowledgements To be determined. To be determined. DevOps Engineer diff --git a/lawnchair/src/app/lawnchair/ui/preferences/About.kt b/lawnchair/src/app/lawnchair/ui/preferences/About.kt index 7c99994607..001fca560d 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/About.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/About.kt @@ -1,5 +1,6 @@ package app.lawnchair.ui.preferences +import android.content.Intent import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -17,9 +18,12 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import app.lawnchair.util.preferences.getFormattedVersionName import com.android.launcher3.R +import com.google.android.gms.oss.licenses.OssLicensesMenuActivity @Composable fun About() { + val context = LocalContext.current + Column( modifier = Modifier .fillMaxWidth() @@ -115,5 +119,12 @@ fun About() { url = "https://twitter.com/skittles9823" ) } + PreferenceGroup(useTopPadding = true) { + ClickListenerPreference(label = stringResource(id = R.string.acknowledgements), showDivider = false, onClick = { + val intent = Intent(context, OssLicensesMenuActivity::class.java) + OssLicensesMenuActivity.setActivityTitle(context.getString(R.string.acknowledgements)) + context.startActivity(intent) + }) + } } } \ No newline at end of file diff --git a/lawnchair/src/app/lawnchair/ui/preferences/ClickListenerPreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/ClickListenerPreference.kt new file mode 100644 index 0000000000..4b2c7a35b2 --- /dev/null +++ b/lawnchair/src/app/lawnchair/ui/preferences/ClickListenerPreference.kt @@ -0,0 +1,39 @@ +package app.lawnchair.ui.preferences + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.material.ContentAlpha +import androidx.compose.material.LocalContentAlpha +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import androidx.navigation.compose.navigate + +@Composable +fun ClickListenerPreference( + label: String, + subtitle: String? = null, + onClick: () -> Unit, + showDivider: Boolean = true +) = + PreferenceTemplate(height = if (subtitle != null) 72.dp else 52.dp, showDivider = showDivider) { + Column( + verticalArrangement = Arrangement.Center, + modifier = Modifier + .fillMaxWidth() + .fillMaxHeight() + .clickable(onClick = onClick) + .padding(start = 16.dp, end = 16.dp), + ) { + Text(text = label, style = MaterialTheme.typography.subtitle1, color = MaterialTheme.colors.onBackground) + subtitle?.let { + CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) { + Text(text = it, style = MaterialTheme.typography.body2, color = MaterialTheme.colors.onBackground) + } + } + } + } \ No newline at end of file