mirror of
https://github.com/weyne85/rustdesk.git
synced 2025-10-29 17:00:05 +00:00
android late request permission;update chat UI,launch chat from UI cm
This commit is contained in:
@@ -15,7 +15,6 @@ import androidx.annotation.RequiresApi
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import java.lang.Exception
|
||||
|
||||
const val MEDIA_REQUEST_CODE = 42
|
||||
|
||||
@@ -36,7 +35,6 @@ class MainActivity : FlutterActivity() {
|
||||
Intent(this, MainService::class.java).also {
|
||||
bindService(it, serviceConnection, Context.BIND_AUTO_CREATE)
|
||||
}
|
||||
checkPermissions(this)
|
||||
updateMachineInfo()
|
||||
flutterMethodChannel = MethodChannel(
|
||||
flutterEngine.dartExecutor.binaryMessenger,
|
||||
@@ -67,6 +65,16 @@ class MainActivity : FlutterActivity() {
|
||||
result.success(false)
|
||||
}
|
||||
}
|
||||
"check_permission" -> {
|
||||
if(call.arguments is String){
|
||||
result.success(checkPermission(context, call.arguments as String))
|
||||
}
|
||||
}
|
||||
"request_permission" -> {
|
||||
if(call.arguments is String){
|
||||
requestPermission(context, call.arguments as String)
|
||||
}
|
||||
}
|
||||
"check_video_permission" -> {
|
||||
mainService?.let {
|
||||
result.success(it.checkMediaPermission())
|
||||
@@ -76,11 +84,11 @@ class MainActivity : FlutterActivity() {
|
||||
}
|
||||
"check_service" -> {
|
||||
flutterMethodChannel.invokeMethod(
|
||||
"on_permission_changed",
|
||||
"on_state_changed",
|
||||
mapOf("name" to "input", "value" to InputService.isOpen.toString())
|
||||
)
|
||||
flutterMethodChannel.invokeMethod(
|
||||
"on_permission_changed",
|
||||
"on_state_changed",
|
||||
mapOf("name" to "media", "value" to mainService?.isReady.toString())
|
||||
)
|
||||
}
|
||||
@@ -94,7 +102,7 @@ class MainActivity : FlutterActivity() {
|
||||
}
|
||||
InputService.ctx = null
|
||||
flutterMethodChannel.invokeMethod(
|
||||
"on_permission_changed",
|
||||
"on_state_changed",
|
||||
mapOf("name" to "input", "value" to InputService.isOpen.toString())
|
||||
)
|
||||
}
|
||||
@@ -154,7 +162,7 @@ class MainActivity : FlutterActivity() {
|
||||
Log.d(logTag, "onResume inputPer:$inputPer")
|
||||
activity.runOnUiThread {
|
||||
flutterMethodChannel.invokeMethod(
|
||||
"on_permission_changed",
|
||||
"on_state_changed",
|
||||
mapOf("name" to "input", "value" to inputPer.toString())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@ class MainService : Service() {
|
||||
fun checkMediaPermission(): Boolean {
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
MainActivity.flutterMethodChannel.invokeMethod(
|
||||
"on_permission_changed",
|
||||
"on_state_changed",
|
||||
mapOf("name" to "media", "value" to isReady.toString())
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
package com.carriez.flutter_hbb
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.*
|
||||
import android.app.PendingIntent.FLAG_UPDATE_CURRENT
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.media.MediaCodecList
|
||||
import android.media.MediaFormat
|
||||
import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.app.NotificationCompat
|
||||
import com.hjq.permissions.Permission
|
||||
import com.hjq.permissions.XXPermissions
|
||||
import java.util.*
|
||||
@@ -40,13 +37,44 @@ fun testVP9Support(): Boolean {
|
||||
return res != null
|
||||
}
|
||||
|
||||
fun checkPermissions(context: Context) {
|
||||
fun requestPermission(context: Context,type: String){
|
||||
val permission = when (type) {
|
||||
"audio" -> {
|
||||
Permission.RECORD_AUDIO
|
||||
}
|
||||
"file" -> {
|
||||
Permission.MANAGE_EXTERNAL_STORAGE
|
||||
}
|
||||
else -> {
|
||||
return
|
||||
}
|
||||
}
|
||||
XXPermissions.with(context)
|
||||
.permission(Permission.RECORD_AUDIO)
|
||||
.permission(Permission.MANAGE_EXTERNAL_STORAGE)
|
||||
.permission(permission)
|
||||
.request { permissions, all ->
|
||||
if (all) {
|
||||
Log.d("loglog", "获取存储权限成功:$permissions")
|
||||
Log.d("checkPermissions", "获取存储权限成功:$permissions")
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
MainActivity.flutterMethodChannel.invokeMethod(
|
||||
"on_android_permission_result",
|
||||
mapOf("type" to type, "result" to all)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun checkPermission(context: Context,type: String): Boolean {
|
||||
val permission = when (type) {
|
||||
"audio" -> {
|
||||
Permission.RECORD_AUDIO
|
||||
}
|
||||
"file" -> {
|
||||
Permission.MANAGE_EXTERNAL_STORAGE
|
||||
}
|
||||
else -> {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return XXPermissions.isGranted(context,permission)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user