feat: add default scheme to local manager.

This commit is contained in:
2021-10-09 18:42:12 +08:00
parent b160adc654
commit d3a69573c3
7 changed files with 51 additions and 14 deletions
+9 -2
View File
@@ -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();
}
+8 -1
View File
@@ -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
+13 -5
View File
@@ -1,17 +1,18 @@
import 'dart:convert';
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/builder/provider_annotation.dart';
import 'package:dde_gesture_manager/extensions.dart';
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
+7
View File
@@ -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 {