diff options
author | 2025-03-24 11:10:42 -0700 | |
---|---|---|
committer | 2025-03-24 11:10:42 -0700 | |
commit | 69998a8c779a20f0d00c0338be3eb7cad943021b (patch) | |
tree | af9ff4e1dc193b016a05de29107114f7d27db3ac /quickstep | |
parent | e0a018785efb805a35e1bd8cedea622b57ae2f63 (diff) | |
parent | 836a832bfe4de06ab5ebec4fe3aaa8f44392bbd4 (diff) |
Merge "Using Choreographer for getting refreshrate instead of display manager" into main
Diffstat (limited to 'quickstep')
-rw-r--r-- | quickstep/src/com/android/launcher3/dagger/Modules.kt | 6 | ||||
-rw-r--r-- | quickstep/src/com/android/quickstep/util/ChoreographerFrameRateTracker.kt | 31 |
2 files changed, 37 insertions, 0 deletions
diff --git a/quickstep/src/com/android/launcher3/dagger/Modules.kt b/quickstep/src/com/android/launcher3/dagger/Modules.kt index 7671a82869..9723b42c62 100644 --- a/quickstep/src/com/android/launcher3/dagger/Modules.kt +++ b/quickstep/src/com/android/launcher3/dagger/Modules.kt @@ -21,8 +21,10 @@ import com.android.launcher3.uioverrides.SystemApiWrapper import com.android.launcher3.uioverrides.plugins.PluginManagerWrapperImpl import com.android.launcher3.util.ApiWrapper import com.android.launcher3.util.PluginManagerWrapper +import com.android.launcher3.util.window.RefreshRateTracker import com.android.launcher3.util.window.WindowManagerProxy import com.android.launcher3.widget.LauncherWidgetHolder.WidgetHolderFactory +import com.android.quickstep.util.ChoreographerFrameRateTracker import com.android.quickstep.util.GestureExclusionManager import com.android.quickstep.util.SystemWindowManagerProxy import dagger.Binds @@ -60,4 +62,8 @@ object StaticObjectModule { @Provides @JvmStatic fun provideGestureExclusionManager(): GestureExclusionManager = GestureExclusionManager.INSTANCE + + @Provides + @JvmStatic + fun provideRefreshRateTracker(): RefreshRateTracker = ChoreographerFrameRateTracker } diff --git a/quickstep/src/com/android/quickstep/util/ChoreographerFrameRateTracker.kt b/quickstep/src/com/android/quickstep/util/ChoreographerFrameRateTracker.kt new file mode 100644 index 0000000000..1b61a6af6b --- /dev/null +++ b/quickstep/src/com/android/quickstep/util/ChoreographerFrameRateTracker.kt @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.quickstep.util + +import android.util.TimeUtils +import android.view.Choreographer +import com.android.launcher3.util.window.RefreshRateTracker + +/** [RefreshRateTracker] using main thread [Choreographer] */ +object ChoreographerFrameRateTracker : RefreshRateTracker { + + override val singleFrameMs: Int + get() = + Choreographer.getMainThreadInstance()?.let { + (it.frameIntervalNanos / TimeUtils.NANOS_PER_MS).toInt().coerceAtLeast(1) + } ?: 1 +} |