[FIX] Auth desktop (#1234)
Fixes for auth desktop - Install Dir path and name fix - Install/Uninstall Icon fix - Don't check "add Desktop icon" by default - Fix Exit app in system tray
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 |
Before Width: | Height: | Size: 2.1 KiB |
BIN
auth/assets/icons/auth-icon.ico
Normal file
After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
@ -1,6 +1,6 @@
|
|||
flutter_icons:
|
||||
android: "launcher_icon"
|
||||
image_path: "assets/icon-light.png"
|
||||
adaptive_icon_foreground: "assets/icon-light-adaptive-fg.png"
|
||||
adaptive_icon_background: "#ffffff"
|
||||
|
||||
flutter_icons:
|
||||
android: "launcher_icon"
|
||||
image_path: "assets/generation-icons/icon-light.png"
|
||||
adaptive_icon_foreground: "assets/generation-icons/icon-light-adaptive-fg.png"
|
||||
adaptive_icon_background: "#ffffff"
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ import 'package:ente_auth/ui/settings/app_update_dialog.dart';
|
|||
import 'package:flutter/foundation.dart';
|
||||
import "package:flutter/material.dart";
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:system_tray/system_tray.dart';
|
||||
import 'package:tray_manager/tray_manager.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
class App extends StatefulWidget {
|
||||
|
@ -34,7 +34,7 @@ class App extends StatefulWidget {
|
|||
State<App> createState() => _AppState();
|
||||
}
|
||||
|
||||
class _AppState extends State<App> with WindowListener {
|
||||
class _AppState extends State<App> with WindowListener, TrayListener {
|
||||
late StreamSubscription<SignedOutEvent> _signedOutEvent;
|
||||
late StreamSubscription<SignedInEvent> _signedInEvent;
|
||||
Locale? locale;
|
||||
|
@ -49,9 +49,15 @@ class _AppState extends State<App> with WindowListener {
|
|||
await windowManager.setPreventClose(true);
|
||||
}
|
||||
|
||||
Future<void> initTrayManager() async {
|
||||
trayManager.addListener(this);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
initWindowManager();
|
||||
initTrayManager();
|
||||
|
||||
_signedOutEvent = Bus.instance.on<SignedOutEvent>().listen((event) {
|
||||
if (mounted) {
|
||||
setState(() {});
|
||||
|
@ -85,7 +91,10 @@ class _AppState extends State<App> with WindowListener {
|
|||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
|
||||
windowManager.removeListener(this);
|
||||
trayManager.removeListener(this);
|
||||
|
||||
_signedOutEvent.cancel();
|
||||
_signedInEvent.cancel();
|
||||
}
|
||||
|
@ -147,12 +156,42 @@ class _AppState extends State<App> with WindowListener {
|
|||
|
||||
@override
|
||||
void onWindowClose() async {
|
||||
final AppWindow appWindow = AppWindow();
|
||||
await appWindow.hide();
|
||||
await windowManager.hide();
|
||||
}
|
||||
|
||||
@override
|
||||
void onWindowResize() {
|
||||
WindowListenerService.instance.onWindowResize().ignore();
|
||||
}
|
||||
|
||||
@override
|
||||
void onTrayIconMouseDown() {
|
||||
if (Platform.isWindows) {
|
||||
windowManager.show();
|
||||
} else {
|
||||
trayManager.popUpContextMenu();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void onTrayIconRightMouseDown() {
|
||||
if (Platform.isWindows) {
|
||||
trayManager.popUpContextMenu();
|
||||
} else {
|
||||
windowManager.show();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void onTrayIconRightMouseUp() {}
|
||||
|
||||
@override
|
||||
void onTrayMenuItemClick(MenuItem menuItem) {
|
||||
if (menuItem.key == 'show_window') {
|
||||
windowManager.show();
|
||||
} else if (menuItem.key == 'exit_app') {
|
||||
windowManager.setPreventClose(false);
|
||||
windowManager.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,42 +31,30 @@ import 'package:flutter_displaymode/flutter_displaymode.dart';
|
|||
import 'package:logging/logging.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:privacy_screen/privacy_screen.dart';
|
||||
import 'package:system_tray/system_tray.dart';
|
||||
import 'package:tray_manager/tray_manager.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
final _logger = Logger("main");
|
||||
|
||||
Future<void> initSystemTray() async {
|
||||
String path =
|
||||
Platform.isWindows ? 'assets/icon-light.ico' : 'assets/icon-light.png';
|
||||
|
||||
final AppWindow appWindow = AppWindow();
|
||||
final SystemTray systemTray = SystemTray();
|
||||
|
||||
// We first init the systray menu
|
||||
await systemTray.initSystemTray(
|
||||
title: "",
|
||||
iconPath: path,
|
||||
String path = Platform.isWindows
|
||||
? 'assets/icons/auth-icon.ico'
|
||||
: 'assets/icons/auth-icon.png';
|
||||
await trayManager.setIcon(path);
|
||||
Menu menu = Menu(
|
||||
items: [
|
||||
MenuItem(
|
||||
key: 'show_window',
|
||||
label: 'Show Window',
|
||||
),
|
||||
MenuItem.separator(),
|
||||
MenuItem(
|
||||
key: 'exit_app',
|
||||
label: 'Exit App',
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
// create context menu
|
||||
final show = MenuItem(label: 'Show', onClicked: () => appWindow.show());
|
||||
final hide = MenuItem(label: 'Hide', onClicked: () => appWindow.hide());
|
||||
final exit = MenuItem(label: 'Exit', onClicked: () => appWindow.close());
|
||||
|
||||
// set context menu
|
||||
await systemTray.setContextMenu([show, hide, exit]);
|
||||
|
||||
const kSystemTrayEventClick = 'leftMouseDown';
|
||||
const kSystemTrayEventRightClick = 'rightMouseDown';
|
||||
// // handle system tray event
|
||||
systemTray.registerSystemTrayEventHandler((eventName) {
|
||||
if (eventName == kSystemTrayEventClick) {
|
||||
Platform.isWindows ? appWindow.show() : systemTray.popUpContextMenu();
|
||||
} else if (eventName == kSystemTrayEventRightClick) {
|
||||
Platform.isWindows ? systemTray.popUpContextMenu() : appWindow.show();
|
||||
}
|
||||
});
|
||||
await trayManager.setContextMenu(menu);
|
||||
}
|
||||
|
||||
void main() async {
|
||||
|
|
|
@ -5,7 +5,7 @@ import 'package:flutter/cupertino.dart';
|
|||
import 'package:flutter_local_authentication/flutter_local_authentication.dart';
|
||||
import 'package:local_auth/local_auth.dart';
|
||||
import 'package:local_auth_android/local_auth_android.dart';
|
||||
import 'package:local_auth_ios/types/auth_messages_ios.dart';
|
||||
import 'package:local_auth_darwin/types/auth_messages_ios.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
Future<bool> requestAuthentication(BuildContext context, String reason) async {
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include <smart_auth/smart_auth_plugin.h>
|
||||
#include <sodium_libs/sodium_libs_plugin.h>
|
||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
|
||||
#include <system_tray/system_tray_plugin.h>
|
||||
#include <tray_manager/tray_manager_plugin.h>
|
||||
#include <url_launcher_linux/url_launcher_plugin.h>
|
||||
#include <window_manager/window_manager_plugin.h>
|
||||
|
||||
|
@ -51,9 +51,9 @@ void fl_register_plugins(FlPluginRegistry* registry) {
|
|||
g_autoptr(FlPluginRegistrar) sqlite3_flutter_libs_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "Sqlite3FlutterLibsPlugin");
|
||||
sqlite3_flutter_libs_plugin_register_with_registrar(sqlite3_flutter_libs_registrar);
|
||||
g_autoptr(FlPluginRegistrar) system_tray_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "SystemTrayPlugin");
|
||||
system_tray_plugin_register_with_registrar(system_tray_registrar);
|
||||
g_autoptr(FlPluginRegistrar) tray_manager_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "TrayManagerPlugin");
|
||||
tray_manager_plugin_register_with_registrar(tray_manager_registrar);
|
||||
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
|
||||
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
|
||||
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
|
||||
|
|
|
@ -13,7 +13,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||
smart_auth
|
||||
sodium_libs
|
||||
sqlite3_flutter_libs
|
||||
system_tray
|
||||
tray_manager
|
||||
url_launcher_linux
|
||||
window_manager
|
||||
)
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
display_name: Auth
|
||||
license: GPLv3
|
||||
|
||||
icon: assets/icon/auth-icon.png
|
||||
|
||||
keywords:
|
||||
- Authentication
|
||||
- 2FA
|
||||
|
||||
generic_name: ente Auth
|
||||
|
||||
categories:
|
||||
- Utility
|
||||
|
||||
startup_notify: false
|
||||
|
||||
# You can specify the shared libraries that you want to bundle with your app
|
||||
#
|
||||
# flutter_distributor automatically detects the shared libraries that your app
|
||||
# depends on, but you can also specify them manually here.
|
||||
#
|
||||
# The following example shows how to bundle the libcurl library with your app.
|
||||
#
|
||||
# include:
|
||||
# - libcurl.so.4
|
||||
include: []
|
||||
display_name: Auth
|
||||
license: GPLv3
|
||||
|
||||
icon: assets/icons/auth-icon.png
|
||||
|
||||
keywords:
|
||||
- Authentication
|
||||
- 2FA
|
||||
|
||||
generic_name: ente Auth
|
||||
|
||||
categories:
|
||||
- Utility
|
||||
|
||||
startup_notify: false
|
||||
|
||||
# You can specify the shared libraries that you want to bundle with your app
|
||||
#
|
||||
# flutter_distributor automatically detects the shared libraries that your app
|
||||
# depends on, but you can also specify them manually here.
|
||||
#
|
||||
# The following example shows how to bundle the libcurl library with your app.
|
||||
#
|
||||
# include:
|
||||
# - libcurl.so.4
|
||||
include: []
|
||||
|
|
|
@ -1,34 +1,34 @@
|
|||
display_name: Auth
|
||||
package_name: auth
|
||||
maintainer:
|
||||
name: Ente.io Developers
|
||||
email: human@ente.io
|
||||
priority: optional
|
||||
section: x11
|
||||
essential: false
|
||||
license: GPLv3
|
||||
icon: assets/icon/auth-icon.png
|
||||
installed_size: 36000
|
||||
|
||||
dependencies:
|
||||
- libwebkit2gtk-4.0-37
|
||||
- libsqlite3-0
|
||||
- libsodium23
|
||||
- libsecret-1-0
|
||||
- libappindicator3-1 | libayatana-appindicator3-1
|
||||
- gir1.2-appindicator3-0.1 | gir1.2-ayatanaappindicator3-0.1
|
||||
- libayatana-ido3-0.4-0
|
||||
|
||||
keywords:
|
||||
- Authentication
|
||||
- 2FA
|
||||
|
||||
generic_name: Ente Authentication
|
||||
|
||||
categories:
|
||||
- Utility
|
||||
|
||||
startup_notify: false
|
||||
|
||||
supported_mime_type:
|
||||
- x-scheme-handler/ente
|
||||
display_name: Auth
|
||||
package_name: auth
|
||||
maintainer:
|
||||
name: Ente.io Developers
|
||||
email: human@ente.io
|
||||
priority: optional
|
||||
section: x11
|
||||
essential: false
|
||||
license: GPLv3
|
||||
icon: assets/icons/auth-icon.png
|
||||
installed_size: 36000
|
||||
|
||||
dependencies:
|
||||
- libwebkit2gtk-4.0-37
|
||||
- libsqlite3-0
|
||||
- libsodium23
|
||||
- libsecret-1-0
|
||||
- libappindicator3-1 | libayatana-appindicator3-1
|
||||
- gir1.2-appindicator3-0.1 | gir1.2-ayatanaappindicator3-0.1
|
||||
- libayatana-ido3-0.4-0
|
||||
|
||||
keywords:
|
||||
- Authentication
|
||||
- 2FA
|
||||
|
||||
generic_name: Ente Authentication
|
||||
|
||||
categories:
|
||||
- Utility
|
||||
|
||||
startup_notify: false
|
||||
|
||||
supported_mime_type:
|
||||
- x-scheme-handler/ente
|
||||
|
|
|
@ -1,31 +1,31 @@
|
|||
icon: assets/icon/auth-icon.png
|
||||
summary: 2FA app with free end-to-end encrypted backup and sync
|
||||
group: Application/Utility
|
||||
vendor: Ente.io
|
||||
packager: Ente.io Developers
|
||||
packagerEmail: human@ente.io
|
||||
license: GPLv3
|
||||
url: https://github.com/ente-io/ente
|
||||
|
||||
display_name: Auth
|
||||
|
||||
dependencies:
|
||||
- libsqlite3x
|
||||
- webkit2gtk-4.0
|
||||
- libsodium
|
||||
- libsecret
|
||||
- libappindicator
|
||||
|
||||
keywords:
|
||||
- Authentication
|
||||
- 2FA
|
||||
|
||||
generic_name: Ente Authentication
|
||||
|
||||
categories:
|
||||
- Utility
|
||||
|
||||
startup_notify: false
|
||||
|
||||
supported_mime_type:
|
||||
- x-scheme-handler/ente
|
||||
icon: assets/icons/auth-icon.png
|
||||
summary: 2FA app with free end-to-end encrypted backup and sync
|
||||
group: Application/Utility
|
||||
vendor: Ente.io
|
||||
packager: Ente.io Developers
|
||||
packagerEmail: human@ente.io
|
||||
license: GPLv3
|
||||
url: https://github.com/ente-io/ente
|
||||
|
||||
display_name: Auth
|
||||
|
||||
dependencies:
|
||||
- libsqlite3x
|
||||
- webkit2gtk-4.0
|
||||
- libsodium
|
||||
- libsecret
|
||||
- libappindicator
|
||||
|
||||
keywords:
|
||||
- Authentication
|
||||
- 2FA
|
||||
|
||||
generic_name: Ente Authentication
|
||||
|
||||
categories:
|
||||
- Utility
|
||||
|
||||
startup_notify: false
|
||||
|
||||
supported_mime_type:
|
||||
- x-scheme-handler/ente
|
||||
|
|
|
@ -24,7 +24,7 @@ import smart_auth
|
|||
import sodium_libs
|
||||
import sqflite
|
||||
import sqlite3_flutter_libs
|
||||
import system_tray
|
||||
import tray_manager
|
||||
import url_launcher_macos
|
||||
import window_manager
|
||||
|
||||
|
@ -48,7 +48,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
|||
SodiumLibsPlugin.register(with: registry.registrar(forPlugin: "SodiumLibsPlugin"))
|
||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||
Sqlite3FlutterLibsPlugin.register(with: registry.registrar(forPlugin: "Sqlite3FlutterLibsPlugin"))
|
||||
SystemTrayPlugin.register(with: registry.registrar(forPlugin: "SystemTrayPlugin"))
|
||||
TrayManagerPlugin.register(with: registry.registrar(forPlugin: "TrayManagerPlugin"))
|
||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||
WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin"))
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
title: Auth
|
||||
icon: ../../../assets/icon/auth-icon.png
|
||||
contents:
|
||||
- x: 448
|
||||
y: 344
|
||||
type: link
|
||||
path: "/Applications"
|
||||
- x: 192
|
||||
y: 344
|
||||
type: file
|
||||
path: ente Auth.app
|
||||
title: Auth
|
||||
icon: ../../../assets/icons/auth-icon.png
|
||||
contents:
|
||||
- x: 448
|
||||
y: 344
|
||||
type: link
|
||||
path: "/Applications"
|
||||
- x: 192
|
||||
y: 344
|
||||
type: file
|
||||
path: ente Auth.app
|
||||
|
|
|
@ -858,21 +858,13 @@ packages:
|
|||
source: hosted
|
||||
version: "1.0.37"
|
||||
local_auth_darwin:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: local_auth_darwin
|
||||
sha256: "33381a15b0de2279523eca694089393bb146baebdce72a404555d03174ebc1e9"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.2"
|
||||
local_auth_ios:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: local_auth_ios
|
||||
sha256: "6dde47dc852bc0c8343cb58e66a46efb16b62eddf389ce103d4dacb0c6c40c71"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.7"
|
||||
local_auth_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -913,6 +905,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.0"
|
||||
menu_base:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: menu_base
|
||||
sha256: "820368014a171bd1241030278e6c2617354f492f5c703d7b7d4570a6b8b84405"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1305,6 +1305,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
shortid:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shortid
|
||||
sha256: d0b40e3dbb50497dad107e19c54ca7de0d1a274eb9b4404991e443dadb9ebedb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.2"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
|
@ -1463,14 +1471,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.0+1"
|
||||
system_tray:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: system_tray
|
||||
sha256: "1bcc11bc230033be20d7443c29f65f68d67169715a838a1122f20fbff5dd2d19"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.1"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1503,6 +1503,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.1"
|
||||
tray_manager:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: tray_manager
|
||||
sha256: "4ab709d70a4374af172f8c39e018db33a4271265549c6fc9d269a65e5f4b0225"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.1"
|
||||
tuple:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name: ente_auth
|
||||
description: ente two-factor authenticator
|
||||
version: 2.0.46+246
|
||||
version: 2.0.47+247
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
|
@ -63,9 +63,9 @@ dependencies:
|
|||
http: ^1.1.0
|
||||
intl: ^0.18.0
|
||||
json_annotation: ^4.5.0
|
||||
local_auth: ^2.1.7
|
||||
local_auth_android: ^1.0.31
|
||||
local_auth_ios: ^1.1.3
|
||||
local_auth: ^2.2.0
|
||||
local_auth_android: ^1.0.37
|
||||
local_auth_darwin: ^1.2.2
|
||||
logging: ^1.0.1
|
||||
modal_bottom_sheet: ^3.0.0-pre
|
||||
move_to_background: ^1.0.2
|
||||
|
@ -93,7 +93,7 @@ dependencies:
|
|||
sqlite3_flutter_libs: ^0.5.19+1
|
||||
step_progress_indicator: ^1.0.2
|
||||
styled_text: ^8.1.0
|
||||
system_tray: ^0.1.1
|
||||
tray_manager: ^0.2.1
|
||||
tuple: ^2.0.0
|
||||
url_launcher: ^6.1.5
|
||||
uuid: ^4.2.2
|
||||
|
@ -122,6 +122,7 @@ flutter:
|
|||
# https://docs:flutter:dev/development/ui/assets-and-images:
|
||||
assets:
|
||||
- assets/
|
||||
- assets/icons/
|
||||
- assets/simple-icons/icons/
|
||||
- assets/simple-icons/_data/
|
||||
- assets/custom-icons/icons/
|
||||
|
@ -141,10 +142,10 @@ flutter:
|
|||
|
||||
flutter_icons:
|
||||
android: "launcher_icon"
|
||||
adaptive_icon_foreground: "assets/icon-light-adaptive-fg.png"
|
||||
adaptive_icon_foreground: "assets/generation-icons/icon-light-adaptive-fg.png"
|
||||
adaptive_icon_background: "#ffffff"
|
||||
ios: true
|
||||
image_path: "assets/icon-light.png"
|
||||
image_path: "assets/generation-icons/icon-light.png"
|
||||
remove_alpha_ios: true
|
||||
|
||||
flutter_native_splash:
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include <smart_auth/smart_auth_plugin.h>
|
||||
#include <sodium_libs/sodium_libs_plugin_c_api.h>
|
||||
#include <sqlite3_flutter_libs/sqlite3_flutter_libs_plugin.h>
|
||||
#include <system_tray/system_tray_plugin.h>
|
||||
#include <tray_manager/tray_manager_plugin.h>
|
||||
#include <url_launcher_windows/url_launcher_windows.h>
|
||||
#include <window_manager/window_manager_plugin.h>
|
||||
|
||||
|
@ -50,8 +50,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
|
|||
registry->GetRegistrarForPlugin("SodiumLibsPluginCApi"));
|
||||
Sqlite3FlutterLibsPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("Sqlite3FlutterLibsPlugin"));
|
||||
SystemTrayPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("SystemTrayPlugin"));
|
||||
TrayManagerPluginRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("TrayManagerPlugin"));
|
||||
UrlLauncherWindowsRegisterWithRegistrar(
|
||||
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
|
||||
WindowManagerPluginRegisterWithRegistrar(
|
||||
|
|
|
@ -16,7 +16,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
|||
smart_auth
|
||||
sodium_libs
|
||||
sqlite3_flutter_libs
|
||||
system_tray
|
||||
tray_manager
|
||||
url_launcher_windows
|
||||
window_manager
|
||||
)
|
||||
|
|
62
auth/windows/packaging/exe/inno_setup.iss
Normal file
|
@ -0,0 +1,62 @@
|
|||
[Setup]
|
||||
AppId={{APP_ID}}
|
||||
AppVersion={{APP_VERSION}}
|
||||
AppName={{DISPLAY_NAME}}
|
||||
AppPublisher={{PUBLISHER_NAME}}
|
||||
AppPublisherURL={{PUBLISHER_URL}}
|
||||
AppSupportURL={{PUBLISHER_URL}}
|
||||
AppUpdatesURL={{PUBLISHER_URL}}
|
||||
DefaultDirName={{INSTALL_DIR_NAME}}
|
||||
DisableProgramGroupPage=yes
|
||||
OutputDir=.
|
||||
OutputBaseFilename={{OUTPUT_BASE_FILENAME}}
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
SetupIconFile={{SETUP_ICON_FILE}}
|
||||
WizardStyle=modern
|
||||
PrivilegesRequired={{PRIVILEGES_REQUIRED}}
|
||||
ArchitecturesAllowed=x64
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
|
||||
[Languages]
|
||||
{% for locale in LOCALES %}
|
||||
{% if locale == 'en' %}Name: "english"; MessagesFile: "compiler:Default.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 == 'ca' %}Name: "catalan"; MessagesFile: "compiler:Languages\\Catalan.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 == 'cs' %}Name: "czech"; MessagesFile: "compiler:Languages\\Czech.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 == 'fi' %}Name: "finnish"; MessagesFile: "compiler:Languages\\Finnish.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 == 'he' %}Name: "hebrew"; MessagesFile: "compiler:Languages\\Hebrew.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 == 'ja' %}Name: "japanese"; MessagesFile: "compiler:Languages\\Japanese.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 == 'pt' %}Name: "portuguese"; MessagesFile: "compiler:Languages\\Portuguese.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 == 'sl' %}Name: "slovenian"; MessagesFile: "compiler:Languages\\Slovenian.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 == 'uk' %}Name: "ukrainian"; MessagesFile: "compiler:Languages\\Ukrainian.isl"{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
[Tasks]
|
||||
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 %}
|
||||
[Files]
|
||||
Source: "{{SOURCE_DIR}}\\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{autoprograms}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"
|
||||
Name: "{autodesktop}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"; Tasks: desktopicon
|
||||
Name: "{userstartup}\\{{DISPLAY_NAME}}"; Filename: "{app}\\{{EXECUTABLE_NAME}}"; WorkingDir: "{app}"; Tasks: launchAtStartup
|
||||
[Run]
|
||||
Filename: "{app}\\{{EXECUTABLE_NAME}}"; Description: "{cm:LaunchProgram,{{DISPLAY_NAME}}}"; Flags: {% if PRIVILEGES_REQUIRED == 'admin' %}runascurrentuser{% endif %} nowait postinstall skipifsilent
|
|
@ -1,8 +1,10 @@
|
|||
app_id: 9E5F0C93-96A3-4DA9-AE52-1AA6339851FC
|
||||
publisher: ente.io
|
||||
publisher_url: https://github.com/ente-io/ente
|
||||
display_name: ente Auth
|
||||
create_desktop_icon: true
|
||||
install_dir_name: enteauth
|
||||
locales:
|
||||
- en
|
||||
app_id: 9E5F0C93-96A3-4DA9-AE52-1AA6339851FC
|
||||
publisher: ente.io
|
||||
publisher_url: https://github.com/ente-io/ente
|
||||
display_name: ente Auth
|
||||
create_desktop_icon: false
|
||||
install_dir_name: "{pf}\\Ente Auth"
|
||||
setup_icon_file: ../../assets/icons/auth-icon.ico
|
||||
script_template: inno_setup.iss
|
||||
locales:
|
||||
- en
|
||||
|
|