🐛 Fixes call
This commit is contained in:
@@ -22,8 +22,10 @@ class CallControlsBar extends HookConsumerWidget {
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
child: Wrap(
|
||||
alignment: WrapAlignment.center,
|
||||
runSpacing: 16,
|
||||
spacing: 16,
|
||||
children: [
|
||||
_buildCircularButtonWithDropdown(
|
||||
context: context,
|
||||
@@ -35,7 +37,6 @@ class CallControlsBar extends HookConsumerWidget {
|
||||
hasDropdown: true,
|
||||
deviceType: 'videoinput',
|
||||
),
|
||||
const Gap(16),
|
||||
_buildCircularButton(
|
||||
icon:
|
||||
callState.isScreenSharing
|
||||
@@ -44,7 +45,6 @@ class CallControlsBar extends HookConsumerWidget {
|
||||
onPressed: () => callNotifier.toggleScreenShare(),
|
||||
backgroundColor: const Color(0xFF424242),
|
||||
),
|
||||
const Gap(16),
|
||||
_buildCircularButtonWithDropdown(
|
||||
context: context,
|
||||
ref: ref,
|
||||
@@ -54,7 +54,14 @@ class CallControlsBar extends HookConsumerWidget {
|
||||
hasDropdown: true,
|
||||
deviceType: 'audioinput',
|
||||
),
|
||||
const Gap(16),
|
||||
_buildCircularButton(
|
||||
icon:
|
||||
callState.isSpeakerphone
|
||||
? Symbols.mobile_speaker
|
||||
: Symbols.ear_sound,
|
||||
onPressed: () => callNotifier.toggleSpeakerphone(),
|
||||
backgroundColor: const Color(0xFF424242),
|
||||
),
|
||||
_buildCircularButton(
|
||||
icon: Icons.call_end,
|
||||
onPressed:
|
||||
@@ -259,24 +266,14 @@ class CallControlsBar extends HookConsumerWidget {
|
||||
}
|
||||
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
'${'switchedTo'.tr()} ${device.label.isNotEmpty ? device.label : 'selectedDevice'.tr()}',
|
||||
),
|
||||
backgroundColor: Colors.green,
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
if (context.mounted) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text('${'failedToSwitchDevice'.tr()}: $e'),
|
||||
backgroundColor: Colors.red,
|
||||
showSnackBar(
|
||||
'switchedTo'.tr(
|
||||
args: [device.label.isNotEmpty ? device.label : 'device'],
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (err) {
|
||||
showErrorAlert(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:flutter_popup_card/flutter_popup_card.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
@@ -18,6 +19,10 @@ class CallParticipantCard extends HookConsumerWidget {
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final width =
|
||||
math.min(MediaQuery.of(context).size.width - 80, 360).toDouble();
|
||||
final callNotifier = ref.watch(callNotifierProvider.notifier);
|
||||
|
||||
final volumeSliderValue = useState(callNotifier.getParticipantVolume(live));
|
||||
|
||||
return PopupCard(
|
||||
elevation: 8,
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)),
|
||||
@@ -28,7 +33,31 @@ class CallParticipantCard extends HookConsumerWidget {
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
Column(
|
||||
spacing: 4,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
const Icon(Symbols.sound_detection_loud_sound, size: 16),
|
||||
const Gap(8),
|
||||
Expanded(
|
||||
child: Slider(
|
||||
value: volumeSliderValue.value,
|
||||
onChanged: (value) {
|
||||
volumeSliderValue.value = value;
|
||||
},
|
||||
onChangeEnd: (value) {
|
||||
callNotifier.setParticipantVolume(live, value);
|
||||
},
|
||||
year2023: true,
|
||||
padding: EdgeInsets.zero,
|
||||
),
|
||||
),
|
||||
const Gap(8),
|
||||
Text(
|
||||
'${(volumeSliderValue.value * 100).toStringAsFixed(0)}%',
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
const Icon(Symbols.wifi, size: 16),
|
||||
|
@@ -1,7 +1,6 @@
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:island/models/file.dart';
|
||||
import 'package:island/pods/config.dart';
|
||||
|
@@ -81,7 +81,10 @@ class MarkdownTextContent extends HookConsumerWidget {
|
||||
if (url != null) {
|
||||
if (url.scheme == 'solian') {
|
||||
if (url.host == 'account') {
|
||||
context.pushNamed('accountProfile', pathParameters: {'name': url.pathSegments[0]});
|
||||
context.pushNamed(
|
||||
'accountProfile',
|
||||
pathParameters: {'name': url.pathSegments[0]},
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -153,7 +156,7 @@ class MarkdownTextContent extends HookConsumerWidget {
|
||||
),
|
||||
child: UniversalImage(
|
||||
uri:
|
||||
'$baseUrl/stickers/lookup/${uri.pathSegments[0]}/open',
|
||||
'$baseUrl/sphere/stickers/lookup/${uri.pathSegments[0]}/open',
|
||||
width: size,
|
||||
height: size,
|
||||
fit: BoxFit.cover,
|
||||
|
Reference in New Issue
Block a user