Browse Source

update list UI

pull/18/head
Sun 4 years ago
parent
commit
09e5531ab2
  1. 41
      lib/apps/file/list.dart
  2. 2
      lib/apps/group_chat/detail.dart
  3. 15
      lib/apps/group_chat/list.dart
  4. 33
      lib/apps/service/add.dart
  5. 49
      lib/apps/service/list.dart
  6. 6
      lib/apps/service/models.dart
  7. 4
      lib/l10n/localizations.dart
  8. 4
      lib/l10n/localizations_en.dart
  9. 4
      lib/l10n/localizations_zh.dart
  10. 6
      lib/pages/home.dart

41
lib/apps/file/page.dart → lib/apps/file/list.dart

@ -6,9 +6,9 @@ import 'package:esse/utils/file_image.dart'; @@ -6,9 +6,9 @@ import 'package:esse/utils/file_image.dart';
import 'package:esse/l10n/localizations.dart';
import 'package:esse/provider.dart';
class FolderList extends StatefulWidget {
class FilesList extends StatefulWidget {
@override
_FolderListState createState() => _FolderListState();
_FilesListState createState() => _FilesListState();
}
const List FILE_DIRECTORY = [
@ -22,33 +22,23 @@ const List FILE_DIRECTORY = [ @@ -22,33 +22,23 @@ const List FILE_DIRECTORY = [
["Trash", Icons.auto_delete_rounded],
];
class _FolderListState extends State<FolderList> {
class _FilesListState extends State<FilesList> {
int chooseIndex = 0;
@override
void initState() {
super.initState();
Future.delayed(Duration.zero, () {
final isDesktop = isDisplayDesktop(context);
if (isDesktop) {
loadFolder(true, chooseIndex);
}
});
loadRecents();
}
loadFolder(bool isDesktop, int index) async {
final widget = FilePage(title: FILE_DIRECTORY[index][0]);
if (isDesktop) {
Provider.of<AccountProvider>(context, listen: false).updateActivedWidget(widget);
} else {
Navigator.push(context, MaterialPageRoute(builder: (_) => widget));
}
loadRecents() {
//
}
changeItem(int index, bool isDesktop) {
setState(() {
chooseIndex = index;
loadFolder(isDesktop, index);
// loadFolder(isDesktop, index);
});
}
@ -82,11 +72,26 @@ class _FolderListState extends State<FolderList> { @@ -82,11 +72,26 @@ class _FolderListState extends State<FolderList> {
@override
Widget build(BuildContext context) {
final color = Theme.of(context).colorScheme;
final lang = AppLocalizations.of(context);
final isDesktop = isDisplayDesktop(context);
return ListView.builder(
return Scaffold(
appBar: AppBar(
title: Text(lang.files + ' (${lang.wip})'),
bottom: PreferredSize(
child: Container(color: const Color(0x40ADB0BB), height: 1.0),
preferredSize: Size.fromHeight(1.0)
),
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
child: ListView.builder(
itemCount: FILE_DIRECTORY.length,
itemBuilder: (BuildContext ctx, int index) => item(index, color, isDesktop),
)
),
),
);
}
}

2
lib/apps/group_chat/detail.dart

@ -318,7 +318,7 @@ class _GroupChatDetailState extends State<GroupChatDetail> { @@ -318,7 +318,7 @@ class _GroupChatDetailState extends State<GroupChatDetail> {
return <PopupMenuEntry<int>>[
_menuItem(Color(0xFF6174FF), 1, Icons.qr_code_rounded, lang.info),
this.group.isClosed
? _menuItem(Color(0xFF6174FF), 4, Icons.send_rounded, lang.addGroup)
? _menuItem(Color(0xFF6174FF), 4, Icons.send_rounded, lang.add)
: _menuItem(Colors.orange, 2, Icons.block_rounded, lang.exit),
_menuItem(Colors.red, 3, Icons.delete_rounded, lang.delete),
];

15
lib/apps/group_chat/page.dart → lib/apps/group_chat/list.dart

@ -21,15 +21,28 @@ class _GroupChatListState extends State<GroupChatList> { @@ -21,15 +21,28 @@ class _GroupChatListState extends State<GroupChatList> {
@override
Widget build(BuildContext context) {
final color = Theme.of(context).colorScheme;
final lang = AppLocalizations.of(context);
final isDesktop = isDisplayDesktop(context);
final provider = context.watch<GroupChatProvider>();
final orderKeys = provider.orderKeys;
final groups = provider.groups;
return Scaffold(
body: ListView.builder(
appBar: AppBar(
title: Text(lang.groupChat),
bottom: PreferredSize(
child: Container(color: const Color(0x40ADB0BB), height: 1.0),
preferredSize: Size.fromHeight(1.0)
),
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
child: ListView.builder(
itemCount: orderKeys.length,
itemBuilder: (BuildContext ctx, int index) => ListChat(group: groups[orderKeys[index]]),
)
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {

33
lib/apps/service/add.dart

@ -3,8 +3,8 @@ import 'package:flutter/material.dart'; @@ -3,8 +3,8 @@ import 'package:flutter/material.dart';
import 'package:esse/utils/adaptive.dart';
import 'package:esse/l10n/localizations.dart';
class GroupAddPage extends StatelessWidget {
const GroupAddPage({Key key}) : super(key: key);
class ServiceAddPage extends StatelessWidget {
const ServiceAddPage({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
@ -13,30 +13,21 @@ class GroupAddPage extends StatelessWidget { @@ -13,30 +13,21 @@ class GroupAddPage extends StatelessWidget {
final lang = AppLocalizations.of(context);
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Column(children: <Widget>[
Row(
children: [
if (!isDesktop)
GestureDetector(
onTap: () => Navigator.pop(context),
child: Container(width: 20.0, child: Icon(Icons.arrow_back, color: color.primary)),
appBar: AppBar(
title: Text(lang.addService),
bottom: PreferredSize(
child: Container(color: const Color(0x40ADB0BB), height: 1.0),
preferredSize: Size.fromHeight(1.0)
),
const SizedBox(width: 15.0),
Expanded(child: Text(lang.addGroup, style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0))),
],
),
Expanded(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
child: Center(
child: Text(lang.wip, style: TextStyle(fontSize: 32.0))
)
)
]
)
)
)
),
),
);
}
}

49
lib/apps/service/list.dart

@ -6,10 +6,7 @@ import 'package:esse/l10n/localizations.dart'; @@ -6,10 +6,7 @@ import 'package:esse/l10n/localizations.dart';
import 'package:esse/provider.dart';
import 'package:esse/apps/service/models.dart';
import 'package:esse/apps/assistant/page.dart';
import 'package:esse/apps/assistant/provider.dart';
import 'package:esse/apps/assistant/models.dart';
import 'package:esse/apps/file/page.dart';
import 'package:esse/apps/service/add.dart';
const List<InnerService> INNER_SERVICES = [
InnerService.Files,
@ -30,26 +27,44 @@ class _ServiceListState extends State<ServiceList> { @@ -30,26 +27,44 @@ class _ServiceListState extends State<ServiceList> {
final lang = AppLocalizations.of(context);
final isDesktop = isDisplayDesktop(context);
return Column(
children: [
Column(
children: INNER_SERVICES.map((v) {
final params = v.params(lang);
return Scaffold(
appBar: AppBar(
title: Text(lang.services),
bottom: PreferredSize(
child: Container(color: const Color(0x40ADB0BB), height: 1.0),
preferredSize: Size.fromHeight(1.0)
),
),
body: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0),
child: ListView.builder(
itemCount: INNER_SERVICES.length,
itemBuilder: (BuildContext ctx, int index) {
final params = INNER_SERVICES[index].params(lang);
return ListInnerService(
name: params[0],
bio: params[1],
logo: params[2],
callback: () => v.callback(),
callback: () => INNER_SERVICES[index].callback(),
isDesktop: isDesktop,
);
}).toList()
}
)
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
final widget = ServiceAddPage();
if (isDesktop) {
Provider.of<AccountProvider>(context, listen: false).updateActivedWidget(widget);
} else {
Navigator.push(context, MaterialPageRoute(builder: (_) => widget));
}
},
child: const Icon(Icons.add, color: Colors.white),
backgroundColor: Color(0xFF6174FF),
),
// Expanded(
// child: ListView.builder(
// itemCount: serviceKeys.length,
// itemBuilder: (BuildContext ctx, int index) => _ListService(),
// )),
]
);
}
}

6
lib/apps/service/models.dart

@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; @@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
import 'package:esse/l10n/localizations.dart';
import 'package:esse/apps/assistant/page.dart';
import 'package:esse/apps/file/page.dart';
import 'package:esse/apps/group_chat/page.dart';
import 'package:esse/apps/file/list.dart';
import 'package:esse/apps/group_chat/list.dart';
enum InnerService {
Files,
@ -26,7 +26,7 @@ extension InnerServiceExtension on InnerService { @@ -26,7 +26,7 @@ extension InnerServiceExtension on InnerService {
Widget callback() {
switch (this) {
case InnerService.Files:
return FolderList();
return FilesList();
case InnerService.Assistant:
return AssistantDetail();
case InnerService.GroupChat:

4
lib/l10n/localizations.dart

@ -112,8 +112,8 @@ abstract class AppLocalizations { @@ -112,8 +112,8 @@ abstract class AppLocalizations {
// homeage
String get addFriend;
String get addGroup;
String get groups;
String get addService;
String get services;
String get devices;
String get nightly;
String get scan;

4
lib/l10n/localizations_en.dart

@ -141,9 +141,9 @@ class AppLocalizationsEn extends AppLocalizations { @@ -141,9 +141,9 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get addFriend => 'Add Friend';
@override
String get addGroup => 'Add Service';
String get addService => 'Add Service';
@override
String get groups => 'Services';
String get services => 'Services';
@override
String get devices => 'Devices';
@override

4
lib/l10n/localizations_zh.dart

@ -141,9 +141,9 @@ class AppLocalizationsZh extends AppLocalizations { @@ -141,9 +141,9 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get addFriend => '添加好友';
@override
String get addGroup => '添加服务';
String get addService => '添加服务';
@override
String get groups => '服务列表';
String get services => '服务列表';
@override
String get devices => '关联设备';
@override

6
lib/pages/home.dart

@ -30,7 +30,7 @@ import 'package:esse/apps/chat/provider.dart'; @@ -30,7 +30,7 @@ import 'package:esse/apps/chat/provider.dart';
import 'package:esse/apps/chat/list.dart';
import 'package:esse/apps/chat/detail.dart';
import 'package:esse/apps/chat/add.dart';
import 'package:esse/apps/file/page.dart';
import 'package:esse/apps/file/list.dart';
import 'package:esse/apps/service/list.dart';
import 'package:esse/apps/service/add.dart';
import 'package:esse/apps/assistant/page.dart';
@ -364,7 +364,7 @@ class DrawerWidget extends StatelessWidget { @@ -364,7 +364,7 @@ class DrawerWidget extends StatelessWidget {
}),
ListTile(
leading: Icon(Icons.grid_view_rounded, color: color.primary),
title: Text(lang.groups, textAlign: TextAlign.left,
title: Text(lang.services, textAlign: TextAlign.left,
style: TextStyle(fontSize: 16.0)),
onTap: () {
Navigator.pop(context);
@ -492,7 +492,7 @@ class _SessionWidget extends StatelessWidget { @@ -492,7 +492,7 @@ class _SessionWidget extends StatelessWidget {
coreWidget = AssistantDetail();
break;
case SessionType.Files:
coreWidget = FolderList();
coreWidget = FilesList();
break;
}

Loading…
Cancel
Save