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