fix: icons for setup and uninstall
This commit is contained in:
parent
c7de109494
commit
d4ca574f1f
10 changed files with 2153 additions and 2150 deletions
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.1 KiB |
BIN
auth/assets/icon/auth-icon.ico
Normal file
BIN
auth/assets/icon/auth-icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
|
@ -1,6 +1,6 @@
|
||||||
flutter_icons:
|
flutter_icons:
|
||||||
android: "launcher_icon"
|
android: "launcher_icon"
|
||||||
image_path: "assets/icon-light.png"
|
image_path: "assets/generation-icons/icon-light.png"
|
||||||
adaptive_icon_foreground: "assets/icon-light-adaptive-fg.png"
|
adaptive_icon_foreground: "assets/generation-icons/icon-light-adaptive-fg.png"
|
||||||
adaptive_icon_background: "#ffffff"
|
adaptive_icon_background: "#ffffff"
|
||||||
|
|
||||||
|
|
|
@ -1,184 +1,185 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:adaptive_theme/adaptive_theme.dart';
|
import 'package:adaptive_theme/adaptive_theme.dart';
|
||||||
import "package:ente_auth/app/view/app.dart";
|
import "package:ente_auth/app/view/app.dart";
|
||||||
import 'package:ente_auth/core/configuration.dart';
|
import 'package:ente_auth/core/configuration.dart';
|
||||||
import 'package:ente_auth/core/constants.dart';
|
import 'package:ente_auth/core/constants.dart';
|
||||||
import 'package:ente_auth/core/logging/super_logging.dart';
|
import 'package:ente_auth/core/logging/super_logging.dart';
|
||||||
import 'package:ente_auth/core/network.dart';
|
import 'package:ente_auth/core/network.dart';
|
||||||
import 'package:ente_auth/ente_theme_data.dart';
|
import 'package:ente_auth/ente_theme_data.dart';
|
||||||
import 'package:ente_auth/locale.dart';
|
import 'package:ente_auth/locale.dart';
|
||||||
import 'package:ente_auth/services/authenticator_service.dart';
|
import 'package:ente_auth/services/authenticator_service.dart';
|
||||||
import 'package:ente_auth/services/billing_service.dart';
|
import 'package:ente_auth/services/billing_service.dart';
|
||||||
import 'package:ente_auth/services/notification_service.dart';
|
import 'package:ente_auth/services/notification_service.dart';
|
||||||
import 'package:ente_auth/services/preference_service.dart';
|
import 'package:ente_auth/services/preference_service.dart';
|
||||||
import 'package:ente_auth/services/update_service.dart';
|
import 'package:ente_auth/services/update_service.dart';
|
||||||
import 'package:ente_auth/services/user_remote_flag_service.dart';
|
import 'package:ente_auth/services/user_remote_flag_service.dart';
|
||||||
import 'package:ente_auth/services/user_service.dart';
|
import 'package:ente_auth/services/user_service.dart';
|
||||||
import 'package:ente_auth/services/window_listener_service.dart';
|
import 'package:ente_auth/services/window_listener_service.dart';
|
||||||
import 'package:ente_auth/store/code_store.dart';
|
import 'package:ente_auth/store/code_store.dart';
|
||||||
import 'package:ente_auth/ui/tools/app_lock.dart';
|
import 'package:ente_auth/ui/tools/app_lock.dart';
|
||||||
import 'package:ente_auth/ui/tools/lock_screen.dart';
|
import 'package:ente_auth/ui/tools/lock_screen.dart';
|
||||||
import 'package:ente_auth/ui/utils/icon_utils.dart';
|
import 'package:ente_auth/ui/utils/icon_utils.dart';
|
||||||
import 'package:ente_auth/utils/platform_util.dart';
|
import 'package:ente_auth/utils/platform_util.dart';
|
||||||
import 'package:ente_auth/utils/window_protocol_handler.dart';
|
import 'package:ente_auth/utils/window_protocol_handler.dart';
|
||||||
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
|
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import "package:flutter/material.dart";
|
import "package:flutter/material.dart";
|
||||||
import 'package:flutter/scheduler.dart';
|
import 'package:flutter/scheduler.dart';
|
||||||
import 'package:flutter_displaymode/flutter_displaymode.dart';
|
import 'package:flutter_displaymode/flutter_displaymode.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:privacy_screen/privacy_screen.dart';
|
import 'package:privacy_screen/privacy_screen.dart';
|
||||||
import 'package:system_tray/system_tray.dart';
|
import 'package:system_tray/system_tray.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
final _logger = Logger("main");
|
final _logger = Logger("main");
|
||||||
|
|
||||||
Future<void> initSystemTray() async {
|
Future<void> initSystemTray() async {
|
||||||
String path =
|
String path = Platform.isWindows
|
||||||
Platform.isWindows ? 'assets/icon-light.ico' : 'assets/icon-light.png';
|
? 'assets/icon/auth-icon.ico'
|
||||||
|
: 'assets/icon/auth-icon.png';
|
||||||
final AppWindow appWindow = AppWindow();
|
|
||||||
final SystemTray systemTray = SystemTray();
|
final AppWindow appWindow = AppWindow();
|
||||||
|
final SystemTray systemTray = SystemTray();
|
||||||
// We first init the systray menu
|
|
||||||
await systemTray.initSystemTray(
|
// We first init the systray menu
|
||||||
title: "",
|
await systemTray.initSystemTray(
|
||||||
iconPath: path,
|
title: "",
|
||||||
);
|
iconPath: path,
|
||||||
|
);
|
||||||
// create context menu
|
|
||||||
final show = MenuItem(label: 'Show', onClicked: () => appWindow.show());
|
// create context menu
|
||||||
final hide = MenuItem(label: 'Hide', onClicked: () => appWindow.hide());
|
final show = MenuItem(label: 'Show', onClicked: () => appWindow.show());
|
||||||
final exit = MenuItem(label: 'Exit', onClicked: () => appWindow.close());
|
final hide = MenuItem(label: 'Hide', onClicked: () => appWindow.hide());
|
||||||
|
final exit = MenuItem(label: 'Exit', onClicked: () => windowManager.close());
|
||||||
// set context menu
|
|
||||||
await systemTray.setContextMenu([show, hide, exit]);
|
// set context menu
|
||||||
|
await systemTray.setContextMenu([show, hide, exit]);
|
||||||
const kSystemTrayEventClick = 'leftMouseDown';
|
|
||||||
const kSystemTrayEventRightClick = 'rightMouseDown';
|
const kSystemTrayEventClick = 'leftMouseDown';
|
||||||
// // handle system tray event
|
const kSystemTrayEventRightClick = 'rightMouseDown';
|
||||||
systemTray.registerSystemTrayEventHandler((eventName) {
|
// // handle system tray event
|
||||||
if (eventName == kSystemTrayEventClick) {
|
systemTray.registerSystemTrayEventHandler((eventName) {
|
||||||
Platform.isWindows ? appWindow.show() : systemTray.popUpContextMenu();
|
if (eventName == kSystemTrayEventClick) {
|
||||||
} else if (eventName == kSystemTrayEventRightClick) {
|
Platform.isWindows ? appWindow.show() : systemTray.popUpContextMenu();
|
||||||
Platform.isWindows ? systemTray.popUpContextMenu() : appWindow.show();
|
} else if (eventName == kSystemTrayEventRightClick) {
|
||||||
}
|
Platform.isWindows ? systemTray.popUpContextMenu() : appWindow.show();
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
|
}
|
||||||
void main() async {
|
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
void main() async {
|
||||||
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
initSystemTray().ignore();
|
|
||||||
|
initSystemTray().ignore();
|
||||||
if (PlatformUtil.isDesktop()) {
|
|
||||||
await windowManager.ensureInitialized();
|
if (PlatformUtil.isDesktop()) {
|
||||||
await WindowListenerService.instance.init();
|
await windowManager.ensureInitialized();
|
||||||
WindowOptions windowOptions = WindowOptions(
|
await WindowListenerService.instance.init();
|
||||||
size: WindowListenerService.instance.getWindowSize(),
|
WindowOptions windowOptions = WindowOptions(
|
||||||
);
|
size: WindowListenerService.instance.getWindowSize(),
|
||||||
await windowManager.waitUntilReadyToShow(windowOptions, () async {
|
);
|
||||||
await windowManager.show();
|
await windowManager.waitUntilReadyToShow(windowOptions, () async {
|
||||||
await windowManager.focus();
|
await windowManager.show();
|
||||||
});
|
await windowManager.focus();
|
||||||
}
|
});
|
||||||
await _runInForeground();
|
}
|
||||||
await _setupPrivacyScreen();
|
await _runInForeground();
|
||||||
if (Platform.isAndroid) {
|
await _setupPrivacyScreen();
|
||||||
FlutterDisplayMode.setHighRefreshRate().ignore();
|
if (Platform.isAndroid) {
|
||||||
}
|
FlutterDisplayMode.setHighRefreshRate().ignore();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Future<void> _runInForeground() async {
|
|
||||||
final savedThemeMode = _themeMode(await AdaptiveTheme.getThemeMode());
|
Future<void> _runInForeground() async {
|
||||||
return await _runWithLogs(() async {
|
final savedThemeMode = _themeMode(await AdaptiveTheme.getThemeMode());
|
||||||
_logger.info("Starting app in foreground");
|
return await _runWithLogs(() async {
|
||||||
await _init(false, via: 'mainMethod');
|
_logger.info("Starting app in foreground");
|
||||||
final Locale locale = await getLocale();
|
await _init(false, via: 'mainMethod');
|
||||||
unawaited(UpdateService.instance.showUpdateNotification());
|
final Locale locale = await getLocale();
|
||||||
runApp(
|
unawaited(UpdateService.instance.showUpdateNotification());
|
||||||
AppLock(
|
runApp(
|
||||||
builder: (args) => App(locale: locale),
|
AppLock(
|
||||||
lockScreen: const LockScreen(),
|
builder: (args) => App(locale: locale),
|
||||||
enabled: Configuration.instance.shouldShowLockScreen(),
|
lockScreen: const LockScreen(),
|
||||||
locale: locale,
|
enabled: Configuration.instance.shouldShowLockScreen(),
|
||||||
lightTheme: lightThemeData,
|
locale: locale,
|
||||||
darkTheme: darkThemeData,
|
lightTheme: lightThemeData,
|
||||||
savedThemeMode: savedThemeMode,
|
darkTheme: darkThemeData,
|
||||||
),
|
savedThemeMode: savedThemeMode,
|
||||||
);
|
),
|
||||||
});
|
);
|
||||||
}
|
});
|
||||||
|
}
|
||||||
ThemeMode _themeMode(AdaptiveThemeMode? savedThemeMode) {
|
|
||||||
if (savedThemeMode == null) return ThemeMode.system;
|
ThemeMode _themeMode(AdaptiveThemeMode? savedThemeMode) {
|
||||||
if (savedThemeMode.isLight) return ThemeMode.light;
|
if (savedThemeMode == null) return ThemeMode.system;
|
||||||
if (savedThemeMode.isDark) return ThemeMode.dark;
|
if (savedThemeMode.isLight) return ThemeMode.light;
|
||||||
return ThemeMode.system;
|
if (savedThemeMode.isDark) return ThemeMode.dark;
|
||||||
}
|
return ThemeMode.system;
|
||||||
|
}
|
||||||
Future _runWithLogs(Function() function, {String prefix = ""}) async {
|
|
||||||
String dir = "";
|
Future _runWithLogs(Function() function, {String prefix = ""}) async {
|
||||||
try {
|
String dir = "";
|
||||||
dir = "${(await getApplicationSupportDirectory()).path}/logs";
|
try {
|
||||||
} catch (_) {}
|
dir = "${(await getApplicationSupportDirectory()).path}/logs";
|
||||||
await SuperLogging.main(
|
} catch (_) {}
|
||||||
LogConfig(
|
await SuperLogging.main(
|
||||||
body: function,
|
LogConfig(
|
||||||
logDirPath: dir,
|
body: function,
|
||||||
maxLogFiles: 5,
|
logDirPath: dir,
|
||||||
sentryDsn: sentryDSN,
|
maxLogFiles: 5,
|
||||||
enableInDebugMode: true,
|
sentryDsn: sentryDSN,
|
||||||
prefix: prefix,
|
enableInDebugMode: true,
|
||||||
),
|
prefix: prefix,
|
||||||
);
|
),
|
||||||
}
|
);
|
||||||
|
}
|
||||||
void _registerWindowsProtocol() {
|
|
||||||
const kWindowsScheme = 'ente';
|
void _registerWindowsProtocol() {
|
||||||
// Register our protocol only on Windows platform
|
const kWindowsScheme = 'ente';
|
||||||
if (!kIsWeb && Platform.isWindows) {
|
// Register our protocol only on Windows platform
|
||||||
WindowsProtocolHandler()
|
if (!kIsWeb && Platform.isWindows) {
|
||||||
.register(kWindowsScheme, executable: null, arguments: null);
|
WindowsProtocolHandler()
|
||||||
}
|
.register(kWindowsScheme, executable: null, arguments: null);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
Future<void> _init(bool bool, {String? via}) async {
|
|
||||||
_registerWindowsProtocol();
|
Future<void> _init(bool bool, {String? via}) async {
|
||||||
await initCryptoUtil();
|
_registerWindowsProtocol();
|
||||||
|
await initCryptoUtil();
|
||||||
await PreferenceService.instance.init();
|
|
||||||
await CodeStore.instance.init();
|
await PreferenceService.instance.init();
|
||||||
await Configuration.instance.init();
|
await CodeStore.instance.init();
|
||||||
await Network.instance.init();
|
await Configuration.instance.init();
|
||||||
await UserService.instance.init();
|
await Network.instance.init();
|
||||||
await UserRemoteFlagService.instance.init();
|
await UserService.instance.init();
|
||||||
await AuthenticatorService.instance.init();
|
await UserRemoteFlagService.instance.init();
|
||||||
await BillingService.instance.init();
|
await AuthenticatorService.instance.init();
|
||||||
await NotificationService.instance.init();
|
await BillingService.instance.init();
|
||||||
await UpdateService.instance.init();
|
await NotificationService.instance.init();
|
||||||
await IconUtils.instance.init();
|
await UpdateService.instance.init();
|
||||||
}
|
await IconUtils.instance.init();
|
||||||
|
}
|
||||||
Future<void> _setupPrivacyScreen() async {
|
|
||||||
if (!PlatformUtil.isMobile()) return;
|
Future<void> _setupPrivacyScreen() async {
|
||||||
final brightness =
|
if (!PlatformUtil.isMobile()) return;
|
||||||
SchedulerBinding.instance.platformDispatcher.platformBrightness;
|
final brightness =
|
||||||
bool isInDarkMode = brightness == Brightness.dark;
|
SchedulerBinding.instance.platformDispatcher.platformBrightness;
|
||||||
await PrivacyScreen.instance.enable(
|
bool isInDarkMode = brightness == Brightness.dark;
|
||||||
iosOptions: const PrivacyIosOptions(
|
await PrivacyScreen.instance.enable(
|
||||||
enablePrivacy: true,
|
iosOptions: const PrivacyIosOptions(
|
||||||
privacyImageName: "LaunchImage",
|
enablePrivacy: true,
|
||||||
lockTrigger: IosLockTrigger.didEnterBackground,
|
privacyImageName: "LaunchImage",
|
||||||
),
|
lockTrigger: IosLockTrigger.didEnterBackground,
|
||||||
androidOptions: const PrivacyAndroidOptions(
|
),
|
||||||
enableSecure: true,
|
androidOptions: const PrivacyAndroidOptions(
|
||||||
),
|
enableSecure: true,
|
||||||
backgroundColor: isInDarkMode ? Colors.black : Colors.white,
|
),
|
||||||
blurEffect:
|
backgroundColor: isInDarkMode ? Colors.black : Colors.white,
|
||||||
isInDarkMode ? PrivacyBlurEffect.dark : PrivacyBlurEffect.extraLight,
|
blurEffect:
|
||||||
);
|
isInDarkMode ? PrivacyBlurEffect.dark : PrivacyBlurEffect.extraLight,
|
||||||
}
|
);
|
||||||
|
}
|
||||||
|
|
3464
auth/pubspec.lock
3464
auth/pubspec.lock
File diff suppressed because it is too large
Load diff
|
@ -1,157 +1,158 @@
|
||||||
name: ente_auth
|
name: ente_auth
|
||||||
description: ente two-factor authenticator
|
description: ente two-factor authenticator
|
||||||
version: 2.0.46+246
|
version: 2.0.46+246
|
||||||
publish_to: none
|
publish_to: none
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.0.0 <4.0.0"
|
sdk: ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
adaptive_theme: ^3.1.0 # done
|
adaptive_theme: ^3.1.0 # done
|
||||||
app_links: ^3.5.0
|
app_links: ^3.5.0
|
||||||
archive: ^3.3.7
|
archive: ^3.3.7
|
||||||
base32: ^2.1.3
|
base32: ^2.1.3
|
||||||
bip39: ^1.0.6 #done
|
bip39: ^1.0.6 #done
|
||||||
bloc: ^8.1.2
|
bloc: ^8.1.2
|
||||||
clipboard: ^0.1.3
|
clipboard: ^0.1.3
|
||||||
collection: # dart
|
collection: # dart
|
||||||
confetti: ^0.7.0
|
confetti: ^0.7.0
|
||||||
connectivity_plus: ^5.0.2
|
connectivity_plus: ^5.0.2
|
||||||
convert: ^3.1.1
|
convert: ^3.1.1
|
||||||
desktop_webview_window:
|
desktop_webview_window:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/MixinNetwork/flutter-plugins
|
url: https://github.com/MixinNetwork/flutter-plugins
|
||||||
path: packages/desktop_webview_window
|
path: packages/desktop_webview_window
|
||||||
device_info_plus: ^9.1.1
|
device_info_plus: ^9.1.1
|
||||||
dio: ^5.4.0
|
dio: ^5.4.0
|
||||||
dotted_border: ^2.0.0+2
|
dotted_border: ^2.0.0+2
|
||||||
email_validator: ^2.0.1
|
email_validator: ^2.0.1
|
||||||
ente_crypto_dart:
|
ente_crypto_dart:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/ente-io/ente_crypto_dart.git
|
url: https://github.com/ente-io/ente_crypto_dart.git
|
||||||
event_bus: ^2.0.0
|
event_bus: ^2.0.0
|
||||||
expandable: ^5.0.1
|
expandable: ^5.0.1
|
||||||
expansion_tile_card: ^3.0.0
|
expansion_tile_card: ^3.0.0
|
||||||
ffi: ^2.1.0
|
ffi: ^2.1.0
|
||||||
file_picker: ^6.1.1
|
file_picker: ^6.1.1
|
||||||
# https://github.com/incrediblezayed/file_saver/issues/86
|
# https://github.com/incrediblezayed/file_saver/issues/86
|
||||||
file_saver: ^0.2.11
|
file_saver: ^0.2.11
|
||||||
fixnum: ^1.1.0
|
fixnum: ^1.1.0
|
||||||
fk_user_agent: ^2.1.0
|
fk_user_agent: ^2.1.0
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
flutter_bloc: ^8.0.1
|
flutter_bloc: ^8.0.1
|
||||||
flutter_displaymode: ^0.6.0
|
flutter_displaymode: ^0.6.0
|
||||||
flutter_email_sender: ^6.0.2
|
flutter_email_sender: ^6.0.2
|
||||||
flutter_inappwebview: ^6.0.0
|
flutter_inappwebview: ^6.0.0
|
||||||
flutter_launcher_icons: ^0.13.1
|
flutter_launcher_icons: ^0.13.1
|
||||||
flutter_local_authentication:
|
flutter_local_authentication:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/eaceto/flutter_local_authentication
|
url: https://github.com/eaceto/flutter_local_authentication
|
||||||
ref: 1ac346a04592a05fd75acccf2e01fa3c7e955d96
|
ref: 1ac346a04592a05fd75acccf2e01fa3c7e955d96
|
||||||
flutter_local_notifications: ^16.3.1+1
|
flutter_local_notifications: ^16.3.1+1
|
||||||
flutter_localizations:
|
flutter_localizations:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
flutter_native_splash: ^2.2.13
|
flutter_native_splash: ^2.2.13
|
||||||
flutter_secure_storage: ^9.0.0
|
flutter_secure_storage: ^9.0.0
|
||||||
flutter_slidable: ^3.0.1
|
flutter_slidable: ^3.0.1
|
||||||
flutter_speed_dial: ^7.0.0
|
flutter_speed_dial: ^7.0.0
|
||||||
flutter_staggered_grid_view: ^0.7.0
|
flutter_staggered_grid_view: ^0.7.0
|
||||||
flutter_svg: ^2.0.5
|
flutter_svg: ^2.0.5
|
||||||
fluttertoast: ^8.1.1
|
fluttertoast: ^8.1.1
|
||||||
google_nav_bar: ^5.0.5 #supported
|
google_nav_bar: ^5.0.5 #supported
|
||||||
http: ^1.1.0
|
http: ^1.1.0
|
||||||
intl: ^0.18.0
|
intl: ^0.18.0
|
||||||
json_annotation: ^4.5.0
|
json_annotation: ^4.5.0
|
||||||
local_auth: ^2.1.7
|
local_auth: ^2.1.7
|
||||||
local_auth_android: ^1.0.31
|
local_auth_android: ^1.0.31
|
||||||
local_auth_ios: ^1.1.3
|
local_auth_ios: ^1.1.3
|
||||||
logging: ^1.0.1
|
logging: ^1.0.1
|
||||||
modal_bottom_sheet: ^3.0.0-pre
|
modal_bottom_sheet: ^3.0.0-pre
|
||||||
move_to_background: ^1.0.2
|
move_to_background: ^1.0.2
|
||||||
otp: ^3.1.1
|
otp: ^3.1.1
|
||||||
package_info_plus: ^4.1.0
|
package_info_plus: ^4.1.0
|
||||||
password_strength: ^0.2.0
|
password_strength: ^0.2.0
|
||||||
path: ^1.8.3
|
path: ^1.8.3
|
||||||
path_provider: ^2.0.11
|
path_provider: ^2.0.11
|
||||||
pinput: ^3.0.1
|
pinput: ^3.0.1
|
||||||
pointycastle: ^3.7.3
|
pointycastle: ^3.7.3
|
||||||
privacy_screen: ^0.0.6
|
privacy_screen: ^0.0.6
|
||||||
protobuf: ^3.0.0
|
protobuf: ^3.0.0
|
||||||
qr_code_scanner: ^1.0.1
|
qr_code_scanner: ^1.0.1
|
||||||
qr_flutter: ^4.1.0
|
qr_flutter: ^4.1.0
|
||||||
sentry: ^7.9.0
|
sentry: ^7.9.0
|
||||||
sentry_flutter: ^7.9.0
|
sentry_flutter: ^7.9.0
|
||||||
share_plus: ^7.2.1
|
share_plus: ^7.2.1
|
||||||
shared_preferences: ^2.0.5
|
shared_preferences: ^2.0.5
|
||||||
sqflite:
|
sqflite:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/tekartik/sqflite
|
url: https://github.com/tekartik/sqflite
|
||||||
path: sqflite
|
path: sqflite
|
||||||
sqflite_common_ffi: ^2.3.0+4
|
sqflite_common_ffi: ^2.3.0+4
|
||||||
sqlite3: ^2.1.0
|
sqlite3: ^2.1.0
|
||||||
sqlite3_flutter_libs: ^0.5.19+1
|
sqlite3_flutter_libs: ^0.5.19+1
|
||||||
step_progress_indicator: ^1.0.2
|
step_progress_indicator: ^1.0.2
|
||||||
styled_text: ^8.1.0
|
styled_text: ^8.1.0
|
||||||
system_tray: ^0.1.1
|
system_tray: ^0.1.1
|
||||||
tuple: ^2.0.0
|
tuple: ^2.0.0
|
||||||
url_launcher: ^6.1.5
|
url_launcher: ^6.1.5
|
||||||
uuid: ^4.2.2
|
uuid: ^4.2.2
|
||||||
win32: ^5.1.1
|
win32: ^5.1.1
|
||||||
window_manager: ^0.3.8
|
window_manager: ^0.3.8
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
flutter_secure_storage_linux:
|
flutter_secure_storage_linux:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/prateekmedia/flutter_secure_storage.git
|
url: https://github.com/prateekmedia/flutter_secure_storage.git
|
||||||
ref: patch-1
|
ref: patch-1
|
||||||
path: flutter_secure_storage_linux
|
path: flutter_secure_storage_linux
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
build_runner: ^2.1.11
|
build_runner: ^2.1.11
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
json_serializable: ^6.2.0
|
json_serializable: ^6.2.0
|
||||||
lints: ^3.0.0
|
lints: ^3.0.0
|
||||||
mocktail: ^1.0.3
|
mocktail: ^1.0.3
|
||||||
|
|
||||||
# The following section is specific to Flutter.
|
# The following section is specific to Flutter.
|
||||||
flutter:
|
flutter:
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
generate: true
|
generate: true
|
||||||
|
|
||||||
# https://docs:flutter:dev/development/ui/assets-and-images:
|
# https://docs:flutter:dev/development/ui/assets-and-images:
|
||||||
assets:
|
assets:
|
||||||
- assets/
|
- assets/
|
||||||
- assets/simple-icons/icons/
|
- assets/icon/
|
||||||
- assets/simple-icons/_data/
|
- assets/simple-icons/icons/
|
||||||
- assets/custom-icons/icons/
|
- assets/simple-icons/_data/
|
||||||
- assets/custom-icons/_data/
|
- assets/custom-icons/icons/
|
||||||
|
- assets/custom-icons/_data/
|
||||||
fonts:
|
|
||||||
- family: Inter
|
fonts:
|
||||||
fonts:
|
- family: Inter
|
||||||
- asset: fonts/Inter-Regular.ttf
|
fonts:
|
||||||
- asset: fonts/Inter-Medium.ttf
|
- asset: fonts/Inter-Regular.ttf
|
||||||
- asset: fonts/Inter-Light.ttf
|
- asset: fonts/Inter-Medium.ttf
|
||||||
- asset: fonts/Inter-SemiBold.ttf
|
- asset: fonts/Inter-Light.ttf
|
||||||
- asset: fonts/Inter-Bold.ttf
|
- asset: fonts/Inter-SemiBold.ttf
|
||||||
- family: Montserrat
|
- asset: fonts/Inter-Bold.ttf
|
||||||
fonts:
|
- family: Montserrat
|
||||||
- asset: fonts/Montserrat-Bold.ttf
|
fonts:
|
||||||
|
- asset: fonts/Montserrat-Bold.ttf
|
||||||
flutter_icons:
|
|
||||||
android: "launcher_icon"
|
flutter_icons:
|
||||||
adaptive_icon_foreground: "assets/icon-light-adaptive-fg.png"
|
android: "launcher_icon"
|
||||||
adaptive_icon_background: "#ffffff"
|
adaptive_icon_foreground: "assets/generation-icons/icon-light-adaptive-fg.png"
|
||||||
ios: true
|
adaptive_icon_background: "#ffffff"
|
||||||
image_path: "assets/icon-light.png"
|
ios: true
|
||||||
remove_alpha_ios: true
|
image_path: "assets/generation-icons/icon-light.png"
|
||||||
|
remove_alpha_ios: true
|
||||||
flutter_native_splash:
|
|
||||||
color: "#ffffff"
|
flutter_native_splash:
|
||||||
color_dark: "#000000"
|
color: "#ffffff"
|
||||||
image: assets/splash-screen-light.png
|
color_dark: "#000000"
|
||||||
image_dark: assets/splash-screen-dark.png
|
image: assets/splash-screen-light.png
|
||||||
android_fullscreen: true
|
image_dark: assets/splash-screen-dark.png
|
||||||
android_gravity: center
|
android_fullscreen: true
|
||||||
ios_content_mode: center
|
android_gravity: center
|
||||||
|
ios_content_mode: center
|
||||||
|
|
|
@ -1,62 +1,62 @@
|
||||||
[Setup]
|
[Setup]
|
||||||
AppId={{APP_ID}}
|
AppId={{APP_ID}}
|
||||||
AppVersion={{APP_VERSION}}
|
AppVersion={{APP_VERSION}}
|
||||||
AppName={{DISPLAY_NAME}}
|
AppName={{DISPLAY_NAME}}
|
||||||
AppPublisher={{PUBLISHER_NAME}}
|
AppPublisher={{PUBLISHER_NAME}}
|
||||||
AppPublisherURL={{PUBLISHER_URL}}
|
AppPublisherURL={{PUBLISHER_URL}}
|
||||||
AppSupportURL={{PUBLISHER_URL}}
|
AppSupportURL={{PUBLISHER_URL}}
|
||||||
AppUpdatesURL={{PUBLISHER_URL}}
|
AppUpdatesURL={{PUBLISHER_URL}}
|
||||||
DefaultDirName={{INSTALL_DIR_NAME}}
|
DefaultDirName={{INSTALL_DIR_NAME}}
|
||||||
DisableProgramGroupPage=yes
|
DisableProgramGroupPage=yes
|
||||||
OutputDir=.
|
OutputDir=.
|
||||||
OutputBaseFilename={{OUTPUT_BASE_FILENAME}}
|
OutputBaseFilename={{OUTPUT_BASE_FILENAME}}
|
||||||
Compression=lzma
|
Compression=lzma
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
SetupIconFile={{SETUP_ICON_FILE}}
|
SetupIconFile={{SETUP_ICON_FILE}}
|
||||||
WizardStyle=modern
|
WizardStyle=modern
|
||||||
PrivilegesRequired={{PRIVILEGES_REQUIRED}}
|
PrivilegesRequired={{PRIVILEGES_REQUIRED}}
|
||||||
ArchitecturesAllowed=x64
|
ArchitecturesAllowed=x64
|
||||||
ArchitecturesInstallIn64BitMode=x64
|
ArchitecturesInstallIn64BitMode=x64
|
||||||
|
|
||||||
[Languages]
|
[Languages]
|
||||||
{% for locale in LOCALES %}
|
{% for locale in LOCALES %}
|
||||||
{% if locale == 'en' %}Name: "english"; MessagesFile: "compiler:Default.isl"{% endif %}
|
{% if locale == 'en' %}Name: "english"; MessagesFile: "compiler:Default.isl"{% endif %}
|
||||||
{% if locale == 'hy' %}Name: "armenian"; MessagesFile: "compiler:Languages\\Armenian.isl"{% endif %}
|
{% if locale == 'hy' %}Name: "armenian"; MessagesFile: "compiler:Languages\\Armenian.isl"{% endif %}
|
||||||
{% if locale == 'bg' %}Name: "bulgarian"; MessagesFile: "compiler:Languages\\Bulgarian.isl"{% endif %}
|
{% if locale == 'bg' %}Name: "bulgarian"; MessagesFile: "compiler:Languages\\Bulgarian.isl"{% endif %}
|
||||||
{% if locale == 'ca' %}Name: "catalan"; MessagesFile: "compiler:Languages\\Catalan.isl"{% endif %}
|
{% if locale == 'ca' %}Name: "catalan"; MessagesFile: "compiler:Languages\\Catalan.isl"{% endif %}
|
||||||
{% if locale == 'zh' %}Name: "chinesesimplified"; MessagesFile: "compiler:Languages\\ChineseSimplified.isl"{% endif %}
|
{% if locale == 'zh' %}Name: "chinesesimplified"; MessagesFile: "compiler:Languages\\ChineseSimplified.isl"{% endif %}
|
||||||
{% if locale == 'co' %}Name: "corsican"; MessagesFile: "compiler:Languages\\Corsican.isl"{% endif %}
|
{% if locale == 'co' %}Name: "corsican"; MessagesFile: "compiler:Languages\\Corsican.isl"{% endif %}
|
||||||
{% if locale == 'cs' %}Name: "czech"; MessagesFile: "compiler:Languages\\Czech.isl"{% endif %}
|
{% if locale == 'cs' %}Name: "czech"; MessagesFile: "compiler:Languages\\Czech.isl"{% endif %}
|
||||||
{% if locale == 'da' %}Name: "danish"; MessagesFile: "compiler:Languages\\Danish.isl"{% endif %}
|
{% if locale == 'da' %}Name: "danish"; MessagesFile: "compiler:Languages\\Danish.isl"{% endif %}
|
||||||
{% if locale == 'nl' %}Name: "dutch"; MessagesFile: "compiler:Languages\\Dutch.isl"{% endif %}
|
{% if locale == 'nl' %}Name: "dutch"; MessagesFile: "compiler:Languages\\Dutch.isl"{% endif %}
|
||||||
{% if locale == 'fi' %}Name: "finnish"; MessagesFile: "compiler:Languages\\Finnish.isl"{% endif %}
|
{% if locale == 'fi' %}Name: "finnish"; MessagesFile: "compiler:Languages\\Finnish.isl"{% endif %}
|
||||||
{% if locale == 'fr' %}Name: "french"; MessagesFile: "compiler:Languages\\French.isl"{% endif %}
|
{% if locale == 'fr' %}Name: "french"; MessagesFile: "compiler:Languages\\French.isl"{% endif %}
|
||||||
{% if locale == 'de' %}Name: "german"; MessagesFile: "compiler:Languages\\German.isl"{% endif %}
|
{% if locale == 'de' %}Name: "german"; MessagesFile: "compiler:Languages\\German.isl"{% endif %}
|
||||||
{% if locale == 'he' %}Name: "hebrew"; MessagesFile: "compiler:Languages\\Hebrew.isl"{% endif %}
|
{% if locale == 'he' %}Name: "hebrew"; MessagesFile: "compiler:Languages\\Hebrew.isl"{% endif %}
|
||||||
{% if locale == 'is' %}Name: "icelandic"; MessagesFile: "compiler:Languages\\Icelandic.isl"{% endif %}
|
{% if locale == 'is' %}Name: "icelandic"; MessagesFile: "compiler:Languages\\Icelandic.isl"{% endif %}
|
||||||
{% if locale == 'it' %}Name: "italian"; MessagesFile: "compiler:Languages\\Italian.isl"{% endif %}
|
{% if locale == 'it' %}Name: "italian"; MessagesFile: "compiler:Languages\\Italian.isl"{% endif %}
|
||||||
{% if locale == 'ja' %}Name: "japanese"; MessagesFile: "compiler:Languages\\Japanese.isl"{% endif %}
|
{% if locale == 'ja' %}Name: "japanese"; MessagesFile: "compiler:Languages\\Japanese.isl"{% endif %}
|
||||||
{% if locale == 'no' %}Name: "norwegian"; MessagesFile: "compiler:Languages\\Norwegian.isl"{% endif %}
|
{% if locale == 'no' %}Name: "norwegian"; MessagesFile: "compiler:Languages\\Norwegian.isl"{% endif %}
|
||||||
{% if locale == 'pl' %}Name: "polish"; MessagesFile: "compiler:Languages\\Polish.isl"{% endif %}
|
{% if locale == 'pl' %}Name: "polish"; MessagesFile: "compiler:Languages\\Polish.isl"{% endif %}
|
||||||
{% if locale == 'pt' %}Name: "portuguese"; MessagesFile: "compiler:Languages\\Portuguese.isl"{% endif %}
|
{% if locale == 'pt' %}Name: "portuguese"; MessagesFile: "compiler:Languages\\Portuguese.isl"{% endif %}
|
||||||
{% if locale == 'ru' %}Name: "russian"; MessagesFile: "compiler:Languages\\Russian.isl"{% endif %}
|
{% if locale == 'ru' %}Name: "russian"; MessagesFile: "compiler:Languages\\Russian.isl"{% endif %}
|
||||||
{% if locale == 'sk' %}Name: "slovak"; MessagesFile: "compiler:Languages\\Slovak.isl"{% endif %}
|
{% if locale == 'sk' %}Name: "slovak"; MessagesFile: "compiler:Languages\\Slovak.isl"{% endif %}
|
||||||
{% if locale == 'sl' %}Name: "slovenian"; MessagesFile: "compiler:Languages\\Slovenian.isl"{% endif %}
|
{% if locale == 'sl' %}Name: "slovenian"; MessagesFile: "compiler:Languages\\Slovenian.isl"{% endif %}
|
||||||
{% if locale == 'es' %}Name: "spanish"; MessagesFile: "compiler:Languages\\Spanish.isl"{% endif %}
|
{% if locale == 'es' %}Name: "spanish"; MessagesFile: "compiler:Languages\\Spanish.isl"{% endif %}
|
||||||
{% if locale == 'tr' %}Name: "turkish"; MessagesFile: "compiler:Languages\\Turkish.isl"{% endif %}
|
{% if locale == 'tr' %}Name: "turkish"; MessagesFile: "compiler:Languages\\Turkish.isl"{% endif %}
|
||||||
{% if locale == 'uk' %}Name: "ukrainian"; MessagesFile: "compiler:Languages\\Ukrainian.isl"{% endif %}
|
{% if locale == 'uk' %}Name: "ukrainian"; MessagesFile: "compiler:Languages\\Ukrainian.isl"{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
[Tasks]
|
[Tasks]
|
||||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: {% if CREATE_DESKTOP_ICON != true %}unchecked{% else %}checkedonce{% endif %}
|
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: {% if CREATE_DESKTOP_ICON != true %}unchecked{% else %}checkedonce{% endif %}
|
||||||
Name: "launchAtStartup"; Description: "{cm:AutoStartProgram,{{DISPLAY_NAME}}}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: {% if LAUNCH_AT_STARTUP != true %}unchecked{% else %}checkedonce{% endif %}
|
Name: "launchAtStartup"; Description: "{cm:AutoStartProgram,{{DISPLAY_NAME}}}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: {% if LAUNCH_AT_STARTUP != true %}unchecked{% else %}checkedonce{% endif %}
|
||||||
[Files]
|
[Files]
|
||||||
Source: "{{SOURCE_DIR}}\\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
Source: "{{SOURCE_DIR}}\\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||||
|
|
||||||
[Icons]
|
[Icons]
|
||||||
Name: "{autoprograms}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"
|
Name: "{autoprograms}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"
|
||||||
Name: "{autodesktop}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"; Tasks: desktopicon
|
Name: "{autodesktop}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"; Tasks: desktopicon
|
||||||
Name: "{userstartup}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"; WorkingDir: "{app}"; Tasks: launchAtStartup
|
Name: "{userstartup}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"; WorkingDir: "{app}"; Tasks: launchAtStartup
|
||||||
[Run]
|
[Run]
|
||||||
Filename: "{app}\\{{EXECUTABLE_NAME}}"; Description: "{cm:LaunchProgram,{{DISPLAY_NAME}}}"; Flags: {% if PRIVILEGES_REQUIRED == 'admin' %}runascurrentuser{% endif %} nowait postinstall skipifsilent
|
Filename: "{app}\\{{EXECUTABLE_NAME}}"; Description: "{cm:LaunchProgram,{{DISPLAY_NAME}}}"; Flags: {% if PRIVILEGES_REQUIRED == 'admin' %}runascurrentuser{% endif %} nowait postinstall skipifsilent
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
app_id: 9E5F0C93-96A3-4DA9-AE52-1AA6339851FC
|
app_id: 9E5F0C93-96A3-4DA9-AE52-1AA6339851FC
|
||||||
publisher: ente.io
|
publisher: ente.io
|
||||||
publisher_url: https://github.com/ente-io/ente
|
publisher_url: https://github.com/ente-io/ente
|
||||||
display_name: ente Auth
|
display_name: ente Auth
|
||||||
create_desktop_icon: false
|
create_desktop_icon: false
|
||||||
install_dir_name: "{pf}\\Ente Auth"
|
install_dir_name: "{pf}\\Ente Auth"
|
||||||
script_template: inno_setup.iss
|
setup_icon_file: ../../assets/icon/auth-icon.ico
|
||||||
locales:
|
script_template: inno_setup.iss
|
||||||
- en
|
locales:
|
||||||
|
- en
|
||||||
|
|
Loading…
Reference in a new issue