You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.6 KiB
Kotlin
36 lines
1.6 KiB
Kotlin
package com.cloud.diplomaticquarterapp
|
|
import android.content.ContentResolver
|
|
import android.content.Context
|
|
import android.media.RingtoneManager
|
|
import io.flutter.embedding.android.FlutterActivity
|
|
import io.flutter.embedding.engine.FlutterEngine
|
|
import io.flutter.plugin.common.MethodCall
|
|
import io.flutter.plugin.common.MethodChannel
|
|
import io.flutter.plugins.GeneratedPluginRegistrant
|
|
|
|
class MainActivity : FlutterActivity() {
|
|
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
|
GeneratedPluginRegistrant.registerWith(flutterEngine)
|
|
MethodChannel(flutterEngine.dartExecutor, "crossingthestreams.io/resourceResolver").setMethodCallHandler { call: MethodCall, result: MethodChannel.Result ->
|
|
if ("drawableToUri" == call.method) {
|
|
val resourceId = this@MainActivity.resources.getIdentifier(call.arguments as String, "drawable", this@MainActivity.packageName)
|
|
result.success(resourceToUriString(this@MainActivity.applicationContext, resourceId))
|
|
}
|
|
if ("getAlarmUri" == call.method) {
|
|
result.success(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM).toString())
|
|
}
|
|
}
|
|
}
|
|
|
|
companion object {
|
|
private fun resourceToUriString(context: Context, resId: Int): String {
|
|
return (ContentResolver.SCHEME_ANDROID_RESOURCE
|
|
+ "://"
|
|
+ context.resources.getResourcePackageName(resId)
|
|
+ "/"
|
|
+ context.resources.getResourceTypeName(resId)
|
|
+ "/"
|
|
+ context.resources.getResourceEntryName(resId))
|
|
}
|
|
}
|
|
} |