From 9f6d6c88cde92c570fb09e2450b1563d13ceddb9 Mon Sep 17 00:00:00 2001 From: MrSluffy Date: Sun, 3 Nov 2024 20:22:03 +0800 Subject: [PATCH] fix styles --- .../allapps/LawnchairAlphabeticalAppsList.kt | 2 +- .../allapps/views/SearchResultIcon.kt | 1 - .../src/app/lawnchair/data/AppDatabase.kt | 2 +- .../iconoverride/IconOverrideRepository.kt | 12 ++- .../lawnchair/overview/TaskShortcutFactory.kt | 4 +- .../preferences2/PreferenceManager2.kt | 4 +- .../app/lawnchair/root/RootHelperManager.kt | 4 +- .../algorithms/LawnchairAppSearchAlgorithm.kt | 2 +- .../LawnchairLocalSearchAlgorithm.kt | 1 - .../search/algorithms/SearchUtils.kt | 2 +- .../lawnchair/smartspace/BcSmartspaceView.kt | 2 +- .../lawnchair/ui/popup/LawnchairShortcut.kt | 2 +- .../src/app/lawnchair/util/LawnchairUtils.kt | 4 +- .../lawnchair/views/LauncherPreviewView.kt | 2 +- .../bubbles/BubbleDismissController.java | 5 +- .../taskbar/bubbles/BubbleDragAnimator.java | 2 +- .../wm/shell/common}/bubbles/DismissView.kt | 82 +++++++++---------- .../magnetictarget}/MagnetizedObject.kt | 57 +++++++------ 18 files changed, 93 insertions(+), 97 deletions(-) rename {lawnchair/src/app/lawnchair => wmshell/shared/src/com/android/wm/shell/common}/bubbles/DismissView.kt (74%) rename {lawnchair/src/app/lawnchair/common => wmshell/shared/src/com/android/wm/shell/common/magnetictarget}/MagnetizedObject.kt (94%) diff --git a/lawnchair/src/app/lawnchair/allapps/LawnchairAlphabeticalAppsList.kt b/lawnchair/src/app/lawnchair/allapps/LawnchairAlphabeticalAppsList.kt index c517ef3964..9fd9ea0612 100644 --- a/lawnchair/src/app/lawnchair/allapps/LawnchairAlphabeticalAppsList.kt +++ b/lawnchair/src/app/lawnchair/allapps/LawnchairAlphabeticalAppsList.kt @@ -19,7 +19,7 @@ class LawnchairAlphabeticalAppsList( context: T, appsStore: AllAppsStore, workProfileManager: WorkProfileManager?, - privateProfileManager: PrivateProfileManager + privateProfileManager: PrivateProfileManager, ) : AlphabeticalAppsList(context, appsStore, workProfileManager, privateProfileManager) where T : Context, T : ActivityContext { diff --git a/lawnchair/src/app/lawnchair/allapps/views/SearchResultIcon.kt b/lawnchair/src/app/lawnchair/allapps/views/SearchResultIcon.kt index 901ca58ae4..51db838744 100644 --- a/lawnchair/src/app/lawnchair/allapps/views/SearchResultIcon.kt +++ b/lawnchair/src/app/lawnchair/allapps/views/SearchResultIcon.kt @@ -11,7 +11,6 @@ import android.view.ViewGroup import androidx.core.view.isInvisible import androidx.core.view.isVisible import app.lawnchair.launcher -import app.lawnchair.search.adapter.SHORTCUT import app.lawnchair.search.adapter.SearchTargetCompat import app.lawnchair.search.model.SearchResultActionCallBack import app.lawnchair.util.runOnMainThread diff --git a/lawnchair/src/app/lawnchair/data/AppDatabase.kt b/lawnchair/src/app/lawnchair/data/AppDatabase.kt index 1d37cdb270..59521d6a81 100644 --- a/lawnchair/src/app/lawnchair/data/AppDatabase.kt +++ b/lawnchair/src/app/lawnchair/data/AppDatabase.kt @@ -24,7 +24,7 @@ abstract class AppDatabase : RoomDatabase() { Room.databaseBuilder( context, AppDatabase::class.java, - "preferences" + "preferences", ).build() } } diff --git a/lawnchair/src/app/lawnchair/data/iconoverride/IconOverrideRepository.kt b/lawnchair/src/app/lawnchair/data/iconoverride/IconOverrideRepository.kt index 8347409469..f9d70c10f4 100644 --- a/lawnchair/src/app/lawnchair/data/iconoverride/IconOverrideRepository.kt +++ b/lawnchair/src/app/lawnchair/data/iconoverride/IconOverrideRepository.kt @@ -9,13 +9,13 @@ import com.android.launcher3.pm.PackageInstallInfo.STATUS_INSTALLED import com.android.launcher3.util.ComponentKey import com.android.launcher3.util.MainThreadInitializedObject import com.android.launcher3.util.SafeCloseable +import java.util.concurrent.ConcurrentLinkedQueue import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.MainScope import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.launch import kotlinx.coroutines.plus -import java.util.concurrent.ConcurrentLinkedQueue class IconOverrideRepository(private val context: Context) : SafeCloseable { @@ -64,9 +64,13 @@ class IconOverrideRepository(private val context: Context) : SafeCloseable { private fun updatePackageIcons(target: ComponentKey) { val model = LauncherAppState.getInstance(context).model - model.onPackageStateChanged(PackageInstallInfo.fromState( - STATUS_INSTALLED, - target.componentName.packageName, target.user)) + model.onPackageStateChanged( + PackageInstallInfo.fromState( + STATUS_INSTALLED, + target.componentName.packageName, + target.user, + ), + ) } override fun close() { diff --git a/lawnchair/src/app/lawnchair/overview/TaskShortcutFactory.kt b/lawnchair/src/app/lawnchair/overview/TaskShortcutFactory.kt index 0d6e94fc7d..b71dfa1f99 100644 --- a/lawnchair/src/app/lawnchair/overview/TaskShortcutFactory.kt +++ b/lawnchair/src/app/lawnchair/overview/TaskShortcutFactory.kt @@ -1,5 +1,3 @@ package app.lawnchair.overview -object TaskShortcutFactory { - -} +object TaskShortcutFactory diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt index 5c6dae168d..a3dc70b371 100644 --- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt +++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt @@ -32,6 +32,7 @@ import app.lawnchair.hotseat.HotseatMode import app.lawnchair.icons.CustomAdaptiveIconDrawable import app.lawnchair.icons.shape.IconShape import app.lawnchair.icons.shape.IconShapeManager +import app.lawnchair.preferences.PreferenceManager as LawnchairPreferenceManager import app.lawnchair.qsb.providers.QsbSearchProvider import app.lawnchair.search.algorithms.LawnchairSearchAlgorithm import app.lawnchair.search.algorithms.data.WebSearchProvider @@ -47,6 +48,7 @@ import com.android.launcher3.InvariantDeviceProfile import com.android.launcher3.InvariantDeviceProfile.INDEX_DEFAULT import com.android.launcher3.LauncherAppState import com.android.launcher3.R +import com.android.launcher3.graphics.IconShape as L3IconShape import com.android.launcher3.util.DynamicResource import com.android.launcher3.util.MainThreadInitializedObject import com.android.launcher3.util.SafeCloseable @@ -59,8 +61,6 @@ import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.serialization.encodeToString -import app.lawnchair.preferences.PreferenceManager as LawnchairPreferenceManager -import com.android.launcher3.graphics.IconShape as L3IconShape class PreferenceManager2 private constructor(private val context: Context) : PreferenceManager, SafeCloseable { diff --git a/lawnchair/src/app/lawnchair/root/RootHelperManager.kt b/lawnchair/src/app/lawnchair/root/RootHelperManager.kt index 01e7365174..c4a6fcabaa 100644 --- a/lawnchair/src/app/lawnchair/root/RootHelperManager.kt +++ b/lawnchair/src/app/lawnchair/root/RootHelperManager.kt @@ -9,6 +9,8 @@ import app.lawnchair.preferences.PreferenceManager import app.lawnchair.util.MainThreadInitializedObject import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.ipc.RootService +import kotlin.coroutines.resume +import kotlin.coroutines.suspendCoroutine import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers @@ -16,8 +18,6 @@ import kotlinx.coroutines.MainScope import kotlinx.coroutines.async import kotlinx.coroutines.plus import kotlinx.coroutines.withContext -import kotlin.coroutines.resume -import kotlin.coroutines.suspendCoroutine class RootHelperManager(private val context: Context) { private val scope = MainScope() + CoroutineName("RootHelperManager") diff --git a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairAppSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairAppSearchAlgorithm.kt index 68480507fe..6735906dbb 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairAppSearchAlgorithm.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairAppSearchAlgorithm.kt @@ -55,7 +55,7 @@ class LawnchairAppSearchAlgorithm(context: Context) : LawnchairSearchAlgorithm(c } override fun doSearch(query: String, callback: SearchCallback) { - appState.model.enqueueModelUpdateTask(object: LauncherModel.ModelUpdateTask { + appState.model.enqueueModelUpdateTask(object : LauncherModel.ModelUpdateTask { override fun execute(app: ModelTaskController, dataModel: BgDataModel, apps: AllAppsList) { coroutineScope.launch(Dispatchers.Main) { val results = getResult(apps.data, query) diff --git a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt index b680778363..ad7747778e 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/LawnchairLocalSearchAlgorithm.kt @@ -36,7 +36,6 @@ import com.android.launcher3.LauncherModel import com.android.launcher3.R import com.android.launcher3.allapps.BaseAllAppsAdapter import com.android.launcher3.model.AllAppsList -import com.android.launcher3.model.CacheDataUpdatedTask import com.android.launcher3.model.BgDataModel import com.android.launcher3.model.ModelTaskController import com.android.launcher3.model.data.AppInfo diff --git a/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt b/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt index 93cfea4174..8d18a3f032 100644 --- a/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt +++ b/lawnchair/src/app/lawnchair/search/algorithms/SearchUtils.kt @@ -8,9 +8,9 @@ import com.android.launcher3.model.data.AppInfo import com.android.launcher3.popup.PopupPopulator import com.android.launcher3.search.StringMatcherUtility import com.android.launcher3.shortcuts.ShortcutRequest +import java.util.Locale import me.xdrop.fuzzywuzzy.FuzzySearch import me.xdrop.fuzzywuzzy.algorithms.WeightedRatio -import java.util.Locale object SearchUtils { fun normalSearch(apps: List, query: String, maxResultsCount: Int, hiddenApps: Set, hiddenAppsInSearch: String): List { diff --git a/lawnchair/src/app/lawnchair/smartspace/BcSmartspaceView.kt b/lawnchair/src/app/lawnchair/smartspace/BcSmartspaceView.kt index 323a8270e4..74a7f0e4b1 100644 --- a/lawnchair/src/app/lawnchair/smartspace/BcSmartspaceView.kt +++ b/lawnchair/src/app/lawnchair/smartspace/BcSmartspaceView.kt @@ -16,9 +16,9 @@ import app.lawnchair.smartspace.model.SmartspaceTarget import app.lawnchair.smartspace.provider.SmartspaceProvider import app.lawnchair.util.repeatOnAttached import com.android.launcher3.R +import kotlin.math.roundToInt import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach -import kotlin.math.roundToInt class BcSmartspaceView @JvmOverloads constructor( context: Context, diff --git a/lawnchair/src/app/lawnchair/ui/popup/LawnchairShortcut.kt b/lawnchair/src/app/lawnchair/ui/popup/LawnchairShortcut.kt index e119b4498c..91974dffad 100644 --- a/lawnchair/src/app/lawnchair/ui/popup/LawnchairShortcut.kt +++ b/lawnchair/src/app/lawnchair/ui/popup/LawnchairShortcut.kt @@ -23,13 +23,13 @@ import com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_TASK import com.android.launcher3.R import com.android.launcher3.Utilities import com.android.launcher3.icons.BitmapInfo +import com.android.launcher3.model.data.AppInfo as ModelAppInfo import com.android.launcher3.model.data.ItemInfo import com.android.launcher3.popup.SystemShortcut import com.android.launcher3.util.ComponentKey import com.android.launcher3.util.PackageManagerHelper import com.patrykmichalik.opto.core.firstBlocking import java.net.URISyntaxException -import com.android.launcher3.model.data.AppInfo as ModelAppInfo class LawnchairShortcut { diff --git a/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt b/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt index 37c12827c6..f19a03ca38 100644 --- a/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt +++ b/lawnchair/src/app/lawnchair/util/LawnchairUtils.kt @@ -53,13 +53,13 @@ import com.android.launcher3.util.Themes import com.android.systemui.shared.system.QuickStepContract import com.google.android.renderscript.Toolkit import com.patrykmichalik.opto.core.firstBlocking -import kotlinx.serialization.json.Json -import org.json.JSONArray import java.util.concurrent.Callable import java.util.concurrent.ExecutionException import kotlin.math.max import kotlin.math.roundToInt import kotlin.system.exitProcess +import kotlinx.serialization.json.Json +import org.json.JSONArray fun ensureOnMainThread(creator: (A) -> T): (A) -> T = { it -> if (Looper.myLooper() == Looper.getMainLooper()) { diff --git a/lawnchair/src/app/lawnchair/views/LauncherPreviewView.kt b/lawnchair/src/app/lawnchair/views/LauncherPreviewView.kt index 85430493dc..2e56962dd4 100644 --- a/lawnchair/src/app/lawnchair/views/LauncherPreviewView.kt +++ b/lawnchair/src/app/lawnchair/views/LauncherPreviewView.kt @@ -102,7 +102,7 @@ class LauncherPreviewView( emptyList(), "", null, - null + null, ) MAIN_EXECUTOR.execute { renderView(previewContext, mBgDataModel, mWidgetProvidersMap) diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDismissController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDismissController.java index 9b00c60dec..e3e95dc868 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDismissController.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDismissController.java @@ -29,9 +29,8 @@ import androidx.dynamicanimation.animation.DynamicAnimation; import com.android.launcher3.R; import com.android.launcher3.taskbar.TaskbarActivityContext; import com.android.launcher3.taskbar.TaskbarDragLayer; - -import app.lawnchair.bubbles.DismissView; -import app.lawnchair.common.MagnetizedObject; +import com.android.wm.shell.common.bubbles.DismissView; +import com.android.wm.shell.common.magnetictarget.MagnetizedObject; /** diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragAnimator.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragAnimator.java index 16db0e4469..7b049c510d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragAnimator.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleDragAnimator.java @@ -30,9 +30,9 @@ import androidx.dynamicanimation.animation.FloatPropertyCompat; import com.android.launcher3.R; import com.android.wm.shell.common.bubbles.DismissCircleView; +import com.android.wm.shell.common.bubbles.DismissView; import app.lawnchair.animation.PhysicsAnimator; -import app.lawnchair.bubbles.DismissView; /** * The animator performs the bubble animations while dragging and coordinates diff --git a/lawnchair/src/app/lawnchair/bubbles/DismissView.kt b/wmshell/shared/src/com/android/wm/shell/common/bubbles/DismissView.kt similarity index 74% rename from lawnchair/src/app/lawnchair/bubbles/DismissView.kt rename to wmshell/shared/src/com/android/wm/shell/common/bubbles/DismissView.kt index af1d559626..e06de9e935 100644 --- a/lawnchair/src/app/lawnchair/bubbles/DismissView.kt +++ b/wmshell/shared/src/com/android/wm/shell/common/bubbles/DismissView.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package app.lawnchair.bubbles +package com.android.wm.shell.common.bubbles import android.animation.ObjectAnimator import android.content.Context @@ -35,9 +35,7 @@ import androidx.core.content.ContextCompat import androidx.dynamicanimation.animation.DynamicAnimation import androidx.dynamicanimation.animation.SpringForce.DAMPING_RATIO_LOW_BOUNCY import androidx.dynamicanimation.animation.SpringForce.STIFFNESS_LOW -import app.lawnchair.animation.PhysicsAnimator -import com.android.launcher3.Utilities -import com.android.wm.shell.common.bubbles.DismissCircleView +import com.android.wm.shell.shared.animation.PhysicsAnimator /** * View that handles interactions between DismissCircleView and BubbleStackView. @@ -51,27 +49,27 @@ class DismissView(context: Context) : FrameLayout(context) { * @see [setup] method */ data class Config( - /** The resource id to set on the dismiss target circle view */ - val dismissViewResId: Int, - /** dimen resource id of the dismiss target circle view size */ - @DimenRes val targetSizeResId: Int, - /** dimen resource id of the icon size in the dismiss target */ - @DimenRes val iconSizeResId: Int, - /** dimen resource id of the bottom margin for the dismiss target */ - @DimenRes var bottomMarginResId: Int, - /** dimen resource id of the height for dismiss area gradient */ - @DimenRes val floatingGradientHeightResId: Int, - /** color resource id of the dismiss area gradient color */ - @ColorRes val floatingGradientColorResId: Int, - /** drawable resource id of the dismiss target background */ - @DrawableRes val backgroundResId: Int, - /** drawable resource id of the icon for the dismiss target */ - @DrawableRes val iconResId: Int + /** The resource id to set on the dismiss target circle view */ + val dismissViewResId: Int, + /** dimen resource id of the dismiss target circle view size */ + @DimenRes val targetSizeResId: Int, + /** dimen resource id of the icon size in the dismiss target */ + @DimenRes val iconSizeResId: Int, + /** dimen resource id of the bottom margin for the dismiss target */ + @DimenRes var bottomMarginResId: Int, + /** dimen resource id of the height for dismiss area gradient */ + @DimenRes val floatingGradientHeightResId: Int, + /** color resource id of the dismiss area gradient color */ + @ColorRes val floatingGradientColorResId: Int, + /** drawable resource id of the dismiss target background */ + @DrawableRes val backgroundResId: Int, + /** drawable resource id of the icon for the dismiss target */ + @DrawableRes val iconResId: Int ) companion object { private const val SHOULD_SETUP = - "The view isn't ready. Should be called after `setup`" + "The view isn't ready. Should be called after `setup`" private val TAG = DismissView::class.simpleName } @@ -83,18 +81,18 @@ class DismissView(context: Context) : FrameLayout(context) { private val spring = PhysicsAnimator.SpringConfig(STIFFNESS_LOW, DAMPING_RATIO_LOW_BOUNCY) private val DISMISS_SCRIM_FADE_MS = 200L private var wm: WindowManager = - context.getSystemService(Context.WINDOW_SERVICE) as WindowManager + context.getSystemService(Context.WINDOW_SERVICE) as WindowManager private var gradientDrawable: GradientDrawable? = null private val GRADIENT_ALPHA: IntProperty = - object : IntProperty("alpha") { - override fun setValue(d: GradientDrawable, percent: Int) { - d.alpha = percent - } - override fun get(d: GradientDrawable): Int { - return d.alpha - } + object : IntProperty("alpha") { + override fun setValue(d: GradientDrawable, percent: Int) { + d.alpha = percent } + override fun get(d: GradientDrawable): Int { + return d.alpha + } + } init { setClipToPadding(false) @@ -115,9 +113,9 @@ class DismissView(context: Context) : FrameLayout(context) { // Setup layout layoutParams = LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - resources.getDimensionPixelSize(config.floatingGradientHeightResId), - Gravity.BOTTOM) + ViewGroup.LayoutParams.MATCH_PARENT, + resources.getDimensionPixelSize(config.floatingGradientHeightResId), + Gravity.BOTTOM) updatePadding() // Setup gradient @@ -129,10 +127,10 @@ class DismissView(context: Context) : FrameLayout(context) { circle.setup(config.backgroundResId, config.iconResId, config.iconSizeResId) val targetSize: Int = resources.getDimensionPixelSize(config.targetSizeResId) circle.layoutParams = LayoutParams(targetSize, targetSize, - Gravity.BOTTOM or Gravity.CENTER_HORIZONTAL) + Gravity.BOTTOM or Gravity.CENTER_HORIZONTAL) // Initial position with circle offscreen so it's animated up circle.translationY = resources.getDimensionPixelSize(config.floatingGradientHeightResId) - .toFloat() + .toFloat() } /** @@ -144,7 +142,7 @@ class DismissView(context: Context) : FrameLayout(context) { isShowing = true setVisibility(View.VISIBLE) val alphaAnim = ObjectAnimator.ofInt(gradientDrawable, GRADIENT_ALPHA, - gradientDrawable.alpha, 255) + gradientDrawable.alpha, 255) alphaAnim.setDuration(DISMISS_SCRIM_FADE_MS) alphaAnim.start() @@ -163,7 +161,7 @@ class DismissView(context: Context) : FrameLayout(context) { val gradientDrawable = checkExists(gradientDrawable) ?: return isShowing = false val alphaAnim = ObjectAnimator.ofInt(gradientDrawable, GRADIENT_ALPHA, - gradientDrawable.alpha, 0) + gradientDrawable.alpha, 0) alphaAnim.setDuration(DISMISS_SCRIM_FADE_MS) alphaAnim.start() animator @@ -198,12 +196,12 @@ class DismissView(context: Context) : FrameLayout(context) { val gradientColor = ContextCompat.getColor(context, color) val alpha = 0.7f * 255 val gradientColorWithAlpha = Color.argb(alpha.toInt(), - Color.red(gradientColor), - Color.green(gradientColor), - Color.blue(gradientColor)) + Color.red(gradientColor), + Color.green(gradientColor), + Color.blue(gradientColor)) val gd = GradientDrawable( - GradientDrawable.Orientation.BOTTOM_TOP, - intArrayOf(gradientColorWithAlpha, Color.TRANSPARENT)) + GradientDrawable.Orientation.BOTTOM_TOP, + intArrayOf(gradientColorWithAlpha, Color.TRANSPARENT)) gd.setDither(true) gd.setAlpha(0) return gd @@ -213,7 +211,7 @@ class DismissView(context: Context) : FrameLayout(context) { val config = checkExists(config) ?: return val insets: WindowInsets = wm.getCurrentWindowMetrics().getWindowInsets() val navInset = insets.getInsetsIgnoringVisibility( - WindowInsets.Type.navigationBars()) + WindowInsets.Type.navigationBars()) setPadding(0, 0, 0, navInset.bottom + resources.getDimensionPixelSize(config.bottomMarginResId)) } diff --git a/lawnchair/src/app/lawnchair/common/MagnetizedObject.kt b/wmshell/shared/src/com/android/wm/shell/common/magnetictarget/MagnetizedObject.kt similarity index 94% rename from lawnchair/src/app/lawnchair/common/MagnetizedObject.kt rename to wmshell/shared/src/com/android/wm/shell/common/magnetictarget/MagnetizedObject.kt index 4f1b9deab4..123d4dc491 100644 --- a/lawnchair/src/app/lawnchair/common/MagnetizedObject.kt +++ b/wmshell/shared/src/com/android/wm/shell/common/magnetictarget/MagnetizedObject.kt @@ -1,4 +1,3 @@ - /* * Copyright (C) 2020 The Android Open Source Project * @@ -14,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package app.lawnchair.common +package com.android.wm.shell.common.magnetictarget import android.annotation.SuppressLint import android.content.Context @@ -150,7 +149,7 @@ abstract class MagnetizedObject( private val velocityTracker: VelocityTracker = VelocityTracker.obtain() private val vibrator: Vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator private val vibrationAttributes: VibrationAttributes = VibrationAttributes.createForUsage( - VibrationAttributes.USAGE_TOUCH) + VibrationAttributes.USAGE_TOUCH) private var touchDown = PointF() private var touchSlop = 0 @@ -191,7 +190,7 @@ abstract class MagnetizedObject( * was flung, and a callback you must call after your animation completes. */ var animateStuckToTarget: (MagneticTarget, Float, Float, Boolean, (() -> Unit)?) -> Unit = - ::animateStuckToTargetInternal + ::animateStuckToTargetInternal /** * Sets whether forcefully flinging the object vertically towards a target causes it to be @@ -264,7 +263,7 @@ abstract class MagnetizedObject( /** Default spring configuration to use for animating the object into a target. */ var springConfig = PhysicsAnimator.SpringConfig( - SpringForce.STIFFNESS_MEDIUM, SpringForce.DAMPING_RATIO_NO_BOUNCY) + SpringForce.STIFFNESS_MEDIUM, SpringForce.DAMPING_RATIO_NO_BOUNCY) /** * Spring configuration to use to spring the object into a target specifically when it's flung @@ -357,23 +356,23 @@ abstract class MagnetizedObject( val targetObjectIsInMagneticFieldOf = associatedTargets.firstOrNull { target -> val distanceFromTargetCenter = hypot( - ev.rawX - target.centerOnDisplayX(), - ev.rawY - target.centerOnDisplayY()) + ev.rawX - target.centerOnDisplayX(), + ev.rawY - target.centerOnDisplayY()) distanceFromTargetCenter < target.magneticFieldRadiusPx } // If we aren't currently stuck to a target, and we're in the magnetic field of a target, // we're newly stuck. val objectNewlyStuckToTarget = - !objectStuckToTarget && targetObjectIsInMagneticFieldOf != null + !objectStuckToTarget && targetObjectIsInMagneticFieldOf != null // If we are currently stuck to a target, we're in the magnetic field of a target, and that // target isn't the one we're currently stuck to, then touch events have moved into a // adjacent target's magnetic field. val objectMovedIntoDifferentTarget = - objectStuckToTarget && - targetObjectIsInMagneticFieldOf != null && - targetObjectIsStuckTo != targetObjectIsInMagneticFieldOf + objectStuckToTarget && + targetObjectIsInMagneticFieldOf != null && + targetObjectIsStuckTo != targetObjectIsInMagneticFieldOf if (objectNewlyStuckToTarget || objectMovedIntoDifferentTarget) { velocityTracker.computeCurrentVelocity(1000) @@ -402,9 +401,9 @@ abstract class MagnetizedObject( // move the object out of the target using its own movement logic. cancelAnimations() magnetListener.onUnstuckFromTarget( - targetObjectIsStuckTo!!, this, - velocityTracker.xVelocity, velocityTracker.yVelocity, - wasFlungOut = false) + targetObjectIsStuckTo!!, this, + velocityTracker.xVelocity, velocityTracker.yVelocity, + wasFlungOut = false) targetObjectIsStuckTo = null vibrateIfEnabled(VibrationEffect.EFFECT_TICK) @@ -426,8 +425,8 @@ abstract class MagnetizedObject( // the upward direction, tell the listener so the object can be animated out of // the target. magnetListener.onUnstuckFromTarget( - targetObjectIsStuckTo!!, this, - velX, velY, wasFlungOut = true) + targetObjectIsStuckTo!!, this, + velX, velY, wasFlungOut = true) } else { // If the object is stuck and not flung away, it was released inside the target. magnetListener.onReleasedInTarget(targetObjectIsStuckTo!!, this) @@ -510,10 +509,10 @@ abstract class MagnetizedObject( // Animate to the center of the target. animator - .spring(xProperty, xProperty.getValue(underlyingObject) + xDiff, velX, - springConfig) - .spring(yProperty, yProperty.getValue(underlyingObject) + yDiff, velY, - springConfig) + .spring(xProperty, xProperty.getValue(underlyingObject) + xDiff, velX, + springConfig) + .spring(yProperty, yProperty.getValue(underlyingObject) + yDiff, velY, + springConfig) if (physicsAnimatorUpdateListener != null) { animator.addUpdateListener(physicsAnimatorUpdateListener!!) @@ -548,8 +547,8 @@ abstract class MagnetizedObject( // Whether velocity is sufficient, depending on whether we're flinging into a target at the // top or the bottom of the screen. val velocitySufficient = - if (rawY < target.centerOnDisplayY()) velY > flingToTargetMinVelocity - else velY < flingToTargetMinVelocity + if (rawY < target.centerOnDisplayY()) velY > flingToTargetMinVelocity + else velY < flingToTargetMinVelocity if (!velocitySufficient) { return false @@ -589,7 +588,7 @@ abstract class MagnetizedObject( // Update the touch slop, since the configuration may have changed. if (associatedTargets.size > 0) { touchSlop = - ViewConfiguration.get(associatedTargets[0].targetView.context).scaledTouchSlop + ViewConfiguration.get(associatedTargets[0].targetView.context).scaledTouchSlop } } @@ -632,8 +631,8 @@ abstract class MagnetizedObject( // Add half of the target size to get the center, and subtract translation since the // target could be animating in while we're doing this calculation. centerOnScreen.set( - tempLoc[0] + targetView.width / 2f - targetView.translationX, - tempLoc[1] + targetView.height / 2f - targetView.translationY) + tempLoc[0] + targetView.width / 2f - targetView.translationX, + tempLoc[1] + targetView.height / 2f - targetView.translationY) } } @@ -682,10 +681,10 @@ abstract class MagnetizedObject( @JvmStatic fun magnetizeView(view: T): MagnetizedObject { return object : MagnetizedObject( - view.context, - view, - DynamicAnimation.TRANSLATION_X, - DynamicAnimation.TRANSLATION_Y) { + view.context, + view, + DynamicAnimation.TRANSLATION_X, + DynamicAnimation.TRANSLATION_Y) { override fun getWidth(underlyingObject: T): Float { return underlyingObject.width.toFloat() }