diff --git a/build.gradle b/build.gradle index 81995fa819d..a425d25c965 100644 --- a/build.gradle +++ b/build.gradle @@ -16,7 +16,7 @@ plugins { id 'app.cash.licensee' version "1.12.0" id 'dev.rikka.tools.refine' version "4.4.0" id 'org.gradle.android.cache-fix' version '3.0.1' - id 'com.diffplug.spotless' version '6.25.0' + id 'com.diffplug.spotless' version '7.0.0' } diff --git a/lawnchair/src/app/lawnchair/BlankActivity.kt b/lawnchair/src/app/lawnchair/BlankActivity.kt index 64ced507562..d379425dffb 100644 --- a/lawnchair/src/app/lawnchair/BlankActivity.kt +++ b/lawnchair/src/app/lawnchair/BlankActivity.kt @@ -135,34 +135,28 @@ class BlankActivity : ComponentActivity() { ) } - suspend fun startBlankActivityForResult(activity: Activity, targetIntent: Intent): ActivityResult { - return start(activity, targetIntent, Bundle.EMPTY) - } + suspend fun startBlankActivityForResult(activity: Activity, targetIntent: Intent): ActivityResult = start(activity, targetIntent, Bundle.EMPTY) - private suspend fun start(activity: Activity, targetIntent: Intent, extras: Bundle): ActivityResult { - return suspendCancellableCoroutine { continuation -> - val intent = Intent(activity, BlankActivity::class.java) - .putExtras(extras) - .putExtra("intent", targetIntent) - val resultReceiver = createResultReceiver { - if (continuation.isActive) { - continuation.resume(it) - } + private suspend fun start(activity: Activity, targetIntent: Intent, extras: Bundle): ActivityResult = suspendCancellableCoroutine { continuation -> + val intent = Intent(activity, BlankActivity::class.java) + .putExtras(extras) + .putExtra("intent", targetIntent) + val resultReceiver = createResultReceiver { + if (continuation.isActive) { + continuation.resume(it) } - activity.startActivity(intent.putExtra("callback", resultReceiver)) } + activity.startActivity(intent.putExtra("callback", resultReceiver)) } - private fun createResultReceiver(callback: (ActivityResult) -> Unit): ResultReceiver { - return object : ResultReceiver(Handler(Looper.myLooper()!!)) { + private fun createResultReceiver(callback: (ActivityResult) -> Unit): ResultReceiver = object : ResultReceiver(Handler(Looper.myLooper()!!)) { - override fun onReceiveResult(resultCode: Int, resultData: Bundle?) { - val data = Intent() - if (resultData != null) { - data.putExtras(resultData) - } - callback(ActivityResult(resultCode, data)) + override fun onReceiveResult(resultCode: Int, resultData: Bundle?) { + val data = Intent() + if (resultData != null) { + data.putExtras(resultData) } + callback(ActivityResult(resultCode, data)) } } } diff --git a/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt b/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt index fbae2b108c3..1abebfe1a98 100644 --- a/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt +++ b/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt @@ -49,12 +49,11 @@ class DeviceProfileOverrides(context: Context) : SafeCloseable { prefs.hotseatColumns.set(gridInfo.numHotseatColumns) } - fun getOverrides(defaultGrid: InvariantDeviceProfile.GridOption) = - Options( - prefs = prefs, - prefs2 = preferenceManager2, - defaultGrid = defaultGrid, - ) + fun getOverrides(defaultGrid: InvariantDeviceProfile.GridOption) = Options( + prefs = prefs, + prefs2 = preferenceManager2, + defaultGrid = defaultGrid, + ) fun getTextFactors() = TextFactors(preferenceManager2) override fun close() { diff --git a/lawnchair/src/app/lawnchair/FeedBridge.kt b/lawnchair/src/app/lawnchair/FeedBridge.kt index f86a75479c1..28f0198373f 100644 --- a/lawnchair/src/app/lawnchair/FeedBridge.kt +++ b/lawnchair/src/app/lawnchair/FeedBridge.kt @@ -56,25 +56,19 @@ class FeedBridge(private val context: Context) { } } - private fun customBridgeOrNull(customPackage: String = prefs.feedProvider.get()): CustomBridgeInfo? { - return if (customPackage.isNotBlank()) { - val bridge = CustomBridgeInfo(customPackage) - if (bridge.isAvailable()) bridge else null - } else { - null - } + private fun customBridgeOrNull(customPackage: String = prefs.feedProvider.get()): CustomBridgeInfo? = if (customPackage.isNotBlank()) { + val bridge = CustomBridgeInfo(customPackage) + if (bridge.isAvailable()) bridge else null + } else { + null } private fun customBridgeAvailable() = customBridgeOrNull()?.isAvailable() == true - fun isInstalled(): Boolean { - return customBridgeAvailable() || !shouldUseFeed || bridgePackages.any { it.isAvailable() } - } + fun isInstalled(): Boolean = customBridgeAvailable() || !shouldUseFeed || bridgePackages.any { it.isAvailable() } - fun resolveSmartspace(): String { - return bridgePackages.firstOrNull { it.supportsSmartspace }?.packageName - ?: "com.google.android.googlequicksearchbox" - } + fun resolveSmartspace(): String = bridgePackages.firstOrNull { it.supportsSmartspace }?.packageName + ?: "com.google.android.googlequicksearchbox" open inner class BridgeInfo(val packageName: String, signatureHashRes: Int) { protected open val signatureHash = @@ -141,8 +135,7 @@ class FeedBridge(private val context: Context) { } } - private inner class PixelBridgeInfo(packageName: String, signatureHashRes: Int) : - BridgeInfo(packageName, signatureHashRes) { + private inner class PixelBridgeInfo(packageName: String, signatureHashRes: Int) : BridgeInfo(packageName, signatureHashRes) { override val supportsSmartspace get() = isAvailable() } diff --git a/lawnchair/src/app/lawnchair/HeadlessWidgetsManager.kt b/lawnchair/src/app/lawnchair/HeadlessWidgetsManager.kt index b6b5ac0ed90..29bad711ec0 100644 --- a/lawnchair/src/app/lawnchair/HeadlessWidgetsManager.kt +++ b/lawnchair/src/app/lawnchair/HeadlessWidgetsManager.kt @@ -61,14 +61,11 @@ class HeadlessWidgetsManager(private val context: Context) : SafeCloseable { context: Context, appWidgetId: Int, appWidget: AppWidgetProviderInfo?, - ): AppWidgetHostView { - return HeadlessAppWidgetHostView(context) - } + ): AppWidgetHostView = HeadlessAppWidgetHostView(context) } @SuppressLint("ViewConstructor") - private class HeadlessAppWidgetHostView(context: Context) : - AppWidgetHostView(context) { + private class HeadlessAppWidgetHostView(context: Context) : AppWidgetHostView(context) { var updateCallback: ((view: AppWidgetHostView) -> Unit)? = null diff --git a/lawnchair/src/app/lawnchair/LawnchairApp.kt b/lawnchair/src/app/lawnchair/LawnchairApp.kt index 1f9c8618c84..d0f82ed8f78 100644 --- a/lawnchair/src/app/lawnchair/LawnchairApp.kt +++ b/lawnchair/src/app/lawnchair/LawnchairApp.kt @@ -139,8 +139,7 @@ class LawnchairApp : Application() { } } - private fun getJournalFile(file: File): File = - File(file.parentFile, "${file.name}-journal") + private fun getJournalFile(file: File): File = File(file.parentFile, "${file.name}-journal") private fun getSystemUiBoolean(resName: String, fallback: Boolean): Boolean { val systemUiPackage = "com.android.systemui" @@ -210,13 +209,11 @@ class LawnchairApp : Application() { fun isAccessibilityServiceBound(): Boolean = accessibilityService != null - fun performGlobalAction(action: Int): Boolean { - return accessibilityService?.performGlobalAction(action) ?: run { - Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - .let(::startActivity) - false - } + fun performGlobalAction(action: Int): Boolean = accessibilityService?.performGlobalAction(action) ?: run { + Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) + .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + .let(::startActivity) + false } companion object { @@ -266,9 +263,7 @@ class LawnchairApp : Application() { } } - fun getUriForFile(context: Context, file: File): Uri { - return FileProvider.getUriForFile(context, "${BuildConfig.APPLICATION_ID}.fileprovider", file) - } + fun getUriForFile(context: Context, file: File): Uri = FileProvider.getUriForFile(context, "${BuildConfig.APPLICATION_ID}.fileprovider", file) } } diff --git a/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt b/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt index f01aae00b80..bada2222ce7 100644 --- a/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt +++ b/lawnchair/src/app/lawnchair/LawnchairAppWidgetHostView.kt @@ -54,9 +54,7 @@ class LawnchairAppWidgetHostView @JvmOverloads constructor( return super.getErrorView() } - private fun getEmptyView(): View { - return View(context) - } + private fun getEmptyView(): View = View(context) companion object { diff --git a/lawnchair/src/app/lawnchair/LawnchairLauncher.kt b/lawnchair/src/app/lawnchair/LawnchairLauncher.kt index fabcf5e095d..8ea33b8f60e 100644 --- a/lawnchair/src/app/lawnchair/LawnchairLauncher.kt +++ b/lawnchair/src/app/lawnchair/LawnchairLauncher.kt @@ -234,14 +234,13 @@ class LawnchairLauncher : QuickstepLauncher() { out.add(SearchBarStateHandler(this)) } - override fun getSupportedShortcuts(): Stream> = + override fun getSupportedShortcuts(): Stream> = Stream.concat( + super.getSupportedShortcuts(), Stream.concat( - super.getSupportedShortcuts(), - Stream.concat( - Stream.of(LawnchairShortcut.UNINSTALL, LawnchairShortcut.CUSTOMIZE), - if (LawnchairApp.isRecentsEnabled) Stream.of(LawnchairShortcut.PAUSE_APPS) else Stream.empty(), - ), - ) + Stream.of(LawnchairShortcut.UNINSTALL, LawnchairShortcut.CUSTOMIZE), + if (LawnchairApp.isRecentsEnabled) Stream.of(LawnchairShortcut.PAUSE_APPS) else Stream.empty(), + ), + ) override fun updateTheme() { if (themeProvider.colorScheme != colorScheme) { @@ -333,12 +332,10 @@ class LawnchairLauncher : QuickstepLauncher() { return ActivityOptionsWrapper(options, callbacks) } - override fun getActivityLaunchOptions(v: View?, item: ItemInfo?): ActivityOptionsWrapper { - return runCatching { - super.getActivityLaunchOptions(v, item) - }.getOrElse { - getActivityLaunchOptionsDefault(v) - } + override fun getActivityLaunchOptions(v: View?, item: ItemInfo?): ActivityOptionsWrapper = runCatching { + super.getActivityLaunchOptions(v, item) + }.getOrElse { + getActivityLaunchOptionsDefault(v) } private fun getActivityLaunchOptionsDefault(v: View?): ActivityOptionsWrapper { diff --git a/lawnchair/src/app/lawnchair/LawnchairLayoutFactory.kt b/lawnchair/src/app/lawnchair/LawnchairLayoutFactory.kt index b45b864de8b..b226216c3ac 100644 --- a/lawnchair/src/app/lawnchair/LawnchairLayoutFactory.kt +++ b/lawnchair/src/app/lawnchair/LawnchairLayoutFactory.kt @@ -11,7 +11,9 @@ import com.android.launcher3.BubbleTextView import com.android.launcher3.util.SafeCloseable import com.android.launcher3.views.DoubleShadowBubbleTextView -class LawnchairLayoutFactory(context: Context) : LayoutInflater.Factory2, SafeCloseable { +class LawnchairLayoutFactory(context: Context) : + LayoutInflater.Factory2, + SafeCloseable { private val fontManager by lazy { FontManager.INSTANCE.get(context) } private val constructorMap = mapOf View>( @@ -34,9 +36,7 @@ class LawnchairLayoutFactory(context: Context) : LayoutInflater.Factory2, SafeCl return view } - override fun onCreateView(name: String, context: Context, attrs: AttributeSet): View? { - return onCreateView(null, name, context, attrs) - } + override fun onCreateView(name: String, context: Context, attrs: AttributeSet): View? = onCreateView(null, name, context, attrs) override fun close() { TODO("Not yet implemented") diff --git a/lawnchair/src/app/lawnchair/SearchBarStateHandler.kt b/lawnchair/src/app/lawnchair/SearchBarStateHandler.kt index c06c58a8659..2064e132d5a 100644 --- a/lawnchair/src/app/lawnchair/SearchBarStateHandler.kt +++ b/lawnchair/src/app/lawnchair/SearchBarStateHandler.kt @@ -17,8 +17,7 @@ import com.patrykmichalik.opto.core.onEach import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -class SearchBarStateHandler(private val launcher: LawnchairLauncher) : - StateManager.StateHandler { +class SearchBarStateHandler(private val launcher: LawnchairLauncher) : StateManager.StateHandler { private val coroutineScope = CoroutineScope(Dispatchers.IO) private val preferenceManager2 = PreferenceManager2.getInstance(launcher) diff --git a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt index 32030be816d..4b1af943b8b 100644 --- a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt +++ b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt @@ -229,7 +229,8 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : val inputLowerCase = inputString.lowercase(Locale.getDefault()) val focusedLowerCase = focusedResultTitle.lowercase(Locale.getDefault()) if (canShowHint && - inputLowerCase.isNotEmpty() && focusedLowerCase.isNotEmpty() && + inputLowerCase.isNotEmpty() && + focusedLowerCase.isNotEmpty() && focusedLowerCase.matches(Regex("^[\\x00-\\x7F]*$")) && focusedLowerCase.startsWith(inputLowerCase) ) { @@ -285,7 +286,8 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : if (!searchBarController.isSearchFieldFocused && event.action == KeyEvent.ACTION_DOWN) { val unicodeChar = event.unicodeChar val isKeyNotWhitespace = unicodeChar > 0 && - !Character.isWhitespace(unicodeChar) && !Character.isSpaceChar(unicodeChar) + !Character.isWhitespace(unicodeChar) && + !Character.isSpaceChar(unicodeChar) if (isKeyNotWhitespace) { val gotKey = TextKeyListener.getInstance().onKeyDown(input, searchQueryBuilder, event.keyCode, event) if (gotKey && searchQueryBuilder.isNotEmpty()) { @@ -357,9 +359,7 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : } } - override fun getBackgroundVisibility(): Boolean { - return bgVisible - } + override fun getBackgroundVisibility(): Boolean = bgVisible private fun updateBgAlpha() { val fraction = bgAlphaAnimator.animatedFraction diff --git a/lawnchair/src/app/lawnchair/allapps/views/SearchContainerView.kt b/lawnchair/src/app/lawnchair/allapps/views/SearchContainerView.kt index 55714709e16..eced8b1e9ed 100644 --- a/lawnchair/src/app/lawnchair/allapps/views/SearchContainerView.kt +++ b/lawnchair/src/app/lawnchair/allapps/views/SearchContainerView.kt @@ -5,8 +5,7 @@ import android.util.AttributeSet import app.lawnchair.search.LawnchairSearchUiDelegate import com.android.launcher3.allapps.LauncherAllAppsContainerView -class SearchContainerView(context: Context?, attrs: AttributeSet?) : - LauncherAllAppsContainerView(context, attrs) { +class SearchContainerView(context: Context?, attrs: AttributeSet?) : LauncherAllAppsContainerView(context, attrs) { override fun createSearchUiDelegate() = LawnchairSearchUiDelegate(this) } diff --git a/lawnchair/src/app/lawnchair/allapps/views/SearchResultIconRow.kt b/lawnchair/src/app/lawnchair/allapps/views/SearchResultIconRow.kt index 0658adf6b36..e50278fb298 100644 --- a/lawnchair/src/app/lawnchair/allapps/views/SearchResultIconRow.kt +++ b/lawnchair/src/app/lawnchair/allapps/views/SearchResultIconRow.kt @@ -21,7 +21,9 @@ import com.android.launcher3.R import com.android.launcher3.views.BubbleTextHolder class SearchResultIconRow(context: Context, attrs: AttributeSet?) : - LinearLayout(context, attrs), SearchResultView, BubbleTextHolder { + LinearLayout(context, attrs), + SearchResultView, + BubbleTextHolder { private var isSmall = false private lateinit var icon: SearchResultIcon diff --git a/lawnchair/src/app/lawnchair/allapps/views/SearchResultRightLeftIcon.kt b/lawnchair/src/app/lawnchair/allapps/views/SearchResultRightLeftIcon.kt index ffdd2bb46a9..21c7cb55503 100644 --- a/lawnchair/src/app/lawnchair/allapps/views/SearchResultRightLeftIcon.kt +++ b/lawnchair/src/app/lawnchair/allapps/views/SearchResultRightLeftIcon.kt @@ -21,7 +21,8 @@ import com.android.launcher3.DeviceProfile import com.android.launcher3.R class SearchResultRightLeftIcon(context: Context, attrs: AttributeSet?) : - LinearLayout(context, attrs), SearchResultView { + LinearLayout(context, attrs), + SearchResultView { private val launcher = context.launcher private var grid: DeviceProfile = launcher.deviceProfile diff --git a/lawnchair/src/app/lawnchair/allapps/views/SearchResultText.kt b/lawnchair/src/app/lawnchair/allapps/views/SearchResultText.kt index d0e85716098..6f936c68ff5 100644 --- a/lawnchair/src/app/lawnchair/allapps/views/SearchResultText.kt +++ b/lawnchair/src/app/lawnchair/allapps/views/SearchResultText.kt @@ -19,7 +19,8 @@ import app.lawnchair.theme.color.tokens.ColorTokens import com.android.launcher3.R class SearchResultText(context: Context, attrs: AttributeSet?) : - LinearLayout(context, attrs), SearchResultView { + LinearLayout(context, attrs), + SearchResultView { private val launcher = context.launcher private lateinit var title: TextView diff --git a/lawnchair/src/app/lawnchair/allapps/views/SearchResultView.kt b/lawnchair/src/app/lawnchair/allapps/views/SearchResultView.kt index 7334ee58a2f..11d3c34a4ba 100644 --- a/lawnchair/src/app/lawnchair/allapps/views/SearchResultView.kt +++ b/lawnchair/src/app/lawnchair/allapps/views/SearchResultView.kt @@ -36,9 +36,7 @@ sealed interface SearchResultView { return flags } - fun hasFlag(flags: Int, flag: Int): Boolean { - return (flags and flag) != 0 - } + fun hasFlag(flags: Int, flag: Int): Boolean = (flags and flag) != 0 fun shouldHandleClick(targetCompat: SearchTargetCompat): Boolean { val packageName = targetCompat.packageName diff --git a/lawnchair/src/app/lawnchair/animation/PhysicsAnimator.kt b/lawnchair/src/app/lawnchair/animation/PhysicsAnimator.kt index 828a5363824..bae9ec258f5 100644 --- a/lawnchair/src/app/lawnchair/animation/PhysicsAnimator.kt +++ b/lawnchair/src/app/lawnchair/animation/PhysicsAnimator.kt @@ -202,15 +202,13 @@ class PhysicsAnimator private constructor(target: T) { toPosition: Float, startVelocity: Float, config: SpringConfig = defaultSpring, - ): PhysicsAnimator { - return spring( - property, - toPosition, - startVelocity, - config.stiffness, - config.dampingRatio, - ) - } + ): PhysicsAnimator = spring( + property, + toPosition, + startVelocity, + config.stiffness, + config.dampingRatio, + ) /** * Springs a property to a given value using the provided configuration options, and a start @@ -222,9 +220,7 @@ class PhysicsAnimator private constructor(target: T) { property: FloatPropertyCompat, toPosition: Float, config: SpringConfig = defaultSpring, - ): PhysicsAnimator { - return spring(property, toPosition, 0f, config) - } + ): PhysicsAnimator = spring(property, toPosition, 0f, config) /** * Springs a property to a given value using the provided configuration options, and a start @@ -235,9 +231,7 @@ class PhysicsAnimator private constructor(target: T) { fun spring( property: FloatPropertyCompat, toPosition: Float, - ): PhysicsAnimator { - return spring(property, toPosition, 0f) - } + ): PhysicsAnimator = spring(property, toPosition, 0f) /** * Flings a property using the given start velocity, using a [FlingAnimation] configured using @@ -289,9 +283,7 @@ class PhysicsAnimator private constructor(target: T) { property: FloatPropertyCompat, startVelocity: Float, config: FlingConfig = defaultFling, - ): PhysicsAnimator { - return fling(property, startVelocity, config.friction, config.min, config.max) - } + ): PhysicsAnimator = fling(property, startVelocity, config.friction, config.min, config.max) /** * Flings a property using the given start velocity. If the fling animation reaches the min/max @@ -626,19 +618,15 @@ class PhysicsAnimator private constructor(target: T) { private fun getSpringAnimation( property: FloatPropertyCompat, target: T, - ): SpringAnimation { - return springAnimations.getOrPut(property) { - configureDynamicAnimation(SpringAnimation(target, property), property) - as SpringAnimation - } + ): SpringAnimation = springAnimations.getOrPut(property) { + configureDynamicAnimation(SpringAnimation(target, property), property) + as SpringAnimation } /** Retrieves a fling animation for the given property, building one if needed. */ - private fun getFlingAnimation(property: FloatPropertyCompat, target: T): FlingAnimation { - return flingAnimations.getOrPut(property) { - configureDynamicAnimation(FlingAnimation(target, property), property) - as FlingAnimation - } + private fun getFlingAnimation(property: FloatPropertyCompat, target: T): FlingAnimation = flingAnimations.getOrPut(property) { + configureDynamicAnimation(FlingAnimation(target, property), property) + as FlingAnimation } /** @@ -794,25 +782,17 @@ class PhysicsAnimator private constructor(target: T) { } /** Return true if any animations are running on the object. */ - fun isRunning(): Boolean { - return arePropertiesAnimating(springAnimations.keys.union(flingAnimations.keys)) - } + fun isRunning(): Boolean = arePropertiesAnimating(springAnimations.keys.union(flingAnimations.keys)) /** Returns whether the given property is animating. */ - fun isPropertyAnimating(property: FloatPropertyCompat): Boolean { - return springAnimations[property]?.isRunning ?: false || - flingAnimations[property]?.isRunning ?: false - } + fun isPropertyAnimating(property: FloatPropertyCompat): Boolean = springAnimations[property]?.isRunning ?: false || + flingAnimations[property]?.isRunning ?: false /** Returns whether any of the given properties are animating. */ - fun arePropertiesAnimating(properties: Set>): Boolean { - return properties.any { isPropertyAnimating(it) } - } + fun arePropertiesAnimating(properties: Set>): Boolean = properties.any { isPropertyAnimating(it) } /** Return the set of properties that will begin animating upon calling [start]. */ - internal fun getAnimatedProperties(): Set> { - return springConfigs.keys.union(flingConfigs.keys) - } + internal fun getAnimatedProperties(): Set> = springConfigs.keys.union(flingConfigs.keys) /** * Cancels the given properties. This is typically called immediately by [cancel], unless this @@ -1045,21 +1025,19 @@ class PhysicsAnimator private constructor(target: T) { } @JvmStatic - fun getReadablePropertyName(property: FloatPropertyCompat<*>): String { - return when (property) { - DynamicAnimation.TRANSLATION_X -> "translationX" - DynamicAnimation.TRANSLATION_Y -> "translationY" - DynamicAnimation.TRANSLATION_Z -> "translationZ" - DynamicAnimation.SCALE_X -> "scaleX" - DynamicAnimation.SCALE_Y -> "scaleY" - DynamicAnimation.ROTATION -> "rotation" - DynamicAnimation.ROTATION_X -> "rotationX" - DynamicAnimation.ROTATION_Y -> "rotationY" - DynamicAnimation.SCROLL_X -> "scrollX" - DynamicAnimation.SCROLL_Y -> "scrollY" - DynamicAnimation.ALPHA -> "alpha" - else -> "Custom FloatPropertyCompat instance" - } + fun getReadablePropertyName(property: FloatPropertyCompat<*>): String = when (property) { + DynamicAnimation.TRANSLATION_X -> "translationX" + DynamicAnimation.TRANSLATION_Y -> "translationY" + DynamicAnimation.TRANSLATION_Z -> "translationZ" + DynamicAnimation.SCALE_X -> "scaleX" + DynamicAnimation.SCALE_Y -> "scaleY" + DynamicAnimation.ROTATION -> "rotation" + DynamicAnimation.ROTATION_X -> "rotationX" + DynamicAnimation.ROTATION_Y -> "rotationY" + DynamicAnimation.SCROLL_X -> "scrollX" + DynamicAnimation.SCROLL_Y -> "scrollY" + DynamicAnimation.ALPHA -> "alpha" + else -> "Custom FloatPropertyCompat instance" } } } diff --git a/lawnchair/src/app/lawnchair/backup/LawnchairBackup.kt b/lawnchair/src/app/lawnchair/backup/LawnchairBackup.kt index 18f5b3fdb38..867ae063502 100644 --- a/lawnchair/src/app/lawnchair/backup/LawnchairBackup.kt +++ b/lawnchair/src/app/lawnchair/backup/LawnchairBackup.kt @@ -132,14 +132,12 @@ class LawnchairBackup( return "$fileName.lawnchairbackup" } - fun getFiles(context: Context, forRestore: Boolean): Map { - return mapOf( - LAUNCHER_DB_FILE_NAME to launcherDbFile(context, forRestore), - PREFS_FILE_NAME to prefsFile(context), - PREFS_DB_FILE_NAME to prefsDbFile(context), - PREFS_DATASTORE_FILE_NAME to prefsDataStoreFile(context), - ) - } + fun getFiles(context: Context, forRestore: Boolean): Map = mapOf( + LAUNCHER_DB_FILE_NAME to launcherDbFile(context, forRestore), + PREFS_FILE_NAME to prefsFile(context), + PREFS_DB_FILE_NAME to prefsDbFile(context), + PREFS_DATASTORE_FILE_NAME to prefsDataStoreFile(context), + ) @SuppressLint("MissingPermission") suspend fun create(context: Context, contents: Int, screenshotBitmap: Bitmap, fileUri: Uri) { @@ -200,12 +198,8 @@ class LawnchairBackup( return File(dir, "shared_prefs/$PREFS_FILE_NAME") } - private fun prefsDbFile(context: Context): File { - return context.getDatabasePath(PREFS_DB_FILE_NAME) - } + private fun prefsDbFile(context: Context): File = context.getDatabasePath(PREFS_DB_FILE_NAME) - private fun prefsDataStoreFile(context: Context): File { - return File(context.filesDir, "datastore/${PREFS_DATASTORE_FILE_NAME}") - } + private fun prefsDataStoreFile(context: Context): File = File(context.filesDir, "datastore/${PREFS_DATASTORE_FILE_NAME}") } } diff --git a/lawnchair/src/app/lawnchair/backup/ui/CreateBackupViewModel.kt b/lawnchair/src/app/lawnchair/backup/ui/CreateBackupViewModel.kt index 1d59b93a4aa..aa9da95797c 100644 --- a/lawnchair/src/app/lawnchair/backup/ui/CreateBackupViewModel.kt +++ b/lawnchair/src/app/lawnchair/backup/ui/CreateBackupViewModel.kt @@ -40,42 +40,40 @@ class CreateBackupViewModel( } } - private suspend fun captureScreenshot(): Bitmap? { - return suspendCancellableCoroutine { continuation -> - val app = getApplication() + private suspend fun captureScreenshot(): Bitmap? = suspendCancellableCoroutine { continuation -> + val app = getApplication() - val config = Configuration(app.resources.configuration).apply { - orientation = Configuration.ORIENTATION_PORTRAIT - val width = screenWidthDp - val height = screenHeightDp - screenWidthDp = min(width, height) - screenHeightDp = max(width, height) - } - val context = app.createConfigurationContext(config) + val config = Configuration(app.resources.configuration).apply { + orientation = Configuration.ORIENTATION_PORTRAIT + val width = screenWidthDp + val height = screenHeightDp + screenWidthDp = min(width, height) + screenHeightDp = max(width, height) + } + val context = app.createConfigurationContext(config) - val idp = LauncherAppState.getIDP(context) - val themedContext = ContextThemeWrapper(context, R.style.Theme_Lawnchair) - val previewView = LauncherPreviewView( - context = themedContext, - idp = idp, - dummyInsets = true, - dummySmartspace = true, - appContext = themedContext, + val idp = LauncherAppState.getIDP(context) + val themedContext = ContextThemeWrapper(context, R.style.Theme_Lawnchair) + val previewView = LauncherPreviewView( + context = themedContext, + idp = idp, + dummyInsets = true, + dummySmartspace = true, + appContext = themedContext, + ) + continuation.invokeOnCancellation { previewView.destroy() } + previewView.addOnReadyCallback { + val dp = idp.getDeviceProfile(context) + val width = dp.widthPx + val height = dp.heightPx + previewView.measure( + MeasureSpec.makeMeasureSpec(width, EXACTLY), + MeasureSpec.makeMeasureSpec(height, EXACTLY), ) - continuation.invokeOnCancellation { previewView.destroy() } - previewView.addOnReadyCallback { - val dp = idp.getDeviceProfile(context) - val width = dp.widthPx - val height = dp.heightPx - previewView.measure( - MeasureSpec.makeMeasureSpec(width, EXACTLY), - MeasureSpec.makeMeasureSpec(height, EXACTLY), - ) - previewView.layout(0, 0, width, height) - val bitmap = BitmapRenderer.createHardwareBitmap(width, height, previewView::draw) - continuation.resume(bitmap) - previewView.destroy() - } + previewView.layout(0, 0, width, height) + val bitmap = BitmapRenderer.createHardwareBitmap(width, height, previewView::draw) + continuation.resume(bitmap) + previewView.destroy() } } diff --git a/lawnchair/src/app/lawnchair/bugreport/LawnchairBugReporter.kt b/lawnchair/src/app/lawnchair/bugreport/LawnchairBugReporter.kt index d9520f6a8d1..6bad1d13352 100644 --- a/lawnchair/src/app/lawnchair/bugreport/LawnchairBugReporter.kt +++ b/lawnchair/src/app/lawnchair/bugreport/LawnchairBugReporter.kt @@ -79,9 +79,7 @@ class LawnchairBugReporter(private val context: Context) { return BugReport(id, error, getDescription(throwable ?: return null), contentsWithHeader, reportFile) } - private fun getDescription(throwable: Throwable): String { - return "${throwable::class.java.name}: ${throwable.message}" - } + private fun getDescription(throwable: Throwable): String = "${throwable::class.java.name}: ${throwable.message}" private fun save(contents: String, id: Int): File? { val dest = File(logsFolder, String.format("%x", id)) diff --git a/lawnchair/src/app/lawnchair/factory/LawnchairWidgetHolder.kt b/lawnchair/src/app/lawnchair/factory/LawnchairWidgetHolder.kt index f53750077a3..d5c71b93346 100644 --- a/lawnchair/src/app/lawnchair/factory/LawnchairWidgetHolder.kt +++ b/lawnchair/src/app/lawnchair/factory/LawnchairWidgetHolder.kt @@ -13,17 +13,16 @@ class LawnchairWidgetHolder(context: Context, intConsumer: IntConsumer?) : Launc @Keep class LawnchairHolderFactory @Suppress("unused") - constructor(@Suppress("UNUSED_PARAMETER") context: Context) : - HolderFactory() { + constructor( + @Suppress("UNUSED_PARAMETER") context: Context, + ) : HolderFactory() { override fun newInstance( context: Context, appWidgetRemovedCallback: IntConsumer?, - ): LauncherWidgetHolder { - return try { - newInstance(context, appWidgetRemovedCallback, null) - } catch (t: Throwable) { - super.newInstance(context, appWidgetRemovedCallback) - } + ): LauncherWidgetHolder = try { + newInstance(context, appWidgetRemovedCallback, null) + } catch (t: Throwable) { + super.newInstance(context, appWidgetRemovedCallback) } /** diff --git a/lawnchair/src/app/lawnchair/font/FontCache.kt b/lawnchair/src/app/lawnchair/font/FontCache.kt index a469f6cd177..0ac6fbde93e 100644 --- a/lawnchair/src/app/lawnchair/font/FontCache.kt +++ b/lawnchair/src/app/lawnchair/font/FontCache.kt @@ -73,9 +73,7 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl val uiText = ResourceFont(context, R.font.inter_regular, "Inter v3 " + context.getString(R.string.font_weight_regular)) val uiTextMedium = ResourceFont(context, R.font.inter_medium, "Inter v3 " + context.getString(R.string.font_weight_medium)) - suspend fun getTypeface(font: Font): Typeface? { - return loadFontAsync(font).await()?.typeface - } + suspend fun getTypeface(font: Font): Typeface? = loadFontAsync(font).await()?.typeface fun preloadFont(font: Font) { @Suppress("DeferredResultUnused") @@ -89,11 +87,9 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl return deferredFont.getCompleted() } - private fun loadFontAsync(font: Font): Deferred { - return deferredFonts.getOrPut(font) { - scope.async { - font.load()?.let { LoadedFont(it) } - } + private fun loadFontAsync(font: Font): Deferred = deferredFonts.getOrPut(font) { + scope.async { + font.load()?.let { LoadedFont(it) } } } @@ -154,9 +150,7 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl obj.put(KEY_CLASS_NAME, this::class.java.name) } - open fun createWithWeight(weight: Int): Font { - return this - } + open fun createWithWeight(weight: Int): Font = this fun toJsonString(): String { val obj = JSONObject() @@ -182,17 +176,11 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl override val fullDisplayName = typeface.toString() override val displayName get() = fullDisplayName - override suspend fun load(): Typeface? { - return typeface - } + override suspend fun load(): Typeface? = typeface - override fun equals(other: Any?): Boolean { - return other is TypefaceFont && typeface == other.typeface - } + override fun equals(other: Any?): Boolean = other is TypefaceFont && typeface == other.typeface - override fun hashCode(): Int { - return fullDisplayName.hashCode() - } + override fun hashCode(): Int = fullDisplayName.hashCode() } class DummyFont : TypefaceFont(null) { @@ -201,26 +189,19 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl override val composeFontFamily = FontFamily(Typeface.DEFAULT) - override fun equals(other: Any?): Boolean { - return other is DummyFont - } + override fun equals(other: Any?): Boolean = other is DummyFont - override fun hashCode(): Int { - return hashCode - } + override fun hashCode(): Int = hashCode companion object { @Keep @JvmStatic - fun fromJson(context: Context, obj: JSONObject): Font { - return DummyFont() - } + fun fromJson(context: Context, obj: JSONObject): Font = DummyFont() } } - class TTFFont(context: Context, private val file: File) : - TypefaceFont(createTypeface(file)) { + class TTFFont(context: Context, private val file: File) : TypefaceFont(createTypeface(file)) { private val actualName: String = Uri.decode(file.name) override val isAvailable = typeface != null @@ -239,24 +220,17 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl obj.put(KEY_FONT_NAME, fullDisplayName) } - override fun equals(other: Any?): Boolean { - return other is TTFFont && actualName == other.actualName - } + override fun equals(other: Any?): Boolean = other is TTFFont && actualName == other.actualName override fun hashCode() = actualName.hashCode() companion object { - fun createTypeface(file: File): Typeface? = - runCatching { Typeface.createFromFile(file) }.getOrNull() + fun createTypeface(file: File): Typeface? = runCatching { Typeface.createFromFile(file) }.getOrNull() - fun getFontsDir(context: Context): File { - return File(context.filesDir, "customFonts").apply { mkdirs() } - } + fun getFontsDir(context: Context): File = File(context.filesDir, "customFonts").apply { mkdirs() } - fun getFile(context: Context, name: String): File { - return File(getFontsDir(context), Uri.encode(name)) - } + fun getFile(context: Context, name: String): File = File(getFontsDir(context), Uri.encode(name)) @Keep @JvmStatic @@ -283,13 +257,9 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl obj.put(KEY_STYLE, style) } - override fun equals(other: Any?): Boolean { - return other is SystemFont && family == other.family && style == other.style - } + override fun equals(other: Any?): Boolean = other is SystemFont && family == other.family && style == other.style - override fun hashCode(): Int { - return hashCode - } + override fun hashCode(): Int = hashCode override fun createWithWeight(weight: Int): Font { if (weight >= 700) { @@ -325,13 +295,9 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl obj.put(KEY_FAMILY_NAME, name) } - override fun equals(other: Any?): Boolean { - return other is AssetFont && name == other.name - } + override fun equals(other: Any?): Boolean = other is AssetFont && name == other.name - override fun hashCode(): Int { - return hashCode - } + override fun hashCode(): Int = hashCode companion object { @@ -362,13 +328,9 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl obj.put(KEY_FAMILY_NAME, name) } - override fun equals(other: Any?): Boolean { - return other is ResourceFont && name == other.name - } + override fun equals(other: Any?): Boolean = other is ResourceFont && name == other.name - override fun hashCode(): Int { - return hashCode - } + override fun hashCode(): Int = hashCode companion object { @@ -454,13 +416,9 @@ class FontCache private constructor(private val context: Context) : SafeCloseabl obj.put(KEY_VARIANTS, variantsArray) } - override fun equals(other: Any?): Boolean { - return other is GoogleFont && family == other.family && variant == other.variant - } + override fun equals(other: Any?): Boolean = other is GoogleFont && family == other.family && variant == other.variant - override fun hashCode(): Int { - return hashCode - } + override fun hashCode(): Int = hashCode override fun createWithWeight(weight: Int): Font { if (weight == -1) return this diff --git a/lawnchair/src/app/lawnchair/font/googlefonts/GoogleFontsListing.kt b/lawnchair/src/app/lawnchair/font/googlefonts/GoogleFontsListing.kt index a856624702b..641ca3cee42 100644 --- a/lawnchair/src/app/lawnchair/font/googlefonts/GoogleFontsListing.kt +++ b/lawnchair/src/app/lawnchair/font/googlefonts/GoogleFontsListing.kt @@ -63,9 +63,7 @@ class GoogleFontsListing private constructor(private val context: Context) : Saf return fonts } - suspend fun getFonts(): List { - return fonts.await() - } + suspend fun getFonts(): List = fonts.await() override fun close() { TODO("Not yet implemented") @@ -86,9 +84,7 @@ class GoogleFontsListing private constructor(private val context: Context) : Saf class GoogleFontInfo(val family: String, val variants: List) : Comparable { - override fun compareTo(other: GoogleFontInfo): Int { - return family.compareTo(other.family) - } + override fun compareTo(other: GoogleFontInfo): Int = family.compareTo(other.family) } companion object { @@ -105,9 +101,7 @@ class GoogleFontsListing private constructor(private val context: Context) : Saf return variant.replace("italic", "").replace("regular", "400") } - fun isItalic(variant: String): Boolean { - return variant.contains("italic") - } + fun isItalic(variant: String): Boolean = variant.contains("italic") fun buildQuery(family: String, variant: String): String { val weight = getWeight(variant) diff --git a/lawnchair/src/app/lawnchair/gestures/DirectionalGestureListener.kt b/lawnchair/src/app/lawnchair/gestures/DirectionalGestureListener.kt index b808345a842..504fe467d48 100644 --- a/lawnchair/src/app/lawnchair/gestures/DirectionalGestureListener.kt +++ b/lawnchair/src/app/lawnchair/gestures/DirectionalGestureListener.kt @@ -13,39 +13,32 @@ open class DirectionalGestureListener(ctx: Context?) : OnTouchListener { private val mGestureDetector: GestureDetector @SuppressLint("ClickableViewAccessibility") - override fun onTouch(v: View, event: MotionEvent): Boolean { - return mGestureDetector.onTouchEvent(event) - } + override fun onTouch(v: View, event: MotionEvent): Boolean = mGestureDetector.onTouchEvent(event) private inner class GestureListener : SimpleOnGestureListener() { - override fun onDown(e: MotionEvent): Boolean { - return true - } + override fun onDown(e: MotionEvent): Boolean = true - private fun shouldReactToSwipe(diff: Float, velocity: Float): Boolean = - abs(diff) > SWIPE_THRESHOLD && abs(velocity) > SWIPE_VELOCITY_THRESHOLD + private fun shouldReactToSwipe(diff: Float, velocity: Float): Boolean = abs(diff) > SWIPE_THRESHOLD && abs(velocity) > SWIPE_VELOCITY_THRESHOLD - override fun onFling(e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { - return try { - val diffY = e2.y - (e1?.y ?: 0f) - val diffX = e2.x - (e1?.x ?: 0f) + override fun onFling(e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean = try { + val diffY = e2.y - (e1?.y ?: 0f) + val diffX = e2.x - (e1?.x ?: 0f) - when { - abs(diffX) > abs(diffY) && shouldReactToSwipe(diffX, velocityX) -> { - if (diffX > 0) onSwipeRight() else onSwipeLeft() - true - } - shouldReactToSwipe(diffY, velocityY) -> { - if (diffY > 0) onSwipeBottom() else onSwipeTop() - true - } - else -> false + when { + abs(diffX) > abs(diffY) && shouldReactToSwipe(diffX, velocityX) -> { + if (diffX > 0) onSwipeRight() else onSwipeLeft() + true + } + shouldReactToSwipe(diffY, velocityY) -> { + if (diffY > 0) onSwipeBottom() else onSwipeTop() + true } - } catch (e: Exception) { - e.printStackTrace() - false + else -> false } + } catch (e: Exception) { + e.printStackTrace() + false } } diff --git a/lawnchair/src/app/lawnchair/gestures/VerticalSwipeTouchController.kt b/lawnchair/src/app/lawnchair/gestures/VerticalSwipeTouchController.kt index a670997c7b2..4a5588ec3b0 100644 --- a/lawnchair/src/app/lawnchair/gestures/VerticalSwipeTouchController.kt +++ b/lawnchair/src/app/lawnchair/gestures/VerticalSwipeTouchController.kt @@ -18,7 +18,8 @@ import kotlinx.coroutines.launch class VerticalSwipeTouchController( private val launcher: LawnchairLauncher, private val gestureController: GestureController, -) : TouchController, BothAxesSwipeDetector.Listener { +) : TouchController, + BothAxesSwipeDetector.Listener { private val prefs = PreferenceManager2.getInstance(launcher) private val detector = BothAxesSwipeDetector(launcher, this) @@ -59,9 +60,7 @@ class VerticalSwipeTouchController( return detector.isDraggingOrSettling } - override fun onControllerTouchEvent(ev: MotionEvent): Boolean { - return detector.onTouchEvent(ev) - } + override fun onControllerTouchEvent(ev: MotionEvent): Boolean = detector.onTouchEvent(ev) private fun canInterceptTouch(ev: MotionEvent): Boolean { if ((ev.edgeFlags and Utilities.EDGE_NAV_BAR) != 0) { @@ -122,9 +121,7 @@ class VerticalSwipeTouchController( /** * Returns a time-dependent dampening factor using delta time. */ - private fun computeDampeningFactor(deltaTime: Float): Float { - return deltaTime / (SCROLL_VELOCITY_DAMPENING_RC + deltaTime) - } + private fun computeDampeningFactor(deltaTime: Float): Float = deltaTime / (SCROLL_VELOCITY_DAMPENING_RC + deltaTime) companion object { private const val SCROLL_VELOCITY_DAMPENING_RC = 1000f / (2f * Math.PI.toFloat() * 10f) diff --git a/lawnchair/src/app/lawnchair/gestures/handlers/SleepGestureHandler.kt b/lawnchair/src/app/lawnchair/gestures/handlers/SleepGestureHandler.kt index 00fdfdfef7f..395c113f801 100644 --- a/lawnchair/src/app/lawnchair/gestures/handlers/SleepGestureHandler.kt +++ b/lawnchair/src/app/lawnchair/gestures/handlers/SleepGestureHandler.kt @@ -123,9 +123,7 @@ class SleepMethodDeviceAdmin(context: Context) : SleepGestureHandler.SleepMethod class SleepDeviceAdmin : DeviceAdminReceiver() { - override fun onDisableRequested(context: Context, intent: Intent): CharSequence { - return context.getString(R.string.dt2s_admin_warning) - } + override fun onDisableRequested(context: Context, intent: Intent): CharSequence = context.getString(R.string.dt2s_admin_warning) } } diff --git a/lawnchair/src/app/lawnchair/hotseat/HotseatMode.kt b/lawnchair/src/app/lawnchair/hotseat/HotseatMode.kt index 3a3ac6094e9..2247a97f6bf 100644 --- a/lawnchair/src/app/lawnchair/hotseat/HotseatMode.kt +++ b/lawnchair/src/app/lawnchair/hotseat/HotseatMode.kt @@ -44,8 +44,7 @@ object GoogleSearchHotseat : HotseatMode( ) { override fun toString(): String = "google_search" - override fun isAvailable(context: Context): Boolean = - context.packageManager.isPackageInstalledAndEnabled("com.google.android.googlequicksearchbox") + override fun isAvailable(context: Context): Boolean = context.packageManager.isPackageInstalledAndEnabled("com.google.android.googlequicksearchbox") } object DisabledHotseat : HotseatMode( diff --git a/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt b/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt index d5b32c27cfb..7e5bd76fd42 100644 --- a/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt +++ b/lawnchair/src/app/lawnchair/icons/CustomIconPack.kt @@ -19,8 +19,7 @@ import org.xmlpull.v1.XmlPullParser import org.xmlpull.v1.XmlPullParserException import org.xmlpull.v1.XmlPullParserFactory -class CustomIconPack(context: Context, packPackageName: String) : - IconPack(context, packPackageName) { +class CustomIconPack(context: Context, packPackageName: String) : IconPack(context, packPackageName) { private val packResources = context.packageManager.getResourcesForApplication(packPackageName) private val componentMap = mutableMapOf() diff --git a/lawnchair/src/app/lawnchair/icons/IconPack.kt b/lawnchair/src/app/lawnchair/icons/IconPack.kt index cac86385527..80099385eab 100644 --- a/lawnchair/src/app/lawnchair/icons/IconPack.kt +++ b/lawnchair/src/app/lawnchair/icons/IconPack.kt @@ -32,9 +32,7 @@ sealed class IconPack( } } - suspend fun load() { - return deferredLoad.await() - } + suspend fun load() = deferredLoad.await() fun loadBlocking() { waiter?.run { @@ -68,17 +66,15 @@ sealed class IconPack( return filtered } - protected fun categorize(allItems: List): List { - return allItems - .groupBy { alphabeticIndexCompat.computeSectionName(it.label) } - .map { (sectionName, items) -> - IconPickerCategory( - title = sectionName, - items = items, - ) - } - .sortedBy { it.title } - } + protected fun categorize(allItems: List): List = allItems + .groupBy { alphabeticIndexCompat.computeSectionName(it.label) } + .map { (sectionName, items) -> + IconPickerCategory( + title = sectionName, + items = items, + ) + } + .sortedBy { it.title } companion object { private val scope = CoroutineScope(Dispatchers.IO) + CoroutineName("IconPack") diff --git a/lawnchair/src/app/lawnchair/icons/IconPickerCategory.kt b/lawnchair/src/app/lawnchair/icons/IconPickerCategory.kt index 2cb20a82f0f..01c6fd2e056 100644 --- a/lawnchair/src/app/lawnchair/icons/IconPickerCategory.kt +++ b/lawnchair/src/app/lawnchair/icons/IconPickerCategory.kt @@ -5,10 +5,8 @@ data class IconPickerCategory( val items: List, ) -fun IconPickerCategory.filter(searchQuery: String): IconPickerCategory { - return IconPickerCategory( - title = title, - items = items - .filter { it.label.lowercase().contains(searchQuery.lowercase()) }, - ) -} +fun IconPickerCategory.filter(searchQuery: String): IconPickerCategory = IconPickerCategory( + title = title, + items = items + .filter { it.label.lowercase().contains(searchQuery.lowercase()) }, +) diff --git a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt index 96e07224c8c..a1f2549434b 100644 --- a/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt +++ b/lawnchair/src/app/lawnchair/icons/LawnchairIconProvider.kt @@ -197,9 +197,7 @@ class LawnchairIconProvider @JvmOverloads constructor( return defaultIcon } - override fun isThemeEnabled(): Boolean { - return _themeMap != DISABLED_MAP - } + override fun isThemeEnabled(): Boolean = _themeMap != DISABLED_MAP override fun getThemeData(componentName: ComponentName): ThemedIconDrawable.ThemeData? { val td = getDynamicIconsFromMap(context, themeMap, componentName) @@ -209,35 +207,23 @@ class LawnchairIconProvider @JvmOverloads constructor( return themeMap[componentName] ?: themeMap[ComponentName(componentName.packageName, "")] } - override fun getIcon(info: ActivityInfo?): Drawable { - return CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info)) - } + override fun getIcon(info: ActivityInfo?): Drawable = CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info)) - override fun getIcon(info: ActivityInfo?, iconDpi: Int): Drawable { - return CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info, iconDpi)) - } + override fun getIcon(info: ActivityInfo?, iconDpi: Int): Drawable = CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info, iconDpi)) - override fun getIcon(info: LauncherActivityInfo?, iconDpi: Int): Drawable { - return CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info, iconDpi)) - } + override fun getIcon(info: LauncherActivityInfo?, iconDpi: Int): Drawable = CustomAdaptiveIconDrawable.wrapNonNull(super.getIcon(info, iconDpi)) - override fun getSystemStateForPackage(systemState: String, packageName: String): String { - return super.getSystemStateForPackage(systemState, packageName) + ",$isThemeEnabled" - } + override fun getSystemStateForPackage(systemState: String, packageName: String): String = super.getSystemStateForPackage(systemState, packageName) + ",$isThemeEnabled" - override fun getSystemIconState(): String { - return super.getSystemIconState() + ",pack:${iconPackPref.get()}/${themedIconPackPref.get()},ver:$iconPackVersion" - } + override fun getSystemIconState(): String = super.getSystemIconState() + ",pack:${iconPackPref.get()}/${themedIconPackPref.get()},ver:$iconPackVersion" override fun registerIconChangeListener( callback: IconChangeListener, handler: Handler, - ): SafeCloseable { - return MultiSafeCloseable().apply { - add(super.registerIconChangeListener(callback, handler)) - add(IconPackChangeReceiver(context, handler, callback)) - add(LawniconsChangeReceiver(context, handler, callback)) - } + ): SafeCloseable = MultiSafeCloseable().apply { + add(super.registerIconChangeListener(callback, handler)) + add(IconPackChangeReceiver(context, handler, callback)) + add(LawniconsChangeReceiver(context, handler, callback)) } private inner class IconPackChangeReceiver( @@ -297,7 +283,8 @@ class LawnchairIconProvider @JvmOverloads constructor( handler: Handler, private val iconPack: IconPack, private val callback: IconChangeListener, - ) : BroadcastReceiver(), SafeCloseable { + ) : BroadcastReceiver(), + SafeCloseable { init { val filter = IntentFilter(ACTION_TIMEZONE_CHANGED) @@ -338,7 +325,8 @@ class LawnchairIconProvider @JvmOverloads constructor( private val context: Context, handler: Handler, private val callback: IconChangeListener, - ) : BroadcastReceiver(), SafeCloseable { + ) : BroadcastReceiver(), + SafeCloseable { init { val filter = IntentFilter(ACTION_PACKAGE_ADDED) diff --git a/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt b/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt index cd750ccbf71..2a356af97cd 100644 --- a/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt +++ b/lawnchair/src/app/lawnchair/icons/SystemIconPack.kt @@ -29,8 +29,7 @@ class SystemIconPack(context: Context, pkg: String) : IconPack(context, pkg) { startLoad() } - override fun getIcon(componentName: ComponentName) = - IconEntry(packPackageName, ComponentKey(componentName, Process.myUserHandle()).toString(), IconType.Normal) + override fun getIcon(componentName: ComponentName) = IconEntry(packPackageName, ComponentKey(componentName, Process.myUserHandle()).toString(), IconType.Normal) override fun getCalendar(componentName: ComponentName): IconEntry? = null override fun getClock(entry: IconEntry): ClockMetadata? = null diff --git a/lawnchair/src/app/lawnchair/icons/ThemedIconCompat.kt b/lawnchair/src/app/lawnchair/icons/ThemedIconCompat.kt index 698e228a2b4..9a1b37034f1 100644 --- a/lawnchair/src/app/lawnchair/icons/ThemedIconCompat.kt +++ b/lawnchair/src/app/lawnchair/icons/ThemedIconCompat.kt @@ -29,16 +29,14 @@ object ThemedIconCompat { return drawable } - private fun resolveActivityInfo(context: Context, componentName: ComponentName): ActivityInfo? { - return try { - context.packageManager.getActivityInfo( - componentName, - 0, - ) - } catch (e: PackageManager.NameNotFoundException) { - // Handle the case where the activity is not found - null - } + private fun resolveActivityInfo(context: Context, componentName: ComponentName): ActivityInfo? = try { + context.packageManager.getActivityInfo( + componentName, + 0, + ) + } catch (e: PackageManager.NameNotFoundException) { + // Handle the case where the activity is not found + null } @SuppressLint("UseCompatLoadingForDrawables") diff --git a/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt b/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt index d1d572a83db..5408768f0c8 100644 --- a/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt +++ b/lawnchair/src/app/lawnchair/icons/shape/IconCornerShape.kt @@ -36,21 +36,13 @@ sealed class IconCornerShape { protected open val controlDistanceX: Float get() = controlDistance protected open val controlDistanceY: Float get() = controlDistance - private fun getControl1X(position: Position, controlDistance: Float): Float { - return Utilities.mapRange(controlDistance, position.controlX, position.startX) - } + private fun getControl1X(position: Position, controlDistance: Float): Float = Utilities.mapRange(controlDistance, position.controlX, position.startX) - private fun getControl1Y(position: Position, controlDistance: Float): Float { - return Utilities.mapRange(controlDistance, position.controlY, position.startY) - } + private fun getControl1Y(position: Position, controlDistance: Float): Float = Utilities.mapRange(controlDistance, position.controlY, position.startY) - private fun getControl2X(position: Position, controlDistance: Float): Float { - return Utilities.mapRange(controlDistance, position.controlX, position.endX) - } + private fun getControl2X(position: Position, controlDistance: Float): Float = Utilities.mapRange(controlDistance, position.controlX, position.endX) - private fun getControl2Y(position: Position, controlDistance: Float): Float { - return Utilities.mapRange(controlDistance, position.controlY, position.endY) - } + private fun getControl2Y(position: Position, controlDistance: Float): Float = Utilities.mapRange(controlDistance, position.controlY, position.endY) override fun addCorner( path: Path, @@ -128,9 +120,7 @@ sealed class IconCornerShape { } } - override fun toString(): String { - return "cuthex" - } + override fun toString(): String = "cuthex" } object LightSquircle : BaseBezierPath() { @@ -309,19 +299,17 @@ sealed class IconCornerShape { val arc = Arc() - fun fromString(value: String): IconCornerShape { - return when (value) { - "cut" -> Cut - "cuthex" -> CutHex - "lightsquircle" -> LightSquircle - "cubic", "squircle" -> Squircle - "strongsquircle" -> StrongSquircle - "ultrasquircle" -> UltraSquircle - "sammy" -> Sammy - "arc" -> arc - "cupertino" -> Cupertino - else -> error("invalid corner shape $value") - } + fun fromString(value: String): IconCornerShape = when (value) { + "cut" -> Cut + "cuthex" -> CutHex + "lightsquircle" -> LightSquircle + "cubic", "squircle" -> Squircle + "strongsquircle" -> StrongSquircle + "ultrasquircle" -> UltraSquircle + "sammy" -> Sammy + "arc" -> arc + "cupertino" -> Cupertino + else -> error("invalid corner shape $value") } } } diff --git a/lawnchair/src/app/lawnchair/icons/shape/IconShape.kt b/lawnchair/src/app/lawnchair/icons/shape/IconShape.kt index eab13da5233..d7a898a744c 100644 --- a/lawnchair/src/app/lawnchair/icons/shape/IconShape.kt +++ b/lawnchair/src/app/lawnchair/icons/shape/IconShape.kt @@ -80,9 +80,7 @@ open class IconShape( private val tmpPoint = PointF() open val windowTransitionRadius = 1f - open fun getMaskPath(): Path { - return Path().also { addToPath(it, 0f, 0f, 100f, 100f, 50f) } - } + open fun getMaskPath(): Path = Path().also { addToPath(it, 0f, 0f, 100f, 100f, 50f) } open fun addShape(path: Path, x: Float, y: Float, radius: Float) { if (isCircle) { @@ -195,9 +193,7 @@ open class IconShape( path.lineTo(x2, y2) } - override fun toString(): String { - return "v1|$topLeft|$topRight|$bottomLeft|$bottomRight" - } + override fun toString(): String = "v1|$topLeft|$topRight|$bottomLeft|$bottomRight" open fun getHashString() = toString() @@ -225,9 +221,7 @@ open class IconShape( constructor(shape: IconCornerShape, scale: Float) : this(shape, PointF(scale, scale)) - override fun toString(): String { - return "$shape,${scale.x},${scale.y}" - } + override fun toString(): String = "$shape,${scale.x},${scale.y}" companion object { @@ -255,9 +249,7 @@ open class IconShape( 1f, ) { - override fun toString(): String { - return "circle" - } + override fun toString(): String = "circle" } object Square : IconShape( @@ -273,9 +265,7 @@ open class IconShape( override val windowTransitionRadius = .16f - override fun toString(): String { - return "square" - } + override fun toString(): String = "square" } object SharpSquare : IconShape( @@ -291,9 +281,7 @@ open class IconShape( override val windowTransitionRadius = 0f - override fun toString(): String { - return "sharpSquare" - } + override fun toString(): String = "sharpSquare" } object RoundedSquare : IconShape( @@ -309,9 +297,7 @@ open class IconShape( override val windowTransitionRadius = .6f - override fun toString(): String { - return "roundedSquare" - } + override fun toString(): String = "roundedSquare" } object Squircle : IconShape( @@ -325,9 +311,7 @@ open class IconShape( 1f, ) { - override fun toString(): String { - return "squircle" - } + override fun toString(): String = "squircle" } object Sammy : IconShape( @@ -341,9 +325,7 @@ open class IconShape( 1f, ) { - override fun toString(): String { - return "sammy" - } + override fun toString(): String = "sammy" } object Teardrop : IconShape( @@ -357,9 +339,7 @@ open class IconShape( .3f, ) { - override fun toString(): String { - return "teardrop" - } + override fun toString(): String = "teardrop" } object Cylinder : IconShape( @@ -373,9 +353,7 @@ open class IconShape( PointF(1f, .6f), ) { - override fun toString(): String { - return "cylinder" - } + override fun toString(): String = "cylinder" } object Cupertino : IconShape( @@ -391,9 +369,7 @@ open class IconShape( override val windowTransitionRadius = .45f - override fun toString(): String { - return "cupertino" - } + override fun toString(): String = "cupertino" } object Octagon : IconShape( @@ -407,9 +383,7 @@ open class IconShape( .5f, ) { - override fun toString(): String { - return "octagon" - } + override fun toString(): String = "octagon" } object Hexagon : IconShape( @@ -423,9 +397,7 @@ open class IconShape( PointF(1f, .5f), ) { - override fun toString(): String { - return "hexagon" - } + override fun toString(): String = "hexagon" } object Diamond : IconShape( @@ -441,9 +413,7 @@ open class IconShape( override val windowTransitionRadius = 0f - override fun toString(): String { - return "diamond" - } + override fun toString(): String = "diamond" } object Egg : IconShape( @@ -459,9 +429,7 @@ open class IconShape( override val windowTransitionRadius = 0.85f - override fun toString(): String { - return "egg" - } + override fun toString(): String = "egg" } companion object { @@ -505,14 +473,12 @@ open class IconShape( ) } - fun isCustomShape(iconShape: IconShape): Boolean { - return try { - parseCustomShape(iconShape.toString()) - true - } catch (e: Exception) { - Log.e("IconShape", "Error creating shape $iconShape", e) - false - } + fun isCustomShape(iconShape: IconShape): Boolean = try { + parseCustomShape(iconShape.toString()) + true + } catch (e: Exception) { + Log.e("IconShape", "Error creating shape $iconShape", e) + false } } } diff --git a/lawnchair/src/app/lawnchair/icons/shape/IconShapeManager.kt b/lawnchair/src/app/lawnchair/icons/shape/IconShapeManager.kt index 47513d27bcb..b9253bbbb18 100644 --- a/lawnchair/src/app/lawnchair/icons/shape/IconShapeManager.kt +++ b/lawnchair/src/app/lawnchair/icons/shape/IconShapeManager.kt @@ -42,9 +42,7 @@ class IconShapeManager(private val context: Context) : SafeCloseable { val systemShape = findNearestShape(iconMask) return object : IconShape(systemShape) { - override fun getMaskPath(): Path { - return Path(iconMask) - } + override fun getMaskPath(): Path = Path(iconMask) override fun toString() = "system" @@ -96,7 +94,6 @@ class IconShapeManager(private val context: Context) : SafeCloseable { fun getSystemIconShape(context: Context) = INSTANCE.get(context).systemIconShape @JvmStatic - fun getWindowTransitionRadius(context: Context) = - PreferenceManager2.getInstance(context).iconShape.firstBlocking().windowTransitionRadius + fun getWindowTransitionRadius(context: Context) = PreferenceManager2.getInstance(context).iconShape.firstBlocking().windowTransitionRadius } } diff --git a/lawnchair/src/app/lawnchair/nexuslauncher/OverlayCallbackImpl.kt b/lawnchair/src/app/lawnchair/nexuslauncher/OverlayCallbackImpl.kt index 0ce332c3834..43193aab397 100644 --- a/lawnchair/src/app/lawnchair/nexuslauncher/OverlayCallbackImpl.kt +++ b/lawnchair/src/app/lawnchair/nexuslauncher/OverlayCallbackImpl.kt @@ -146,10 +146,8 @@ class OverlayCallbackImpl(private val mLauncher: LawnchairLauncher) : companion object { private const val PREF_PERSIST_FLAGS = "pref_persistent_flags" - fun minusOneAvailable(context: Context): Boolean { - return FeedBridge.useBridge(context) || - context.applicationInfo.flags and - (ApplicationInfo.FLAG_DEBUGGABLE or ApplicationInfo.FLAG_SYSTEM) != 0 - } + fun minusOneAvailable(context: Context): Boolean = FeedBridge.useBridge(context) || + context.applicationInfo.flags and + (ApplicationInfo.FLAG_DEBUGGABLE or ApplicationInfo.FLAG_SYSTEM) != 0 } } diff --git a/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt b/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt index c7fc5459a01..6f812cee02d 100644 --- a/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt +++ b/lawnchair/src/app/lawnchair/nexuslauncher/SmartSpaceHostView.kt @@ -21,15 +21,16 @@ import com.android.launcher3.views.BaseDragLayer.TouchCompleteListener import com.android.launcher3.views.OptionsPopupView import com.android.launcher3.views.OptionsPopupView.OptionItem -sealed class SmartSpaceHostView(context: Context) : QsbWidgetHostView(context), OnLongClickListener, TouchCompleteListener { +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) - override fun getErrorView(): View { - return SmartspaceQsb.getDateView(this) - } + override fun getErrorView(): View = SmartspaceQsb.getDateView(this) override fun onLongClick(view: View): Boolean { if (!hasSettings(view.context)) { @@ -106,16 +107,14 @@ sealed class SmartSpaceHostView(context: Context) : QsbWidgetHostView(context), return info != null } - fun createSettingsIntent(): Intent { - return Intent(SETTINGS_INTENT_ACTION) - .setPackage(SmartspaceQsb.WIDGET_PACKAGE_NAME) - .setFlags( - Intent.FLAG_RECEIVER_FOREGROUND - or Intent.FLAG_ACTIVITY_NO_HISTORY - or Intent.FLAG_ACTIVITY_NEW_TASK - or Intent.FLAG_ACTIVITY_NEW_DOCUMENT, - ) - } + fun createSettingsIntent(): Intent = Intent(SETTINGS_INTENT_ACTION) + .setPackage(SmartspaceQsb.WIDGET_PACKAGE_NAME) + .setFlags( + Intent.FLAG_RECEIVER_FOREGROUND + or Intent.FLAG_ACTIVITY_NO_HISTORY + or Intent.FLAG_ACTIVITY_NEW_TASK + or Intent.FLAG_ACTIVITY_NEW_DOCUMENT, + ) } } @@ -123,7 +122,5 @@ enum class NexusLauncherEnum(private val mId: Int) : EventEnum { SMARTSPACE_TAP_OR_LONGPRESS(520), ; - override fun getId(): Int { - return mId - } + override fun getId(): Int = mId } diff --git a/lawnchair/src/app/lawnchair/nexuslauncher/SmartspaceQsb.kt b/lawnchair/src/app/lawnchair/nexuslauncher/SmartspaceQsb.kt index 9d39d6e36a2..1f0721c2857 100644 --- a/lawnchair/src/app/lawnchair/nexuslauncher/SmartspaceQsb.kt +++ b/lawnchair/src/app/lawnchair/nexuslauncher/SmartspaceQsb.kt @@ -13,15 +13,12 @@ import android.view.ViewGroup import com.android.launcher3.R import com.android.launcher3.qsb.QsbContainerView -class SmartspaceQsb @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : - QsbContainerView(context, attrs, defStyleAttr) { +class SmartspaceQsb @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : QsbContainerView(context, attrs, defStyleAttr) { class SmartSpaceFragment : QsbFragment() { - override fun createHost(): QsbWidgetHost { - return QsbWidgetHost( - context, - SMART_SPACE_WIDGET_HOST_ID, - ) { c: Context -> ThemedSmartSpaceHostView(c) } - } + override fun createHost(): QsbWidgetHost = QsbWidgetHost( + context, + SMART_SPACE_WIDGET_HOST_ID, + ) { c: Context -> ThemedSmartSpaceHostView(c) } @SuppressLint("NewApi") override fun getSearchWidgetProvider(): AppWidgetProviderInfo? { @@ -34,9 +31,7 @@ class SmartspaceQsb @JvmOverloads constructor(context: Context, attrs: Attribute return null } - override fun getDefaultView(container: ViewGroup, showSetupIcon: Boolean): View { - return getDateView(container) - } + override fun getDefaultView(container: ViewGroup, showSetupIcon: Boolean): View = getDateView(container) override fun createBindOptions(): Bundle { val opts = super.createBindOptions() @@ -59,9 +54,7 @@ class SmartspaceQsb @JvmOverloads constructor(context: Context, attrs: Attribute private const val WIDGET_CLASS_NAME = "com.google.android.apps.gsa.staticplugins.smartspace.widget.SmartspaceWidgetProvider" - fun getDateView(parent: ViewGroup): View { - return LayoutInflater.from(parent.context) - .inflate(R.layout.smart_space_date_view, parent, false) - } + fun getDateView(parent: ViewGroup): View = LayoutInflater.from(parent.context) + .inflate(R.layout.smart_space_date_view, parent, false) } } diff --git a/lawnchair/src/app/lawnchair/nexuslauncher/ThemedSmartSpaceHostView.kt b/lawnchair/src/app/lawnchair/nexuslauncher/ThemedSmartSpaceHostView.kt index fa8ebe1196c..3ff09405d0b 100644 --- a/lawnchair/src/app/lawnchair/nexuslauncher/ThemedSmartSpaceHostView.kt +++ b/lawnchair/src/app/lawnchair/nexuslauncher/ThemedSmartSpaceHostView.kt @@ -27,9 +27,7 @@ class ThemedSmartSpaceHostView(context: Context) : SmartSpaceHostView(context) { private val templateTextView = LayoutInflater.from(context) .inflate(R.layout.smartspace_text_template, this, false) as DoubleShadowBubbleTextView - override fun getErrorView(): View { - return super.getErrorView().also { overrideStyles(it as ViewGroup) } - } + override fun getErrorView(): View = super.getErrorView().also { overrideStyles(it as ViewGroup) } override fun updateAppWidget(remoteViews: RemoteViews?) { super.updateAppWidget(remoteViews) @@ -85,14 +83,12 @@ class ThemedSmartSpaceHostView(context: Context) : SmartSpaceHostView(context) { } } - private fun addShadowToBitmap(bitmap: Bitmap): Bitmap { - return if (!bitmap.isRecycled) { - val newBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888) - val canvas = Canvas(newBitmap) - shadowGenerator.recreateIcon(bitmap, canvas) - newBitmap - } else { - bitmap - } + private fun addShadowToBitmap(bitmap: Bitmap): Bitmap = if (!bitmap.isRecycled) { + val newBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888) + val canvas = Canvas(newBitmap) + shadowGenerator.recreateIcon(bitmap, canvas) + newBitmap + } else { + bitmap } } diff --git a/lawnchair/src/app/lawnchair/overview/LawnchairOverviewActionsView.kt b/lawnchair/src/app/lawnchair/overview/LawnchairOverviewActionsView.kt index e5328234ac2..c96614ccab8 100644 --- a/lawnchair/src/app/lawnchair/overview/LawnchairOverviewActionsView.kt +++ b/lawnchair/src/app/lawnchair/overview/LawnchairOverviewActionsView.kt @@ -86,10 +86,8 @@ class LawnchairOverviewActionsView @JvmOverloads constructor( return lensIntent != null } - private fun createSpace(): View { - return Space(context).apply { - layoutParams = LinearLayout.LayoutParams(0, 1).apply { weight = 1f } - } + private fun createSpace(): View = Space(context).apply { + layoutParams = LinearLayout.LayoutParams(0, 1).apply { weight = 1f } } override fun setClearAllClickListener(clearAllClickListener: OnClickListener?) { diff --git a/lawnchair/src/app/lawnchair/preferences/BasePreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/BasePreferenceManager.kt index c8119d90a74..7a2269c9e93 100644 --- a/lawnchair/src/app/lawnchair/preferences/BasePreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/BasePreferenceManager.kt @@ -233,9 +233,7 @@ sealed class BasePreferenceManager(private val context: Context) : SharedPrefere error("unsupported") } - fun defaultValue(defaultGrid: InvariantDeviceProfile.GridOption): Int { - return selectDefaultValue(defaultGrid) - } + fun defaultValue(defaultGrid: InvariantDeviceProfile.GridOption): Int = selectDefaultValue(defaultGrid) fun get(defaultGrid: InvariantDeviceProfile.GridOption): Int { val value = super.get() @@ -350,9 +348,7 @@ sealed class BasePreferenceManager(private val context: Context) : SharedPrefere override fun get() = HashMap(valueMap) - override fun set(newValue: Map) { - throw NotImplementedError() - } + override fun set(newValue: Map): Unit = throw NotImplementedError() open fun flattenKey(key: K) = key.toString() abstract fun unflattenKey(key: String): K @@ -375,9 +371,7 @@ sealed class BasePreferenceManager(private val context: Context) : SharedPrefere editSp { putString(key, obj.toString()) } } - operator fun get(key: K): V? { - return valueMap[key] - } + operator fun get(key: K): V? = valueMap[key] fun clear() { valueMap.clear() diff --git a/lawnchair/src/app/lawnchair/preferences/PrefLifecycleObserver.kt b/lawnchair/src/app/lawnchair/preferences/PrefLifecycleObserver.kt index 9c1325f3e35..b76a55bc5e0 100644 --- a/lawnchair/src/app/lawnchair/preferences/PrefLifecycleObserver.kt +++ b/lawnchair/src/app/lawnchair/preferences/PrefLifecycleObserver.kt @@ -6,7 +6,8 @@ import androidx.lifecycle.LifecycleOwner class PrefLifecycleObserver( private val prefEntry: PrefEntry, private val onChange: Runnable, -) : DefaultLifecycleObserver, PreferenceChangeListener { +) : DefaultLifecycleObserver, + PreferenceChangeListener { fun connectListener() { prefEntry.addListener(this) diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt index eed4e178f5b..bbcee0b1a81 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceAdapter.kt @@ -57,7 +57,8 @@ private class MutableStatePreferenceAdapter( class PreferenceAdapterImpl( private val get: () -> T, private val set: (T) -> Unit, -) : PreferenceAdapter, PreferenceChangeListener { +) : PreferenceAdapter, + PreferenceChangeListener { private val stateInternal = mutableStateOf(get()) override val state: State get() = stateInternal @@ -117,9 +118,7 @@ private fun getAdapter( } @Composable -fun Preference.getAdapter(): PreferenceAdapter { - return createStateAdapter(state = asState(), set = this::set) -} +fun Preference.getAdapter(): PreferenceAdapter = createStateAdapter(state = asState(), set = this::set) @Composable fun IdpPreference.getAdapter(): PreferenceAdapter { @@ -153,9 +152,7 @@ fun rememberTransformAdapter( } @Composable -fun MutableState.asPreferenceAdapter(): PreferenceAdapter { - return remember(this) { MutableStatePreferenceAdapter(this) } -} +fun MutableState.asPreferenceAdapter(): PreferenceAdapter = remember(this) { MutableStatePreferenceAdapter(this) } private class TransformPreferenceAdapter( private val parent: PreferenceAdapter, @@ -182,6 +179,4 @@ fun customPreferenceAdapter(value: T, onValueChange: (T) -> Unit): Preferenc } @Composable -operator fun PreferenceAdapter.not(): PreferenceAdapter { - return rememberTransformAdapter(adapter = this, transformGet = { !it }, transformSet = { !it }) -} +operator fun PreferenceAdapter.not(): PreferenceAdapter = rememberTransformAdapter(adapter = this, transformGet = { !it }, transformSet = { !it }) diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index 3259354ee56..1d90488d91a 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -29,7 +29,9 @@ import com.android.launcher3.util.ComponentKey import com.android.launcher3.util.MainThreadInitializedObject import com.android.launcher3.util.SafeCloseable -class PreferenceManager private constructor(private val context: Context) : BasePreferenceManager(context), SafeCloseable { +class PreferenceManager private constructor(private val context: Context) : + BasePreferenceManager(context), + SafeCloseable { private val idp get() = InvariantDeviceProfile.INSTANCE.get(context) private val reloadIcons = { idp.onPreferencesChanged(context) } private val reloadGrid: () -> Unit = { idp.onPreferencesChanged(context) } diff --git a/lawnchair/src/app/lawnchair/preferences2/IdpPreference.kt b/lawnchair/src/app/lawnchair/preferences2/IdpPreference.kt index 3e782e65026..dbf1e7d188f 100644 --- a/lawnchair/src/app/lawnchair/preferences2/IdpPreference.kt +++ b/lawnchair/src/app/lawnchair/preferences2/IdpPreference.kt @@ -39,8 +39,7 @@ class IdpPreference( } } -fun IdpPreference.firstBlocking(gridOption: InvariantDeviceProfile.GridOption) = - runBlocking { get(gridOption = gridOption).first() } +fun IdpPreference.firstBlocking(gridOption: InvariantDeviceProfile.GridOption) = runBlocking { get(gridOption = gridOption).first() } @Composable fun IdpPreference.state( diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt index 980f538b053..170302d03b1 100644 --- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt +++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt @@ -63,7 +63,9 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.serialization.encodeToString -class PreferenceManager2 private constructor(private val context: Context) : PreferenceManager, SafeCloseable { +class PreferenceManager2 private constructor(private val context: Context) : + PreferenceManager, + SafeCloseable { private val scope = MainScope() private val resourceProvider = DynamicResource.provider(context) diff --git a/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt b/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt index 532681c0243..7e9d3312c38 100644 --- a/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt +++ b/lawnchair/src/app/lawnchair/preferences2/SharedPreferencesMigration.kt @@ -63,27 +63,26 @@ class SharedPreferencesMigration(private val context: Context) { keys.values.any { it !in allKeys } } - private fun produceMigrationFunction(): suspend (SharedPreferencesView, Preferences) -> Preferences = - { sharedPreferences: SharedPreferencesView, currentData: Preferences -> - val currentKeys = currentData.asMap().keys.map { it.name } - val migratedKeys = currentKeys.mapNotNull { currentKey -> keys.entries.find { entry -> entry.value == currentKey }?.key } - val filteredSharedPreferences = sharedPreferences.getAll().filter { (key, _) -> key !in migratedKeys } - val mutablePreferences = currentData.toMutablePreferences() + private fun produceMigrationFunction(): suspend (SharedPreferencesView, Preferences) -> Preferences = { sharedPreferences: SharedPreferencesView, currentData: Preferences -> + val currentKeys = currentData.asMap().keys.map { it.name } + val migratedKeys = currentKeys.mapNotNull { currentKey -> keys.entries.find { entry -> entry.value == currentKey }?.key } + val filteredSharedPreferences = sharedPreferences.getAll().filter { (key, _) -> key !in migratedKeys } + val mutablePreferences = currentData.toMutablePreferences() - for ((key, value) in filteredSharedPreferences) { - val newKey = keys[key] ?: key - when (value) { - is Boolean -> mutablePreferences[booleanPreferencesKey(newKey)] = value - is Float -> mutablePreferences[floatPreferencesKey(newKey)] = value - is Int -> mutablePreferences[intPreferencesKey(newKey)] = value - is Long -> mutablePreferences[longPreferencesKey(newKey)] = value - is String -> mutablePreferences[stringPreferencesKey(newKey)] = value - is Set<*> -> { - mutablePreferences[stringSetPreferencesKey(newKey)] = value as Set - } + for ((key, value) in filteredSharedPreferences) { + val newKey = keys[key] ?: key + when (value) { + is Boolean -> mutablePreferences[booleanPreferencesKey(newKey)] = value + is Float -> mutablePreferences[floatPreferencesKey(newKey)] = value + is Int -> mutablePreferences[intPreferencesKey(newKey)] = value + is Long -> mutablePreferences[longPreferencesKey(newKey)] = value + is String -> mutablePreferences[stringPreferencesKey(newKey)] = value + is Set<*> -> { + mutablePreferences[stringSetPreferencesKey(newKey)] = value as Set } } - - mutablePreferences.toPreferences() } + + mutablePreferences.toPreferences() + } } diff --git a/lawnchair/src/app/lawnchair/qsb/LawnQsbLayout.kt b/lawnchair/src/app/lawnchair/qsb/LawnQsbLayout.kt index 27d1a49f0eb..7ab1fa1699e 100644 --- a/lawnchair/src/app/lawnchair/qsb/LawnQsbLayout.kt +++ b/lawnchair/src/app/lawnchair/qsb/LawnQsbLayout.kt @@ -253,8 +253,7 @@ class LawnQsbLayout(context: Context, attrs: AttributeSet?) : FrameLayout(contex } } - fun resolveIntent(context: Context, intent: Intent): Boolean = - context.packageManager.resolveActivity(intent, 0) != null + fun resolveIntent(context: Context, intent: Intent): Boolean = context.packageManager.resolveActivity(intent, 0) != null private fun getCornerRadius( context: Context, diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt b/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt index a8e2521df00..35eadff515c 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/Bing.kt @@ -15,8 +15,7 @@ data object Bing : QsbSearchProvider( website = "https://bing.com/", ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(action) - .addFlags(INTENT_FLAGS) - .setClassName(packageName, "com.microsoft.clients.bing.voice.VoiceActivity") + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "com.microsoft.clients.bing.voice.VoiceActivity") } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt b/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt index 99c610793ad..0cbaa99f958 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/Firefox.kt @@ -18,8 +18,7 @@ data object Firefox : QsbSearchProvider( supportVoiceIntent = false, ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(action) - .addFlags(INTENT_FLAGS) - .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt b/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt index 18f736f9bd3..65f361b8aac 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/GoogleGo.kt @@ -16,6 +16,5 @@ data object GoogleGo : QsbSearchProvider( type = QsbSearchProviderType.APP, ) { - override fun handleCreateVoiceIntent(): Intent = - createSearchIntent().putExtra("openMic", true) + override fun handleCreateVoiceIntent(): Intent = createSearchIntent().putExtra("openMic", true) } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt b/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt index a8eded2a8e1..833f0173f34 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/Iceraven.kt @@ -18,8 +18,7 @@ data object Iceraven : QsbSearchProvider( supportVoiceIntent = true, ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(action) - .addFlags(INTENT_FLAGS) - .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Mull.kt b/lawnchair/src/app/lawnchair/qsb/providers/Mull.kt index 20a12e20948..f4b6238efd1 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/Mull.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/Mull.kt @@ -18,8 +18,7 @@ data object Mull : QsbSearchProvider( supportVoiceIntent = true, ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(action) - .addFlags(INTENT_FLAGS) - .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt b/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt index e7924b3b7f8..7df7281a215 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/PixelSearch.kt @@ -16,6 +16,5 @@ data object PixelSearch : QsbSearchProvider( supportVoiceIntent = true, ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(Intent.ACTION_VOICE_COMMAND) + override fun handleCreateVoiceIntent(): Intent = Intent(Intent.ACTION_VOICE_COMMAND) } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt b/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt index 56b7b564383..89646833b2a 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/Presearch.kt @@ -16,8 +16,7 @@ data object Presearch : QsbSearchProvider( website = "https://presearch.com/", ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(action) - .addFlags(INTENT_FLAGS) - .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") } diff --git a/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt b/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt index 1409194c9cb..930edf6af59 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt @@ -71,10 +71,9 @@ sealed class QsbSearchProvider( fun createWebsiteIntent() = Intent(Intent.ACTION_VIEW, Uri.parse(website)) .addFlags(INTENT_FLAGS) - open fun handleCreateVoiceIntent(): Intent = - Intent(Intent.ACTION_VOICE_COMMAND) - .addFlags(INTENT_FLAGS) - .setPackage(packageName) + open fun handleCreateVoiceIntent(): Intent = Intent(Intent.ACTION_VOICE_COMMAND) + .addFlags(INTENT_FLAGS) + .setPackage(packageName) /** * Checks if the search provider is downloaded. @@ -142,8 +141,7 @@ sealed class QsbSearchProvider( /** * Resolve the search provider using its ID, or use Google as a fallback. */ - fun fromId(id: String): QsbSearchProvider = - values().firstOrNull { it.id == id } ?: AppSearch + fun fromId(id: String): QsbSearchProvider = values().firstOrNull { it.id == id } ?: AppSearch /** * Resolve the default search provider. diff --git a/lawnchair/src/app/lawnchair/qsb/providers/Yandex.kt b/lawnchair/src/app/lawnchair/qsb/providers/Yandex.kt index f4ef4aab310..8faab8e298c 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/Yandex.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/Yandex.kt @@ -14,8 +14,7 @@ data object Yandex : QsbSearchProvider( website = "https://ya.ru/", ) { - override fun handleCreateVoiceIntent(): Intent = - Intent(action) - .addFlags(INTENT_FLAGS) - .setClassName(packageName, "ru.yandex.searchplugin.AssistantActivityAlias") + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "ru.yandex.searchplugin.AssistantActivityAlias") } diff --git a/lawnchair/src/app/lawnchair/root/RootHelper.kt b/lawnchair/src/app/lawnchair/root/RootHelper.kt index 71e9413fc5e..b821b28edbd 100644 --- a/lawnchair/src/app/lawnchair/root/RootHelper.kt +++ b/lawnchair/src/app/lawnchair/root/RootHelper.kt @@ -4,6 +4,5 @@ import android.content.Intent import com.topjohnwu.superuser.ipc.RootService class RootHelper : RootService() { - override fun onBind(intent: Intent) = - RootHelperBackend(this) + override fun onBind(intent: Intent) = RootHelperBackend(this) } diff --git a/lawnchair/src/app/lawnchair/root/RootHelperManager.kt b/lawnchair/src/app/lawnchair/root/RootHelperManager.kt index c4a6fcabaab..6c76e925eaa 100644 --- a/lawnchair/src/app/lawnchair/root/RootHelperManager.kt +++ b/lawnchair/src/app/lawnchair/root/RootHelperManager.kt @@ -45,21 +45,19 @@ class RootHelperManager(private val context: Context) { return rootHelperDeferred!!.await() } - private suspend fun bindImpl(onDisconnected: () -> Unit): IRootHelper { - return withContext(Dispatchers.IO) { - val intent = Intent(context, RootHelper::class.java) - suspendCoroutine { - val connection = object : ServiceConnection { - override fun onServiceConnected(name: ComponentName, service: IBinder) { - it.resume(IRootHelper.Stub.asInterface(service)) - } + private suspend fun bindImpl(onDisconnected: () -> Unit): IRootHelper = withContext(Dispatchers.IO) { + val intent = Intent(context, RootHelper::class.java) + suspendCoroutine { + val connection = object : ServiceConnection { + override fun onServiceConnected(name: ComponentName, service: IBinder) { + it.resume(IRootHelper.Stub.asInterface(service)) + } - override fun onServiceDisconnected(name: ComponentName) { - onDisconnected() - } + override fun onServiceDisconnected(name: ComponentName) { + onDisconnected() } - RootService.bind(intent, connection) } + RootService.bind(intent, connection) } } diff --git a/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt b/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt index 59761240ae9..f17d504ff9c 100644 --- a/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt +++ b/lawnchair/src/app/lawnchair/search/LawnchairSearchAdapterProvider.kt @@ -88,8 +88,7 @@ class LawnchairSearchAdapterProvider( return BaseAllAppsAdapter.ViewHolder(view) } - override fun getItemsPerRow(viewType: Int, appsPerRow: Int) = - if (viewType != SEARCH_RESULT_ICON) 1 else super.getItemsPerRow(viewType, appsPerRow) + override fun getItemsPerRow(viewType: Int, appsPerRow: Int) = if (viewType != SEARCH_RESULT_ICON) 1 else super.getItemsPerRow(viewType, appsPerRow) override fun launchHighlightedItem(): Boolean = quickLaunchItem?.launch() ?: false diff --git a/lawnchair/src/app/lawnchair/search/LawnchairSearchUiDelegate.kt b/lawnchair/src/app/lawnchair/search/LawnchairSearchUiDelegate.kt index 61022a918e3..9f7636f8ec5 100644 --- a/lawnchair/src/app/lawnchair/search/LawnchairSearchUiDelegate.kt +++ b/lawnchair/src/app/lawnchair/search/LawnchairSearchUiDelegate.kt @@ -5,10 +5,7 @@ import com.android.launcher3.allapps.search.AllAppsSearchUiDelegate import com.android.launcher3.allapps.search.SearchAdapterProvider import com.android.launcher3.views.ActivityContext -class LawnchairSearchUiDelegate(private val appsView: ActivityAllAppsContainerView<*>) : - AllAppsSearchUiDelegate(appsView) { +class LawnchairSearchUiDelegate(private val appsView: ActivityAllAppsContainerView<*>) : AllAppsSearchUiDelegate(appsView) { - override fun createMainAdapterProvider(): SearchAdapterProvider<*> { - return LawnchairSearchAdapterProvider(ActivityContext.lookupContext(appsView.context), appsView) - } + override fun createMainAdapterProvider(): SearchAdapterProvider<*> = LawnchairSearchAdapterProvider(ActivityContext.lookupContext(appsView.context), appsView) } diff --git a/lawnchair/src/app/lawnchair/search/adapter/SearchTargetFactory.kt b/lawnchair/src/app/lawnchair/search/adapter/SearchTargetFactory.kt index eeab662f543..e6460402357 100644 --- a/lawnchair/src/app/lawnchair/search/adapter/SearchTargetFactory.kt +++ b/lawnchair/src/app/lawnchair/search/adapter/SearchTargetFactory.kt @@ -57,17 +57,15 @@ class SearchTargetFactory( }.build() } - fun createShortcutTarget(shortcutInfo: ShortcutInfo): SearchTargetCompat { - return SearchTargetCompat.Builder( - SearchTargetCompat.RESULT_TYPE_SHORTCUT, - LayoutType.SMALL_ICON_HORIZONTAL_TEXT, - "shortcut_" + generateHashKey("${shortcutInfo.`package`}|${shortcutInfo.userHandle}|${shortcutInfo.id}"), - ).apply { - setShortcutInfo(shortcutInfo) - setUserHandle(shortcutInfo.userHandle) - setExtras(Bundle()) - }.build() - } + fun createShortcutTarget(shortcutInfo: ShortcutInfo): SearchTargetCompat = SearchTargetCompat.Builder( + SearchTargetCompat.RESULT_TYPE_SHORTCUT, + LayoutType.SMALL_ICON_HORIZONTAL_TEXT, + "shortcut_" + generateHashKey("${shortcutInfo.`package`}|${shortcutInfo.userHandle}|${shortcutInfo.id}"), + ).apply { + setShortcutInfo(shortcutInfo) + setUserHandle(shortcutInfo.userHandle) + setExtras(Bundle()) + }.build() fun createWebSuggestionsTarget(suggestion: String, suggestionProvider: String): SearchTargetCompat { val url = WebSearchProvider.fromString(suggestionProvider).getSearchUrl(suggestion) @@ -198,18 +196,16 @@ class SearchTargetFactory( action: SearchActionCompat, pkg: String, extras: Bundle = Bundle(), - ): SearchTargetCompat { - return SearchTargetCompat.Builder( - SearchTargetCompat.RESULT_TYPE_REDIRECTION, - LayoutType.ICON_HORIZONTAL_TEXT, - generateHashKey(id), - ) - .setPackageName(pkg) - .setUserHandle(Process.myUserHandle()) - .setSearchAction(action) - .setExtras(extras) - .build() - } + ): SearchTargetCompat = SearchTargetCompat.Builder( + SearchTargetCompat.RESULT_TYPE_REDIRECTION, + LayoutType.ICON_HORIZONTAL_TEXT, + generateHashKey(id), + ) + .setPackageName(pkg) + .setUserHandle(Process.myUserHandle()) + .setSearchAction(action) + .setExtras(extras) + .build() internal fun createMarketSearchTarget(query: String): SearchTargetCompat? { val marketSearchComponent = SearchLinksTarget.resolveMarketSearchActivity(context) ?: return null @@ -315,8 +311,7 @@ class SearchTargetFactory( // TODO find a way to properly provide tag/provide ids to search target private val messageDigest by lazy { MessageDigest.getInstance(HASH_ALGORITHM) } - private fun generateHashKey(input: String): String = - ByteString.of(*messageDigest.digest(input.toByteArray())).hex() + private fun generateHashKey(input: String): String = ByteString.of(*messageDigest.digest(input.toByteArray())).hex() fun createSearchTarget( id: String, @@ -325,18 +320,16 @@ class SearchTargetFactory( targetCompat: Int, pkg: String, extras: Bundle = Bundle(), - ): SearchTargetCompat { - return SearchTargetCompat.Builder( - targetCompat, - layoutType, - generateHashKey(id), - ).apply { - setPackageName(pkg) - setUserHandle(Process.myUserHandle()) - setSearchAction(action) - setExtras(extras) - }.build() - } + ): SearchTargetCompat = SearchTargetCompat.Builder( + targetCompat, + layoutType, + generateHashKey(id), + ).apply { + setPackageName(pkg) + setUserHandle(Process.myUserHandle()) + setSearchAction(action) + setExtras(extras) + }.build() } } @@ -393,15 +386,13 @@ object SettingsTarget { return resolveInfo?.activityInfo?.exported == true } - fun formatSettingTitle(rawTitle: String?): String { - return rawTitle?.replace('_', ' ') - ?.replace("ACTION", "") - ?.lowercase() - ?.split(' ') - ?.joinToString(" ") { - it.replaceFirstChar { char -> char.uppercase(Locale.ROOT) } - }.orEmpty() - } + fun formatSettingTitle(rawTitle: String?): String = rawTitle?.replace('_', ' ') + ?.replace("ACTION", "") + ?.lowercase() + ?.split(' ') + ?.joinToString(" ") { + it.replaceFirstChar { char -> char.uppercase(Locale.ROOT) } + }.orEmpty() } // keys used in `pkg` param diff --git a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt index ca49fa98dde..9f835823270 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt @@ -325,103 +325,102 @@ class LawnchairLocalSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm private suspend fun performDeviceLocalSearch( query: String, prefs: PreferenceManager, - ): MutableList = - withContext(Dispatchers.IO) { - val results = ArrayList() + ): MutableList = withContext(Dispatchers.IO) { + val results = ArrayList() - if (prefs.searchResultCalculator.get()) { - val calculations = calculateEquationFromString(query) - results.add(SearchResult(CALCULATOR, calculations)) - } + if (prefs.searchResultCalculator.get()) { + val calculations = calculateEquationFromString(query) + results.add(SearchResult(CALCULATOR, calculations)) + } - val contactDeferred = async { - if (prefs.searchResultPeople.get() && requestContactPermissionGranted( - context, - prefs, - ) - ) { - findContactsByName(context, query, maxPeopleCount) - .map { SearchResult(CONTACT, it) } - } else { - emptyList() - } + val contactDeferred = async { + if (prefs.searchResultPeople.get() && + requestContactPermissionGranted( + context, + prefs, + ) + ) { + findContactsByName(context, query, maxPeopleCount) + .map { SearchResult(CONTACT, it) } + } else { + emptyList() } + } - val filesDeferred = async { - if (prefs.searchResultFiles.get() && checkAndRequestFilesPermission( - context, - prefs, - ) - ) { - queryFilesInMediaStore(context, keyword = query, maxResult = maxFilesCount) - .toList() - .map { SearchResult(FILES, it) } - } else { - emptyList() - } + val filesDeferred = async { + if (prefs.searchResultFiles.get() && + checkAndRequestFilesPermission( + context, + prefs, + ) + ) { + queryFilesInMediaStore(context, keyword = query, maxResult = maxFilesCount) + .toList() + .map { SearchResult(FILES, it) } + } else { + emptyList() } + } - val settingsDeferred = async { - if (prefs.searchResultSettingsEntry.get()) { - findSettingsByNameAndAction(query, maxSettingsEntryCount) - .map { SearchResult(SETTINGS, it) } - } else { - emptyList() - } + val settingsDeferred = async { + if (prefs.searchResultSettingsEntry.get()) { + findSettingsByNameAndAction(query, maxSettingsEntryCount) + .map { SearchResult(SETTINGS, it) } + } else { + emptyList() } + } - val startPageSuggestionsDeferred = async { - try { - val timeout = maxWebSuggestionDelay.toLong() - val result = withTimeoutOrNull(timeout) { - if (prefs.searchResultStartPageSuggestion.get()) { - WebSearchProvider.fromString(webSuggestionsProvider) - .getSuggestions(query, maxWebSuggestionsCount).map { - SearchResult( - WEB_SUGGESTION, - it, - ) - } - } else { - emptyList() - } + val startPageSuggestionsDeferred = async { + try { + val timeout = maxWebSuggestionDelay.toLong() + val result = withTimeoutOrNull(timeout) { + if (prefs.searchResultStartPageSuggestion.get()) { + WebSearchProvider.fromString(webSuggestionsProvider) + .getSuggestions(query, maxWebSuggestionsCount).map { + SearchResult( + WEB_SUGGESTION, + it, + ) + } + } else { + emptyList() } - result ?: emptyList() - } catch (e: TimeoutCancellationException) { - emptyList() } + result ?: emptyList() + } catch (e: TimeoutCancellationException) { + emptyList() } + } - if (prefs.searchResulRecentSuggestion.get()) { - getRecentKeyword( - context, - query, - maxRecentResultCount, - object : app.lawnchair.search.algorithms.data.SearchCallback { - override fun onSearchLoaded(items: List) { - results.addAll(items.map { SearchResult(HISTORY, it) }) - } - - override fun onSearchFailed(error: String) { - results.add(SearchResult(ERROR, error)) - } - - override fun onLoading() { - results.add(SearchResult(LOADING, "Loading")) - } - }, - ) - } + if (prefs.searchResulRecentSuggestion.get()) { + getRecentKeyword( + context, + query, + maxRecentResultCount, + object : app.lawnchair.search.algorithms.data.SearchCallback { + override fun onSearchLoaded(items: List) { + results.addAll(items.map { SearchResult(HISTORY, it) }) + } - results.addAll(contactDeferred.await()) - results.addAll(filesDeferred.await()) - results.addAll(settingsDeferred.await()) - results.addAll(startPageSuggestionsDeferred.await()) + override fun onSearchFailed(error: String) { + results.add(SearchResult(ERROR, error)) + } - results + override fun onLoading() { + results.add(SearchResult(LOADING, "Loading")) + } + }, + ) } - private fun filterByType(results: List, type: String): List { - return results.filter { it.resultType == type } + results.addAll(contactDeferred.await()) + results.addAll(filesDeferred.await()) + results.addAll(settingsDeferred.await()) + results.addAll(startPageSuggestionsDeferred.await()) + + results } + + private fun filterByType(results: List, type: String): List = results.filter { it.resultType == type } } diff --git a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairSearchAlgorithm.kt index 9ce375e561d..e2917a7be76 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairSearchAlgorithm.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairSearchAlgorithm.kt @@ -126,10 +126,8 @@ sealed class LawnchairSearchAlgorithm( } } - private fun findIndices(filtered: List, layoutType: String): List { - return filtered.indices.filter { - filtered[it].layoutType == layoutType && !filtered[it].isApp - } + private fun findIndices(filtered: List, layoutType: String): List = filtered.indices.filter { + filtered[it].layoutType == layoutType && !filtered[it].isApp } private fun findAppAndShorcutIndices(filtered: List): List { diff --git a/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt b/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt index 8d18a3f0324..fca7e6006f6 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt @@ -54,19 +54,17 @@ fun Sequence.filterHiddenApps( query: String, hiddenApps: Set, hiddenAppsInSearch: String, -): Sequence { - return when (hiddenAppsInSearch) { - HiddenAppsInSearch.ALWAYS -> { - this - } - HiddenAppsInSearch.IF_NAME_TYPED -> { - filter { - it.toComponentKey().toString() !in hiddenApps || - it.title.toString().lowercase(Locale.getDefault()) == query - } - } - else -> { - filter { it.toComponentKey().toString() !in hiddenApps } +): Sequence = when (hiddenAppsInSearch) { + HiddenAppsInSearch.ALWAYS -> { + this + } + HiddenAppsInSearch.IF_NAME_TYPED -> { + filter { + it.toComponentKey().toString() !in hiddenApps || + it.title.toString().lowercase(Locale.getDefault()) == query } } + else -> { + filter { it.toComponentKey().toString() !in hiddenApps } + } } diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/Calculation.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/Calculation.kt index e05585b32f0..797f6cc605a 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/Calculation.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/Calculation.kt @@ -12,30 +12,28 @@ data class Calculation( fun calculateEquationFromString( query: String, -): Calculation { - return try { - val evaluatedValue = Expressions().eval(query) - val roundedValue = evaluatedValue.round(MathContext.DECIMAL64) - val formattedValue = roundedValue.stripTrailingZeros() - val absoluteValue = formattedValue.abs() - val threshold = BigDecimal("9999999999999999") +): Calculation = try { + val evaluatedValue = Expressions().eval(query) + val roundedValue = evaluatedValue.round(MathContext.DECIMAL64) + val formattedValue = roundedValue.stripTrailingZeros() + val absoluteValue = formattedValue.abs() + val threshold = BigDecimal("9999999999999999") - val result = if (absoluteValue > threshold) { - formattedValue.toString() - } else { - formattedValue.toPlainString() - } - - Calculation( - equation = query, - result = result, - isValid = true, - ) - } catch (_: Exception) { - Calculation( - equation = "", - result = "", - isValid = false, - ) + val result = if (absoluteValue > threshold) { + formattedValue.toString() + } else { + formattedValue.toPlainString() } + + Calculation( + equation = query, + result = result, + isValid = true, + ) +} catch (_: Exception) { + Calculation( + equation = "", + result = "", + isValid = false, + ) } diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/History.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/History.kt index 2608fdae0d0..665f369aa65 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/History.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/History.kt @@ -12,9 +12,7 @@ import kotlinx.coroutines.withContext data class RecentKeyword( val data: Map, ) { - fun getValueByKey(key: String): String? { - return data[key] - } + fun getValueByKey(key: String): String? = data[key] } suspend fun getRecentKeyword(context: Context, query: String, max: Int, callback: SearchCallback) { diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/Web.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/Web.kt index e3e66b96191..6dd246671c7 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/Web.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/Web.kt @@ -99,40 +99,39 @@ data object Google : WebSearchProvider() { override val service: GoogleService get() = retrofit.create() - override suspend fun getSuggestions(query: String, maxSuggestions: Int): List = - withContext(Dispatchers.IO) { - if (query.isBlank() || maxSuggestions <= 0) { - return@withContext emptyList() - } + override suspend fun getSuggestions(query: String, maxSuggestions: Int): List = withContext(Dispatchers.IO) { + if (query.isBlank() || maxSuggestions <= 0) { + return@withContext emptyList() + } - try { - val response: Response = service.getSuggestions(query = query) - - if (response.isSuccessful) { - val responseBody = response.body()?.string() ?: return@withContext emptyList() - - val jsonPayload = Regex("\\((.*)\\)").find(responseBody)?.groupValues?.get(1) - - // Manual JSON parsing - val jsonArray = JSONArray(jsonPayload) - val suggestionsArray = jsonArray.getJSONArray(1) // Get the suggestions array - val suggestionsList = mutableListOf() - for (i in 0 until suggestionsArray.length().coerceAtMost(maxSuggestions)) { - suggestionsList.add(suggestionsArray.getString(i)) - } - return@withContext suggestionsList - } else { - Log.w( - "GoogleSearchProvider", - "Failed to retrieve suggestions: ${response.code()}", - ) - return@withContext emptyList() + try { + val response: Response = service.getSuggestions(query = query) + + if (response.isSuccessful) { + val responseBody = response.body()?.string() ?: return@withContext emptyList() + + val jsonPayload = Regex("\\((.*)\\)").find(responseBody)?.groupValues?.get(1) + + // Manual JSON parsing + val jsonArray = JSONArray(jsonPayload) + val suggestionsArray = jsonArray.getJSONArray(1) // Get the suggestions array + val suggestionsList = mutableListOf() + for (i in 0 until suggestionsArray.length().coerceAtMost(maxSuggestions)) { + suggestionsList.add(suggestionsArray.getString(i)) } - } catch (e: Exception) { - Log.e("GoogleSearchProvider", "Error during suggestion retrieval: ${e.message}") + return@withContext suggestionsList + } else { + Log.w( + "GoogleSearchProvider", + "Failed to retrieve suggestions: ${response.code()}", + ) return@withContext emptyList() } + } catch (e: Exception) { + Log.e("GoogleSearchProvider", "Error during suggestion retrieval: ${e.message}") + return@withContext emptyList() } + } override fun getSearchUrl(query: String) = "https://google.com/search?q=$query" @@ -151,37 +150,36 @@ data object StartPage : WebSearchProvider() { override val service: StartPageService = retrofit.create() - override suspend fun getSuggestions(query: String, maxSuggestions: Int): List = - withContext(Dispatchers.IO) { - if (query.isBlank() || maxSuggestions <= 0) { - return@withContext emptyList() - } + override suspend fun getSuggestions(query: String, maxSuggestions: Int): List = withContext(Dispatchers.IO) { + if (query.isBlank() || maxSuggestions <= 0) { + return@withContext emptyList() + } - try { - val response: Response = service.getSuggestions( - query = query, - segment = "startpage.lawnchair", - partner = "lawnchair", - format = "opensearch", + try { + val response: Response = service.getSuggestions( + query = query, + segment = "startpage.lawnchair", + partner = "lawnchair", + format = "opensearch", + ) + + if (response.isSuccessful) { + val responseBody = response.body()?.string() + return@withContext JSONArray(responseBody).optJSONArray(1)?.let { array -> + (0 until array.length()).take(maxSuggestions).map { array.getString(it) } + } ?: emptyList() + } else { + Log.w( + "StartPageSearchProvidr", + "Failed to retrieve suggestions: ${response.code()}", ) - - if (response.isSuccessful) { - val responseBody = response.body()?.string() - return@withContext JSONArray(responseBody).optJSONArray(1)?.let { array -> - (0 until array.length()).take(maxSuggestions).map { array.getString(it) } - } ?: emptyList() - } else { - Log.w( - "StartPageSearchProvidr", - "Failed to retrieve suggestions: ${response.code()}", - ) - return@withContext emptyList() - } - } catch (e: Exception) { - Log.e("StartPageSearchProvider", "Error during suggestion retrieval: ${e.message}") return@withContext emptyList() } + } catch (e: Exception) { + Log.e("StartPageSearchProvider", "Error during suggestion retrieval: ${e.message}") + return@withContext emptyList() } + } override fun getSearchUrl(query: String) = "https://www.startpage.com/do/search?segment=startpage.lawnchair&query=$query&cat=web" @@ -200,39 +198,38 @@ data object DuckDuckGo : WebSearchProvider() { override val service: DuckDuckGoService by lazy { retrofit.create() } - override suspend fun getSuggestions(query: String, maxSuggestions: Int): List = - withContext(Dispatchers.IO) { - if (query.isBlank() || maxSuggestions <= 0) { - return@withContext emptyList() - } + override suspend fun getSuggestions(query: String, maxSuggestions: Int): List = withContext(Dispatchers.IO) { + if (query.isBlank() || maxSuggestions <= 0) { + return@withContext emptyList() + } - try { - val response: Response = service.getSuggestions(query = query) - - if (response.isSuccessful) { - val responseBody = response.body()?.string() ?: return@withContext emptyList() - - val jsonArray = JSONArray(responseBody) - val suggestionsArray = - jsonArray.optJSONArray(1) ?: return@withContext emptyList() - - return@withContext ( - 0 until suggestionsArray.length() - .coerceAtMost(maxSuggestions) - ) - .map { suggestionsArray.getString(it) } - } else { - Log.w( - "DuckDuckGoSearchProvider", - "Failed to retrieve suggestions: ${response.code()}", + try { + val response: Response = service.getSuggestions(query = query) + + if (response.isSuccessful) { + val responseBody = response.body()?.string() ?: return@withContext emptyList() + + val jsonArray = JSONArray(responseBody) + val suggestionsArray = + jsonArray.optJSONArray(1) ?: return@withContext emptyList() + + return@withContext ( + 0 until suggestionsArray.length() + .coerceAtMost(maxSuggestions) ) - return@withContext emptyList() - } - } catch (e: Exception) { - Log.e("DuckDuckGoSearchProvider", "Error during suggestion retrieval", e) + .map { suggestionsArray.getString(it) } + } else { + Log.w( + "DuckDuckGoSearchProvider", + "Failed to retrieve suggestions: ${response.code()}", + ) return@withContext emptyList() } + } catch (e: Exception) { + Log.e("DuckDuckGoSearchProvider", "Error during suggestion retrieval", e) + return@withContext emptyList() } + } override fun getSearchUrl(query: String) = "https://duckduckgo.com/$query&cat=web" diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/Expressions.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/Expressions.kt index d4e89ea4f7a..63b27f91791 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/Expressions.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/Expressions.kt @@ -10,8 +10,7 @@ import java.math.BigDecimal import java.math.MathContext import java.math.RoundingMode -class ExpressionException(message: String) : - RuntimeException(message) +class ExpressionException(message: String) : RuntimeException(message) @Suppress("unused") class Expressions { @@ -164,9 +163,7 @@ class Expressions { return this } - fun eval(expression: String): BigDecimal { - return evaluator.eval(parse(expression)) - } + fun eval(expression: String): BigDecimal = evaluator.eval(parse(expression)) /** * eval an expression then round it with {@link Evaluator#mathContext} and call toEngineeringString
@@ -174,24 +171,16 @@ class Expressions { * @param expression String * @return String */ - fun evalToString(expression: String): String { - return try { - evaluator.eval(parse(expression)).round(evaluator.mathContext).stripTrailingZeros() - .toEngineeringString() - } catch (e: Throwable) { - e.cause?.message ?: e.message ?: "unknown error" - } + fun evalToString(expression: String): String = try { + evaluator.eval(parse(expression)).round(evaluator.mathContext).stripTrailingZeros() + .toEngineeringString() + } catch (e: Throwable) { + e.cause?.message ?: e.message ?: "unknown error" } - private fun parse(expression: String): Expr { - return parse(scan(expression)) - } + private fun parse(expression: String): Expr = parse(scan(expression)) - private fun parse(tokens: List): Expr { - return Parser(tokens).parse() - } + private fun parse(tokens: List): Expr = Parser(tokens).parse() - private fun scan(expression: String): List { - return Scanner(expression, evaluator.mathContext).scanTokens() - } + private fun scan(expression: String): List = Scanner(expression, evaluator.mathContext).scanTokens() } diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Evaluator.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Evaluator.kt index 8e9ff478ae6..069a1350090 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Evaluator.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Evaluator.kt @@ -44,9 +44,7 @@ internal class Evaluator : ExprVisitor { return this } - fun eval(expr: Expr): BigDecimal { - return expr.accept(this) - } + fun eval(expr: Expr): BigDecimal = expr.accept(this) override fun visitAssignExpr(expr: AssignExpr): BigDecimal { val value = eval(expr.value) @@ -114,9 +112,7 @@ internal class Evaluator : ExprVisitor { return function.call(expr.arguments.map { eval(it) }) } - override fun visitLiteralExpr(expr: LiteralExpr): BigDecimal { - return expr.value - } + override fun visitLiteralExpr(expr: LiteralExpr): BigDecimal = expr.value override fun visitVariableExpr(expr: VariableExpr): BigDecimal { val name = expr.name.lexeme @@ -125,9 +121,7 @@ internal class Evaluator : ExprVisitor { ?: throw ExpressionException("Undefined variable '$name'") } - override fun visitGroupingExpr(expr: GroupingExpr): BigDecimal { - return eval(expr.expression) - } + override fun visitGroupingExpr(expr: GroupingExpr): BigDecimal = eval(expr.expression) private infix fun Expr.or(right: Expr): BigDecimal { val left = eval(this) @@ -147,13 +141,9 @@ internal class Evaluator : ExprVisitor { return eval(right).isTruthy().toBigDecimal() } - private fun BigDecimal.isTruthy(): Boolean { - return this != BigDecimal.ZERO - } + private fun BigDecimal.isTruthy(): Boolean = this != BigDecimal.ZERO - private fun Boolean.toBigDecimal(): BigDecimal { - return if (this) BigDecimal.ONE else BigDecimal.ZERO - } + private fun Boolean.toBigDecimal(): BigDecimal = if (this) BigDecimal.ONE else BigDecimal.ZERO private infix fun BigDecimal.pow(n: BigDecimal): BigDecimal { var right = n diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Expr.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Expr.kt index f5c58a0fc0e..c6fc5f0de54 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Expr.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Expr.kt @@ -12,9 +12,7 @@ internal class AssignExpr( val value: Expr, ) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitAssignExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitAssignExpr(this) } internal class LogicalExpr( @@ -23,9 +21,7 @@ internal class LogicalExpr( val right: Expr, ) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitLogicalExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitLogicalExpr(this) } internal class BinaryExpr( @@ -34,9 +30,7 @@ internal class BinaryExpr( val right: Expr, ) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitBinaryExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitBinaryExpr(this) } internal class UnaryExpr( @@ -44,9 +38,7 @@ internal class UnaryExpr( val right: Expr, ) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitUnaryExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitUnaryExpr(this) } internal class CallExpr( @@ -54,30 +46,22 @@ internal class CallExpr( val arguments: List, ) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitCallExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitCallExpr(this) } internal class LiteralExpr(val value: BigDecimal) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitLiteralExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitLiteralExpr(this) } internal class VariableExpr(val name: Token) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitVariableExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitVariableExpr(this) } internal class GroupingExpr(val expression: Expr) : Expr() { - override fun accept(visitor: ExprVisitor): R { - return visitor.visitGroupingExpr(this) - } + override fun accept(visitor: ExprVisitor): R = visitor.visitGroupingExpr(this) } internal interface ExprVisitor { diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Parser.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Parser.kt index 412856fb0cf..17353392deb 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Parser.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Parser.kt @@ -39,9 +39,7 @@ internal class Parser(private val tokens: List) { return expr } - private fun expression(): Expr { - return assignment() - } + private fun expression(): Expr = assignment() private fun assignment(): Expr { val expr = or() @@ -237,12 +235,10 @@ internal class Parser(private val tokens: List) { return false } - private fun check(tokenType: TokenType): Boolean { - return if (isAtEnd()) { - false - } else { - peek().type === tokenType - } + private fun check(tokenType: TokenType): Boolean = if (isAtEnd()) { + false + } else { + peek().type === tokenType } private fun consume(type: TokenType, message: String): Token { diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Scanner.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Scanner.kt index b6e4fd15726..f87d5dcccc6 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Scanner.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Scanner.kt @@ -25,9 +25,7 @@ import app.lawnchair.search.algorithms.data.calculator.internal.TokenType.SQUARE import app.lawnchair.search.algorithms.data.calculator.internal.TokenType.STAR import java.math.MathContext -private fun invalidToken(c: Char) { - throw ExpressionException("Invalid token '$c'") -} +private fun invalidToken(c: Char): Unit = throw ExpressionException("Invalid token '$c'") internal class Scanner( private val source: String, @@ -47,9 +45,7 @@ internal class Scanner( return tokens } - private fun isAtEnd(): Boolean { - return current >= source.length - } + private fun isAtEnd(): Boolean = current >= source.length private fun scanToken() { start = current @@ -60,6 +56,7 @@ internal class Scanner( -> { // Ignore whitespace. } + '+' -> addToken(PLUS) '-' -> addToken(MINUS) '*' -> addToken(STAR) @@ -90,14 +87,13 @@ internal class Scanner( char: Char, previousChar: Char = '\u0000', nextChar: Char = '\u0000', - ): Boolean { - return char.isDigit() || when (char) { + ): Boolean = char.isDigit() || + when (char) { '.' -> true 'e', 'E' -> previousChar.isDigit() && (nextChar.isDigit() || nextChar == '+' || nextChar == '-') '+', '-' -> (previousChar == 'e' || previousChar == 'E') && nextChar.isDigit() else -> false } - } private fun number() { while (peek().isDigit()) advance() @@ -122,22 +118,18 @@ internal class Scanner( private fun advance() = source[current++] - private fun peek(): Char { - return if (isAtEnd()) { - '\u0000' - } else { - source[current] - } + private fun peek(): Char = if (isAtEnd()) { + '\u0000' + } else { + source[current] } private fun peekPrevious(): Char = if (current > 0) source[current - 1] else '\u0000' - private fun peekNext(): Char { - return if (current + 1 >= source.length) { - '\u0000' - } else { - source[current + 1] - } + private fun peekNext(): Char = if (current + 1 >= source.length) { + '\u0000' + } else { + source[current + 1] } private fun match(expected: Char): Boolean { diff --git a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Token.kt b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Token.kt index ee03386d2a8..c1780c9e313 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Token.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/data/calculator/internal/Token.kt @@ -6,7 +6,5 @@ internal class Token( val literal: Any?, ) { - override fun toString(): String { - return "$type $lexeme $literal" - } + override fun toString(): String = "$type $lexeme $literal" } diff --git a/lawnchair/src/app/lawnchair/smartspace/BcSmartSpaceUtil.kt b/lawnchair/src/app/lawnchair/smartspace/BcSmartSpaceUtil.kt index c5ef9804418..1c5b47eccd7 100644 --- a/lawnchair/src/app/lawnchair/smartspace/BcSmartSpaceUtil.kt +++ b/lawnchair/src/app/lawnchair/smartspace/BcSmartSpaceUtil.kt @@ -45,12 +45,10 @@ object BcSmartSpaceUtil { } } - fun getOpenCalendarIntent(): Intent { - return Intent(Intent.ACTION_VIEW).setData( - ContentUris.appendId( - CalendarContract.CONTENT_URI.buildUpon().appendPath("time"), - System.currentTimeMillis(), - ).build(), - ).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) - } + fun getOpenCalendarIntent(): Intent = Intent(Intent.ACTION_VIEW).setData( + ContentUris.appendId( + CalendarContract.CONTENT_URI.buildUpon().appendPath("time"), + System.currentTimeMillis(), + ).build(), + ).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED) } diff --git a/lawnchair/src/app/lawnchair/smartspace/CardPagerAdapter.kt b/lawnchair/src/app/lawnchair/smartspace/CardPagerAdapter.kt index 4129f31d4d4..12868feed9b 100644 --- a/lawnchair/src/app/lawnchair/smartspace/CardPagerAdapter.kt +++ b/lawnchair/src/app/lawnchair/smartspace/CardPagerAdapter.kt @@ -76,9 +76,7 @@ class CardPagerAdapter(context: Context) : PagerAdapter() { override fun getCount() = smartspaceTargets.size - override fun isViewFromObject(view: View, obj: Any): Boolean { - return view === (obj as ViewHolder).card - } + override fun isViewFromObject(view: View, obj: Any): Boolean = view === (obj as ViewHolder).card private fun createBaseCard( container: ViewGroup, diff --git a/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt b/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt index 4f0449230d7..988e8d6e153 100644 --- a/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt +++ b/lawnchair/src/app/lawnchair/smartspace/IcuDateTextView.kt @@ -161,13 +161,12 @@ data class DateTimeOptions( val timeFormat: SmartspaceTimeFormat, ) { companion object { - fun fromPrefs(prefs: PreferenceManager2) = - combine( - prefs.smartspaceShowDate.get(), - prefs.smartspaceShowTime.get(), - prefs.smartspaceTimeFormat.get(), - ) { showDate, showTime, timeFormat -> - DateTimeOptions(showDate, showTime, timeFormat) - } + fun fromPrefs(prefs: PreferenceManager2) = combine( + prefs.smartspaceShowDate.get(), + prefs.smartspaceShowTime.get(), + prefs.smartspaceTimeFormat.get(), + ) { showDate, showTime, timeFormat -> + DateTimeOptions(showDate, showTime, timeFormat) + } } } diff --git a/lawnchair/src/app/lawnchair/smartspace/InterceptingViewPager.kt b/lawnchair/src/app/lawnchair/smartspace/InterceptingViewPager.kt index 5c8e488cd5e..4f7acb94b62 100644 --- a/lawnchair/src/app/lawnchair/smartspace/InterceptingViewPager.kt +++ b/lawnchair/src/app/lawnchair/smartspace/InterceptingViewPager.kt @@ -55,14 +55,10 @@ class InterceptingViewPager @JvmOverloads constructor( } } - override fun onInterceptTouchEvent(ev: MotionEvent): Boolean { - return handleTouchOverride(ev, superOnIntercept) - } + override fun onInterceptTouchEvent(ev: MotionEvent): Boolean = handleTouchOverride(ev, superOnIntercept) @SuppressLint("ClickableViewAccessibility") - override fun onTouchEvent(ev: MotionEvent): Boolean { - return handleTouchOverride(ev, superOnTouch) - } + override fun onTouchEvent(ev: MotionEvent): Boolean = handleTouchOverride(ev, superOnTouch) private fun cancelScheduledLongPress() { if (hasPostedLongPress) { diff --git a/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceMode.kt b/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceMode.kt index 08f1286dde7..12c8fcc0e49 100644 --- a/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceMode.kt +++ b/lawnchair/src/app/lawnchair/smartspace/model/SmartspaceMode.kt @@ -47,8 +47,7 @@ object GoogleSearchSmartspace : SmartspaceMode( ) { override fun toString(): String = "google_search" - override fun isAvailable(context: Context): Boolean = - context.packageManager.isPackageInstalledAndEnabled("com.google.android.googlequicksearchbox") + override fun isAvailable(context: Context): Boolean = context.packageManager.isPackageInstalledAndEnabled("com.google.android.googlequicksearchbox") } object GoogleSmartspace : SmartspaceMode( @@ -57,8 +56,7 @@ object GoogleSmartspace : SmartspaceMode( ) { override fun toString(): String = "google" - override fun isAvailable(context: Context): Boolean = - context.packageManager.isPackageInstalledAndEnabled("com.google.android.googlequicksearchbox") + override fun isAvailable(context: Context): Boolean = context.packageManager.isPackageInstalledAndEnabled("com.google.android.googlequicksearchbox") } object Smartspacer : SmartspaceMode( diff --git a/lawnchair/src/app/lawnchair/smartspace/provider/BatteryStatusProvider.kt b/lawnchair/src/app/lawnchair/smartspace/provider/BatteryStatusProvider.kt index fdc8ccba610..71d709b7beb 100644 --- a/lawnchair/src/app/lawnchair/smartspace/provider/BatteryStatusProvider.kt +++ b/lawnchair/src/app/lawnchair/smartspace/provider/BatteryStatusProvider.kt @@ -15,11 +15,12 @@ import com.android.launcher3.R import com.android.launcher3.Utilities import kotlinx.coroutines.flow.map -class BatteryStatusProvider(context: Context) : SmartspaceDataSource( - context, - R.string.smartspace_battery_status, - { smartspaceBatteryStatus }, -) { +class BatteryStatusProvider(context: Context) : + SmartspaceDataSource( + context, + R.string.smartspace_battery_status, + { smartspaceBatteryStatus }, + ) { private val batteryManager = context.getSystemService() override val internalTargets = broadcastReceiverFlow(context, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) diff --git a/lawnchair/src/app/lawnchair/smartspace/provider/NowPlayingProvider.kt b/lawnchair/src/app/lawnchair/smartspace/provider/NowPlayingProvider.kt index bfe5199d1d8..53ba374c921 100644 --- a/lawnchair/src/app/lawnchair/smartspace/provider/NowPlayingProvider.kt +++ b/lawnchair/src/app/lawnchair/smartspace/provider/NowPlayingProvider.kt @@ -17,11 +17,12 @@ import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.flow.first -class NowPlayingProvider(context: Context) : SmartspaceDataSource( - context, - R.string.smartspace_now_playing, - { smartspaceNowPlaying }, -) { +class NowPlayingProvider(context: Context) : + SmartspaceDataSource( + context, + R.string.smartspace_now_playing, + { smartspaceNowPlaying }, + ) { private val defaultIcon = Icon.createWithResource(context, R.drawable.ic_music_note) @@ -60,9 +61,8 @@ class NowPlayingProvider(context: Context) : SmartspaceDataSource( ) } - override suspend fun requiresSetup(): Boolean = - isNotificationServiceEnabled(context = context).not() || - notificationDotsEnabled(context = context).first().not() + override suspend fun requiresSetup(): Boolean = isNotificationServiceEnabled(context = context).not() || + notificationDotsEnabled(context = context).first().not() override suspend fun startSetup(activity: Activity) { val intent = PreferenceActivity.createIntent(activity, Routes.GENERAL) diff --git a/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceDataSource.kt b/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceDataSource.kt index 47e62c6ccf0..08f705192b1 100644 --- a/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceDataSource.kt +++ b/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceDataSource.kt @@ -80,11 +80,9 @@ sealed class SmartspaceDataSource( val targets: List = emptyList(), val requiresSetup: List = emptyList(), ) { - operator fun plus(other: State): State { - return State( - targets = this.targets + other.targets, - requiresSetup = this.requiresSetup + other.requiresSetup, - ) - } + operator fun plus(other: State): State = State( + targets = this.targets + other.targets, + requiresSetup = this.requiresSetup + other.requiresSetup, + ) } } diff --git a/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceWidgetReader.kt b/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceWidgetReader.kt index 3df8e75a262..849f4ce6d0e 100644 --- a/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceWidgetReader.kt +++ b/lawnchair/src/app/lawnchair/smartspace/provider/SmartspaceWidgetReader.kt @@ -26,11 +26,12 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map -class SmartspaceWidgetReader(context: Context) : SmartspaceDataSource( - context, - R.string.smartspace_weather, - { smartspaceAagWidget }, -) { +class SmartspaceWidgetReader(context: Context) : + SmartspaceDataSource( + context, + R.string.smartspace_weather, + { smartspaceAagWidget }, + ) { override val isAvailable: Boolean override val disabledTargets = listOf(dummyTarget) @@ -140,9 +141,7 @@ class SmartspaceWidgetReader(context: Context) : SmartspaceDataSource( ) } - private fun extractBitmap(imageView: ImageView?): Bitmap? { - return (imageView?.drawable as? BitmapDrawable)?.bitmap - } + private fun extractBitmap(imageView: ImageView?): Bitmap? = (imageView?.drawable as? BitmapDrawable)?.bitmap data class WeatherData( val icon: Bitmap, @@ -152,9 +151,7 @@ class SmartspaceWidgetReader(context: Context) : SmartspaceDataSource( val pendingIntent: PendingIntent? = null, ) { - fun getTitle(unit: Temperature.Unit = temperature.unit): String { - return "${temperature.inUnit(unit)}${unit.suffix}" - } + fun getTitle(unit: Temperature.Unit = temperature.unit): String = "${temperature.inUnit(unit)}${unit.suffix}" } companion object { @@ -168,31 +165,29 @@ class SmartspaceWidgetReader(context: Context) : SmartspaceDataSource( featureType = SmartspaceTarget.FeatureType.FEATURE_WEATHER, ) - fun parseWeatherData(weatherIcon: Bitmap?, temperature: String?, intent: PendingIntent? = null): WeatherData? { - return if (weatherIcon != null && temperature != null) { - try { - val value = temperature.substring(0, temperature.indexOfFirst { (it < '0' || it > '9') && it != '-' }).toInt() - WeatherData( - weatherIcon, - Temperature( - value, - when { - temperature.contains("C") -> Temperature.Unit.Celsius - temperature.contains("F") -> Temperature.Unit.Fahrenheit - temperature.contains("K") -> Temperature.Unit.Kelvin - else -> throw IllegalArgumentException("only supports C, F and K") - }, - ), - pendingIntent = intent, - ) - } catch (_: NumberFormatException) { - null - } catch (_: IllegalArgumentException) { - null - } - } else { + fun parseWeatherData(weatherIcon: Bitmap?, temperature: String?, intent: PendingIntent? = null): WeatherData? = if (weatherIcon != null && temperature != null) { + try { + val value = temperature.substring(0, temperature.indexOfFirst { (it < '0' || it > '9') && it != '-' }).toInt() + WeatherData( + weatherIcon, + Temperature( + value, + when { + temperature.contains("C") -> Temperature.Unit.Celsius + temperature.contains("F") -> Temperature.Unit.Fahrenheit + temperature.contains("K") -> Temperature.Unit.Kelvin + else -> throw IllegalArgumentException("only supports C, F and K") + }, + ), + pendingIntent = intent, + ) + } catch (_: NumberFormatException) { + null + } catch (_: IllegalArgumentException) { null } + } else { + null } } } diff --git a/lawnchair/src/app/lawnchair/theme/ThemeProvider.kt b/lawnchair/src/app/lawnchair/theme/ThemeProvider.kt index c6f539fd2d5..165ddaada1c 100644 --- a/lawnchair/src/app/lawnchair/theme/ThemeProvider.kt +++ b/lawnchair/src/app/lawnchair/theme/ThemeProvider.kt @@ -136,10 +136,8 @@ class ThemeProvider(private val context: Context) : SafeCloseable { } } -fun Color.toAndroidColor(): Int { - return when (this) { - is AndroidColor -> color - is Srgb -> ColorUtils.setAlphaComponent(toRgb8(), 255) - else -> convert().toAndroidColor() - } +fun Color.toAndroidColor(): Int = when (this) { + is AndroidColor -> color + is Srgb -> ColorUtils.setAlphaComponent(toRgb8(), 255) + else -> convert().toAndroidColor() } diff --git a/lawnchair/src/app/lawnchair/theme/color/tokens/ColorStateListToken.kt b/lawnchair/src/app/lawnchair/theme/color/tokens/ColorStateListToken.kt index a33aef09ac8..1c04dea3b03 100644 --- a/lawnchair/src/app/lawnchair/theme/color/tokens/ColorStateListToken.kt +++ b/lawnchair/src/app/lawnchair/theme/color/tokens/ColorStateListToken.kt @@ -12,9 +12,7 @@ data class NewColorStateList( private val factory: (context: Context, scheme: ColorScheme, uiColorMode: UiColorMode) -> ColorStateList, ) : ColorStateListToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): ColorStateList { - return factory(context, scheme, uiColorMode) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): ColorStateList = factory(context, scheme, uiColorMode) } class DayNightColorStateList( @@ -22,11 +20,9 @@ class DayNightColorStateList( private val darkToken: ColorStateListToken, ) : ColorStateListToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): ColorStateList { - return if (uiColorMode.isDarkTheme) { - darkToken.resolve(context, scheme, uiColorMode) - } else { - lightToken.resolve(context, scheme, uiColorMode) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): ColorStateList = if (uiColorMode.isDarkTheme) { + darkToken.resolve(context, scheme, uiColorMode) + } else { + lightToken.resolve(context, scheme, uiColorMode) } } diff --git a/lawnchair/src/app/lawnchair/theme/color/tokens/ColorToken.kt b/lawnchair/src/app/lawnchair/theme/color/tokens/ColorToken.kt index 6610b9f265d..0f04bda24de 100644 --- a/lawnchair/src/app/lawnchair/theme/color/tokens/ColorToken.kt +++ b/lawnchair/src/app/lawnchair/theme/color/tokens/ColorToken.kt @@ -20,13 +20,11 @@ sealed interface ColorToken : ResourceToken { val themeProvider = ThemeProvider.INSTANCE.get(context) return resolveColor(context, themeProvider.colorScheme, uiColorMode) } - fun resolveColor(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Int { - return try { - resolve(context, scheme, uiColorMode).toAndroidColor() - } catch (t: Throwable) { - Log.e("ColorToken", "failed to resolve color", t) - android.graphics.Color.WHITE - } + fun resolveColor(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Int = try { + resolve(context, scheme, uiColorMode).toAndroidColor() + } catch (t: Throwable) { + Log.e("ColorToken", "failed to resolve color", t) + android.graphics.Color.WHITE } } @@ -52,17 +50,13 @@ data class DayNightColorToken( private val darkToken: ColorToken, ) : ColorToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color { - return if (uiColorMode.isDarkTheme) { - darkToken.resolve(context, scheme, uiColorMode) - } else { - lightToken.resolve(context, scheme, uiColorMode) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color = if (uiColorMode.isDarkTheme) { + darkToken.resolve(context, scheme, uiColorMode) + } else { + lightToken.resolve(context, scheme, uiColorMode) } - fun inverse(): DayNightColorToken { - return DayNightColorToken(darkToken, lightToken) - } + fun inverse(): DayNightColorToken = DayNightColorToken(darkToken, lightToken) } data class DarkTextColorToken( @@ -70,12 +64,10 @@ data class DarkTextColorToken( private val darkToken: ColorToken, ) : ColorToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color { - return if (uiColorMode.isDarkText) { - darkToken.resolve(context, scheme, uiColorMode) - } else { - lightToken.resolve(context, scheme, uiColorMode) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color = if (uiColorMode.isDarkText) { + darkToken.resolve(context, scheme, uiColorMode) + } else { + lightToken.resolve(context, scheme, uiColorMode) } } @@ -83,9 +75,7 @@ data class StaticColorToken( private val color: Long, ) : ColorToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color { - return AndroidColor(color.toInt()) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color = AndroidColor(color.toInt()) } data class SetAlphaColorToken( @@ -116,9 +106,7 @@ class WithContextColorToken( private val transform: ColorToken.(Context) -> ColorToken, ) : ColorToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color { - return transform(token, context).resolve(context, scheme, uiColorMode) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): Color = transform(token, context).resolve(context, scheme, uiColorMode) } enum class Swatch { Neutral1, Neutral2, Accent1, Accent2, Accent3 } diff --git a/lawnchair/src/app/lawnchair/theme/drawable/DrawableToken.kt b/lawnchair/src/app/lawnchair/theme/drawable/DrawableToken.kt index 12ee52800c8..e9c8bb7606e 100644 --- a/lawnchair/src/app/lawnchair/theme/drawable/DrawableToken.kt +++ b/lawnchair/src/app/lawnchair/theme/drawable/DrawableToken.kt @@ -19,9 +19,7 @@ interface DrawableToken : ResourceToken data class ResourceDrawableToken(@DrawableRes private val resId: Int) : DrawableToken { @Suppress("UNCHECKED_CAST") - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): T { - return AppCompatResources.getDrawable(context, resId) as T - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): T = AppCompatResources.getDrawable(context, resId) as T } data class AttributeDrawableToken(@AttrRes private val attr: Int) : DrawableToken { @@ -48,9 +46,7 @@ data class NewDrawable( private val factory: (context: Context, scheme: ColorScheme, uiColorMode: UiColorMode) -> T, ) : DrawableToken { - override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): T { - return factory(context, scheme, uiColorMode) - } + override fun resolve(context: Context, scheme: ColorScheme, uiColorMode: UiColorMode): T = factory(context, scheme, uiColorMode) } fun DrawableToken.mutate( diff --git a/lawnchair/src/app/lawnchair/ui/AndroidText.kt b/lawnchair/src/app/lawnchair/ui/AndroidText.kt index 736655275f0..7d40739f722 100644 --- a/lawnchair/src/app/lawnchair/ui/AndroidText.kt +++ b/lawnchair/src/app/lawnchair/ui/AndroidText.kt @@ -54,9 +54,7 @@ fun AndroidText( } @Composable -fun toIntColor(color: Color): Int { - return remember(color) { - val (r, g, b, a) = color.convert(ColorSpaces.Srgb) - android.graphics.Color.argb((a * 255).toInt(), (r * 255).toInt(), (g * 255).toInt(), (b * 255).toInt()) - } +fun toIntColor(color: Color): Int = remember(color) { + val (r, g, b, a) = color.convert(ColorSpaces.Srgb) + android.graphics.Color.argb((a * 255).toInt(), (r * 255).toInt(), (g * 255).toInt(), (b * 255).toInt()) } diff --git a/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt b/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt index 44bfca94896..41c23f90967 100644 --- a/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt +++ b/lawnchair/src/app/lawnchair/ui/StretchRecyclerViewContainer.kt @@ -38,12 +38,10 @@ open class StretchRecyclerViewContainer @JvmOverloads constructor( override fun createEdgeEffectFactory(): RecyclerView.EdgeEffectFactory { if (Utilities.ATLEAST_S) return super.createEdgeEffectFactory() return object : RecyclerView.EdgeEffectFactory() { - override fun createEdgeEffect(view: RecyclerView, direction: Int): EdgeEffect { - return when (direction) { - DIRECTION_TOP -> edgeEffectTop - DIRECTION_BOTTOM -> childEffect - else -> super.createEdgeEffect(view, direction) - } + override fun createEdgeEffect(view: RecyclerView, direction: Int): EdgeEffect = when (direction) { + DIRECTION_TOP -> edgeEffectTop + DIRECTION_BOTTOM -> childEffect + else -> super.createEdgeEffect(view, direction) } } } diff --git a/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt b/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt index 933815d1d99..e3c3ef33df1 100644 --- a/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt +++ b/lawnchair/src/app/lawnchair/ui/StretchRelativeLayout.kt @@ -51,12 +51,10 @@ sealed class StretchRelativeLayout @JvmOverloads constructor( override fun createEdgeEffectFactory(): RecyclerView.EdgeEffectFactory { if (Utilities.ATLEAST_S) return super.createEdgeEffectFactory() return object : RecyclerView.EdgeEffectFactory() { - override fun createEdgeEffect(view: RecyclerView, direction: Int): EdgeEffect { - return when (direction) { - DIRECTION_TOP -> edgeEffectTop - DIRECTION_BOTTOM -> edgeEffectBottom - else -> super.createEdgeEffect(view, direction) - } + override fun createEdgeEffect(view: RecyclerView, direction: Int): EdgeEffect = when (direction) { + DIRECTION_TOP -> edgeEffectTop + DIRECTION_BOTTOM -> edgeEffectBottom + else -> super.createEdgeEffect(view, direction) } } } diff --git a/lawnchair/src/app/lawnchair/ui/popup/LauncherOptionsPopup.kt b/lawnchair/src/app/lawnchair/ui/popup/LauncherOptionsPopup.kt index 354bff584b6..3a70297ab7c 100644 --- a/lawnchair/src/app/lawnchair/ui/popup/LauncherOptionsPopup.kt +++ b/lawnchair/src/app/lawnchair/ui/popup/LauncherOptionsPopup.kt @@ -111,34 +111,32 @@ object LauncherOptionsPopup { return options } - fun getMetadataForOption(identifier: String): LauncherOptionMetadata { - return when (identifier) { - "lock" -> LauncherOptionMetadata( - label = R.string.home_screen_lock, - icon = R.drawable.ic_lock, - ) - "sys_settings" -> LauncherOptionMetadata( - label = R.string.system_settings, - icon = R.drawable.ic_setting, - ) - "edit_mode" -> LauncherOptionMetadata( - label = R.string.edit_home_screen, - icon = R.drawable.enter_home_gardening_icon, - ) - "wallpaper" -> LauncherOptionMetadata( - label = R.string.styles_wallpaper_button_text, - icon = R.drawable.ic_palette, - ) - "widgets" -> LauncherOptionMetadata( - label = R.string.widget_button_text, - icon = R.drawable.ic_widget, - ) - "home_settings" -> LauncherOptionMetadata( - label = R.string.settings_button_text, - icon = R.drawable.ic_home_screen, - ) - else -> throw IllegalArgumentException("invalid popup option") - } + fun getMetadataForOption(identifier: String): LauncherOptionMetadata = when (identifier) { + "lock" -> LauncherOptionMetadata( + label = R.string.home_screen_lock, + icon = R.drawable.ic_lock, + ) + "sys_settings" -> LauncherOptionMetadata( + label = R.string.system_settings, + icon = R.drawable.ic_setting, + ) + "edit_mode" -> LauncherOptionMetadata( + label = R.string.edit_home_screen, + icon = R.drawable.enter_home_gardening_icon, + ) + "wallpaper" -> LauncherOptionMetadata( + label = R.string.styles_wallpaper_button_text, + icon = R.drawable.ic_palette, + ) + "widgets" -> LauncherOptionMetadata( + label = R.string.widget_button_text, + icon = R.drawable.ic_widget, + ) + "home_settings" -> LauncherOptionMetadata( + label = R.string.settings_button_text, + icon = R.drawable.ic_home_screen, + ) + else -> throw IllegalArgumentException("invalid popup option") } } @@ -152,19 +150,15 @@ data class LauncherOptionMetadata( @DrawableRes val icon: Int, ) -fun String.toLauncherOptions(): List { - return this.split("|").map { item -> - val (identifier, isEnabled) = when { - item.startsWith("+") -> item.drop(1) to true - item.startsWith("-") -> item.drop(1) to false - else -> item to true // Default to enabled if no prefix - } - LauncherOptionPopupItem(identifier, isEnabled) +fun String.toLauncherOptions(): List = this.split("|").map { item -> + val (identifier, isEnabled) = when { + item.startsWith("+") -> item.drop(1) to true + item.startsWith("-") -> item.drop(1) to false + else -> item to true // Default to enabled if no prefix } + LauncherOptionPopupItem(identifier, isEnabled) } -fun List.toOptionOrderString(): String { - return this.joinToString("|") { - if (it.isEnabled) "+${it.identifier}" else "-${it.identifier}" - } +fun List.toOptionOrderString(): String = this.joinToString("|") { + if (it.isEnabled) "+${it.identifier}" else "-${it.identifier}" } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/PreferenceViewModel.kt b/lawnchair/src/app/lawnchair/ui/preferences/PreferenceViewModel.kt index b448f8be468..18016585094 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/PreferenceViewModel.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/PreferenceViewModel.kt @@ -42,7 +42,9 @@ private val iconPackIntents = listOf( Intent("android.intent.action.MAIN").addCategory("com.anddoes.launcher.THEME"), ) -class PreferenceViewModel(private val app: Application) : AndroidViewModel(app), PreferenceInteractor { +class PreferenceViewModel(private val app: Application) : + AndroidViewModel(app), + PreferenceInteractor { private val themedIconPackIntents = listOf(Intent(app.getString(R.string.icon_packs_intent_name))) override val iconPacks = flow { diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/AnnouncementPreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/AnnouncementPreference.kt index e9c48bc2083..02d690d51e9 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/AnnouncementPreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/AnnouncementPreference.kt @@ -178,11 +178,9 @@ private fun AnnouncementItemContent( } } -private fun calculateAlpha(progress: Float): Float { - return when { - progress < 0.5f -> 1f // Fully opaque until halfway - else -> 1f - (progress - 0.5f) * 2 // Fade out linearly from halfway to the end - } +private fun calculateAlpha(progress: Float): Float = when { + progress < 0.5f -> 1f // Fully opaque until halfway + else -> 1f - (progress - 0.5f) * 2 // Fade out linearly from halfway to the end } @Composable diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/LauncherPreview.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/LauncherPreview.kt index 58294f0d743..3a0369a71ee 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/LauncherPreview.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/LauncherPreview.kt @@ -90,29 +90,25 @@ fun createPreviewView(idp: InvariantDeviceProfile = invariantDeviceProfile()): V return remember(idp) { previewManager.createPreviewView(idp) } } -fun Modifier.clipToPercentage(percentage: Float): Modifier { - return this.then( - Modifier.layout { measurable, constraints -> - val placeable = measurable.measure(constraints) - val height = (placeable.height * percentage).toInt() - layout(placeable.width, height) { - placeable.place(0, 0) - } - }, - ) -} +fun Modifier.clipToPercentage(percentage: Float): Modifier = this.then( + Modifier.layout { measurable, constraints -> + val placeable = measurable.measure(constraints) + val height = (placeable.height * percentage).toInt() + layout(placeable.width, height) { + placeable.place(0, 0) + } + }, +) -fun Modifier.clipToVisiblePercentage(percentage: Float): Modifier { - return this.then( - Modifier.layout { measurable, constraints -> - val placeable = measurable.measure(constraints) - val totalHeight = placeable.height - val visibleHeight = (totalHeight * percentage).toInt() - val offsetY = totalHeight - visibleHeight +fun Modifier.clipToVisiblePercentage(percentage: Float): Modifier = this.then( + Modifier.layout { measurable, constraints -> + val placeable = measurable.measure(constraints) + val totalHeight = placeable.height + val visibleHeight = (totalHeight * percentage).toInt() + val offsetY = totalHeight - visibleHeight - layout(placeable.width, visibleHeight) { - placeable.place(0, -offsetY) - } - }, - ) -} + layout(placeable.width, visibleHeight) { + placeable.place(0, -offsetY) + } + }, +) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorConverter.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorConverter.kt index 43ec301993d..6b02b4d5321 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorConverter.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/colorpreference/ColorConverter.kt @@ -4,14 +4,11 @@ import android.graphics.Color.HSVToColor import android.graphics.Color.colorToHSV import android.graphics.Color.parseColor -fun intColorToHsvColorArray(color: Int): FloatArray = - FloatArray(size = 3).apply { colorToHSV(color, this) } +fun intColorToHsvColorArray(color: Int): FloatArray = FloatArray(size = 3).apply { colorToHSV(color, this) } -fun hsvValuesToIntColor(hue: Float, saturation: Float, brightness: Float): Int = - HSVToColor(floatArrayOf(hue, saturation, brightness)) +fun hsvValuesToIntColor(hue: Float, saturation: Float, brightness: Float): Int = HSVToColor(floatArrayOf(hue, saturation, brightness)) -fun intColorToColorString(color: Int): String = - String.format("#%06X", 0xFFFFFF and color).removePrefix("#") +fun intColorToColorString(color: Int): String = String.format("#%06X", 0xFFFFFF and color).removePrefix("#") fun colorStringToIntColor(colorString: String): Int? = try { parseColor("#${colorString.removePrefix("#")}") diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/layout/DividerColumn.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/layout/DividerColumn.kt index d6b915a9756..f437435e56f 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/layout/DividerColumn.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/layout/DividerColumn.kt @@ -78,15 +78,13 @@ private fun Modifier.drawDividers( thickness: Float, startIndentPx: Float, endIndentPx: Float, -): Modifier { - return drawBehind { - state.dividerPositions.forEach { yPos -> - drawRect( - color = color, - topLeft = Offset(startIndentPx, yPos.toFloat()), - size = Size(size.width - startIndentPx - endIndentPx, thickness), - ) - } +): Modifier = drawBehind { + state.dividerPositions.forEach { yPos -> + drawRect( + color = color, + topLeft = Offset(startIndentPx, yPos.toFloat()), + size = Size(size.width - startIndentPx - endIndentPx, thickness), + ) } } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/layout/NestedScrollStretch.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/layout/NestedScrollStretch.kt index 30762dff70b..09c5fd933dd 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/layout/NestedScrollStretch.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/layout/NestedScrollStretch.kt @@ -82,8 +82,7 @@ private inline fun StretchEdgeEffect.draw( } } -private class NestedScrollStretchConnection(context: Context, invalidate: Runnable) : - NestedScrollConnection { +private class NestedScrollStretchConnection(context: Context, invalidate: Runnable) : NestedScrollConnection { var height = 0 diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/FontSelectionPreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/FontSelectionPreference.kt index 70dfc48bf42..87d7eccdb34 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/FontSelectionPreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/FontSelectionPreference.kt @@ -269,9 +269,7 @@ private val VariantButtonContentPadding = PaddingValues( private fun removeFamilyPrefix( familyName: CharSequence, fontName: CharSequence, -): String { - return fontName.removePrefix(familyName).trim().toString() -} +): String = fontName.removePrefix(familyName).trim().toString() @Composable private fun VariantDropdown( diff --git a/lawnchair/src/app/lawnchair/ui/preferences/views/CustomFontTextView.kt b/lawnchair/src/app/lawnchair/ui/preferences/views/CustomFontTextView.kt index 2b1ca1e45b7..c8ef4db6d8c 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/views/CustomFontTextView.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/views/CustomFontTextView.kt @@ -10,7 +10,9 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.launch -class CustomFontTextView(context: Context) : AppCompatTextView(context), ViewPool.Recyclable { +class CustomFontTextView(context: Context) : + AppCompatTextView(context), + ViewPool.Recyclable { private var job: Job? = null diff --git a/lawnchair/src/app/lawnchair/ui/theme/Color.kt b/lawnchair/src/app/lawnchair/ui/theme/Color.kt index ca4e829b781..2baa585c895 100644 --- a/lawnchair/src/app/lawnchair/ui/theme/Color.kt +++ b/lawnchair/src/app/lawnchair/ui/theme/Color.kt @@ -15,9 +15,7 @@ import com.android.launcher3.Utilities import com.android.launcher3.util.Themes @JvmOverloads -fun Context.getAccentColor(darkTheme: Boolean = Themes.getAttrBoolean(this, R.attr.isMainColorDark)): Int { - return ColorTokens.ColorAccent.resolveColor(this, if (darkTheme) UiColorMode.Dark else UiColorMode.Light) -} +fun Context.getAccentColor(darkTheme: Boolean = Themes.getAttrBoolean(this, R.attr.isMainColorDark)): Int = ColorTokens.ColorAccent.resolveColor(this, if (darkTheme) UiColorMode.Dark else UiColorMode.Light) @ColorInt fun lightenColor(@ColorInt color: Int): Int { diff --git a/lawnchair/src/app/lawnchair/ui/util/ModifierIf.kt b/lawnchair/src/app/lawnchair/ui/util/ModifierIf.kt index 740fe4e852a..255dbdc85db 100644 --- a/lawnchair/src/app/lawnchair/ui/util/ModifierIf.kt +++ b/lawnchair/src/app/lawnchair/ui/util/ModifierIf.kt @@ -2,8 +2,6 @@ package app.lawnchair.ui.util import androidx.compose.ui.Modifier -inline fun Modifier.addIf(condition: Boolean, crossinline factory: Modifier.() -> Modifier): Modifier = - if (condition) factory() else this +inline fun Modifier.addIf(condition: Boolean, crossinline factory: Modifier.() -> Modifier): Modifier = if (condition) factory() else this -inline fun Modifier.addIfNotNull(value: T?, crossinline factory: Modifier.(T) -> Modifier): Modifier = - if (value != null) factory(value) else this +inline fun Modifier.addIfNotNull(value: T?, crossinline factory: Modifier.(T) -> Modifier): Modifier = if (value != null) factory(value) else this diff --git a/lawnchair/src/app/lawnchair/ui/util/PaddingValues.kt b/lawnchair/src/app/lawnchair/ui/util/PaddingValues.kt index 10df0a8a30f..bea0baedf6d 100644 --- a/lawnchair/src/app/lawnchair/ui/util/PaddingValues.kt +++ b/lawnchair/src/app/lawnchair/ui/util/PaddingValues.kt @@ -27,15 +27,11 @@ fun rememberExtendPadding( } private class CombinePaddingValues(private val a: PaddingValues, private val b: PaddingValues) : PaddingValues { - override fun calculateLeftPadding(layoutDirection: LayoutDirection) = - a.calculateLeftPadding(layoutDirection) + b.calculateLeftPadding(layoutDirection) + override fun calculateLeftPadding(layoutDirection: LayoutDirection) = a.calculateLeftPadding(layoutDirection) + b.calculateLeftPadding(layoutDirection) - override fun calculateTopPadding() = - a.calculateTopPadding() + b.calculateTopPadding() + override fun calculateTopPadding() = a.calculateTopPadding() + b.calculateTopPadding() - override fun calculateRightPadding(layoutDirection: LayoutDirection) = - a.calculateRightPadding(layoutDirection) + b.calculateRightPadding(layoutDirection) + override fun calculateRightPadding(layoutDirection: LayoutDirection) = a.calculateRightPadding(layoutDirection) + b.calculateRightPadding(layoutDirection) - override fun calculateBottomPadding() = - a.calculateBottomPadding() + b.calculateBottomPadding() + override fun calculateBottomPadding() = a.calculateBottomPadding() + b.calculateBottomPadding() } diff --git a/lawnchair/src/app/lawnchair/ui/util/ViewPool.kt b/lawnchair/src/app/lawnchair/ui/util/ViewPool.kt index 0d05833cd4e..4f2e485d5d1 100644 --- a/lawnchair/src/app/lawnchair/ui/util/ViewPool.kt +++ b/lawnchair/src/app/lawnchair/ui/util/ViewPool.kt @@ -13,9 +13,7 @@ class ViewPool( private val factory: (Context) -> T, ) : RecyclerView.RecycledViewPool() where T : View, T : ViewPool.Recyclable { - private fun getOrCreateHolder(): RecyclerView.ViewHolder { - return getRecycledView(RecyclerView.INVALID_TYPE) ?: ViewHolder(factory(context)) - } + private fun getOrCreateHolder(): RecyclerView.ViewHolder = getRecycledView(RecyclerView.INVALID_TYPE) ?: ViewHolder(factory(context)) @Composable fun rememberView(): T { @@ -24,7 +22,9 @@ class ViewPool( return observer.itemView as T } - private inner class ViewHolder(private val view: T) : RecyclerView.ViewHolder(view), RememberObserver { + private inner class ViewHolder(private val view: T) : + RecyclerView.ViewHolder(view), + RememberObserver { override fun onRemembered() { } diff --git a/lawnchair/src/app/lawnchair/util/Core.kt b/lawnchair/src/app/lawnchair/util/Core.kt index b5cc33428f5..21abf8ccae7 100644 --- a/lawnchair/src/app/lawnchair/util/Core.kt +++ b/lawnchair/src/app/lawnchair/util/Core.kt @@ -6,5 +6,4 @@ 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) +inline fun unsafeLazy(noinline initializer: () -> T): Lazy = lazy(LazyThreadSafetyMode.NONE, initializer) diff --git a/lawnchair/src/app/lawnchair/util/FileExtensions.kt b/lawnchair/src/app/lawnchair/util/FileExtensions.kt index c14227a69b2..d5154953aba 100644 --- a/lawnchair/src/app/lawnchair/util/FileExtensions.kt +++ b/lawnchair/src/app/lawnchair/util/FileExtensions.kt @@ -12,32 +12,25 @@ internal fun Path.list( fileSystem: FileSystem = FileSystem.SYSTEM, isShowHidden: Boolean = false, isRecursively: Boolean = false, -): Sequence { - return runCatching { - if (isRecursively) { - fileSystem.listRecursively(this) - } else { - fileSystem.list(this).asSequence() - } - }.getOrDefault(emptySequence()).filter { - if (isShowHidden) true else !it.isHidden +): Sequence = runCatching { + if (isRecursively) { + fileSystem.listRecursively(this) + } else { + fileSystem.list(this).asSequence() } +}.getOrDefault(emptySequence()).filter { + if (isShowHidden) true else !it.isHidden } -internal fun Path.getMetadata(fileSystem: FileSystem = FileSystem.SYSTEM): FileMetadata? = - fileSystem.metadataOrNull(this) +internal fun Path.getMetadata(fileSystem: FileSystem = FileSystem.SYSTEM): FileMetadata? = fileSystem.metadataOrNull(this) -internal fun Path.isDirectory(fileSystem: FileSystem = FileSystem.SYSTEM): Boolean = - getMetadata(fileSystem)?.isDirectory == true +internal fun Path.isDirectory(fileSystem: FileSystem = FileSystem.SYSTEM): Boolean = getMetadata(fileSystem)?.isDirectory == true -internal fun Path.isFile(fileSystem: FileSystem = FileSystem.SYSTEM): Boolean = - !isDirectory(fileSystem) +internal fun Path.isFile(fileSystem: FileSystem = FileSystem.SYSTEM): Boolean = !isDirectory(fileSystem) -internal fun Path.sizeOrEmpty(fileSystem: FileSystem = FileSystem.SYSTEM): Long = - getMetadata(fileSystem)?.size ?: 0 +internal fun Path.sizeOrEmpty(fileSystem: FileSystem = FileSystem.SYSTEM): Long = getMetadata(fileSystem)?.size ?: 0 -internal fun Path.isRegularFile(fileSystem: FileSystem = FileSystem.SYSTEM): Boolean = - getMetadata(fileSystem)?.isRegularFile == true +internal fun Path.isRegularFile(fileSystem: FileSystem = FileSystem.SYSTEM): Boolean = getMetadata(fileSystem)?.isRegularFile == true internal val Path.isHidden: Boolean get() = toString().contains("/.") diff --git a/lawnchair/src/app/lawnchair/util/FileUilts.kt b/lawnchair/src/app/lawnchair/util/FileUilts.kt index 1aeceb63767..a1820d8cc84 100644 --- a/lawnchair/src/app/lawnchair/util/FileUilts.kt +++ b/lawnchair/src/app/lawnchair/util/FileUilts.kt @@ -19,19 +19,17 @@ fun File.subscribeFiles() = callbackFlow> { awaitClose { observer.stopWatching() } } -fun createFileObserver(file: File, events: Int, onEvent: (event: Int, path: String?) -> Unit): FileObserver { - return if (Utilities.ATLEAST_Q) { - object : FileObserver(file, events) { - override fun onEvent(event: Int, path: String?) { - onEvent(event, path) - } +fun createFileObserver(file: File, events: Int, onEvent: (event: Int, path: String?) -> Unit): FileObserver = if (Utilities.ATLEAST_Q) { + object : FileObserver(file, events) { + override fun onEvent(event: Int, path: String?) { + onEvent(event, path) } - } else { - @Suppress("DEPRECATION") - object : FileObserver(file.path, events) { - override fun onEvent(event: Int, path: String?) { - onEvent(event, path) - } + } +} else { + @Suppress("DEPRECATION") + object : FileObserver(file.path, events) { + override fun onEvent(event: Int, path: String?) { + onEvent(event, path) } } } diff --git a/lawnchair/src/app/lawnchair/util/FlagUtils.kt b/lawnchair/src/app/lawnchair/util/FlagUtils.kt index 7c3a3a9b171..e0eca3e1ec0 100644 --- a/lawnchair/src/app/lawnchair/util/FlagUtils.kt +++ b/lawnchair/src/app/lawnchair/util/FlagUtils.kt @@ -1,25 +1,15 @@ package app.lawnchair.util -fun Int.hasFlag(flag: Int): Boolean { - return (this and flag) == flag -} +fun Int.hasFlag(flag: Int): Boolean = (this and flag) == flag -fun Int.addFlag(flag: Int): Int { - return this or flag -} +fun Int.addFlag(flag: Int): Int = this or flag -fun Int.removeFlag(flag: Int): Int { - return this and flag.inv() -} +fun Int.removeFlag(flag: Int): Int = this and flag.inv() -fun Int.toggleFlag(flag: Int): Int { - return if (hasFlag(flag)) removeFlag(flag) else addFlag(flag) -} +fun Int.toggleFlag(flag: Int): Int = if (hasFlag(flag)) removeFlag(flag) else addFlag(flag) -fun Int.setFlag(flag: Int, value: Boolean): Int { - return if (value) { - addFlag(flag) - } else { - removeFlag(flag) - } +fun Int.setFlag(flag: Int, value: Boolean): Int = if (value) { + addFlag(flag) +} else { + removeFlag(flag) } diff --git a/lawnchair/src/app/lawnchair/util/LawnchairLockedStateController.kt b/lawnchair/src/app/lawnchair/util/LawnchairLockedStateController.kt index 27c209bb787..c555fa352b2 100644 --- a/lawnchair/src/app/lawnchair/util/LawnchairLockedStateController.kt +++ b/lawnchair/src/app/lawnchair/util/LawnchairLockedStateController.kt @@ -53,7 +53,8 @@ object LawnchairLockedStateController { sharedPreferences.getStringSet(TASK_LOCK_LIST_KEY_WITH_USERID, emptySet()) ?: HashSet() lockedPackageNameListWithUserId = ArrayList() - if (lockedListWithUserId.isEmpty() && getLockedListFromProvider( + if (lockedListWithUserId.isEmpty() && + getLockedListFromProvider( ActivityManagerWrapper.getInstance().currentUserId, ) ) { @@ -123,9 +124,7 @@ object LawnchairLockedStateController { } } - fun getTaskLockState(taskIdentifier: String, userId: Int): Boolean { - return lockedListWithUserId.contains(appendUserWithBrace(taskIdentifier, userId.toString())) - } + fun getTaskLockState(taskIdentifier: String, userId: Int): Boolean = lockedListWithUserId.contains(appendUserWithBrace(taskIdentifier, userId.toString())) // TODO Implement this, when the app is uninstalled fun removeTaskLockState(taskIdentifier: String, userId: Int) { @@ -146,21 +145,13 @@ object LawnchairLockedStateController { } } - fun isTaskLocked(taskIdentifier: String): Boolean { - return lockedPackageNameListWithUserId.contains(taskIdentifier) - } + fun isTaskLocked(taskIdentifier: String): Boolean = lockedPackageNameListWithUserId.contains(taskIdentifier) - private fun appendUserWithoutBrace(input: String, userId: String): String { - return input.replace("{", "") + "#$userId" - } + private fun appendUserWithoutBrace(input: String, userId: String): String = input.replace("{", "") + "#$userId" - private fun appendUserWithBrace(input: String, userId: String): String { - return input.replace("}", "") + "#$userId}" - } + private fun appendUserWithBrace(input: String, userId: String): String = input.replace("}", "") + "#$userId}" - private fun removeUserWithBrace(input: String): String { - return input.substring(0, input.lastIndexOf("#")) + "}" - } + private fun removeUserWithBrace(input: String): String = input.substring(0, input.lastIndexOf("#")) + "}" private fun writeToProvider() { val sb = StringBuilder() diff --git a/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt b/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt index 02e803b622d..f2a159d1ccd 100644 --- a/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt +++ b/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt @@ -110,12 +110,10 @@ fun killLauncher() { exitProcess(0) } -fun getPrefsIfUnlocked(context: Context): PreferenceManager? { - return if (UserManagerCompat.isUserUnlocked(context)) { - PreferenceManager.getInstance(context) - } else { - null - } +fun getPrefsIfUnlocked(context: Context): PreferenceManager? = if (UserManagerCompat.isUserUnlocked(context)) { + PreferenceManager.getInstance(context) +} else { + null } fun getWindowCornerRadius(context: Context): Float { @@ -256,8 +254,7 @@ fun Size.scaleDownTo(maxSize: Int): Size { fun Context.isDefaultLauncher(): Boolean = getDefaultLauncherPackageName() == packageName -fun Context.getDefaultLauncherPackageName(): String? = - runCatching { getDefaultResolveInfo()?.activityInfo?.packageName }.getOrNull() +fun Context.getDefaultLauncherPackageName(): String? = runCatching { getDefaultResolveInfo()?.activityInfo?.packageName }.getOrNull() fun Context.getDefaultResolveInfo(): ResolveInfo? { val intent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME) @@ -292,21 +289,19 @@ fun createRoundedBitmap(color: Int, cornerRadius: Float): Bitmap { return bitmap } -fun getSignatureHash(context: Context, packageName: String): Long? { - return try { - val packageInfo = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - context.packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNING_CERTIFICATES) - } else { - context.packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES) - } +fun getSignatureHash(context: Context, packageName: String): Long? = try { + val packageInfo = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + context.packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNING_CERTIFICATES) + } else { + context.packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES) + } - val signatures = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { - packageInfo.signingInfo?.apkContentsSigners - } else { - packageInfo.signatures - } - signatures?.firstOrNull()?.hashCode()?.toLong() - } catch (_: PackageManager.NameNotFoundException) { - null + val signatures = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + packageInfo.signingInfo?.apkContentsSigners + } else { + packageInfo.signatures } + signatures?.firstOrNull()?.hashCode()?.toLong() +} catch (_: PackageManager.NameNotFoundException) { + null } diff --git a/lawnchair/src/app/lawnchair/util/LawnchairWindowManagerProxy.kt b/lawnchair/src/app/lawnchair/util/LawnchairWindowManagerProxy.kt index c63afa9fb64..d46319a8a96 100644 --- a/lawnchair/src/app/lawnchair/util/LawnchairWindowManagerProxy.kt +++ b/lawnchair/src/app/lawnchair/util/LawnchairWindowManagerProxy.kt @@ -181,20 +181,18 @@ class LawnchairWindowManagerProxy(context: Context) : WindowManagerProxy(Utiliti return 0 } - override fun getDisplay(displayInfoContext: Context): Display? { - return try { - if (Utilities.ATLEAST_R) { - displayInfoContext.display - } else { - displayInfoContext.getSystemService(DisplayManager::class.java)?.getDisplay( - DEFAULT_DISPLAY, - ) - } - } catch (e: UnsupportedOperationException) { + override fun getDisplay(displayInfoContext: Context): Display? = try { + if (Utilities.ATLEAST_R) { + displayInfoContext.display + } else { displayInfoContext.getSystemService(DisplayManager::class.java)?.getDisplay( DEFAULT_DISPLAY, ) } + } catch (e: UnsupportedOperationException) { + displayInfoContext.getSystemService(DisplayManager::class.java)?.getDisplay( + DEFAULT_DISPLAY, + ) } override fun getRotation(context: Context): Int { @@ -202,7 +200,5 @@ class LawnchairWindowManagerProxy(context: Context) : WindowManagerProxy(Utiliti return display?.rotation ?: Surface.ROTATION_0 } - private fun dpToPx(resources: Resources, dp: Int): Int { - return (dp * resources.displayMetrics.density).toInt() - } + private fun dpToPx(resources: Resources, dp: Int): Int = (dp * resources.displayMetrics.density).toInt() } diff --git a/lawnchair/src/app/lawnchair/util/Lifecycle.kt b/lawnchair/src/app/lawnchair/util/Lifecycle.kt index 26892079868..beba77a159d 100644 --- a/lawnchair/src/app/lawnchair/util/Lifecycle.kt +++ b/lawnchair/src/app/lawnchair/util/Lifecycle.kt @@ -45,10 +45,8 @@ private fun observeLifecycleState(): Lifecycle.State { return state } -fun Context.lookupLifecycleOwner(): LifecycleOwner? { - return when (this) { - is LifecycleOwner -> this - is ContextWrapper -> baseContext.lookupLifecycleOwner() - else -> null - } +fun Context.lookupLifecycleOwner(): LifecycleOwner? = when (this) { + is LifecycleOwner -> this + is ContextWrapper -> baseContext.lookupLifecycleOwner() + else -> null } diff --git a/lawnchair/src/app/lawnchair/util/PackageManagerExtensions.kt b/lawnchair/src/app/lawnchair/util/PackageManagerExtensions.kt index be9cd84467d..60a70006227 100644 --- a/lawnchair/src/app/lawnchair/util/PackageManagerExtensions.kt +++ b/lawnchair/src/app/lawnchair/util/PackageManagerExtensions.kt @@ -7,24 +7,22 @@ import android.content.pm.PackageManager import com.android.launcher3.Utilities import com.android.launcher3.icons.R -fun PackageManager.isPackageInstalled(packageName: String): Boolean = - try { - getPackageInfo(packageName, 0) - true - } catch (_: PackageManager.NameNotFoundException) { - false - } +fun PackageManager.isPackageInstalled(packageName: String): Boolean = try { + getPackageInfo(packageName, 0) + true +} catch (_: PackageManager.NameNotFoundException) { + false +} -fun PackageManager.getPackageVersionCode(packageName: String): Long = - try { - val info = getPackageInfo(packageName, 0) - when { - Utilities.ATLEAST_P -> info.longVersionCode - else -> info.versionCode.toLong() - } - } catch (_: PackageManager.NameNotFoundException) { - -1L +fun PackageManager.getPackageVersionCode(packageName: String): Long = try { + val info = getPackageInfo(packageName, 0) + when { + Utilities.ATLEAST_P -> info.longVersionCode + else -> info.versionCode.toLong() } +} catch (_: PackageManager.NameNotFoundException) { + -1L +} fun PackageManager.isPackageInstalledAndEnabled(packageName: String) = try { getApplicationInfo(packageName, 0).enabled @@ -32,14 +30,13 @@ fun PackageManager.isPackageInstalledAndEnabled(packageName: String) = try { false } -fun PackageManager.getThemedIconPacksInstalled(context: Context): List = - try { - queryIntentActivityOptions( - ComponentName(context.applicationInfo.packageName, context.applicationInfo.className), - null, - Intent(context.resources.getString(R.string.icon_packs_intent_name)), - PackageManager.GET_RESOLVED_FILTER, - ).map { it.activityInfo.packageName } - } catch (_: PackageManager.NameNotFoundException) { - emptyList() - } +fun PackageManager.getThemedIconPacksInstalled(context: Context): List = try { + queryIntentActivityOptions( + ComponentName(context.applicationInfo.packageName, context.applicationInfo.className), + null, + Intent(context.resources.getString(R.string.icon_packs_intent_name)), + PackageManager.GET_RESOLVED_FILTER, + ).map { it.activityInfo.packageName } +} catch (_: PackageManager.NameNotFoundException) { + emptyList() +} diff --git a/lawnchair/src/app/lawnchair/util/PackagePermissionManager.kt b/lawnchair/src/app/lawnchair/util/PackagePermissionManager.kt index 88b94d3530b..7fc00788333 100644 --- a/lawnchair/src/app/lawnchair/util/PackagePermissionManager.kt +++ b/lawnchair/src/app/lawnchair/util/PackagePermissionManager.kt @@ -38,9 +38,7 @@ fun requestContactPermissionGranted(context: Context, prefs: PreferenceManager): return isGranted } -fun contactPermissionGranted(context: Context): Boolean { - return context.checkSelfPermission(Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED -} +fun contactPermissionGranted(context: Context): Boolean = context.checkSelfPermission(Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED fun checkAndRequestFilesPermission(context: Context, prefs: PreferenceManager): Boolean { when { @@ -73,13 +71,11 @@ fun checkAndRequestFilesPermission(context: Context, prefs: PreferenceManager): return true } -fun filesAndStorageGranted(context: Context): Boolean { - return when { - Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> - Environment.isExternalStorageManager() && hasReadMediaImagesPermission(context) - Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> Environment.isExternalStorageManager() - else -> hasReadExternalStoragePermission(context) - } +fun filesAndStorageGranted(context: Context): Boolean = when { + Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> + Environment.isExternalStorageManager() && hasReadMediaImagesPermission(context) + Build.VERSION.SDK_INT >= Build.VERSION_CODES.R -> Environment.isExternalStorageManager() + else -> hasReadExternalStoragePermission(context) } @RequiresApi(Build.VERSION_CODES.R) @@ -89,12 +85,10 @@ private fun requestManageAllFilesAccessPermission(context: Context) { context.startActivity(intent) } -private fun hasReadExternalStoragePermission(context: Context): Boolean { - return ContextCompat.checkSelfPermission( - context, - Manifest.permission.READ_EXTERNAL_STORAGE, - ) == PackageManager.PERMISSION_GRANTED -} +private fun hasReadExternalStoragePermission(context: Context): Boolean = ContextCompat.checkSelfPermission( + context, + Manifest.permission.READ_EXTERNAL_STORAGE, +) == PackageManager.PERMISSION_GRANTED private fun requestReadExternalStoragePermission(context: Context) { ActivityCompat.requestPermissions( @@ -105,12 +99,10 @@ private fun requestReadExternalStoragePermission(context: Context) { } @RequiresApi(Build.VERSION_CODES.TIRAMISU) -private fun hasReadMediaImagesPermission(context: Context): Boolean { - return ContextCompat.checkSelfPermission( - context, - Manifest.permission.READ_MEDIA_IMAGES, - ) == PackageManager.PERMISSION_GRANTED -} +private fun hasReadMediaImagesPermission(context: Context): Boolean = ContextCompat.checkSelfPermission( + context, + Manifest.permission.READ_MEDIA_IMAGES, +) == PackageManager.PERMISSION_GRANTED @RequiresApi(Build.VERSION_CODES.TIRAMISU) private fun requestReadMediaImagesPermission(context: Context) { diff --git a/lawnchair/src/app/lawnchair/util/Padding.kt b/lawnchair/src/app/lawnchair/util/Padding.kt index a81afd024ca..f0477bd79a9 100644 --- a/lawnchair/src/app/lawnchair/util/Padding.kt +++ b/lawnchair/src/app/lawnchair/util/Padding.kt @@ -29,27 +29,19 @@ fun Modifier.navigationBarsOrDisplayCutoutPadding(): Modifier = composed { @Composable fun max(a: PaddingValues, b: PaddingValues) = remember(a, b) { object : PaddingValues { - override fun calculateLeftPadding(layoutDirection: LayoutDirection): Dp { - return max( - a.calculateLeftPadding(layoutDirection), - b.calculateLeftPadding(layoutDirection), - ) - } + override fun calculateLeftPadding(layoutDirection: LayoutDirection): Dp = max( + a.calculateLeftPadding(layoutDirection), + b.calculateLeftPadding(layoutDirection), + ) - override fun calculateTopPadding(): Dp { - return max(a.calculateTopPadding(), b.calculateTopPadding()) - } + override fun calculateTopPadding(): Dp = max(a.calculateTopPadding(), b.calculateTopPadding()) - override fun calculateRightPadding(layoutDirection: LayoutDirection): Dp { - return max( - a.calculateRightPadding(layoutDirection), - b.calculateRightPadding(layoutDirection), - ) - } + override fun calculateRightPadding(layoutDirection: LayoutDirection): Dp = max( + a.calculateRightPadding(layoutDirection), + b.calculateRightPadding(layoutDirection), + ) - override fun calculateBottomPadding(): Dp { - return max(a.calculateBottomPadding(), b.calculateBottomPadding()) - } + override fun calculateBottomPadding(): Dp = max(a.calculateBottomPadding(), b.calculateBottomPadding()) } } diff --git a/lawnchair/src/app/lawnchair/util/Serializers.kt b/lawnchair/src/app/lawnchair/util/Serializers.kt index 1113fa10664..26a87de6b2f 100644 --- a/lawnchair/src/app/lawnchair/util/Serializers.kt +++ b/lawnchair/src/app/lawnchair/util/Serializers.kt @@ -18,9 +18,7 @@ import kotlinx.serialization.encoding.Encoder object ComponentKeySerializer : KSerializer { override val descriptor = PrimitiveSerialDescriptor("ComponentKey", PrimitiveKind.STRING) - override fun deserialize(decoder: Decoder): ComponentKey { - return ComponentKey.fromString(decoder.decodeString())!! - } + override fun deserialize(decoder: Decoder): ComponentKey = ComponentKey.fromString(decoder.decodeString())!! override fun serialize(encoder: Encoder, value: ComponentKey) { encoder.encodeString(value.toString()) @@ -31,24 +29,16 @@ object ComponentKeySerializer : KSerializer { object IntentSerializer : KSerializer { override val descriptor = PrimitiveSerialDescriptor("Intent", PrimitiveKind.STRING) - override fun deserialize(decoder: Decoder): Intent { - return Intent.parseUri(decoder.decodeString(), 0) - } + override fun deserialize(decoder: Decoder): Intent = Intent.parseUri(decoder.decodeString(), 0) - override fun serialize(encoder: Encoder, value: Intent) { - return encoder.encodeString(value.toUri(0)) - } + override fun serialize(encoder: Encoder, value: Intent) = encoder.encodeString(value.toUri(0)) } @Serializer(forClass = UserHandle::class) object UserHandlerSerializer : KSerializer { override val descriptor = PrimitiveSerialDescriptor("UserHandle", PrimitiveKind.INT) - override fun deserialize(decoder: Decoder): UserHandle { - return UserHandleCompat.getUserHandleForUid(decoder.decodeInt()) - } + override fun deserialize(decoder: Decoder): UserHandle = UserHandleCompat.getUserHandleForUid(decoder.decodeInt()) - override fun serialize(encoder: Encoder, value: UserHandle) { - return encoder.encodeInt(value.hashCode()) - } + override fun serialize(encoder: Encoder, value: UserHandle) = encoder.encodeInt(value.hashCode()) } diff --git a/lawnchair/src/app/lawnchair/util/SingletonHolder.kt b/lawnchair/src/app/lawnchair/util/SingletonHolder.kt index 4a3ac023a92..3fd598c579b 100644 --- a/lawnchair/src/app/lawnchair/util/SingletonHolder.kt +++ b/lawnchair/src/app/lawnchair/util/SingletonHolder.kt @@ -47,5 +47,4 @@ open class SingletonHolder(creator: (A) -> T) { fun dangerousGetInstance() = instance } -open class LawnchairSingletonHolder(creator: (Context) -> T) : - SingletonHolder(ensureOnMainThread(useApplicationContext(creator))) +open class LawnchairSingletonHolder(creator: (Context) -> T) : SingletonHolder(ensureOnMainThread(useApplicationContext(creator))) diff --git a/lawnchair/src/app/lawnchair/util/SmartBorder.kt b/lawnchair/src/app/lawnchair/util/SmartBorder.kt index 42768b40531..3944d0e64bd 100644 --- a/lawnchair/src/app/lawnchair/util/SmartBorder.kt +++ b/lawnchair/src/app/lawnchair/util/SmartBorder.kt @@ -48,11 +48,9 @@ private val HairlineBorderStroke = Stroke(Stroke.HairlineWidth) inline val Float.half: Float get() = this / 2 -fun Modifier.smartBorder(border: BorderStroke, shape: Shape = RectangleShape) = - smartBorder(width = border.width, brush = border.brush, shape = shape) +fun Modifier.smartBorder(border: BorderStroke, shape: Shape = RectangleShape) = smartBorder(width = border.width, brush = border.brush, shape = shape) -fun Modifier.smartBorder(width: Dp, color: Color, shape: Shape = RectangleShape) = - smartBorder(width, SolidColor(color), shape) +fun Modifier.smartBorder(width: Dp, color: Color, shape: Shape = RectangleShape) = smartBorder(width, SolidColor(color), shape) // TODO: https://mrmans0n.github.io/compose-rules/rules/#avoid-modifier-extension-factory-functions @Suppress("ktlint:compose:modifier-composed-check") diff --git a/lawnchair/src/app/lawnchair/util/TaskUtilLockState.kt b/lawnchair/src/app/lawnchair/util/TaskUtilLockState.kt index 0e82aaa7944..25ee633b558 100644 --- a/lawnchair/src/app/lawnchair/util/TaskUtilLockState.kt +++ b/lawnchair/src/app/lawnchair/util/TaskUtilLockState.kt @@ -27,9 +27,7 @@ object TaskUtilLockState { } } - private fun toFormatLockedAppStr(packageName: String, userId: Int): String { - return "$packageName$SEPARATOR$userId" - } + private fun toFormatLockedAppStr(packageName: String, userId: Int): String = "$packageName$SEPARATOR$userId" private fun saveLockedApps(lockedApps: List?) { lockedApps?.let { @@ -58,9 +56,7 @@ object TaskUtilLockState { } } - fun getTaskLockState(context: Context, componentName: ComponentName, taskKey: Task.TaskKey): Boolean { - return updateSpecifiedTaskLockState(context, componentName, taskKey) - } + fun getTaskLockState(context: Context, componentName: ComponentName, taskKey: Task.TaskKey): Boolean = updateSpecifiedTaskLockState(context, componentName, taskKey) private fun updateSpecifiedTaskLockState(context: Context, componentName: ComponentName, taskKey: Task.TaskKey): Boolean { val taskLockState = LawnchairLockedStateController.initialize(context) diff --git a/lawnchair/src/app/lawnchair/util/Temperature.kt b/lawnchair/src/app/lawnchair/util/Temperature.kt index 7c3609bce07..48b4b0d0917 100644 --- a/lawnchair/src/app/lawnchair/util/Temperature.kt +++ b/lawnchair/src/app/lawnchair/util/Temperature.kt @@ -28,31 +28,27 @@ class Temperature(val value: Int, val unit: Unit) { // TODO: Use Unit directly after https://github.com/pinterest/ktlint/issues/2353 is fixed. @Suppress("RemoveRedundantQualifierName") - fun unitFromString(unit: String): Temperature.Unit { - return when (unit) { - "metric" -> Unit.Celsius - "imperial" -> Unit.Fahrenheit - "kelvin" -> Unit.Kelvin - "rakine" -> Unit.Rakine - "delisle" -> Unit.Delisle - "newton" -> Unit.Newton - "reaumur" -> Unit.Reaumur - "romer" -> Unit.Romer - else -> throw IllegalArgumentException("unknown unit $unit") - } + fun unitFromString(unit: String): Temperature.Unit = when (unit) { + "metric" -> Unit.Celsius + "imperial" -> Unit.Fahrenheit + "kelvin" -> Unit.Kelvin + "rakine" -> Unit.Rakine + "delisle" -> Unit.Delisle + "newton" -> Unit.Newton + "reaumur" -> Unit.Reaumur + "romer" -> Unit.Romer + else -> throw IllegalArgumentException("unknown unit $unit") } - fun unitToString(unit: Unit): String { - return when (unit) { - Unit.Celsius -> "metric" - Unit.Fahrenheit -> "imperial" - Unit.Kelvin -> "kelvin" - Unit.Rakine -> "rakine" - Unit.Delisle -> "delisle" - Unit.Newton -> "newton" - Unit.Reaumur -> "reaumur" - Unit.Romer -> "romer" - } + fun unitToString(unit: Unit): String = when (unit) { + Unit.Celsius -> "metric" + Unit.Fahrenheit -> "imperial" + Unit.Kelvin -> "kelvin" + Unit.Rakine -> "rakine" + Unit.Delisle -> "delisle" + Unit.Newton -> "newton" + Unit.Reaumur -> "reaumur" + Unit.Romer -> "romer" } } } diff --git a/lawnchair/src/app/lawnchair/views/ComposeBottomSheet.kt b/lawnchair/src/app/lawnchair/views/ComposeBottomSheet.kt index ba439e413b3..51b8e2bd395 100644 --- a/lawnchair/src/app/lawnchair/views/ComposeBottomSheet.kt +++ b/lawnchair/src/app/lawnchair/views/ComposeBottomSheet.kt @@ -43,8 +43,7 @@ import com.android.launcher3.views.AbstractSlideInView import com.android.launcher3.views.ActivityContext import com.android.launcher3.views.BaseDragLayer -class ComposeBottomSheet(context: Context) : - AbstractSlideInView(context, null, 0) where T : Context, T : ActivityContext { +class ComposeBottomSheet(context: Context) : AbstractSlideInView(context, null, 0) where T : Context, T : ActivityContext { private val container = ComposeView(context) private var imeShift = 0f @@ -110,13 +109,9 @@ class ComposeBottomSheet(context: Context) : setSystemUiFlags(0) } - override fun isOfType(type: Int): Boolean { - return type and TYPE_COMPOSE_VIEW != 0 - } + override fun isOfType(type: Int): Boolean = type and TYPE_COMPOSE_VIEW != 0 - override fun getScrimColor(context: Context): Int { - return ColorTokens.WidgetsPickerScrim.resolveColor(context) - } + override fun getScrimColor(context: Context): Int = ColorTokens.WidgetsPickerScrim.resolveColor(context) override fun setTranslationShift(translationShift: Float) { mTranslationShift = translationShift diff --git a/lawnchair/src/com/android/systemui/monet/ColorScheme.kt b/lawnchair/src/com/android/systemui/monet/ColorScheme.kt index b4888e0e40f..72f8eab2056 100644 --- a/lawnchair/src/com/android/systemui/monet/ColorScheme.kt +++ b/lawnchair/src/com/android/systemui/monet/ColorScheme.kt @@ -60,24 +60,18 @@ internal interface Hue { } internal class HueSource : Hue { - override fun get(sourceColor: Cam): Double { - return sourceColor.hue.toDouble() - } + override fun get(sourceColor: Cam): Double = sourceColor.hue.toDouble() } internal class HueAdd(val amountDegrees: Double) : Hue { - override fun get(sourceColor: Cam): Double { - return ColorScheme.wrapDegreesDouble(sourceColor.hue.toDouble() + amountDegrees) - } + override fun get(sourceColor: Cam): Double = ColorScheme.wrapDegreesDouble(sourceColor.hue.toDouble() + amountDegrees) } internal class HueSubtract(val amountDegrees: Double) : Hue { - override fun get(sourceColor: Cam): Double { - return ColorScheme.wrapDegreesDouble(sourceColor.hue.toDouble() - amountDegrees) - } + override fun get(sourceColor: Cam): Double = ColorScheme.wrapDegreesDouble(sourceColor.hue.toDouble() - amountDegrees) } -internal class HueVibrantSecondary() : Hue { +internal class HueVibrantSecondary : Hue { val hueToRotations = listOf( Pair(0, 18), @@ -91,12 +85,10 @@ internal class HueVibrantSecondary() : Hue { Pair(360, 12), ) - override fun get(sourceColor: Cam): Double { - return getHueRotation(sourceColor.hue, hueToRotations) - } + override fun get(sourceColor: Cam): Double = getHueRotation(sourceColor.hue, hueToRotations) } -internal class HueVibrantTertiary() : Hue { +internal class HueVibrantTertiary : Hue { val hueToRotations = listOf( Pair(0, 35), @@ -110,12 +102,10 @@ internal class HueVibrantTertiary() : Hue { Pair(360, 25), ) - override fun get(sourceColor: Cam): Double { - return getHueRotation(sourceColor.hue, hueToRotations) - } + override fun get(sourceColor: Cam): Double = getHueRotation(sourceColor.hue, hueToRotations) } -internal class HueExpressiveSecondary() : Hue { +internal class HueExpressiveSecondary : Hue { val hueToRotations = listOf( Pair(0, 45), @@ -129,12 +119,10 @@ internal class HueExpressiveSecondary() : Hue { Pair(360, 45), ) - override fun get(sourceColor: Cam): Double { - return getHueRotation(sourceColor.hue, hueToRotations) - } + override fun get(sourceColor: Cam): Double = getHueRotation(sourceColor.hue, hueToRotations) } -internal class HueExpressiveTertiary() : Hue { +internal class HueExpressiveTertiary : Hue { val hueToRotations = listOf( Pair(0, 120), @@ -148,9 +136,7 @@ internal class HueExpressiveTertiary() : Hue { Pair(360, 120), ) - override fun get(sourceColor: Cam): Double { - return getHueRotation(sourceColor.hue, hueToRotations) - } + override fun get(sourceColor: Cam): Double = getHueRotation(sourceColor.hue, hueToRotations) } internal interface Chroma { @@ -171,15 +157,11 @@ internal class ChromaMaxOut : Chroma { } internal class ChromaMultiple(val multiple: Double) : Chroma { - override fun get(sourceColor: Cam): Double { - return sourceColor.chroma * multiple - } + override fun get(sourceColor: Cam): Double = sourceColor.chroma * multiple } internal class ChromaAdd(val amount: Double) : Chroma { - override fun get(sourceColor: Cam): Double { - return sourceColor.chroma + amount - } + override fun get(sourceColor: Cam): Double = sourceColor.chroma + amount } internal class ChromaBound( @@ -194,15 +176,11 @@ internal class ChromaBound( } internal class ChromaConstant(val chroma: Double) : Chroma { - override fun get(sourceColor: Cam): Double { - return chroma - } + override fun get(sourceColor: Cam): Double = chroma } internal class ChromaSource : Chroma { - override fun get(sourceColor: Cam): Double { - return sourceColor.chroma.toDouble() - } + override fun get(sourceColor: Cam): Double = sourceColor.chroma.toDouble() } internal class TonalSpec(val hue: Hue = HueSource(), val chroma: Chroma) { @@ -426,53 +404,45 @@ class ColorScheme( val seedTone: Float get() = 1000f - CamUtils.lstarFromInt(seed) * 10f - override fun toString(): String { - return "ColorScheme {\n" + - " seed color: ${stringForColor(seed)}\n" + - " style: $style\n" + - " palettes: \n" + - " ${humanReadable("PRIMARY", accent1.allShades)}\n" + - " ${humanReadable("SECONDARY", accent2.allShades)}\n" + - " ${humanReadable("TERTIARY", accent3.allShades)}\n" + - " ${humanReadable("NEUTRAL", neutral1.allShades)}\n" + - " ${humanReadable("NEUTRAL VARIANT", neutral2.allShades)}\n" + - "}" - } + override fun toString(): String = "ColorScheme {\n" + + " seed color: ${stringForColor(seed)}\n" + + " style: $style\n" + + " palettes: \n" + + " ${humanReadable("PRIMARY", accent1.allShades)}\n" + + " ${humanReadable("SECONDARY", accent2.allShades)}\n" + + " ${humanReadable("TERTIARY", accent3.allShades)}\n" + + " ${humanReadable("NEUTRAL", neutral1.allShades)}\n" + + " ${humanReadable("NEUTRAL VARIANT", neutral2.allShades)}\n" + + "}" companion object { - private fun wrapDegrees(degrees: Int): Int { - return when { - degrees < 0 -> { - (degrees % 360) + 360 - } - degrees >= 360 -> { - degrees % 360 - } - else -> { - degrees - } + private fun wrapDegrees(degrees: Int): Int = when { + degrees < 0 -> { + (degrees % 360) + 360 + } + degrees >= 360 -> { + degrees % 360 + } + else -> { + degrees } } - public fun wrapDegreesDouble(degrees: Double): Double { - return when { - degrees < 0 -> { - (degrees % 360) + 360 - } + public fun wrapDegreesDouble(degrees: Double): Double = when { + degrees < 0 -> { + (degrees % 360) + 360 + } - degrees >= 360 -> { - degrees % 360 - } + degrees >= 360 -> { + degrees % 360 + } - else -> { - degrees - } + else -> { + degrees } } - private fun hueDiff(a: Float, b: Float): Float { - return 180f - ((a - b).absoluteValue - 180f).absoluteValue - } + private fun hueDiff(a: Float, b: Float): Float = 180f - ((a - b).absoluteValue - 180f).absoluteValue private fun stringForColor(color: Int): String { val width = 4 @@ -484,10 +454,8 @@ class ColorScheme( return "$h$c$t = #$hex" } - private fun humanReadable(paletteName: String, colors: List): String { - return "$paletteName\n" + - colors.map { stringForColor(it) }.joinToString(separator = "\n") { it } - } + private fun humanReadable(paletteName: String, colors: List): String = "$paletteName\n" + + colors.map { stringForColor(it) }.joinToString(separator = "\n") { it } private fun score(cam: Cam, proportion: Double): Double { val proportionScore = 0.7 * 100.0 * proportion diff --git a/lawnchair/src/dev/kdrag0n/monet/theme/DynamicColorScheme.kt b/lawnchair/src/dev/kdrag0n/monet/theme/DynamicColorScheme.kt index 4f73c299461..69fe602de01 100644 --- a/lawnchair/src/dev/kdrag0n/monet/theme/DynamicColorScheme.kt +++ b/lawnchair/src/dev/kdrag0n/monet/theme/DynamicColorScheme.kt @@ -51,19 +51,17 @@ class DynamicColorScheme( swatch: ColorSwatch, seed: Zcam, referenceSwatch: ColorSwatch, - ): ColorSwatch { - return swatch.map { (shade, color) -> - val target = color as? Zcam - ?: color.convert().toAbs(cond.referenceWhite.y).toZcam(cond, include2D = false) - val reference = referenceSwatch[shade]!! as? Zcam - ?: color.convert().toAbs(cond.referenceWhite.y).toZcam(cond, include2D = false) - val newLch = transformColor(target, seed, reference) - val newSrgb = newLch.convert() - - Log.d(TAG, "Transform: [$shade] $target => $newLch => ${newSrgb.toHex()}") - shade to newSrgb - }.toMap() - } + ): ColorSwatch = swatch.map { (shade, color) -> + val target = color as? Zcam + ?: color.convert().toAbs(cond.referenceWhite.y).toZcam(cond, include2D = false) + val reference = referenceSwatch[shade]!! as? Zcam + ?: color.convert().toAbs(cond.referenceWhite.y).toZcam(cond, include2D = false) + val newLch = transformColor(target, seed, reference) + val newSrgb = newLch.convert() + + Log.d(TAG, "Transform: [$shade] $target => $newLch => ${newSrgb.toHex()}") + shade to newSrgb + }.toMap() private fun transformColor(target: Zcam, seed: Zcam, reference: Zcam): Color { // Keep target lightness. @@ -94,13 +92,11 @@ class DynamicColorScheme( } } - override fun equals(other: Any?): Boolean { - return other is DynamicColorScheme && - other.seedColor == seedColor && - other.chromaFactor == chromaFactor && - other.cond == cond && - other.accurateShades == accurateShades - } + override fun equals(other: Any?): Boolean = other is DynamicColorScheme && + other.seedColor == seedColor && + other.chromaFactor == chromaFactor && + other.cond == cond && + other.accurateShades == accurateShades override fun hashCode() = Objects.hash(seedColor, chromaFactor, cond, accurateShades)