arblant
Railynx / android / app / src / main / kotlin / com / arblant / railwayipscanner / MainActivity.kt
MainActivity.kt26 lines · 1.1 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
package com.arblant.railwayipscanner

import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel

class MainActivity : FlutterActivity() {
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        // Settings -> Frame rate: cap this window's refresh rate
        // (0 = no preference, the panel's maximum). The Dart side
        // treats every failure as "run uncapped".
        MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "railynx/fps")
            .setMethodCallHandler { call, result ->
                if (call.method == "set") {
                    val fps = call.argument<Number>("fps")?.toFloat() ?: 0f
                    val attrs = window.attributes
                    attrs.preferredRefreshRate = fps
                    window.attributes = attrs
                    result.success(null)
                } else {
                    result.notImplemented()
                }
            }
    }
}