diff --git a/lawnchair/res/values-ja-rJP/strings.xml b/lawnchair/res/values-ja-rJP/strings.xml
index ff4298bfae2..c0aa3b2d956 100644
--- a/lawnchair/res/values-ja-rJP/strings.xml
+++ b/lawnchair/res/values-ja-rJP/strings.xml
@@ -253,7 +253,7 @@
アプリ検索
- %1$s & Lawnchair はレベニューシェアを契約しています。\n\n %1$s で検索すると、Lawnchair をサポートすることができます。
+ %1$s & Lawnchair はレベニューシェアを契約しています。\n\n %1$s で検索することで、Lawnchair をサポートすることができます。
アプリ
ウェブサイト
アプリをインストールする必要があります
diff --git a/lawnchair/res/values-pt-rPT/strings.xml b/lawnchair/res/values-pt-rPT/strings.xml
index 1e050e06a00..c358ff92bbc 100644
--- a/lawnchair/res/values-pt-rPT/strings.xml
+++ b/lawnchair/res/values-pt-rPT/strings.xml
@@ -253,7 +253,7 @@
Pesquisa de Aplicações
- %1$s & Lawnchair have a revenue share agreement.\n\nSearching with %1$s helps support Lawnchair.
+ %1$s & Lawnchair tem um acordo de participação de receitas.\n\nPesquisar com %1$s ajuda a suportar o Lawnchair.
Aplicação
Website
Aplicação necessária.
diff --git a/lawnchair/res/values-sv-rSE/strings.xml b/lawnchair/res/values-sv-rSE/strings.xml
index 707aaf3ff1b..3294b342ab6 100644
--- a/lawnchair/res/values-sv-rSE/strings.xml
+++ b/lawnchair/res/values-sv-rSE/strings.xml
@@ -253,7 +253,7 @@
Appsök
- %1$s & Lawnchair have a revenue share agreement.\n\nSearching with %1$s helps support Lawnchair.
+ %1$s & Lawnchair har ett avtal om intäktsdelning.\n\nSökning med %1$s hjälper till att stödja Lawnchair.
App
Webbplats
App krävs.
diff --git a/lawnchair/src/app/lawnchair/BlankActivity.kt b/lawnchair/src/app/lawnchair/BlankActivity.kt
index e4ef09256eb..7966f1d5d0a 100644
--- a/lawnchair/src/app/lawnchair/BlankActivity.kt
+++ b/lawnchair/src/app/lawnchair/BlankActivity.kt
@@ -23,12 +23,13 @@ import androidx.core.os.bundleOf
import androidx.core.view.WindowCompat
import app.lawnchair.ui.preferences.components.SystemUi
import app.lawnchair.ui.theme.LawnchairTheme
+import app.lawnchair.util.unsafeLazy
import kotlin.coroutines.resume
import kotlinx.coroutines.suspendCancellableCoroutine
class BlankActivity : AppCompatActivity() {
- private val resultReceiver by lazy { intent.getParcelableExtra("callback")!! }
+ private val resultReceiver by unsafeLazy { intent.getParcelableExtra("callback")!! }
private var resultSent = false
private var firstResume = true
private var targetStarted = false
diff --git a/lawnchair/src/app/lawnchair/LawnchairApp.kt b/lawnchair/src/app/lawnchair/LawnchairApp.kt
index 95ce8c7b9fc..d9db72c542f 100644
--- a/lawnchair/src/app/lawnchair/LawnchairApp.kt
+++ b/lawnchair/src/app/lawnchair/LawnchairApp.kt
@@ -41,6 +41,7 @@ import app.lawnchair.preferences.PreferenceManager
import app.lawnchair.ui.AlertBottomSheetContent
import app.lawnchair.ui.preferences.openAppInfo
import app.lawnchair.util.restartLauncher
+import app.lawnchair.util.unsafeLazy
import app.lawnchair.views.ComposeBottomSheet
import com.android.launcher3.BuildConfig
import com.android.launcher3.InvariantDeviceProfile
@@ -53,11 +54,11 @@ import java.io.File
class LawnchairApp : Application() {
private val compatible = Build.VERSION.SDK_INT in BuildConfig.QUICKSTEP_MIN_SDK..BuildConfig.QUICKSTEP_MAX_SDK
- private val isRecentsComponent: Boolean by lazy { checkRecentsComponent() }
+ private val isRecentsComponent: Boolean by unsafeLazy { checkRecentsComponent() }
private val recentsEnabled: Boolean get() = compatible && isRecentsComponent
private val isAtleastT = Utilities.ATLEAST_T
internal var accessibilityService: LawnchairAccessibilityService? = null
- val isVibrateOnIconAnimation: Boolean by lazy { getSystemUiBoolean("config_vibrateOnIconAnimation", false) }
+ val isVibrateOnIconAnimation: Boolean by unsafeLazy { getSystemUiBoolean("config_vibrateOnIconAnimation", false) }
override fun onCreate() {
super.onCreate()
diff --git a/lawnchair/src/app/lawnchair/LawnchairLauncher.kt b/lawnchair/src/app/lawnchair/LawnchairLauncher.kt
index b40ceb293ac..e9d713fae6a 100644
--- a/lawnchair/src/app/lawnchair/LawnchairLauncher.kt
+++ b/lawnchair/src/app/lawnchair/LawnchairLauncher.kt
@@ -36,6 +36,7 @@ import app.lawnchair.search.LawnchairSearchAdapterProvider
import app.lawnchair.theme.ThemeProvider
import app.lawnchair.ui.popup.LawnchairShortcut
import app.lawnchair.util.getThemedIconPacksInstalled
+import app.lawnchair.util.unsafeLazy
import com.android.launcher3.BaseActivity
import com.android.launcher3.LauncherAppState
import com.android.launcher3.LauncherState
@@ -64,11 +65,11 @@ import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
class LawnchairLauncher : QuickstepLauncher() {
- private val defaultOverlay by lazy { OverlayCallbackImpl(this) }
- private val prefs by lazy { PreferenceManager.getInstance(this) }
- private val preferenceManager2 by lazy { PreferenceManager2.getInstance(this) }
- private val insetsController by lazy { WindowInsetsControllerCompat(launcher.window, rootView) }
- private val themeProvider by lazy { ThemeProvider.INSTANCE.get(this) }
+ private val defaultOverlay by unsafeLazy { OverlayCallbackImpl(this) }
+ private val prefs by unsafeLazy { PreferenceManager.getInstance(this) }
+ private val preferenceManager2 by unsafeLazy { PreferenceManager2.getInstance(this) }
+ private val insetsController by unsafeLazy { WindowInsetsControllerCompat(launcher.window, rootView) }
+ private val themeProvider by unsafeLazy { ThemeProvider.INSTANCE.get(this) }
private val noStatusBarStateListener = object : StateManager.StateListener {
override fun onStateTransitionStart(toState: LauncherState) {
if (toState is OverviewState) {
@@ -84,7 +85,7 @@ class LawnchairLauncher : QuickstepLauncher() {
private var hasBackGesture = false
private lateinit var colorScheme: ColorScheme
- val gestureController by lazy { GestureController(this) }
+ val gestureController by unsafeLazy { GestureController(this) }
override fun onCreate(savedInstanceState: Bundle?) {
layoutInflater.factory2 = LawnchairLayoutFactory(this)
diff --git a/lawnchair/src/app/lawnchair/backup/ui/RestoreBackupViewModel.kt b/lawnchair/src/app/lawnchair/backup/ui/RestoreBackupViewModel.kt
index b9e6abdb6e3..4b3bf9321a1 100644
--- a/lawnchair/src/app/lawnchair/backup/ui/RestoreBackupViewModel.kt
+++ b/lawnchair/src/app/lawnchair/backup/ui/RestoreBackupViewModel.kt
@@ -21,11 +21,11 @@ sealed interface RestoreBackupUiState {
override val isLoading: Boolean = false
}
- object Loading : RestoreBackupUiState {
+ data object Loading : RestoreBackupUiState {
override val isLoading: Boolean = true
}
- object Error : RestoreBackupUiState {
+ data object Error : RestoreBackupUiState {
override val isLoading: Boolean = true
}
}
diff --git a/lawnchair/src/app/lawnchair/font/FontManager.kt b/lawnchair/src/app/lawnchair/font/FontManager.kt
index 1e8a6aa2b6a..e78cc9f288b 100644
--- a/lawnchair/src/app/lawnchair/font/FontManager.kt
+++ b/lawnchair/src/app/lawnchair/font/FontManager.kt
@@ -26,14 +26,14 @@ class FontManager private constructor(private val context: Context) {
val sansSerifMedium = Typeface.create("sans-serif-medium", Typeface.NORMAL)
val prefs = PreferenceManager.getInstance(context)
- val map = mutableMapOf()
- map[R.id.font_base_icon] = FontSpec(prefs.fontWorkspace, sansSerif)
- map[R.id.font_button] = FontSpec(prefs.fontHeadingMedium, sansSerifMedium)
- map[R.id.font_heading] = FontSpec(prefs.fontHeading, sansSerif)
- map[R.id.font_heading_medium] = FontSpec(prefs.fontHeadingMedium, sansSerif)
- map[R.id.font_body] = FontSpec(prefs.fontBody, sansSerif)
- map[R.id.font_body_medium] = FontSpec(prefs.fontBodyMedium, sansSerif)
- return map
+ return mapOf(
+ R.id.font_base_icon to FontSpec(prefs.fontWorkspace, sansSerif),
+ R.id.font_button to FontSpec(prefs.fontHeadingMedium, sansSerifMedium),
+ R.id.font_heading to FontSpec(prefs.fontHeading, sansSerif),
+ R.id.font_heading_medium to FontSpec(prefs.fontHeadingMedium, sansSerif),
+ R.id.font_body to FontSpec(prefs.fontBody, sansSerif),
+ R.id.font_body_medium to FontSpec(prefs.fontBodyMedium, sansSerif),
+ )
}
fun overrideFont(textView: TextView, attrs: AttributeSet?) {
@@ -82,7 +82,6 @@ class FontManager private constructor(private val context: Context) {
}
class FontSpec(val loader: () -> FontCache.Font, val fallback: Typeface) {
- constructor(font: FontCache.Font, fallback: Typeface) : this({ font }, fallback)
constructor(pref: BasePreferenceManager.FontPref, fallback: Typeface) : this(pref::get, fallback)
val font get() = loader()
diff --git a/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerConfig.kt b/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerConfig.kt
index 7020d810c84..7b1979aedc3 100644
--- a/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerConfig.kt
+++ b/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerConfig.kt
@@ -34,27 +34,27 @@ sealed class GestureHandlerConfig {
@Serializable
@SerialName("noOp")
- object NoOp : Simple(R.string.gesture_handler_no_op, ::NoOpGestureHandler)
+ data object NoOp : Simple(R.string.gesture_handler_no_op, ::NoOpGestureHandler)
@Serializable
@SerialName("sleep")
- object Sleep : Simple(R.string.gesture_handler_sleep, ::SleepGestureHandler)
+ data object Sleep : Simple(R.string.gesture_handler_sleep, ::SleepGestureHandler)
@Serializable
@SerialName("openNotifications")
- object OpenNotifications : Simple(R.string.gesture_handler_open_notifications, ::OpenNotificationsHandler)
+ data object OpenNotifications : Simple(R.string.gesture_handler_open_notifications, ::OpenNotificationsHandler)
@Serializable
@SerialName("openAppDrawer")
- object OpenAppDrawer : Simple(R.string.gesture_handler_open_app_drawer, ::OpenAppDrawerGestureHandler)
+ data object OpenAppDrawer : Simple(R.string.gesture_handler_open_app_drawer, ::OpenAppDrawerGestureHandler)
@Serializable
@SerialName("openAppSearch")
- object OpenAppSearch : Simple(R.string.gesture_handler_open_app_search, ::OpenAppSearchGestureHandler)
+ data object OpenAppSearch : Simple(R.string.gesture_handler_open_app_search, ::OpenAppSearchGestureHandler)
@Serializable
@SerialName("openSearch")
- object OpenSearch : Simple(R.string.gesture_handler_open_search, ::OpenSearchGestureHandler)
+ data object OpenSearch : Simple(R.string.gesture_handler_open_search, ::OpenSearchGestureHandler)
@Serializable
@SerialName("openApp")
diff --git a/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerOption.kt b/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerOption.kt
index f148288ac49..2633ef6c1fa 100644
--- a/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerOption.kt
+++ b/lawnchair/src/app/lawnchair/gestures/config/GestureHandlerOption.kt
@@ -9,7 +9,7 @@ import app.lawnchair.util.kotlinxJson
import com.android.launcher3.R
sealed class GestureHandlerOption(
- val labelRes: Int,
+ private val labelRes: Int,
val configClass: Class<*>,
) {
@@ -17,23 +17,20 @@ sealed class GestureHandlerOption(
abstract suspend fun buildConfig(activity: Activity): GestureHandlerConfig?
- open class Simple(labelRes: Int, val obj: GestureHandlerConfig) : GestureHandlerOption(labelRes, obj::class.java) {
- constructor(obj: GestureHandlerConfig.Simple) : this(
- obj.labelRes,
- obj,
- )
+ sealed class Simple(labelRes: Int, val obj: GestureHandlerConfig) : GestureHandlerOption(labelRes, obj::class.java) {
+ constructor(obj: GestureHandlerConfig.Simple) : this(obj.labelRes, obj)
override suspend fun buildConfig(activity: Activity) = obj
}
- object NoOp : Simple(GestureHandlerConfig.NoOp)
- object Sleep : Simple(GestureHandlerConfig.Sleep)
- object OpenNotifications : Simple(GestureHandlerConfig.OpenNotifications)
- object OpenAppDrawer : Simple(GestureHandlerConfig.OpenAppDrawer)
- object OpenAppSearch : Simple(GestureHandlerConfig.OpenAppSearch)
- object OpenSearch : Simple(GestureHandlerConfig.OpenSearch)
+ data object NoOp : Simple(GestureHandlerConfig.NoOp)
+ data object Sleep : Simple(GestureHandlerConfig.Sleep)
+ data object OpenNotifications : Simple(GestureHandlerConfig.OpenNotifications)
+ data object OpenAppDrawer : Simple(GestureHandlerConfig.OpenAppDrawer)
+ data object OpenAppSearch : Simple(GestureHandlerConfig.OpenAppSearch)
+ data object OpenSearch : Simple(GestureHandlerConfig.OpenSearch)
- object OpenApp : GestureHandlerOption(
+ data object OpenApp : GestureHandlerOption(
R.string.gesture_handler_open_app_option,
GestureHandlerConfig.OpenApp::class.java,
) {
diff --git a/lawnchair/src/app/lawnchair/gestures/handlers/GestureHandler.kt b/lawnchair/src/app/lawnchair/gestures/handlers/GestureHandler.kt
index a5f091fb3c2..cfae5f0c2f1 100644
--- a/lawnchair/src/app/lawnchair/gestures/handlers/GestureHandler.kt
+++ b/lawnchair/src/app/lawnchair/gestures/handlers/GestureHandler.kt
@@ -20,7 +20,6 @@ import android.content.Context
import app.lawnchair.LawnchairLauncher
sealed class GestureHandler(val context: Context) {
-
abstract suspend fun onTrigger(launcher: LawnchairLauncher)
}
diff --git a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt
index 1dfa2c1aee8..4a6e0bccca0 100644
--- a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt
+++ b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt
@@ -57,7 +57,7 @@ class LawnchairIconProvider @JvmOverloads constructor(
private var iconPackVersion = 0L
private var themeMapName: String = ""
private var _themeMap: Map? = null
- val themeMap: Map
+ private val themeMap: Map
get() {
if (drawerThemedIcons.get() && !(isOlderLawnIconsInstalled)) {
_themeMap = DISABLED_MAP
diff --git a/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt b/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt
index 12811d48e2a..a3b13102027 100644
--- a/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt
+++ b/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt
@@ -125,7 +125,7 @@ sealed class IconCornerShape {
override fun toString(): String = "ultrasquircle"
}
- object Sammy : BaseBezierPath() {
+ data object Sammy : BaseBezierPath() {
override val controlDistanceX: Float = 0.4431717f
override val controlDistanceY: Float = 0.14010102f
@@ -228,7 +228,7 @@ sealed class IconCornerShape {
abstract val endX: Float
abstract val endY: Float
- object TopLeft : Position() {
+ data object TopLeft : Position() {
override val startX = 0f
override val startY = 1f
@@ -238,7 +238,7 @@ sealed class IconCornerShape {
override val endY = 0f
}
- object TopRight : Position() {
+ data object TopRight : Position() {
override val startX = 0f
override val startY = 0f
@@ -248,7 +248,7 @@ sealed class IconCornerShape {
override val endY = 1f
}
- object BottomRight : Position() {
+ data object BottomRight : Position() {
override val startX = 1f
override val startY = 0f
@@ -258,7 +258,7 @@ sealed class IconCornerShape {
override val endY = 1f
}
- object BottomLeft : Position() {
+ data object BottomLeft : Position() {
override val startX = 1f
override val startY = 1f
diff --git a/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt b/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt
index ed81fe34700..cd379ecca1b 100644
--- a/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt
+++ b/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt
@@ -10,6 +10,7 @@ import android.view.MotionEvent
import android.view.View
import android.view.View.OnLongClickListener
import android.view.ViewGroup
+import app.lawnchair.util.unsafeLazy
import com.android.launcher3.CheckLongPressHelper
import com.android.launcher3.Launcher
import com.android.launcher3.R
@@ -19,8 +20,8 @@ import com.android.launcher3.views.BaseDragLayer.TouchCompleteListener
import com.android.launcher3.views.OptionsPopupView
import com.android.launcher3.views.OptionsPopupView.OptionItem
-open class SmartSpaceHostView(context: Context) : QsbWidgetHostView(context), OnLongClickListener, TouchCompleteListener {
- private val mLauncher: Launcher by lazy { Launcher.getLauncher(context) }
+sealed class SmartSpaceHostView(context: Context) : QsbWidgetHostView(context), OnLongClickListener, TouchCompleteListener {
+ private val mLauncher: Launcher by unsafeLazy { Launcher.getLauncher(context) }
@Suppress("LeakingThis")
private val mLongPressHelper: CheckLongPressHelper = CheckLongPressHelper(this, this)
diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt
index 4dd4f6e87e3..74fe4ad1a39 100644
--- a/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt
+++ b/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt
@@ -22,11 +22,9 @@ import androidx.compose.runtime.MutableState
import androidx.compose.runtime.State
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf
-import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
-import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import app.lawnchair.preferences2.IdpPreference
import app.lawnchair.preferences2.asState
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/AppSearch.kt b/lawnchair/src/app/lawnchair/qsb/providers/AppSearch.kt
index c65d5c14457..7ca06854727 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/AppSearch.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/AppSearch.kt
@@ -5,7 +5,7 @@ import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.Launcher
import com.android.launcher3.R
-object AppSearch : QsbSearchProvider(
+data object AppSearch : QsbSearchProvider(
id = "app_search",
name = R.string.search_provider_app_search,
icon = R.drawable.ic_qsb_search,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt b/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt
index 5167fda003b..a8e2521df00 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt
@@ -4,7 +4,7 @@ import android.content.Intent
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object Bing : QsbSearchProvider(
+data object Bing : QsbSearchProvider(
id = "bing",
name = R.string.search_provider_bing,
icon = R.drawable.ic_bing,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Brave.kt b/lawnchair/src/app/lawnchair/qsb/providers/Brave.kt
index 423cf699861..b2292d937cd 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Brave.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Brave.kt
@@ -3,7 +3,7 @@ package app.lawnchair.qsb.providers
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object Brave : QsbSearchProvider(
+data object Brave : QsbSearchProvider(
id = "brave",
name = R.string.search_provider_brave,
icon = R.drawable.ic_brave,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/DuckDuckGo.kt b/lawnchair/src/app/lawnchair/qsb/providers/DuckDuckGo.kt
index bfdf00af3e7..930d9eb6e9d 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/DuckDuckGo.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/DuckDuckGo.kt
@@ -3,7 +3,7 @@ package app.lawnchair.qsb.providers
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object DuckDuckGo : QsbSearchProvider(
+data object DuckDuckGo : QsbSearchProvider(
id = "duckduckgo",
name = R.string.search_provider_duckduckgo,
icon = R.drawable.ic_duckduckgo,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/GitHub.kt b/lawnchair/src/app/lawnchair/qsb/providers/GitHub.kt
index e86bd3783bb..939df93a825 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/GitHub.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/GitHub.kt
@@ -2,7 +2,7 @@ package app.lawnchair.qsb.providers
import com.android.launcher3.R
-object GitHub : QsbSearchProvider(
+data object GitHub : QsbSearchProvider(
id = "github",
name = R.string.search_provider_github,
icon = R.drawable.ic_github,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Google.kt b/lawnchair/src/app/lawnchair/qsb/providers/Google.kt
index 7f1a4ac5ef5..f413762eb78 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Google.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Google.kt
@@ -17,7 +17,7 @@ import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.map
-object Google : QsbSearchProvider(
+data object Google : QsbSearchProvider(
id = "google",
name = R.string.search_provider_google,
icon = R.drawable.ic_super_g_color,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt b/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt
index 3c0bbaa0809..18f736f9bd3 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt
@@ -4,7 +4,7 @@ import android.content.Intent
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object GoogleGo : QsbSearchProvider(
+data object GoogleGo : QsbSearchProvider(
id = "google_go",
name = R.string.search_provider_google_go,
icon = R.drawable.ic_super_g_color,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt b/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt
index af49e9d626f..e7924b3b7f8 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt
@@ -4,7 +4,7 @@ import android.content.Intent
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object PixelSearch : QsbSearchProvider(
+data object PixelSearch : QsbSearchProvider(
id = "pixel_search",
name = R.string.search_provider_pixel_search,
// Use same style as Google Search
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt b/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt
index 8b3d290b5f6..56b7b564383 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt
@@ -4,7 +4,7 @@ import android.content.Intent
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object Presearch : QsbSearchProvider(
+data object Presearch : QsbSearchProvider(
id = "presearch",
name = R.string.search_provider_presearch,
icon = R.drawable.ic_presearch,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Sesame.kt b/lawnchair/src/app/lawnchair/qsb/providers/Sesame.kt
index bb51150735b..ca8a5e41b47 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Sesame.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Sesame.kt
@@ -3,7 +3,7 @@ package app.lawnchair.qsb.providers
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object Sesame : QsbSearchProvider(
+data object Sesame : QsbSearchProvider(
id = "sesame",
name = R.string.search_provider_sesame,
icon = R.drawable.ic_sesame,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Wikipedia.kt b/lawnchair/src/app/lawnchair/qsb/providers/Wikipedia.kt
index d8283daec2d..bd0734f11d0 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Wikipedia.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Wikipedia.kt
@@ -2,7 +2,7 @@ package app.lawnchair.qsb.providers
import com.android.launcher3.R
-object Wikipedia : QsbSearchProvider(
+data object Wikipedia : QsbSearchProvider(
id = "wikipedia",
name = R.string.search_provider_wikipedia,
icon = R.drawable.ic_wikipedia,
diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Youtube.kt b/lawnchair/src/app/lawnchair/qsb/providers/Youtube.kt
index 0ce775a7038..09199fc8d4b 100644
--- a/lawnchair/src/app/lawnchair/qsb/providers/Youtube.kt
+++ b/lawnchair/src/app/lawnchair/qsb/providers/Youtube.kt
@@ -4,7 +4,7 @@ import android.content.Intent
import app.lawnchair.qsb.ThemingMethod
import com.android.launcher3.R
-object Youtube : QsbSearchProvider(
+data object Youtube : QsbSearchProvider(
id = "youtube",
name = R.string.search_provider_youtube,
icon = R.drawable.ic_youtube,
diff --git a/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt
index 77a37b00225..da39f44df07 100644
--- a/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt
+++ b/lawnchair/src/app/lawnchair/search/LawnchairAppSearchAlgorithm.kt
@@ -65,7 +65,7 @@ class LawnchairAppSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm(c
override fun doSearch(query: String, callback: SearchCallback) {
appState.model.enqueueModelUpdateTask(object : BaseModelUpdateTask() {
override fun execute(app: LauncherAppState, dataModel: BgDataModel, apps: AllAppsList) {
- val result = getResult(apps!!.data, query)
+ val result = getResult(apps.data, query)
resultHandler.post { callback.onSearchResult(query, result) }
}
})
diff --git a/lawnchair/src/app/lawnchair/search/SearchActionCompat.kt b/lawnchair/src/app/lawnchair/search/SearchActionCompat.kt
index bad930c9c09..1600e33b966 100644
--- a/lawnchair/src/app/lawnchair/search/SearchActionCompat.kt
+++ b/lawnchair/src/app/lawnchair/search/SearchActionCompat.kt
@@ -77,15 +77,15 @@ data class SearchActionCompat(
}
private constructor(from: SearchAction) : this(
- from.getId(),
- from.getTitle(),
- from.getIcon(),
- from.getSubtitle(),
- from.getContentDescription(),
- from.getPendingIntent(),
- from.getIntent(),
- from.getUserHandle(),
- from.getExtras(),
+ from.id,
+ from.title,
+ from.icon,
+ from.subtitle,
+ from.contentDescription,
+ from.pendingIntent,
+ from.intent,
+ from.userHandle,
+ from.extras,
)
override fun equals(other: Any?): Boolean = when {
diff --git a/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt b/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt
index 44bfca94896..acbfcdbabce 100644
--- a/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt
+++ b/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt
@@ -9,7 +9,7 @@ import androidx.recyclerview.widget.RecyclerView
import com.android.launcher3.Utilities
import com.android.launcher3.workprofile.PersonalWorkPagedView
-open class StretchRecyclerViewContainer @JvmOverloads constructor(
+class StretchRecyclerViewContainer @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
diff --git a/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt b/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt
index 5cf2eceefbc..933815d1d99 100644
--- a/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt
+++ b/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt
@@ -9,7 +9,7 @@ import com.android.launcher3.Utilities
import com.android.launcher3.views.SpringRelativeLayout
@Suppress("LeakingThis")
-open class StretchRelativeLayout @JvmOverloads constructor(
+sealed class StretchRelativeLayout @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
diff --git a/lawnchair/src/app/lawnchair/ui/preferences/IconPackPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/IconPackPreferences.kt
index 07c6fb56a41..8f3c970f156 100644
--- a/lawnchair/src/app/lawnchair/ui/preferences/IconPackPreferences.kt
+++ b/lawnchair/src/app/lawnchair/ui/preferences/IconPackPreferences.kt
@@ -94,7 +94,7 @@ enum class ThemedIconsState(
fun getForSettings(
themedIcons: Boolean,
drawerThemedIcons: Boolean,
- ) = values().find {
+ ) = entries.find {
it.themedIcons == themedIcons && it.drawerThemedIcons == drawerThemedIcons
} ?: Off
}
@@ -185,7 +185,7 @@ fun IconPackPreferences() {
ListPreference(
enabled = themedIconsAvailable,
label = stringResource(id = R.string.themed_icon_title),
- entries = ThemedIconsState.values().map {
+ entries = ThemedIconsState.entries.map {
ListPreferenceEntry(
value = it,
label = { stringResource(id = it.labelResourceId) },
diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorPreferenceModelList.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorPreferenceModelList.kt
index 9386cc9f6d1..e2e2f49c945 100644
--- a/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorPreferenceModelList.kt
+++ b/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorPreferenceModelList.kt
@@ -40,9 +40,7 @@ class ColorPreferenceModelList(context: Context) {
)
}
- operator fun get(key: String): ColorPreferenceModel {
- return models[key] ?: throw IllegalArgumentException("Unknown key: $key")
- }
+ operator fun get(key: String): ColorPreferenceModel = models.getValue(key)
private fun registerModel(model: ColorPreferenceModel) {
models[model.prefObject.key.name] = model
diff --git a/lawnchair/src/app/lawnchair/util/Core.kt b/lawnchair/src/app/lawnchair/util/Core.kt
index c5c2efe3f20..b5cc33428f5 100644
--- a/lawnchair/src/app/lawnchair/util/Core.kt
+++ b/lawnchair/src/app/lawnchair/util/Core.kt
@@ -4,3 +4,7 @@ import android.content.Context
import androidx.core.content.getSystemService
inline fun Context.requireSystemService(): T = checkNotNull(getSystemService())
+
+@Suppress("NOTHING_TO_INLINE")
+inline fun unsafeLazy(noinline initializer: () -> T): Lazy =
+ lazy(LazyThreadSafetyMode.NONE, initializer)
diff --git a/lawnchair/src/app/lawnchair/views/CustomTextView.kt b/lawnchair/src/app/lawnchair/views/CustomTextView.kt
index 5f846cb6783..be5bbad0564 100644
--- a/lawnchair/src/app/lawnchair/views/CustomTextView.kt
+++ b/lawnchair/src/app/lawnchair/views/CustomTextView.kt
@@ -5,7 +5,7 @@ import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
import app.lawnchair.font.FontManager
-open class CustomTextView @JvmOverloads constructor(
+abstract class CustomTextView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
) : AppCompatTextView(context, attrs) {
diff --git a/lawnchair/src/dev/kdrag0n/monet/theme/MaterialYouTargets.kt b/lawnchair/src/dev/kdrag0n/monet/theme/MaterialYouTargets.kt
index 0ef249df3c3..7590154b460 100644
--- a/lawnchair/src/dev/kdrag0n/monet/theme/MaterialYouTargets.kt
+++ b/lawnchair/src/dev/kdrag0n/monet/theme/MaterialYouTargets.kt
@@ -17,7 +17,7 @@ import dev.kdrag0n.colorkt.ucs.lab.CieLab
class MaterialYouTargets(
private val chromaFactor: Double = 1.0,
useLinearLightness: Boolean,
- val cond: Zcam.ViewingConditions,
+ private val cond: Zcam.ViewingConditions,
) : ColorScheme() {
companion object {
// Linear ZCAM lightness