chore: Follow up qr code buttons
This commit is contained in:
parent
11817e6eb3
commit
21196a108f
3 changed files with 62 additions and 13 deletions
|
|
@ -9,10 +9,12 @@ import 'package:fluffychat/pages/chat_details/chat_details.dart';
|
||||||
import 'package:fluffychat/pages/chat_details/participant_list_item.dart';
|
import 'package:fluffychat/pages/chat_details/participant_list_item.dart';
|
||||||
import 'package:fluffychat/utils/fluffy_share.dart';
|
import 'package:fluffychat/utils/fluffy_share.dart';
|
||||||
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
|
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
|
||||||
|
import 'package:fluffychat/utils/show_scaffold_dialog.dart';
|
||||||
import 'package:fluffychat/widgets/avatar.dart';
|
import 'package:fluffychat/widgets/avatar.dart';
|
||||||
import 'package:fluffychat/widgets/chat_settings_popup_menu.dart';
|
import 'package:fluffychat/widgets/chat_settings_popup_menu.dart';
|
||||||
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
import 'package:fluffychat/widgets/layouts/max_width_body.dart';
|
||||||
import 'package:fluffychat/widgets/matrix.dart';
|
import 'package:fluffychat/widgets/matrix.dart';
|
||||||
|
import 'package:fluffychat/widgets/share_scaffold_dialog.dart';
|
||||||
import '../../utils/url_launcher.dart';
|
import '../../utils/url_launcher.dart';
|
||||||
import '../../widgets/qr_code_viewer.dart';
|
import '../../widgets/qr_code_viewer.dart';
|
||||||
|
|
||||||
|
|
@ -57,7 +59,18 @@ class ChatDetailsView extends StatelessWidget {
|
||||||
const Center(child: BackButton()),
|
const Center(child: BackButton()),
|
||||||
elevation: theme.appBarTheme.elevation,
|
elevation: theme.appBarTheme.elevation,
|
||||||
actions: <Widget>[
|
actions: <Widget>[
|
||||||
if (room.canonicalAlias.isNotEmpty)
|
if (room.canonicalAlias.isNotEmpty) ...[
|
||||||
|
IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
showScaffoldDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => ShareScaffoldDialog(
|
||||||
|
items: [TextShareItem(room.canonicalAlias)],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.forward_outlined),
|
||||||
|
),
|
||||||
IconButton(
|
IconButton(
|
||||||
tooltip: L10n.of(context).share,
|
tooltip: L10n.of(context).share,
|
||||||
icon: const Icon(Icons.qr_code_rounded),
|
icon: const Icon(Icons.qr_code_rounded),
|
||||||
|
|
@ -66,6 +79,7 @@ class ChatDetailsView extends StatelessWidget {
|
||||||
room.canonicalAlias,
|
room.canonicalAlias,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
],
|
||||||
if (controller.widget.embeddedCloseButton == null)
|
if (controller.widget.embeddedCloseButton == null)
|
||||||
ChatSettingsPopupMenu(room, false),
|
ChatSettingsPopupMenu(room, false),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,12 @@ import 'package:matrix/matrix.dart';
|
||||||
import 'package:fluffychat/config/app_config.dart';
|
import 'package:fluffychat/config/app_config.dart';
|
||||||
import 'package:fluffychat/utils/date_time_extension.dart';
|
import 'package:fluffychat/utils/date_time_extension.dart';
|
||||||
import 'package:fluffychat/utils/fluffy_share.dart';
|
import 'package:fluffychat/utils/fluffy_share.dart';
|
||||||
|
import 'package:fluffychat/utils/show_scaffold_dialog.dart';
|
||||||
import 'package:fluffychat/utils/url_launcher.dart';
|
import 'package:fluffychat/utils/url_launcher.dart';
|
||||||
import 'package:fluffychat/widgets/avatar.dart';
|
import 'package:fluffychat/widgets/avatar.dart';
|
||||||
import 'package:fluffychat/widgets/presence_builder.dart';
|
import 'package:fluffychat/widgets/presence_builder.dart';
|
||||||
import 'package:fluffychat/widgets/qr_code_viewer.dart';
|
import 'package:fluffychat/widgets/qr_code_viewer.dart';
|
||||||
|
import 'package:fluffychat/widgets/share_scaffold_dialog.dart';
|
||||||
import '../../widgets/matrix.dart';
|
import '../../widgets/matrix.dart';
|
||||||
import 'user_bottom_sheet.dart';
|
import 'user_bottom_sheet.dart';
|
||||||
|
|
||||||
|
|
@ -41,6 +43,21 @@ class UserBottomSheetView extends StatelessWidget {
|
||||||
centerTitle: false,
|
centerTitle: false,
|
||||||
title: Text(displayname),
|
title: Text(displayname),
|
||||||
actions: [
|
actions: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||||
|
child: IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
showScaffoldDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => ShareScaffoldDialog(
|
||||||
|
items: [TextShareItem(userId)],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.forward_outlined),
|
||||||
|
),
|
||||||
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||||
child: IconButton(
|
child: IconButton(
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,13 @@ import 'package:go_router/go_router.dart';
|
||||||
import 'package:matrix/matrix.dart';
|
import 'package:matrix/matrix.dart';
|
||||||
|
|
||||||
import 'package:fluffychat/utils/fluffy_share.dart';
|
import 'package:fluffychat/utils/fluffy_share.dart';
|
||||||
|
import 'package:fluffychat/utils/show_scaffold_dialog.dart';
|
||||||
import 'package:fluffychat/utils/url_launcher.dart';
|
import 'package:fluffychat/utils/url_launcher.dart';
|
||||||
import 'package:fluffychat/widgets/avatar.dart';
|
import 'package:fluffychat/widgets/avatar.dart';
|
||||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||||
import 'package:fluffychat/widgets/matrix.dart';
|
import 'package:fluffychat/widgets/matrix.dart';
|
||||||
import 'package:fluffychat/widgets/qr_code_viewer.dart';
|
import 'package:fluffychat/widgets/qr_code_viewer.dart';
|
||||||
|
import 'package:fluffychat/widgets/share_scaffold_dialog.dart';
|
||||||
|
|
||||||
class PublicRoomBottomSheet extends StatelessWidget {
|
class PublicRoomBottomSheet extends StatelessWidget {
|
||||||
final String? roomAlias;
|
final String? roomAlias;
|
||||||
|
|
@ -98,19 +100,35 @@ class PublicRoomBottomSheet extends StatelessWidget {
|
||||||
onPressed: Navigator.of(context, rootNavigator: false).pop,
|
onPressed: Navigator.of(context, rootNavigator: false).pop,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
actions: [
|
actions: roomAlias == null
|
||||||
if (roomAlias != null)
|
? null
|
||||||
Padding(
|
: [
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
Padding(
|
||||||
child: IconButton(
|
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||||
icon: Icon(Icons.adaptive.share_outlined),
|
child: IconButton(
|
||||||
onPressed: () => showQrCodeViewer(
|
onPressed: () {
|
||||||
context,
|
Navigator.of(context).pop();
|
||||||
roomAlias,
|
showScaffoldDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => ShareScaffoldDialog(
|
||||||
|
items: [TextShareItem(roomAlias)],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
icon: const Icon(Icons.forward_outlined),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
Padding(
|
||||||
),
|
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||||
],
|
child: IconButton(
|
||||||
|
icon: Icon(Icons.adaptive.share_outlined),
|
||||||
|
onPressed: () => showQrCodeViewer(
|
||||||
|
context,
|
||||||
|
roomAlias,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
body: FutureBuilder<PublicRoomsChunk>(
|
body: FutureBuilder<PublicRoomsChunk>(
|
||||||
future: _search(),
|
future: _search(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue