feat: add default scheme to local manager.

pull/3/head
DebuggerX 4 years ago
parent b160adc654
commit d3a69573c3

@ -1,7 +1,7 @@
export 'local_schemes_web.dart' if (dart.library.io) 'local_schemes_linux.dart';
import 'package:dde_gesture_manager/models/scheme.dart';
export 'local_schemes_web.dart' if (dart.library.io) 'local_schemes_linux.dart';
abstract class LocalSchemeEntry {
Scheme scheme;
DateTime lastModifyTime;
@ -13,6 +13,13 @@ abstract class LocalSchemeEntry {
required this.lastModifyTime,
});
LocalSchemeEntry.systemDefault()
: this.path = '',
this.scheme = Scheme.systemDefault(),
/// max value of DateTime ![Time Values and Time Range](https://262.ecma-international.org/11.0/#sec-time-values-and-time-range)
this.lastModifyTime = DateTime.fromMillisecondsSinceEpoch(8640000000000000);
save();
}

@ -13,7 +13,7 @@ export 'local_schemes.dart';
@ProviderModel()
class LocalSchemes implements LocalSchemesInterface<LocalSchemeEntryLinux> {
LocalSchemes() {
schemeEntries.then((value) => schemes = value);
schemeEntries.then((value) => schemes = [LocalSchemeEntryLinux.systemDefault(), ...value]);
}
@override
@ -60,6 +60,13 @@ class LocalSchemeEntryLinux implements LocalSchemeEntry {
required this.lastModifyTime,
});
LocalSchemeEntryLinux.systemDefault()
: this.path = '',
this.scheme = Scheme.systemDefault(),
/// max value of DateTime ![Time Values and Time Range](https://262.ecma-international.org/11.0/#sec-time-values-and-time-range)
this.lastModifyTime = DateTime.fromMillisecondsSinceEpoch(8640000000000000);
@override
save() {
// TODO: implement save

@ -1,17 +1,18 @@
import 'dart:convert';
import 'dart:html';
import 'package:dde_gesture_manager/builder/provider_annotation.dart';
import 'package:dde_gesture_manager/models/scheme.dart';
import 'package:dde_gesture_manager/extensions.dart';
import 'dart:html';
import 'package:dde_gesture_manager/models/scheme.dart';
import 'local_schemes.dart';
export 'local_schemes.dart';
@ProviderModel()
class LocalSchemes implements LocalSchemesInterface<LocalSchemeEntryWeb> {
LocalSchemes() {
schemeEntries.then((value) => schemes = value);
schemeEntries.then((value) => schemes = [LocalSchemeEntryWeb.systemDefault(), ...value]);
}
@override
@ -59,6 +60,13 @@ class LocalSchemeEntryWeb implements LocalSchemeEntry {
required this.lastModifyTime,
});
LocalSchemeEntryWeb.systemDefault()
: this.path = '',
this.scheme = Scheme.systemDefault(),
/// max value of DateTime ![Time Values and Time Range](https://262.ecma-international.org/11.0/#sec-time-values-and-time-range)
this.lastModifyTime = DateTime.fromMillisecondsSinceEpoch(8640000000000000);
@override
save() {
// TODO: implement save

@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:dde_gesture_manager/builder/provider_annotation.dart';
import 'package:dde_gesture_manager/extensions.dart';
import 'package:dde_gesture_manager/utils/helper.dart';
@ProviderModel(copyable: true)
@ -21,6 +22,12 @@ class Scheme {
description = scheme['desc'];
gestures = (scheme['gestures'] as List? ?? []).map<GestureProp>((ele) => GestureProp.parse(ele)).toList();
}
Scheme.systemDefault() {
this.name = LocaleKeys.local_manager_default_scheme_label.tr();
this.description = LocaleKeys.local_manager_default_scheme_description.tr();
this.gestures = [];
}
}
enum Gesture {

@ -39,7 +39,7 @@ class _LocalManagerState extends State<LocalManager> {
@override
Widget build(BuildContext context) {
var isOpen = context.watch<ContentLayoutProvider>().localManagerOpened == true;
var localschemes = context.watch<LocalSchemesProvider>().schemes ?? [];
var localSchemes = context.watch<LocalSchemesProvider>().schemes ?? [];
return AnimatedContainer(
duration: mediumDuration,
curve: Curves.easeInOut,
@ -91,7 +91,7 @@ class _LocalManagerState extends State<LocalManager> {
controller: _scrollController,
itemBuilder: (context, index) => GestureDetector(
onDoubleTap: () {
context.read<SchemeProvider>().copyFrom(localschemes[index].scheme);
context.read<SchemeProvider>().copyFrom(localSchemes[index].scheme);
setState(() {
_selectedIndex = index;
});
@ -115,7 +115,7 @@ class _LocalManagerState extends State<LocalManager> {
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(localschemes[index].scheme.name ?? ''),
Text(localSchemes[index].scheme.name ?? ''),
Text('456'),
],
),
@ -123,7 +123,7 @@ class _LocalManagerState extends State<LocalManager> {
),
),
),
itemCount: localschemes.length,
itemCount: localSchemes.length,
),
),
Container(

@ -23,7 +23,11 @@
"title": "Scheme market"
},
"local_manager": {
"title": "Local scheme management"
"title": "Local scheme management",
"default_scheme": {
"label": "System default scheme",
"description": "System default gesture scheme, cannot be modified. (Secretly telling you that there is no actual content in this scheme, just when applying the scheme, it is achieved by deleting a custom configuration scheme."
}
},
"gesture_editor": {
"label": "Gesture scheme editing",

@ -23,7 +23,11 @@
"title": "方案市场"
},
"local_manager": {
"title": "本地方案管理"
"title": "本地方案管理",
"default_scheme": {
"label": "系统默认方案",
"description": "系统默认的手势方案,不可修改。(偷偷告诉你,这个这个方案里没有任何实际内容,应用该方案时不过是通过删除自定义配置方案的方式来实现恢复系统默认方案~)"
}
},
"gesture_editor": {
"label": "手势方案编辑",

Loading…
Cancel
Save