mirror of
https://github.com/venera-app/venera.git
synced 2025-09-27 07:47:24 +00:00
improve code
This commit is contained in:
@@ -127,13 +127,15 @@ class _NaviPaneState extends State<NaviPane>
|
|||||||
}
|
}
|
||||||
if (target == 1) {
|
if (target == 1) {
|
||||||
StateController.find<NaviPaddingWidgetController>()
|
StateController.find<NaviPaddingWidgetController>()
|
||||||
.setWithPadding(true);
|
.setWithPadding(true, true);
|
||||||
controller.value = target;
|
controller.value = target;
|
||||||
} else if (controller.value == 1 && target == 0) {
|
} else if (controller.value == 1 && target == 0) {
|
||||||
StateController.findOrNull<NaviPaddingWidgetController>()
|
StateController.findOrNull<NaviPaddingWidgetController>()
|
||||||
?.setWithPadding(false);
|
?.setWithPadding(false, false);
|
||||||
controller.value = target;
|
controller.value = target;
|
||||||
} else {
|
} else {
|
||||||
|
StateController.findOrNull<NaviPaddingWidgetController>()
|
||||||
|
?.setWithPadding(true, false);
|
||||||
controller.animateTo(target);
|
controller.animateTo(target);
|
||||||
}
|
}
|
||||||
animationTarget = target;
|
animationTarget = target;
|
||||||
@@ -181,14 +183,14 @@ class _NaviPaneState extends State<NaviPane>
|
|||||||
),
|
),
|
||||||
Positioned(
|
Positioned(
|
||||||
top: _kTopBarHeight * ((1 - value).clamp(0, 1)) +
|
top: _kTopBarHeight * ((1 - value).clamp(0, 1)) +
|
||||||
MediaQuery.of(context).padding.top * (value == 1 ? 0 : 1),
|
MediaQuery.of(context).padding.top * (value == 0 ? 1 : 0),
|
||||||
left: _kFoldedSideBarWidth * ((value - 1).clamp(0, 1)) +
|
left: _kFoldedSideBarWidth * ((value - 1).clamp(0, 1)) +
|
||||||
(_kSideBarWidth - _kFoldedSideBarWidth) *
|
(_kSideBarWidth - _kFoldedSideBarWidth) *
|
||||||
((value - 2).clamp(0, 1)),
|
((value - 2).clamp(0, 1)),
|
||||||
right: 0,
|
right: 0,
|
||||||
bottom: bottomBarHeight * ((1 - value).clamp(0, 1)),
|
bottom: bottomBarHeight * ((1 - value).clamp(0, 1)),
|
||||||
child: MediaQuery.removePadding(
|
child: MediaQuery.removePadding(
|
||||||
removeTop: value >= 2 || value == 0,
|
removeTop: value == 0,
|
||||||
context: context,
|
context: context,
|
||||||
child: Material(child: widget.pageBuilder(currentPage)),
|
child: Material(child: widget.pageBuilder(currentPage)),
|
||||||
),
|
),
|
||||||
@@ -656,8 +658,11 @@ class NaviPaddingWidgetController extends StateController {
|
|||||||
|
|
||||||
bool _withPadding = false;
|
bool _withPadding = false;
|
||||||
|
|
||||||
void setWithPadding(bool value) {
|
bool _withTopBarPadding = false;
|
||||||
_withPadding = value;
|
|
||||||
|
void setWithPadding(bool withPadding, bool withAppbarPadding) {
|
||||||
|
_withPadding = withPadding;
|
||||||
|
_withTopBarPadding = withAppbarPadding;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -674,7 +679,10 @@ class NaviPaddingWidget extends StatelessWidget {
|
|||||||
return Padding(
|
return Padding(
|
||||||
padding: controller._withPadding
|
padding: controller._withPadding
|
||||||
? EdgeInsets.only(
|
? EdgeInsets.only(
|
||||||
top: _NaviPaneState._kTopBarHeight + context.padding.top,
|
top: context.padding.top +
|
||||||
|
(controller._withTopBarPadding
|
||||||
|
? _NaviPaneState._kTopBarHeight
|
||||||
|
: 0),
|
||||||
bottom:
|
bottom:
|
||||||
_NaviPaneState._kBottomBarHeight + context.padding.bottom,
|
_NaviPaneState._kBottomBarHeight + context.padding.bottom,
|
||||||
)
|
)
|
||||||
|
@@ -7,11 +7,21 @@ class _Appdata {
|
|||||||
final _Settings settings = _Settings();
|
final _Settings settings = _Settings();
|
||||||
|
|
||||||
var searchHistory = <String>[];
|
var searchHistory = <String>[];
|
||||||
|
|
||||||
|
bool _isSavingData = false;
|
||||||
|
|
||||||
void saveData() async {
|
Future<void> saveData() async {
|
||||||
|
if(_isSavingData) {
|
||||||
|
await Future.doWhile(() async {
|
||||||
|
await Future.delayed(const Duration(milliseconds: 20));
|
||||||
|
return _isSavingData;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
_isSavingData = true;
|
||||||
var data = jsonEncode(toJson());
|
var data = jsonEncode(toJson());
|
||||||
var file = File(FilePath.join(App.dataPath, 'appdata.json'));
|
var file = File(FilePath.join(App.dataPath, 'appdata.json'));
|
||||||
await file.writeAsString(data);
|
await file.writeAsString(data);
|
||||||
|
_isSavingData = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void addSearchHistory(String keyword) {
|
void addSearchHistory(String keyword) {
|
||||||
@@ -42,7 +52,9 @@ class _Appdata {
|
|||||||
}
|
}
|
||||||
var json = jsonDecode(await file.readAsString());
|
var json = jsonDecode(await file.readAsString());
|
||||||
for(var key in json['settings'].keys) {
|
for(var key in json['settings'].keys) {
|
||||||
settings[key] = json[key];
|
if(json[key] != null) {
|
||||||
|
settings[key] = json[key];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
searchHistory = List.from(json['searchHistory']);
|
searchHistory = List.from(json['searchHistory']);
|
||||||
}
|
}
|
||||||
@@ -88,4 +100,9 @@ class _Settings {
|
|||||||
operator[]=(String key, dynamic value) {
|
operator[]=(String key, dynamic value) {
|
||||||
_data[key] = value;
|
_data[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return _data.toString();
|
||||||
|
}
|
||||||
}
|
}
|
@@ -3,7 +3,6 @@ import 'dart:io';
|
|||||||
import 'dart:math' as math;
|
import 'dart:math' as math;
|
||||||
|
|
||||||
import 'package:crypto/crypto.dart';
|
import 'package:crypto/crypto.dart';
|
||||||
import 'package:dio/dio.dart';
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:html/parser.dart' as html;
|
import 'package:html/parser.dart' as html;
|
||||||
import 'package:html/dom.dart' as dom;
|
import 'package:html/dom.dart' as dom;
|
||||||
|
@@ -3,15 +3,12 @@ part of 'settings_page.dart';
|
|||||||
class _SwitchSetting extends StatefulWidget {
|
class _SwitchSetting extends StatefulWidget {
|
||||||
const _SwitchSetting({
|
const _SwitchSetting({
|
||||||
required this.title,
|
required this.title,
|
||||||
this.subtitle,
|
|
||||||
required this.settingKey,
|
required this.settingKey,
|
||||||
this.onChanged,
|
this.onChanged,
|
||||||
});
|
});
|
||||||
|
|
||||||
final String title;
|
final String title;
|
||||||
|
|
||||||
final String? subtitle;
|
|
||||||
|
|
||||||
final String settingKey;
|
final String settingKey;
|
||||||
|
|
||||||
final VoidCallback? onChanged;
|
final VoidCallback? onChanged;
|
||||||
@@ -27,7 +24,6 @@ class _SwitchSettingState extends State<_SwitchSetting> {
|
|||||||
|
|
||||||
return ListTile(
|
return ListTile(
|
||||||
title: Text(widget.title),
|
title: Text(widget.title),
|
||||||
subtitle: widget.subtitle == null ? null : Text(widget.subtitle!),
|
|
||||||
trailing: Switch(
|
trailing: Switch(
|
||||||
value: appdata.settings[widget.settingKey],
|
value: appdata.settings[widget.settingKey],
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
|
Reference in New Issue
Block a user