Mobile. Share Screen. Fix "service" button causes canvas overflow
This commit is contained in:
parent
c30f1fc420
commit
4c993fcecb
@ -2,6 +2,7 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/mobile/widgets/dialog.dart';
|
import 'package:flutter_hbb/mobile/widgets/dialog.dart';
|
||||||
|
import 'package:get/get.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../../common.dart';
|
import '../../common.dart';
|
||||||
@ -264,70 +265,73 @@ class _PermissionCheckerState extends State<PermissionChecker> {
|
|||||||
} else {
|
} else {
|
||||||
status = 'Ready';
|
status = 'Ready';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @todo Theming
|
||||||
|
Widget ServerStateMessage() {
|
||||||
|
if (!serverModel.mediaOk) {
|
||||||
|
return Row(children: [
|
||||||
|
const Icon(Icons.warning_amber_outlined,
|
||||||
|
color: Colors.redAccent, size: 24)
|
||||||
|
.marginOnly(right: 10),
|
||||||
|
Expanded(child: Text(translate('Service is not running')))
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (serverModel.connectStatus == -1) {
|
||||||
|
return Row(children: [
|
||||||
|
const Icon(Icons.warning_amber_sharp,
|
||||||
|
color: Colors.redAccent, size: 24)
|
||||||
|
.marginOnly(right: 10),
|
||||||
|
Expanded(child: Text(translate('not_ready_status')))
|
||||||
|
]);
|
||||||
|
} else if (serverModel.connectStatus == 0) {
|
||||||
|
return Row(children: [
|
||||||
|
SizedBox(width: 20, height: 20, child: CircularProgressIndicator())
|
||||||
|
.marginOnly(left: 4, right: 10),
|
||||||
|
Expanded(child: Text(translate('connecting_status')))
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
return Row(children: [
|
||||||
|
const Icon(Icons.check, color: Colors.greenAccent, size: 24)
|
||||||
|
.marginOnly(right: 10),
|
||||||
|
Expanded(child: Text(translate('Ready')))
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return PaddingCard(
|
return PaddingCard(
|
||||||
title: translate("Permissions"),
|
title: translate("Permissions"),
|
||||||
child: Column(
|
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
PermissionRow(translate("Screen Capture"), serverModel.mediaOk,
|
||||||
children: [
|
serverModel.toggleService),
|
||||||
PermissionRow(translate("Screen Capture"), serverModel.mediaOk,
|
PermissionRow(translate("Input Control"), serverModel.inputOk,
|
||||||
serverModel.toggleService),
|
serverModel.toggleInput),
|
||||||
PermissionRow(translate("Input Control"), serverModel.inputOk,
|
PermissionRow(translate("Transfer File"), serverModel.fileOk,
|
||||||
serverModel.toggleInput),
|
serverModel.toggleFile),
|
||||||
PermissionRow(translate("Transfer File"), serverModel.fileOk,
|
hasAudioPermission
|
||||||
serverModel.toggleFile),
|
? PermissionRow(translate("Audio Capture"), serverModel.audioOk,
|
||||||
hasAudioPermission
|
serverModel.toggleAudio)
|
||||||
? PermissionRow(translate("Audio Capture"), serverModel.audioOk,
|
: Text(
|
||||||
serverModel.toggleAudio)
|
"* ${translate("android_version_audio_tip")}",
|
||||||
: Text(
|
style: const TextStyle(color: MyTheme.darkGray),
|
||||||
"* ${translate("android_version_audio_tip")}",
|
),
|
||||||
style: const TextStyle(color: MyTheme.darkGray),
|
const SizedBox(height: 8),
|
||||||
),
|
serverModel.mediaOk
|
||||||
const SizedBox(height: 8),
|
? ElevatedButton.icon(
|
||||||
Row(
|
style: ButtonStyle(
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
backgroundColor:
|
||||||
children: [
|
MaterialStateProperty.all(Colors.red)),
|
||||||
Expanded(
|
icon: const Icon(Icons.stop),
|
||||||
flex: 0,
|
onPressed: serverModel.toggleService,
|
||||||
child: serverModel.mediaOk
|
label: Text(translate("Stop service")))
|
||||||
? ElevatedButton.icon(
|
.marginOnly(bottom: 8)
|
||||||
style: ButtonStyle(
|
: ElevatedButton.icon(
|
||||||
backgroundColor:
|
icon: const Icon(Icons.play_arrow),
|
||||||
MaterialStateProperty.all(Colors.red)),
|
onPressed: serverModel.toggleService,
|
||||||
icon: const Icon(Icons.stop),
|
label: Text(translate("Start Service")))
|
||||||
onPressed: serverModel.toggleService,
|
.marginOnly(bottom: 8),
|
||||||
label: Text(translate("Stop service")))
|
ServerStateMessage()
|
||||||
: ElevatedButton.icon(
|
]));
|
||||||
icon: const Icon(Icons.play_arrow),
|
|
||||||
onPressed: serverModel.toggleService,
|
|
||||||
label: Text(translate("Start Service")))),
|
|
||||||
Expanded(
|
|
||||||
child: serverModel.mediaOk
|
|
||||||
? Row(
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
flex: 0,
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(
|
|
||||||
left: 20, right: 5),
|
|
||||||
child: Icon(Icons.circle,
|
|
||||||
color: serverModel.connectStatus > 0
|
|
||||||
? Colors.greenAccent
|
|
||||||
: Colors.deepOrangeAccent,
|
|
||||||
size: 10))),
|
|
||||||
Expanded(
|
|
||||||
child: Text(translate(status),
|
|
||||||
softWrap: true,
|
|
||||||
style: const TextStyle(
|
|
||||||
fontSize: 14.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
color: MyTheme.accent80)))
|
|
||||||
],
|
|
||||||
)
|
|
||||||
: const SizedBox.shrink())
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user