Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 51 additions & 43 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ packages:
dependency: transitive
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
url: "https://pub.dev"
source: hosted
version: "1.4.0"
version: "1.4.1"
cli_util:
dependency: transitive
description:
Expand Down Expand Up @@ -93,26 +93,34 @@ packages:
dependency: "direct main"
description:
name: cupertino_icons
sha256: d57953e10f9f8327ce64a508a355f0b1ec902193f66288e8cb5070e7c47eeb2d
sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd"
url: "https://pub.dev"
source: hosted
version: "1.0.6"
version: "1.0.9"
fake_async:
dependency: transitive
description:
name: fake_async
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
url: "https://pub.dev"
source: hosted
version: "1.3.2"
version: "1.3.3"
ffi:
dependency: transitive
description:
name: ffi
sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418"
sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
version: "2.2.0"
ffi_leak_tracker:
dependency: transitive
description:
name: ffi_leak_tracker
sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97"
url: "https://pub.dev"
source: hosted
version: "0.1.2"
flutter:
dependency: "direct main"
description: flutter
Expand All @@ -132,18 +140,18 @@ packages:
dependency: transitive
description:
name: get_it
sha256: d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1
sha256: "568d62f0e68666fb5d95519743b3c24a34c7f19d834b0658c46e26d778461f66"
url: "https://pub.dev"
source: hosted
version: "7.7.0"
version: "9.2.1"
http:
dependency: transitive
description:
name: http
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938"
sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
url: "https://pub.dev"
source: hosted
version: "1.2.1"
version: "1.6.0"
http_parser:
dependency: transitive
description:
Expand All @@ -166,31 +174,31 @@ packages:
path: ".."
relative: true
source: path
version: "0.4.0"
version: "0.5.1"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de"
url: "https://pub.dev"
source: hosted
version: "10.0.8"
version: "11.0.2"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.9"
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.2"
lints:
dependency: transitive
description:
Expand All @@ -203,26 +211,26 @@ packages:
dependency: transitive
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://pub.dev"
source: hosted
version: "0.12.17"
version: "0.12.19"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
url: "https://pub.dev"
source: hosted
version: "0.11.1"
version: "0.13.0"
meta:
dependency: transitive
description:
name: meta
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349"
url: "https://pub.dev"
source: hosted
version: "1.16.0"
version: "1.18.0"
mostly_reasonable_lints:
dependency: "direct dev"
description:
Expand All @@ -235,10 +243,10 @@ packages:
dependency: "direct dev"
description:
name: msix
sha256: "519b183d15dc9f9c594f247e2d2339d855cf0eaacc30e19b128e14f3ecc62047"
sha256: b6b08e7a7b5d1845f2b1d31216d5b1fb558e98251efefe54eb79ed00d27bc2ac
url: "https://pub.dev"
source: hosted
version: "3.16.7"
version: "3.16.13"
package_config:
dependency: transitive
description:
Expand All @@ -251,18 +259,18 @@ packages:
dependency: "direct main"
description:
name: package_info_plus
sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0
sha256: "4bf625947f6c7713ee242296a682e23e44823c09cf9d79e4f1238923c92db852"
url: "https://pub.dev"
source: hosted
version: "8.0.0"
version: "10.1.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e
sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4
url: "https://pub.dev"
source: hosted
version: "3.0.0"
version: "4.1.0"
path:
dependency: transitive
description:
Expand Down Expand Up @@ -352,10 +360,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
sha256: "949a932224383300f01be9221c39180316445ecb8e7547f70a41a35bf421fb9e"
url: "https://pub.dev"
source: hosted
version: "0.7.4"
version: "0.7.11"
typed_data:
dependency: transitive
description:
Expand All @@ -368,10 +376,10 @@ packages:
dependency: transitive
description:
name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.1.4"
version: "2.2.0"
vm_service:
dependency: transitive
description:
Expand All @@ -384,26 +392,26 @@ packages:
dependency: transitive
description:
name: web
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.dev"
source: hosted
version: "0.5.1"
version: "1.1.1"
win32:
dependency: transitive
description:
name: win32
sha256: b89e6e24d1454e149ab20fbb225af58660f0c0bf4475544650700d8e2da54aef
sha256: ba6f4bba816c8d7e3c1580e170f3786d216951cc6b94babc3b814c08d2cb2738
url: "https://pub.dev"
source: hosted
version: "5.11.0"
version: "6.3.0"
win32_registry:
dependency: transitive
description:
name: win32_registry
sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae"
sha256: "73b1d78920a9d6e03f8b4e43e612b87bf3152a0e5c5e5150267762b7c4116904"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "3.0.3"
xml:
dependency: transitive
description:
Expand All @@ -421,5 +429,5 @@ packages:
source: hosted
version: "3.1.2"
sdks:
dart: ">=3.7.0 <4.0.0"
flutter: ">=3.19.0"
dart: ">=3.10.0 <4.0.0"
flutter: ">=3.38.1"
6 changes: 3 additions & 3 deletions example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ environment:

