Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/upstream' into trunk
Browse files Browse the repository at this point in the history
# Conflicts:
#	lawnchair/src/app/lawnchair/LawnchairLauncher.kt
  • Loading branch information
Goooler committed Nov 26, 2023
2 parents 008a1f8 + fde10fb commit 8c277cd
Show file tree
Hide file tree
Showing 36 changed files with 83 additions and 84 deletions.
2 changes: 1 addition & 1 deletion lawnchair/res/values-ja-rJP/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@
<!-- SearchProviderPreferences -->
<!-- search_provider -->
<string name="search_provider_app_search">アプリ検索</string>
<string name="search_provider_sponsored_description">%1$s &amp; Lawnchair はレベニューシェアを契約しています。\n\n %1$s で検索すると、Lawnchair をサポートすることができます。</string>
<string name="search_provider_sponsored_description">%1$s &amp; Lawnchair はレベニューシェアを契約しています。\n\n %1$s で検索することで、Lawnchair をサポートすることができます。</string>
<string name="app_label">アプリ</string>
<string name="website_label">ウェブサイト</string>
<string name="qsb_search_provider_app_required">アプリをインストールする必要があります</string>
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/res/values-pt-rPT/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@
<!-- SearchProviderPreferences -->
<!-- search_provider -->
<string name="search_provider_app_search">Pesquisa de Aplicações</string>
<string name="search_provider_sponsored_description">%1$s &amp; Lawnchair have a revenue share agreement.\n\nSearching with %1$s helps support Lawnchair.</string>
<string name="search_provider_sponsored_description">%1$s &amp; Lawnchair tem um acordo de participação de receitas.\n\nPesquisar com %1$s ajuda a suportar o Lawnchair.</string>
<string name="app_label">Aplicação</string>
<string name="website_label">Website</string>
<string name="qsb_search_provider_app_required">Aplicação necessária.</string>
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/res/values-sv-rSE/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@
<!-- SearchProviderPreferences -->
<!-- search_provider -->
<string name="search_provider_app_search">Appsök</string>
<string name="search_provider_sponsored_description">%1$s &amp; Lawnchair have a revenue share agreement.\n\nSearching with %1$s helps support Lawnchair.</string>
<string name="search_provider_sponsored_description">%1$s &amp; Lawnchair har ett avtal om intäktsdelning.\n\nSökning med %1$s hjälper till att stödja Lawnchair.</string>
<string name="app_label">App</string>
<string name="website_label">Webbplats</string>
<string name="qsb_search_provider_app_required">App krävs.</string>
Expand Down
3 changes: 2 additions & 1 deletion lawnchair/src/app/lawnchair/BlankActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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<ResultReceiver>("callback")!! }
private val resultReceiver by unsafeLazy { intent.getParcelableExtra<ResultReceiver>("callback")!! }
private var resultSent = false
private var firstResume = true
private var targetStarted = false
Expand Down
5 changes: 3 additions & 2 deletions lawnchair/src/app/lawnchair/LawnchairApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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()
Expand Down
13 changes: 7 additions & 6 deletions lawnchair/src/app/lawnchair/LawnchairLauncher.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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<LauncherState> {
override fun onStateTransitionStart(toState: LauncherState) {
if (toState is OverviewState) {
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
Expand Down
17 changes: 8 additions & 9 deletions lawnchair/src/app/lawnchair/font/FontManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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<Int, FontSpec>()
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?) {
Expand Down Expand Up @@ -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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
23 changes: 10 additions & 13 deletions lawnchair/src/app/lawnchair/gestures/config/GestureHandlerOption.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,28 @@ import app.lawnchair.util.kotlinxJson
import com.android.launcher3.R

sealed class GestureHandlerOption(
val labelRes: Int,
private val labelRes: Int,
val configClass: Class<*>,
) {

fun getLabel(context: Context) = context.getString(labelRes)

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,
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import android.content.Context
import app.lawnchair.LawnchairLauncher

sealed class GestureHandler(val context: Context) {

abstract suspend fun onTrigger(launcher: LawnchairLauncher)
}

Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ class LawnchairIconProvider @JvmOverloads constructor(
private var iconPackVersion = 0L
private var themeMapName: String = ""
private var _themeMap: Map<ComponentName, ThemedIconDrawable.ThemeData>? = null
val themeMap: Map<ComponentName, ThemedIconDrawable.ThemeData>
private val themeMap: Map<ComponentName, ThemedIconDrawable.ThemeData>
get() {
if (drawerThemedIcons.get() && !(isOlderLawnIconsInstalled)) {
_themeMap = DISABLED_MAP
Expand Down
10 changes: 5 additions & 5 deletions lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down
2 changes: 0 additions & 2 deletions lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/AppSearch.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/Bing.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/Brave.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/DuckDuckGo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/GitHub.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/Google.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Loading

0 comments on commit 8c277cd

Please sign in to comment.