mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-07-29 15:28:48 +02:00
feat(android): request highest display refresh rate at current resolution
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user