feat(android): request highest display refresh rate at current resolution

This commit is contained in:
zarzet
2026-07-14 09:09:47 +07:00
parent e8c9df20b3
commit 8d914d967c
@@ -1962,9 +1962,31 @@ class MainActivity: FlutterFragmentActivity() {
// delegate looks it up by cached id (see getCachedEngineId above).
AudioServicePlugin.getFlutterEngine(this)
super.onCreate(savedInstanceState)
requestHighRefreshRate()
handleExtensionOAuthIntent(intent)
}
// Flutter does not request a display mode, so many devices keep the
// activity at 60Hz even on 90/120Hz panels. Prefer the highest refresh
// rate available at the current resolution.
private fun requestHighRefreshRate() {
val display =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) display
else @Suppress("DEPRECATION") windowManager.defaultDisplay
val current = display?.mode ?: return
val best = display.supportedModes
.filter {
it.physicalWidth == current.physicalWidth &&
it.physicalHeight == current.physicalHeight
}
.maxByOrNull { it.refreshRate } ?: return
if (best.modeId != current.modeId) {
window.attributes = window.attributes.apply {
preferredDisplayModeId = best.modeId
}
}
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
setIntent(intent)