feat: implement some api; add md editor to app; login and signup logic.
This commit is contained in:
+19
-11
@@ -29,34 +29,42 @@ class H {
|
||||
initSharedPreference() async {
|
||||
_sp = await SharedPreferences.getInstance();
|
||||
}
|
||||
|
||||
late BuildContext _topContext;
|
||||
|
||||
BuildContext get topContext => _topContext;
|
||||
|
||||
initTopContext(BuildContext context) {
|
||||
_topContext = context;
|
||||
}
|
||||
|
||||
static void openPanel(BuildContext context, PanelType panelType) {
|
||||
var windowWidth = MediaQuery.of(context).size.width;
|
||||
if (windowWidth < minWindowSize.width + localManagerPanelWidth + marketPanelWidth) {
|
||||
if (windowWidth < minWindowSize.width + localManagerPanelWidth + marketOrMePanelWidth) {
|
||||
context.read<ContentLayoutProvider>().setProps(
|
||||
localManagerOpened: panelType == PanelType.local_manager,
|
||||
marketOpened: panelType == PanelType.market,
|
||||
marketOrMeOpened: panelType == PanelType.market_or_me,
|
||||
);
|
||||
} else {
|
||||
switch (panelType) {
|
||||
case PanelType.local_manager:
|
||||
return context.read<ContentLayoutProvider>().setProps(localManagerOpened: true);
|
||||
case PanelType.market:
|
||||
return context.read<ContentLayoutProvider>().setProps(marketOpened: true);
|
||||
case PanelType.market_or_me:
|
||||
return context.read<ContentLayoutProvider>().setProps(marketOrMeOpened: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static PreferredPanelsStatus getPreferredPanelsStatus(double windowWidth) {
|
||||
var preferredPanelsStatus = PreferredPanelsStatus(localManagerPanelOpened: true, marketPanelOpened: true);
|
||||
if (windowWidth > minWindowSize.width + localManagerPanelWidth + marketPanelWidth)
|
||||
var preferredPanelsStatus = PreferredPanelsStatus(localManagerPanelOpened: true, marketOrMePanelOpened: true);
|
||||
if (windowWidth > minWindowSize.width + localManagerPanelWidth + marketOrMePanelWidth)
|
||||
return preferredPanelsStatus;
|
||||
else if (windowWidth < minWindowSize.width + localManagerPanelWidth)
|
||||
return preferredPanelsStatus
|
||||
..marketPanelOpened = false
|
||||
..marketOrMePanelOpened = false
|
||||
..localManagerPanelOpened = false;
|
||||
else
|
||||
return preferredPanelsStatus..marketPanelOpened = false;
|
||||
return preferredPanelsStatus..marketOrMePanelOpened = false;
|
||||
}
|
||||
|
||||
static Gesture getGestureByName(String gestureName) => Gesture.values.findByName(gestureName) ?? Gesture.swipe;
|
||||
@@ -108,15 +116,15 @@ class H {
|
||||
|
||||
class PreferredPanelsStatus {
|
||||
bool localManagerPanelOpened;
|
||||
bool marketPanelOpened;
|
||||
bool marketOrMePanelOpened;
|
||||
|
||||
PreferredPanelsStatus({
|
||||
required this.localManagerPanelOpened,
|
||||
required this.marketPanelOpened,
|
||||
required this.marketOrMePanelOpened,
|
||||
});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'PreferredPanelsStatus{localManagerPanelOpened: $localManagerPanelOpened, marketPanelOpened: $marketPanelOpened}';
|
||||
return 'PreferredPanelsStatus{localManagerPanelOpened: $localManagerPanelOpened, marketOrMePanelOpened: $marketOrMePanelOpened}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,13 +3,22 @@ import 'package:dde_gesture_manager/constants/sp_keys.dart';
|
||||
import 'package:dde_gesture_manager/constants/supported_locales.dart';
|
||||
import 'package:dde_gesture_manager/extensions.dart';
|
||||
import 'package:dde_gesture_manager/generated/codegen_loader.g.dart';
|
||||
import 'package:dde_gesture_manager/http/api.dart';
|
||||
import 'package:dde_gesture_manager/models/settings.provider.dart';
|
||||
import 'package:dde_gesture_manager/utils/helper.dart';
|
||||
import 'package:dde_gesture_manager/utils/notificator.dart';
|
||||
import 'package:dde_gesture_manager_api/apis.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_platform_alert/flutter_platform_alert.dart';
|
||||
import 'package:gsettings/gsettings.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
bool _updateChecked = false;
|
||||
|
||||
Future<void> initEvents(BuildContext context) async {
|
||||
H().initTopContext(context);
|
||||
var isDark = MediaQuery.of(context).platformBrightness == Brightness.dark;
|
||||
if (isDark) {
|
||||
context.read<SettingsProvider>().setProps(isDarkMode: isDark);
|
||||
@@ -39,6 +48,32 @@ Future<void> initEvents(BuildContext context) async {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (!_updateChecked)
|
||||
Api.checkAppVersion(ignoreErrorHandle: true).then((value) async {
|
||||
_updateChecked = true;
|
||||
var info = await PackageInfo.fromPlatform();
|
||||
var _buildNumber = int.parse(info.buildNumber);
|
||||
var _newVersionCode = value?.versionCode ?? 0;
|
||||
var _ignoredVersionCode = H().sp.getInt(SPKeys.ignoredUpdateVersion) ?? 0;
|
||||
if (_buildNumber < _newVersionCode && _ignoredVersionCode < _newVersionCode) {
|
||||
Notificator.showConfirm(
|
||||
title: LocaleKeys.info_new_version_title.tr(namedArgs: {'version': '${value?.versionName}'}),
|
||||
description: LocaleKeys.info_new_version_description_for_startup.tr(namedArgs: {
|
||||
'yes': LocaleKeys.str_yes.tr(),
|
||||
'no': LocaleKeys.str_no.tr(),
|
||||
}),
|
||||
).then((confirmed) async {
|
||||
if (confirmed == CustomButton.positiveButton) {
|
||||
if (await canLaunch(Apis.appNewVersionUrl)) {
|
||||
await launch(Apis.appNewVersionUrl);
|
||||
}
|
||||
} else if (confirmed == CustomButton.negativeButton) {
|
||||
H().sp.updateInt(SPKeys.ignoredUpdateVersion, value?.versionCode ?? 0);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> initConfigs() async {
|
||||
|
||||
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
Future<void> initEvents(BuildContext context) async {
|
||||
H().initTopContext(context);
|
||||
var isDark = MediaQuery.of(context).platformBrightness == Brightness.dark;
|
||||
context.read<SettingsProvider>().setProps(isDarkMode: isDark);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:cherry_toast/cherry_toast.dart';
|
||||
import 'package:cherry_toast/resources/arrays.dart';
|
||||
import 'package:dde_gesture_manager/extensions.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_platform_alert/flutter_platform_alert.dart';
|
||||
|
||||
@@ -27,8 +28,8 @@ class Notificator {
|
||||
return AlertImpl().showConfirm(
|
||||
windowTitle: title,
|
||||
text: description,
|
||||
positiveButtonTitle: positiveButtonTitle,
|
||||
negativeButtonTitle: negativeButtonTitle,
|
||||
positiveButtonTitle: positiveButtonTitle ?? LocaleKeys.str_yes.tr(),
|
||||
negativeButtonTitle: negativeButtonTitle ?? LocaleKeys.str_no.tr(),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user