同步ios的功能

This commit is contained in:
jyuesong
2022-05-30 14:14:49 +08:00
parent bd77beb60a
commit 665a51f962
15 changed files with 126 additions and 51 deletions

View File

@@ -44,3 +44,20 @@ iOS端暂无上架打算用户自行下载main分支源码编译安装
### 不支持的功能 ### 不支持的功能
>* 应用设置 >* 应用设置
>* 通知设置 >* 通知设置
版本更新通知 https://t.me/qinglongapp
用于生成app的图标
flutter pub run flutter_launcher_icons:main
生成原生的启动页面
flutter pub run flutter_native_splash:create
修改app名称
flutter pub run flutter_app_name
生成json.jc.dart文件
flutter pub run build_runner build --delete-conflicting-outputs

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 18 KiB

BIN
assets/images/ql_splash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -551,4 +551,4 @@
/* End XCConfigurationList section */ /* End XCConfigurationList section */
}; };
rootObject = 97C146E61CF9000F007C117D /* Project object */; rootObject = 97C146E61CF9000F007C117D /* Project object */;
} }

View File

@@ -86,7 +86,7 @@ class _EnvPageState extends State<EnvPage> {
}, },
model: envProvider, model: envProvider,
onReady: (viewModel) { onReady: (viewModel) {
viewModel.loadData(context); viewModel.loadData();
}, },
); );
} }

View File

@@ -125,15 +125,9 @@ class _LoginPageState extends ConsumerState<LoginPage> {
} }
WidgetsBinding.instance?.endOfFrame; WidgetsBinding.instance?.endOfFrame;
}, },
child: ColorFiltered( child: Image.asset(
colorFilter: ColorFilter.mode( "assets/images/ql.png",
ref.watch(themeProvider).primaryColor, height: 45,
BlendMode.srcIn,
),
child: Image.asset(
"assets/images/ql.png",
height: 45,
),
), ),
), ),
], ],

View File

@@ -6,20 +6,30 @@ class TaskLogBean {
String? name; String? name;
bool? isDir; bool? isDir;
List<String>? files; List<String>? files;
List<Children>? children;
TaskLogBean({this.name, this.isDir, this.files}); TaskLogBean({this.name, this.files});
TaskLogBean.fromJson(Map<String, dynamic> json) { TaskLogBean.fromJson(Map<String, dynamic> json) {
name = json['name']; name = json['name'] ?? json['title'];
isDir = json['isDir']; isDir = json['isDir'] ?? (json['type'] == "directory");
files = json['files'].cast<String>();
files = json['files']?.cast<String>();
if (json['children'] != null) {
children = <Children>[];
json['children'].forEach((v) {
children!.add(Children.fromJson(v));
});
}
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['name'] = this.name; data['name'] = this.name;
data['isDir'] = this.isDir;
data['files'] = this.files; data['files'] = this.files;
if (this.children != null) {
data['children'] = this.children!.map((v) => v.toJson()).toList();
}
return data; return data;
} }
@@ -27,3 +37,31 @@ class TaskLogBean {
return TaskLogBean.fromJson(json); return TaskLogBean.fromJson(json);
} }
} }
class Children {
String? title;
String? value;
String? type;
String? key;
String? parent;
Children({this.title, this.value, this.type, this.key, this.parent});
Children.fromJson(Map<String, dynamic> json) {
title = json['title'];
value = json['value'];
type = json['type'];
key = json['key'];
parent = json['parent'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['title'] = this.title;
data['value'] = this.value;
data['type'] = this.type;
data['key'] = this.key;
data['parent'] = this.parent;
return data;
}
}

View File

@@ -43,40 +43,66 @@ class _TaskLogPageState extends ConsumerState<TaskLogPage> with LazyLoadState<Ta
color: ref.watch(themeProvider).themeColor.settingBgColor(), color: ref.watch(themeProvider).themeColor.settingBgColor(),
child: (item.isDir ?? false) child: (item.isDir ?? false)
? ExpansionTile( ? ExpansionTile(
title: Text( title: Text(
item.name ?? "", item.name ?? "",
style: TextStyle( style: TextStyle(
color: ref.watch(themeProvider).themeColor.titleColor(), color: ref.watch(themeProvider).themeColor.titleColor(),
fontSize: 16, fontSize: 16,
), ),
), ),
children: item.files! children: (item.files?.isNotEmpty ?? false)
.map((e) => ListTile( ? item.files!
onTap: () { .map((e) => ListTile(
Navigator.of(context).pushNamed(Routes.routeTaskLogDetail, arguments: item.name! + "/" + e); onTap: () {
}, Navigator.of(context).pushNamed(Routes.routeTaskLogDetail, arguments: {
title: Text( "path": item.name,
e, "title": e,
style: TextStyle( });
color: ref.watch(themeProvider).themeColor.titleColor(), },
fontSize: 14, title: Text(
), e,
), style: TextStyle(
)) color: ref.watch(themeProvider).themeColor.titleColor(),
.toList(), fontSize: 14,
)
: ListTile(
onTap: () {
Navigator.of(context).pushNamed(Routes.routeTaskLogDetail, arguments: item.name);
},
title: Text(
item.name ?? "",
style: TextStyle(
color: ref.watch(themeProvider).themeColor.titleColor(),
fontSize: 16,
),
),
), ),
),
))
.toList()
: (item.children ?? [])
.map((e) => ListTile(
onTap: () {
Navigator.of(context).pushNamed(Routes.routeTaskLogDetail, arguments: {
"path": item.name,
"title": e.title,
});
},
title: Text(
e.title ?? "",
style: TextStyle(
color: ref.watch(themeProvider).themeColor.titleColor(),
fontSize: 14,
),
),
))
.toList(),
)
: ListTile(
onTap: () {
if (item.isDir ?? false) {
"该文件夹为空".toast();
return;
}
Navigator.of(context).pushNamed(Routes.routeTaskLogDetail, arguments: item.name);
},
title: Text(
item.name ?? "",
style: TextStyle(
color: ref.watch(themeProvider).themeColor.titleColor(),
fontSize: 16,
),
),
),
); );
}, },
itemCount: list.length, itemCount: list.length,

View File

@@ -41,7 +41,7 @@ class _TaskPageState extends ConsumerState<TaskPage> {
}, },
model: taskProvider, model: taskProvider,
onReady: (viewModel) { onReady: (viewModel) {
viewModel.loadData(context); viewModel.loadData();
}, },
); );
} }

View File

@@ -63,7 +63,7 @@ flutter:
assets: assets:
- assets/images/ - assets/images/
flutter_app_name: flutter_app_name:
name: "青龙" name: "青龙客户端"
flutter_icons: flutter_icons:
image_path_android: "assets/images/ql.png" image_path_android: "assets/images/ql.png"