You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Dart
		
	
| import 'package:flutter/material.dart';
 | |
| 
 | |
| import 'package:flutter_gen/gen_l10n/l10n.dart';
 | |
| import 'package:matrix/matrix.dart';
 | |
| 
 | |
| import 'package:fluffychat/utils/fluffy_share.dart';
 | |
| import 'package:fluffychat/widgets/layouts/max_width_body.dart';
 | |
| import 'package:fluffychat/widgets/matrix.dart';
 | |
| import 'settings_account.dart';
 | |
| 
 | |
| class SettingsAccountView extends StatelessWidget {
 | |
|   final SettingsAccountController controller;
 | |
|   const SettingsAccountView(this.controller, {Key? key}) : super(key: key);
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context) {
 | |
|     return Scaffold(
 | |
|       appBar: AppBar(title: Text(L10n.of(context)!.account)),
 | |
|       body: ListTileTheme(
 | |
|         iconColor: Theme.of(context).textTheme.bodyLarge!.color,
 | |
|         child: MaxWidthBody(
 | |
|           withScrolling: true,
 | |
|           child: Column(
 | |
|             children: [
 | |
|               ListTile(
 | |
|                 title: Text(L10n.of(context)!.yourUserId),
 | |
|                 subtitle: Text(Matrix.of(context).client.userID!),
 | |
|                 trailing: const Icon(Icons.copy_outlined),
 | |
|                 onTap: () => FluffyShare.share(
 | |
|                   Matrix.of(context).client.userID!,
 | |
|                   context,
 | |
|                 ),
 | |
|               ),
 | |
|               ListTile(
 | |
|                 trailing: const Icon(Icons.edit_outlined),
 | |
|                 title: Text(L10n.of(context)!.editDisplayname),
 | |
|                 subtitle: Text(controller.profile?.displayName ??
 | |
|                     Matrix.of(context).client.userID!.localpart!),
 | |
|                 onTap: controller.setDisplaynameAction,
 | |
|               ),
 | |
|               const Divider(height: 1),
 | |
|               ListTile(
 | |
|                 trailing: const Icon(Icons.person_add_outlined),
 | |
|                 title: Text(L10n.of(context)!.addAccount),
 | |
|                 subtitle: Text(L10n.of(context)!.enableMultiAccounts),
 | |
|                 onTap: controller.addAccountAction,
 | |
|               ),
 | |
|               ListTile(
 | |
|                 trailing: const Icon(Icons.exit_to_app_outlined),
 | |
|                 title: Text(L10n.of(context)!.logout),
 | |
|                 onTap: controller.logoutAction,
 | |
|               ),
 | |
|               const Divider(height: 1),
 | |
|               ListTile(
 | |
|                 trailing: const Icon(Icons.tap_and_play),
 | |
|                 title: Text(
 | |
|                   L10n.of(context)!.dehydrate,
 | |
|                   style: const TextStyle(color: Colors.red),
 | |
|                 ),
 | |
|                 onTap: controller.dehydrateAction,
 | |
|               ),
 | |
|               ListTile(
 | |
|                 trailing: const Icon(Icons.delete_outlined),
 | |
|                 title: Text(
 | |
|                   L10n.of(context)!.deleteAccount,
 | |
|                   style: const TextStyle(color: Colors.red),
 | |
|                 ),
 | |
|                 onTap: controller.deleteAccountAction,
 | |
|               ),
 | |
|             ],
 | |
|           ),
 | |
|         ),
 | |
|       ),
 | |
|     );
 | |
|   }
 | |
| }
 |