dependencies:
bot_toast: ^4.1.3
cupertino_icons: ^1.0.2
cupertino_icons: ^1.0.9
flutter:
sdk: flutter
launch_at_startup:
path: ../
package_info_plus: ^8.0.0
package_info_plus: ^10.1.0
preference_list: ^0.0.2

dev_dependencies:
flutter_test:
sdk: flutter
mostly_reasonable_lints: ^0.1.2
msix: ^3.16.7
msix: ^3.16.13

flutter:
uses-material-design: true
Expand Down
40 changes: 19 additions & 21 deletions lib/src/app_auto_launcher_impl_windows.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,42 +23,40 @@ class AppAutoLauncherImplWindows extends AppAutoLauncher {

late String _registryValue;

RegistryKey get _regKey => Registry.openPath(
RegistryHive.currentUser,
path: r'Software\Microsoft\Windows\CurrentVersion\Run',
desiredAccessRights: AccessRights.allAccess,
);

RegistryKey get _startupApprovedRegKey => Registry.openPath(
RegistryHive.currentUser,
path:
r'Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run',
desiredAccessRights: AccessRights.allAccess,
);
RegistryKey get _regKey => CURRENT_USER.open(
r'Software\Microsoft\Windows\CurrentVersion\Run',
config: const RegistryOpenConfig(access: RegistryAccess.all),
);

RegistryKey get _startupApprovedRegKey => CURRENT_USER.open(
r'Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run',
config: const RegistryOpenConfig(access: RegistryAccess.all),
);

static const int _startupApprovedRegKeyBytesLength = 12;

@override
Future<bool> isEnabled() async {
String? value = _regKey.getStringValue(appName);
String? value = _regKey.getString(appName);

return value == _registryValue && await _isStartupApproved();
}

@override
Future<bool> enable() async {
_regKey.createValue(
RegistryValue.string(
appName,
_registryValue,
),
_regKey.setValue(
appName,
RegistryValue.string(_registryValue),
);

final bytes = Uint8List(_startupApprovedRegKeyBytesLength);
// "2" as a first byte in this register means that the autostart is enabled
bytes[0] = 2;

_startupApprovedRegKey.createValue(RegistryValue.binary(appName, bytes));
_startupApprovedRegKey.setValue(
appName,
RegistryValue.binary(bytes),
);

return true;
}
Expand All @@ -74,7 +72,7 @@ class AppAutoLauncherImplWindows extends AppAutoLauncher {
// Odd first byte will prevent the app from autostarting
// Empty or any other value will allow the app to autostart
Future<bool> _isStartupApproved() async {
final value = _startupApprovedRegKey.getBinaryValue(appName);
final value = _startupApprovedRegKey.getBinary(appName);

if (value == null) {
return true;
Expand All @@ -89,7 +87,7 @@ class AppAutoLauncherImplWindows extends AppAutoLauncher {

void _removeValue(RegistryKey key, String value) {
if (key.getValue(value) != null) {
key.deleteValue(value);
key.removeValue(value);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ environment:
dependencies:
flutter:
sdk: flutter
win32_registry: ^2.0.0
win32_registry: ^3.0.3

dev_dependencies:
dependency_validator: ^3.0.0
dependency_validator: ^5.0.5
# flutter_test:
# sdk: flutter
mostly_reasonable_lints: ^0.1.2