From cf4d71eb97286e63065fa626ee3aa55e656465c6 Mon Sep 17 00:00:00 2001 From: Albert Vaca Cintora Date: Sat, 2 Mar 2024 01:55:34 +0100 Subject: [PATCH] Remove deprecated Mdc3 library --- build.gradle.kts | 1 - gradle/libs.versions.toml | 2 -- .../MousePadPlugin/ComposeSendActivity.kt | 4 +-- .../PresenterPlugin/PresenterActivity.kt | 6 ++-- .../UserInterface/DeviceFragment.kt | 4 +-- .../UserInterface/compose/KdeTheme.kt | 36 +++++++++++++++++++ 6 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 src/org/kde/kdeconnect/UserInterface/compose/KdeTheme.kt diff --git a/build.gradle.kts b/build.gradle.kts index 143dc934..9d26cf51 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -155,7 +155,6 @@ dependencies { implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.activity.compose) - implementation(libs.accompanist.themeadapter.material3) // TODO: Remove deprecated library https://google.github.io/accompanist/themeadapter-material3/ implementation(libs.androidx.constraintlayout.compose) implementation(libs.androidx.compose.ui.tooling.preview) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3c63d244..a96d9462 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,4 @@ [versions] -accompanistThemeadapterMaterial3 = "0.32.0" activityCompose = "1.8.2" androidDesugarJdkLibs = "2.0.4" androidGradlePlugin = "8.3.0" @@ -41,7 +40,6 @@ univocityParsers = "2.9.1" sl4j = "2.0.4" [libraries] -accompanist-themeadapter-material3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version.ref = "accompanistThemeadapterMaterial3" } android-desugarJdkLibs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" } android-smsmms = { module = "org.kde.invent.sredman:android-smsmms", version.ref = "androidSmsmms" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" } diff --git a/src/org/kde/kdeconnect/Plugins/MousePadPlugin/ComposeSendActivity.kt b/src/org/kde/kdeconnect/Plugins/MousePadPlugin/ComposeSendActivity.kt index 38f43ff4..60480811 100644 --- a/src/org/kde/kdeconnect/Plugins/MousePadPlugin/ComposeSendActivity.kt +++ b/src/org/kde/kdeconnect/Plugins/MousePadPlugin/ComposeSendActivity.kt @@ -24,11 +24,11 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.preference.PreferenceManager -import com.google.accompanist.themeadapter.material3.Mdc3Theme import org.kde.kdeconnect.KdeConnect import org.kde.kdeconnect.NetworkPacket import org.kde.kdeconnect.UserInterface.compose.KdeTextButton import org.kde.kdeconnect.UserInterface.compose.KdeTextField +import org.kde.kdeconnect.UserInterface.compose.KdeTheme import org.kde.kdeconnect.UserInterface.compose.KdeTopAppBar import org.kde.kdeconnect_tp.R @@ -89,7 +89,7 @@ class ComposeSendActivity : AppCompatActivity() { @Composable private fun ComposeSendScreen() { - Mdc3Theme { + KdeTheme(this) { Scaffold( topBar = { KdeTopAppBar( diff --git a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.kt b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.kt index f984a277..9f0449fb 100644 --- a/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.kt +++ b/src/org/kde/kdeconnect/Plugins/PresenterPlugin/PresenterActivity.kt @@ -33,9 +33,9 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.media.VolumeProviderCompat -import com.google.accompanist.themeadapter.material3.Mdc3Theme import org.kde.kdeconnect.KdeConnect import org.kde.kdeconnect.UserInterface.compose.KdeButton +import org.kde.kdeconnect.UserInterface.compose.KdeTheme import org.kde.kdeconnect.UserInterface.compose.KdeTopAppBar import org.kde.kdeconnect_tp.R @@ -115,7 +115,7 @@ class PresenterActivity : AppCompatActivity(), SensorEventListener { val sensorManager = LocalContext.current.getSystemService(SENSOR_SERVICE) as? SensorManager - Mdc3Theme { + KdeTheme(this) { Scaffold(topBar = { PresenterAppBar() }) { Column( modifier = Modifier.fillMaxSize().padding(it).padding(16.dp), @@ -199,4 +199,4 @@ class PresenterActivity : AppCompatActivity(), SensorEventListener { } ) } -} \ No newline at end of file +} diff --git a/src/org/kde/kdeconnect/UserInterface/DeviceFragment.kt b/src/org/kde/kdeconnect/UserInterface/DeviceFragment.kt index fe073782..7b4f0dd9 100644 --- a/src/org/kde/kdeconnect/UserInterface/DeviceFragment.kt +++ b/src/org/kde/kdeconnect/UserInterface/DeviceFragment.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.* import androidx.fragment.app.Fragment -import com.google.accompanist.themeadapter.material3.Mdc3Theme import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.kde.kdeconnect.BackgroundService import org.kde.kdeconnect.Device @@ -44,6 +43,7 @@ import org.kde.kdeconnect.Plugins.MprisPlugin.MprisPlugin import org.kde.kdeconnect.Plugins.Plugin import org.kde.kdeconnect.Plugins.PresenterPlugin.PresenterPlugin import org.kde.kdeconnect.Plugins.RunCommandPlugin.RunCommandPlugin +import org.kde.kdeconnect.UserInterface.compose.KdeTheme import org.kde.kdeconnect_tp.R import org.kde.kdeconnect_tp.databinding.ActivityDeviceBinding import org.kde.kdeconnect_tp.databinding.ViewPairErrorBinding @@ -288,7 +288,7 @@ class DeviceFragment : Fragment() { requireDeviceBinding().deviceView.visibility = View.VISIBLE requireDeviceBinding().deviceViewCompose.apply { setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) - setContent { Mdc3Theme { PluginList(device) } } + setContent { KdeTheme(context) { PluginList(device) } } } displayBatteryInfoIfPossible() } else { diff --git a/src/org/kde/kdeconnect/UserInterface/compose/KdeTheme.kt b/src/org/kde/kdeconnect/UserInterface/compose/KdeTheme.kt new file mode 100644 index 00000000..3773082e --- /dev/null +++ b/src/org/kde/kdeconnect/UserInterface/compose/KdeTheme.kt @@ -0,0 +1,36 @@ +/* + * SPDX-FileCopyrightText: 2024 Albert Vaca Cintora + * + * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL + */ + +package org.kde.kdeconnect.UserInterface.compose + +import android.content.Context +import android.os.Build +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.dynamicDarkColorScheme +import androidx.compose.material3.dynamicLightColorScheme +import androidx.compose.material3.lightColorScheme +import androidx.compose.runtime.Composable + +@Composable +fun KdeTheme(context : Context, content: @Composable () -> Unit) { + val colorScheme = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + when (isSystemInDarkTheme()) { + true -> dynamicDarkColorScheme(context) + false -> dynamicLightColorScheme(context) + } + } else { + when (isSystemInDarkTheme()) { + true -> darkColorScheme() + false -> lightColorScheme() + } + } + MaterialTheme( + colorScheme = colorScheme, + content = content, + ) +}