Skip to content
This repository has been archived by the owner on Sep 17, 2022. It is now read-only.

Commit

Permalink
Merge branch 'release/v1.4.14'
Browse files Browse the repository at this point in the history
  • Loading branch information
hanerx committed May 20, 2021
2 parents 834329d + 201ed80 commit 87ec6a9
Show file tree
Hide file tree
Showing 53 changed files with 2,550 additions and 962 deletions.
4 changes: 0 additions & 4 deletions lib/component/Drawer.dart
@@ -1,4 +1,3 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:dcomic/model/comic_source/baseSourceModel.dart';
import 'package:dcomic/model/comic_source/sourceProvider.dart';
import 'package:dcomic/view/server_controllers/server_sellect_page.dart';
Expand All @@ -7,15 +6,12 @@ import 'package:direct_select_flutter/direct_select_item.dart';
import 'package:direct_select_flutter/direct_select_list.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:dcomic/database/database.dart';
import 'package:dcomic/generated/l10n.dart';
import 'package:dcomic/http/http.dart';
import 'package:dcomic/model/systemSettingModel.dart';
import 'package:dcomic/view/dark_side_page.dart';
import 'package:dcomic/view/favorite_page.dart';
import 'package:dcomic/view/login_page.dart';
import 'package:dcomic/view/mag_maker/mag_make_page.dart';
import 'package:dcomic/view/novel_pages/novel_main_page.dart';
import 'package:fluttericon/font_awesome5_icons.dart';
import 'package:provider/provider.dart';

Expand Down
118 changes: 116 additions & 2 deletions lib/component/EmptyView.dart
@@ -1,3 +1,4 @@
import 'package:dcomic/view/login_page.dart';
import 'package:direct_select_flutter/direct_select_item.dart';
import 'package:direct_select_flutter/direct_select_list.dart';
import 'package:flutter/cupertino.dart';
Expand All @@ -14,7 +15,7 @@ class EmptyView extends StatelessWidget {
final String message;
final Widget child;

const EmptyView({Key key, this.message,this.child}) : super(key: key);
const EmptyView({Key key, this.message, this.child}) : super(key: key);

@override
Widget build(BuildContext context) {
Expand Down Expand Up @@ -70,6 +71,8 @@ class ComicDetailEmptyView extends StatelessWidget {
// TODO: implement build
try {
throw exception;
} on LoginRequiredError {
return _buildLoginRequiredError(context);
} on ComicIdNotBoundError {
return _buildComicIdNotBoundError(context);
} on ComicSearchError {
Expand Down Expand Up @@ -263,7 +266,9 @@ class ComicDetailEmptyView extends StatelessWidget {
),
TextButton(
child: Text('点击此处打开搜索'),
style: ButtonStyle(textStyle: MaterialStateProperty.all(TextStyle(color: Theme.of(context).primaryColor))),
style: ButtonStyle(
textStyle: MaterialStateProperty.all(
TextStyle(color: Theme.of(context).primaryColor))),
onPressed: () async {
var flag = await showDialog(
context: context,
Expand All @@ -288,4 +293,113 @@ class ComicDetailEmptyView extends StatelessWidget {
),
);
}

Widget _buildLoginRequiredError(context) {
return Container(
height: double.infinity,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Expanded(
child: SizedBox(),
flex: 2,
),
SizedBox(
width: 100.0,
height: 100.0,
child: Icon(
FontAwesome.folder_open_empty,
size: 60,
color: Theme.of(context).disabledColor,
),
),
Text(
S.of(context).ComicLoginRequired,
style: TextStyle(
fontSize: 16.0, color: Theme.of(context).disabledColor),
),
Padding(
padding: EdgeInsets.only(left: 20, right: 20),
child: Row(
children: [
Padding(
child: Text(
'数据提供商',
style: TextStyle(
fontWeight: FontWeight.bold,
color: Theme.of(context).disabledColor),
),
padding: EdgeInsets.only(left: 10),
),
Expanded(
child: Padding(
child: DirectSelectList<BaseSourceModel>(
values:
Provider.of<SourceProvider>(context).activeSources,
defaultItemIndex:
Provider.of<SourceProvider>(context).index,
itemBuilder: (BaseSourceModel value) =>
DirectSelectItem<BaseSourceModel>(
itemHeight: 56,
value: value,
itemBuilder: (context, value) {
return Container(
child: Text(
value.type.title,
textAlign: TextAlign.start,
style: TextStyle(
color: Theme.of(context).disabledColor),
),
);
}),
onItemSelectedListener: (item, index, context) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(item.type.title)));
Provider.of<SourceProvider>(context, listen: false)
.active = item;
Provider.of<ComicDetailModel>(context, listen: false)
.changeModel(item);
},
focusedItemDecoration: BoxDecoration(
border: BorderDirectional(
bottom: BorderSide(width: 1, color: Colors.black12),
top: BorderSide(width: 1, color: Colors.black12),
),
),
),
padding: EdgeInsets.fromLTRB(20, 5, 5, 5),
),
),
Padding(
child: Icon(
Icons.unfold_more,
color: Theme.of(context).disabledColor,
),
padding: EdgeInsets.only(right: 10),
)
],
),
),
TextButton(
child: Text('跳转至登录'),
style: ButtonStyle(
textStyle: MaterialStateProperty.all(
TextStyle(color: Theme.of(context).primaryColor))),
onPressed: () async {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => LoginPage(),
settings: RouteSettings(name: 'login_page')),
);
},
),
Expanded(
child: SizedBox(),
flex: 3,
),
],
),
);
}
}
8 changes: 5 additions & 3 deletions lib/component/comic_viewer/ComicPage.dart
Expand Up @@ -57,9 +57,11 @@ class _ComicPage extends State<ComicPage> {
if (widget.type == PageType.ipfs) {
var bytes = await Provider.of<IPFSSettingProvider>(context, listen: false)
.catBytes(widget.url);
setState(() {
_bytes = bytes;
});
if(mounted){
setState(() {
_bytes = bytes;
});
}
}
}

Expand Down
1 change: 0 additions & 1 deletion lib/component/history_tab/LocalHistoryTab.dart
Expand Up @@ -7,7 +7,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:dcomic/component/EmptyView.dart';
import 'package:dcomic/component/LoadingCube.dart';
import 'package:dcomic/database/database.dart';
import 'package:provider/provider.dart';

import '../comic/HistoryListTile.dart';
Expand Down
2 changes: 0 additions & 2 deletions lib/component/search/SearchButton.dart
@@ -1,6 +1,4 @@
import 'package:flutter/material.dart';
import 'package:dcomic/database/configDatabaseProvider.dart';
import 'package:dcomic/database/database.dart';
import 'package:dcomic/model/systemSettingModel.dart';
import 'package:dcomic/view/search_page.dart';
import 'package:provider/provider.dart';
Expand Down
1 change: 0 additions & 1 deletion lib/database/configDatabaseProvider.dart
@@ -1,4 +1,3 @@
import 'package:dcomic/database/database.dart';
import 'package:dcomic/database/databaseCommon.dart';
import 'package:dcomic/utils/log_output.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
Expand Down

0 comments on commit 87ec6a9

Please sign in to comment.