mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-12-26 12:58:51 +00:00
Improved post visibility picker dialog
This commit is contained in:
parent
a97ac81de2
commit
bd548fe532
@ -9,7 +9,7 @@ import 'package:meta/meta.dart';
|
||||
/// @author Pierre HUBERT
|
||||
|
||||
/// Show post visibility level picker and return selected visibility level
|
||||
Future<PostVisibilityLevel> showPostVisibilityPicker({
|
||||
Future<PostVisibilityLevel> showPostVisibilityPickerDialog({
|
||||
@required BuildContext context,
|
||||
@required PostVisibilityLevel initialLevel,
|
||||
@required bool isGroup,
|
||||
@ -20,11 +20,28 @@ Future<PostVisibilityLevel> showPostVisibilityPicker({
|
||||
|
||||
final newLevel = await showDialog<PostVisibilityLevel>(
|
||||
context: context,
|
||||
builder: (c) => AlertDialog(
|
||||
title: Text(tr("Select new post visibility level")),
|
||||
builder: (c) => _PostVisibilityPickerWidget(
|
||||
isGroup: isGroup,
|
||||
),
|
||||
);
|
||||
|
||||
// Show all options
|
||||
content: Column(
|
||||
return newLevel == null ? initialLevel : newLevel;
|
||||
}
|
||||
|
||||
class _PostVisibilityPickerWidget extends StatelessWidget {
|
||||
final bool isGroup;
|
||||
|
||||
const _PostVisibilityPickerWidget({Key key, @required this.isGroup})
|
||||
: super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext c) => AlertDialog(
|
||||
title: Text(tr("Select new post visibility level")),
|
||||
|
||||
// Show all options
|
||||
content: ConstrainedBox(
|
||||
constraints: BoxConstraints(maxHeight: 200),
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
// Public
|
||||
PostVisibilityLevelTile(
|
||||
@ -58,17 +75,15 @@ Future<PostVisibilityLevel> showPostVisibilityPicker({
|
||||
),
|
||||
],
|
||||
),
|
||||
|
||||
// Dialog actions
|
||||
actions: <Widget>[
|
||||
// Cancel
|
||||
TextButton(
|
||||
child: Text(tr("Cancel").toUpperCase()),
|
||||
onPressed: () => Navigator.pop(c, null),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
return newLevel == null ? initialLevel : newLevel;
|
||||
// Dialog actions
|
||||
actions: <Widget>[
|
||||
// Cancel
|
||||
TextButton(
|
||||
child: Text(tr("Cancel").toUpperCase()),
|
||||
onPressed: () => Navigator.pop(c, null),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
@ -10,6 +10,7 @@ import 'package:comunic/models/comment.dart';
|
||||
import 'package:comunic/models/new_comment.dart';
|
||||
import 'package:comunic/models/post.dart';
|
||||
import 'package:comunic/models/user.dart';
|
||||
import 'package:comunic/ui/dialogs/post_visibility_picker_dialog.dart';
|
||||
import 'package:comunic/ui/tiles/comment_tile.dart';
|
||||
import 'package:comunic/ui/widgets/account_image_widget.dart';
|
||||
import 'package:comunic/ui/widgets/countdown_widget.dart';
|
||||
@ -22,7 +23,6 @@ import 'package:comunic/utils/date_utils.dart';
|
||||
import 'package:comunic/utils/files_utils.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:comunic/utils/navigation_utils.dart';
|
||||
import 'package:comunic/utils/post_utils.dart';
|
||||
import 'package:comunic/utils/ui_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
@ -573,7 +573,7 @@ class _PostTileState extends State<PostTile> {
|
||||
|
||||
/// Update post visibility level
|
||||
Future<void> updatePostVisibilityLevel() async {
|
||||
final newLevel = await showPostVisibilityPicker(
|
||||
final newLevel = await showPostVisibilityPickerDialog(
|
||||
context: context,
|
||||
initialLevel: widget.post.visibilityLevel,
|
||||
isGroup: widget.post.isGroupPost,
|
||||
|
@ -6,10 +6,10 @@ import 'package:comunic/models/new_post.dart';
|
||||
import 'package:comunic/ui/dialogs/input_url_dialog.dart';
|
||||
import 'package:comunic/ui/dialogs/input_youtube_link_dialog.dart';
|
||||
import 'package:comunic/ui/dialogs/new_survey_dialog.dart';
|
||||
import 'package:comunic/ui/dialogs/post_visibility_picker_dialog.dart';
|
||||
import 'package:comunic/ui/widgets/post_container_widget.dart';
|
||||
import 'package:comunic/utils/files_utils.dart';
|
||||
import 'package:comunic/utils/intl_utils.dart';
|
||||
import 'package:comunic/utils/post_utils.dart';
|
||||
import 'package:comunic/utils/ui_utils.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@ -219,7 +219,7 @@ class _PostCreateFormWidgetState extends State<PostCreateFormWidget> {
|
||||
|
||||
/// Change post visibility level
|
||||
Future<void> _changeVisibilityLevel() async {
|
||||
final newLevel = await showPostVisibilityPicker(
|
||||
final newLevel = await showPostVisibilityPickerDialog(
|
||||
context: context,
|
||||
initialLevel: _postVisibilityLevel,
|
||||
isGroup: widget.postTarget == PostTarget.GROUP_PAGE,
|
||||
|
Loading…
Reference in New Issue
Block a user