diff --git a/app/assets/graphics/logos/open_local_ui.svg b/app/assets/graphics/logos/open_local_ui.svg
new file mode 100644
index 0000000..ba0162e
--- /dev/null
+++ b/app/assets/graphics/logos/open_local_ui.svg
@@ -0,0 +1,3 @@
+
diff --git a/app/assets/l10n/intl_en.arb b/app/assets/l10n/intl_en.arb
index 875a67a..25e2109 100644
--- a/app/assets/l10n/intl_en.arb
+++ b/app/assets/l10n/intl_en.arb
@@ -1,5 +1,7 @@
{
"@@locale": "en",
+ "deviceUnpluggedSnackBar": "Device unplugged. Power delivery reduced.",
+ "devicePluggedInSnackBar": "Device plugged in. Power delivery increased.",
"abortModelRemovalSnackBar": "Abort model removal",
"abortSessionRemovalSnackBar": "Abort session removal",
"aboutPageContributorsTitle": "Contributors",
diff --git a/app/lib/backend/providers/model.dart b/app/lib/backend/providers/model.dart
index f59a073..a939439 100644
--- a/app/lib/backend/providers/model.dart
+++ b/app/lib/backend/providers/model.dart
@@ -12,7 +12,7 @@ import 'package:open_local_ui/backend/providers/model_settings.dart';
import 'package:open_local_ui/constants/flutter.dart';
import 'package:open_local_ui/core/http.dart';
import 'package:open_local_ui/core/logger.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:windows_taskbar/windows_taskbar.dart';
enum ModelProviderStatus {
diff --git a/app/lib/frontend/helpers/snackbar.dart b/app/lib/core/snackbar.dart
similarity index 100%
rename from app/lib/frontend/helpers/snackbar.dart
rename to app/lib/core/snackbar.dart
diff --git a/app/lib/core/update.dart b/app/lib/core/update.dart
index 3e27aed..3b9031c 100644
--- a/app/lib/core/update.dart
+++ b/app/lib/core/update.dart
@@ -7,7 +7,7 @@ import 'package:open_local_ui/core/github.dart';
import 'package:open_local_ui/core/logger.dart';
import 'package:open_local_ui/core/process.dart';
import 'package:open_local_ui/env.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:path_provider/path_provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
diff --git a/app/lib/components/rive_animation.dart b/app/lib/frontend/components/rive_animation.dart
similarity index 100%
rename from app/lib/components/rive_animation.dart
rename to app/lib/frontend/components/rive_animation.dart
diff --git a/app/lib/components/typewriter_text.dart b/app/lib/frontend/components/typewriter_text.dart
similarity index 100%
rename from app/lib/components/typewriter_text.dart
rename to app/lib/frontend/components/typewriter_text.dart
diff --git a/app/lib/frontend/widgets/window_management_bar.dart b/app/lib/frontend/components/window_management_bar.dart
similarity index 64%
rename from app/lib/frontend/widgets/window_management_bar.dart
rename to app/lib/frontend/components/window_management_bar.dart
index 35b0205..28bc422 100644
--- a/app/lib/frontend/widgets/window_management_bar.dart
+++ b/app/lib/frontend/components/window_management_bar.dart
@@ -1,10 +1,10 @@
+import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:flutter/material.dart';
import 'package:bitsdojo_window/bitsdojo_window.dart';
-import 'package:system_theme/system_theme.dart';
-class WindowManagementBar extends StatelessWidget {
- const WindowManagementBar({super.key});
+class WindowManagementBarComponent extends StatelessWidget {
+ const WindowManagementBarComponent({super.key});
@override
Widget build(BuildContext context) {
@@ -18,19 +18,22 @@ class WindowManagementBar extends StatelessWidget {
children: [
MinimizeWindowButton(
colors: WindowButtonColors(
- iconNormal: SystemTheme.accentColor.accent,
+ iconNormal:
+ AdaptiveTheme.of(context).theme.colorScheme.secondary,
iconMouseOver: Colors.green,
),
),
MaximizeWindowButton(
colors: WindowButtonColors(
- iconNormal: SystemTheme.accentColor.accent,
+ iconNormal:
+ AdaptiveTheme.of(context).theme.colorScheme.secondary,
iconMouseOver: Colors.orange,
),
),
CloseWindowButton(
colors: WindowButtonColors(
- iconNormal: SystemTheme.accentColor.accent,
+ iconNormal:
+ AdaptiveTheme.of(context).theme.colorScheme.secondary,
iconMouseOver: Colors.red,
),
),
diff --git a/app/lib/frontend/pages/dashboard/models.dart b/app/lib/frontend/pages/dashboard/models.dart
index 6273cad..710c3fa 100644
--- a/app/lib/frontend/pages/dashboard/models.dart
+++ b/app/lib/frontend/pages/dashboard/models.dart
@@ -15,7 +15,7 @@ import 'package:open_local_ui/frontend/dialogs/model_details.dart';
import 'package:open_local_ui/frontend/dialogs/model_settings.dart';
import 'package:open_local_ui/frontend/dialogs/pull_model.dart';
import 'package:open_local_ui/frontend/dialogs/push_model.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:open_local_ui/frontend/screens/dashboard.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
diff --git a/app/lib/frontend/pages/dashboard/sessions.dart b/app/lib/frontend/pages/dashboard/sessions.dart
index 93404ba..60d8912 100644
--- a/app/lib/frontend/pages/dashboard/sessions.dart
+++ b/app/lib/frontend/pages/dashboard/sessions.dart
@@ -9,7 +9,7 @@ import 'package:open_local_ui/backend/models/chat_session.dart';
import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/core/format.dart';
import 'package:open_local_ui/frontend/dialogs/confirmation.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:open_local_ui/frontend/screens/dashboard.dart';
import 'package:path_provider/path_provider.dart';
import 'package:provider/provider.dart';
diff --git a/app/lib/frontend/pages/dashboard/settings.dart b/app/lib/frontend/pages/dashboard/settings.dart
index 3b8cd37..c9f8a1b 100644
--- a/app/lib/frontend/pages/dashboard/settings.dart
+++ b/app/lib/frontend/pages/dashboard/settings.dart
@@ -9,7 +9,7 @@ import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/backend/providers/locale.dart';
import 'package:open_local_ui/core/color.dart';
import 'package:open_local_ui/frontend/dialogs/color_picker.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:system_theme/system_theme.dart';
diff --git a/app/lib/frontend/screens/dashboard.dart b/app/lib/frontend/screens/dashboard.dart
index d7359b4..f210e13 100644
--- a/app/lib/frontend/screens/dashboard.dart
+++ b/app/lib/frontend/screens/dashboard.dart
@@ -1,5 +1,6 @@
import 'dart:io';
+import 'package:battery_plus/battery_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -14,13 +15,13 @@ import 'package:open_local_ui/core/github.dart';
import 'package:open_local_ui/core/logger.dart';
import 'package:open_local_ui/core/update.dart';
import 'package:open_local_ui/frontend/dialogs/update.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:open_local_ui/frontend/pages/dashboard/about.dart';
import 'package:open_local_ui/frontend/pages/dashboard/chat.dart';
import 'package:open_local_ui/frontend/pages/dashboard/models.dart';
import 'package:open_local_ui/frontend/pages/dashboard/sessions.dart';
import 'package:open_local_ui/frontend/pages/dashboard/settings.dart';
-import 'package:open_local_ui/frontend/widgets/window_management_bar.dart';
+import 'package:open_local_ui/frontend/components/window_management_bar.dart';
import 'package:path_provider/path_provider.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:system_info2/system_info2.dart';
@@ -47,6 +48,7 @@ class _DashboardScreenState extends State {
WidgetsBinding.instance.addPostFrameCallback((_) async {
_checkForUpdates();
+ _registerBatteryCallback();
});
}
@@ -57,6 +59,34 @@ class _DashboardScreenState extends State {
super.dispose();
}
+ void _registerBatteryCallback() {
+ final battery = Battery();
+
+ battery.onBatteryStateChanged.listen((BatteryState state) {
+ switch (state) {
+ case BatteryState.discharging:
+ SnackBarHelpers.showSnackBar(
+ AppLocalizations.of(context).snackBarWarningTitle,
+ AppLocalizations.of(context).deviceUnpluggedSnackBar,
+ SnackbarContentType.warning,
+ );
+ logger.i('Battery charging');
+ break;
+ case BatteryState.charging:
+ SnackBarHelpers.showSnackBar(
+ AppLocalizations.of(context).snackBarSuccessTitle,
+ AppLocalizations.of(context).devicePluggedInSnackBar,
+ SnackbarContentType.success,
+ );
+ logger.i('Battery discharging');
+ break;
+ default:
+ logger.i('Battery state: $state');
+ break;
+ }
+ });
+ }
+
void _checkForUpdates() {
UpdateHelper.isAppUpdateAvailable().then(
(updateAvailable) {
@@ -107,7 +137,7 @@ class _DashboardScreenState extends State {
right: 0.0,
width: MediaQuery.of(context).size.width,
height: 32.0,
- child: const WindowManagementBar(),
+ child: const WindowManagementBarComponent(),
),
],
);
diff --git a/app/lib/frontend/screens/onboarding.dart b/app/lib/frontend/screens/onboarding.dart
index fd0646f..adf4472 100644
--- a/app/lib/frontend/screens/onboarding.dart
+++ b/app/lib/frontend/screens/onboarding.dart
@@ -11,15 +11,15 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:gap/gap.dart';
import 'package:gpu_info/gpu_info.dart';
import 'package:introduction_screen/introduction_screen.dart';
-import 'package:open_local_ui/components/rive_animation.dart';
-import 'package:open_local_ui/components/typewriter_text.dart';
+import 'package:open_local_ui/frontend/components/rive_animation.dart';
+import 'package:open_local_ui/frontend/components/typewriter_text.dart';
import 'package:open_local_ui/core/color.dart';
import 'package:open_local_ui/core/process.dart';
import 'package:open_local_ui/frontend/dialogs/color_picker.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:open_local_ui/frontend/screens/dashboard.dart';
import 'package:open_local_ui/frontend/widgets/preference_selector.dart';
-import 'package:open_local_ui/frontend/widgets/window_management_bar.dart';
+import 'package:open_local_ui/frontend/components/window_management_bar.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:system_info2/system_info2.dart';
import 'package:system_theme/system_theme.dart';
@@ -54,7 +54,7 @@ class _OnboardingScreenState extends State {
title: AppLocalizations.of(context).setupPageWelcomeSlideTitle,
bodyWidget: TypewriterTextComponent(
text: AppLocalizations.of(context).setupPageWelcomeSlideText,
- duration: 1500.ms,
+ duration: 3000.ms,
),
decoration: const PageDecoration(
titleTextStyle: TextStyle(
@@ -265,7 +265,7 @@ class _OnboardingScreenState extends State {
right: 0.0,
width: MediaQuery.of(context).size.width,
height: 32.0,
- child: const WindowManagementBar(),
+ child: const WindowManagementBarComponent(),
),
],
);
diff --git a/app/lib/frontend/screens/splash.dart b/app/lib/frontend/screens/splash.dart
new file mode 100644
index 0000000..749357b
--- /dev/null
+++ b/app/lib/frontend/screens/splash.dart
@@ -0,0 +1,33 @@
+import 'package:adaptive_theme/adaptive_theme.dart';
+import 'package:flutter/material.dart';
+
+import 'package:animated_splash_screen/animated_splash_screen.dart';
+import 'package:flutter_svg/flutter_svg.dart';
+import 'package:open_local_ui/frontend/screens/dashboard.dart';
+import 'package:open_local_ui/frontend/screens/onboarding.dart';
+import 'package:page_transition/page_transition.dart';
+
+class SplashScreen extends StatelessWidget {
+ final bool userOnboarded;
+
+ const SplashScreen({Key? key, required this.userOnboarded}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return AnimatedSplashScreen(
+ splash: SvgPicture.asset(
+ 'assets/graphics/logos/open_local_ui.svg',
+ width: 512,
+ // ignore: deprecated_member_use
+ color:
+ AdaptiveTheme.of(context).mode.isDark ? Colors.white : Colors.black,
+ ),
+ nextScreen:
+ userOnboarded ? const DashboardScreen() : const OnboardingScreen(),
+ backgroundColor: AdaptiveTheme.of(context).theme.primaryColor,
+ splashTransition: SplashTransition.fadeTransition,
+ pageTransitionType: PageTransitionType.theme,
+ duration: 1500,
+ );
+ }
+}
diff --git a/app/lib/frontend/screens/update_in_progress.dart b/app/lib/frontend/screens/update_in_progress.dart
index 6cc4340..96d69be 100644
--- a/app/lib/frontend/screens/update_in_progress.dart
+++ b/app/lib/frontend/screens/update_in_progress.dart
@@ -5,7 +5,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:gap/gap.dart';
import 'package:open_local_ui/core/update.dart';
-import 'package:open_local_ui/frontend/widgets/window_management_bar.dart';
+import 'package:open_local_ui/frontend/components/window_management_bar.dart';
class UpdateInProgressScreen extends StatefulWidget {
const UpdateInProgressScreen({super.key});
@@ -57,7 +57,7 @@ class _UpdateInProgressScreenState extends State {
right: 0.0,
width: MediaQuery.of(context).size.width,
height: 32.0,
- child: const WindowManagementBar(),
+ child: const WindowManagementBarComponent(),
),
],
);
diff --git a/app/lib/frontend/widgets/chat_example_questions.dart b/app/lib/frontend/widgets/chat_example_questions.dart
index 930e45e..9e726c2 100644
--- a/app/lib/frontend/widgets/chat_example_questions.dart
+++ b/app/lib/frontend/widgets/chat_example_questions.dart
@@ -2,14 +2,13 @@ import 'dart:math';
import 'package:flutter/material.dart';
-
import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:flutter_animate/flutter_animate.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:gap/gap.dart';
import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/backend/providers/model.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:provider/provider.dart';
import 'package:unicons/unicons.dart';
diff --git a/app/lib/frontend/widgets/chat_input_field.dart b/app/lib/frontend/widgets/chat_input_field.dart
index 5024f3f..2614f3a 100644
--- a/app/lib/frontend/widgets/chat_input_field.dart
+++ b/app/lib/frontend/widgets/chat_input_field.dart
@@ -8,7 +8,7 @@ import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/backend/providers/model.dart';
import 'package:open_local_ui/core/image.dart';
import 'package:open_local_ui/frontend/dialogs/attachments_dropzone.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:provider/provider.dart';
import 'package:unicons/unicons.dart';
diff --git a/app/lib/frontend/widgets/chat_message.dart b/app/lib/frontend/widgets/chat_message.dart
index 6a4a6b1..f05be11 100644
--- a/app/lib/frontend/widgets/chat_message.dart
+++ b/app/lib/frontend/widgets/chat_message.dart
@@ -12,7 +12,7 @@ import 'package:gap/gap.dart';
import 'package:open_local_ui/backend/models/chat_message.dart';
import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/core/format.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:open_local_ui/frontend/widgets/markdown_body.dart';
import 'package:open_local_ui/frontend/widgets/tts_player.dart';
import 'package:provider/provider.dart';
diff --git a/app/lib/frontend/widgets/chat_toolbar.dart b/app/lib/frontend/widgets/chat_toolbar.dart
index 88b0b0f..bfba88a 100644
--- a/app/lib/frontend/widgets/chat_toolbar.dart
+++ b/app/lib/frontend/widgets/chat_toolbar.dart
@@ -1,12 +1,11 @@
import 'package:flutter/material.dart';
-
import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:gap/gap.dart';
import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/backend/providers/model.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:provider/provider.dart';
import 'package:unicons/unicons.dart';
diff --git a/app/lib/frontend/widgets/markdown_body.dart b/app/lib/frontend/widgets/markdown_body.dart
index 9c49532..6327c8d 100644
--- a/app/lib/frontend/widgets/markdown_body.dart
+++ b/app/lib/frontend/widgets/markdown_body.dart
@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
-
import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
// ignore: depend_on_referenced_packages
@@ -9,7 +8,7 @@ import 'package:flutter_highlight/themes/atom-one-dark.dart';
import 'package:flutter_highlight/themes/atom-one-light.dart';
import 'package:markdown_widget/markdown_widget.dart';
import 'package:open_local_ui/constants/style.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:open_local_ui/frontend/widgets/markdown_code_wrapper.dart';
import 'package:url_launcher/url_launcher.dart';
diff --git a/app/lib/frontend/widgets/markdown_code_wrapper.dart b/app/lib/frontend/widgets/markdown_code_wrapper.dart
index 4302f91..9d275c3 100644
--- a/app/lib/frontend/widgets/markdown_code_wrapper.dart
+++ b/app/lib/frontend/widgets/markdown_code_wrapper.dart
@@ -9,7 +9,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:gap/gap.dart';
import 'package:open_local_ui/core/asset.dart';
-import 'package:open_local_ui/frontend/helpers/snackbar.dart';
+import 'package:open_local_ui/core/snackbar.dart';
import 'package:unicons/unicons.dart';
Map languageToAsset = {
diff --git a/app/lib/main.dart b/app/lib/main.dart
index 4dc1497..cbbfec4 100644
--- a/app/lib/main.dart
+++ b/app/lib/main.dart
@@ -7,7 +7,6 @@ import 'package:feedback/feedback.dart';
import 'package:flex_color_picker/flex_color_picker.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
-import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:open_local_ui/backend/databases/chat_sessions.dart';
import 'package:open_local_ui/backend/providers/chat.dart';
import 'package:open_local_ui/backend/providers/locale.dart';
@@ -19,8 +18,7 @@ import 'package:open_local_ui/core/asset.dart';
import 'package:open_local_ui/core/color.dart';
import 'package:open_local_ui/core/logger.dart';
import 'package:open_local_ui/env.dart';
-import 'package:open_local_ui/frontend/screens/dashboard.dart';
-import 'package:open_local_ui/frontend/screens/onboarding.dart';
+import 'package:open_local_ui/frontend/screens/splash.dart';
import 'package:provider/provider.dart';
import 'package:rive/rive.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -145,8 +143,7 @@ void _preloadAssets() async {
}
void main() async {
- WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
- FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
+ WidgetsFlutterBinding.ensureInitialized();
// Internal services
@@ -198,8 +195,6 @@ void main() async {
prefs.setBool('userOnboarded', true);
}
- FlutterNativeSplash.remove();
-
// Run app
runApp(
@@ -297,9 +292,7 @@ class _MyAppState extends State {
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
- home: widget.userOnboarded
- ? const DashboardScreen()
- : const OnboardingScreen(),
+ home: SplashScreen(userOnboarded: widget.userOnboarded),
debugShowCheckedModeBanner: kDebugMode,
),
);
diff --git a/app/macos/Flutter/GeneratedPluginRegistrant.swift b/app/macos/Flutter/GeneratedPluginRegistrant.swift
index 16f81a3..ba48a82 100644
--- a/app/macos/Flutter/GeneratedPluginRegistrant.swift
+++ b/app/macos/Flutter/GeneratedPluginRegistrant.swift
@@ -7,6 +7,7 @@ import Foundation
import app_links
import audioplayers_darwin
+import battery_plus
import bitsdojo_window_macos
import device_info_plus
import irondash_engine_context
@@ -23,6 +24,7 @@ import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin"))
AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin"))
+ BatteryPlusMacosPlugin.register(with: registry.registrar(forPlugin: "BatteryPlusMacosPlugin"))
BitsdojoWindowPlugin.register(with: registry.registrar(forPlugin: "BitsdojoWindowPlugin"))
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
IrondashEngineContextPlugin.register(with: registry.registrar(forPlugin: "IrondashEngineContextPlugin"))
diff --git a/app/pubspec.lock b/app/pubspec.lock
index b587afb..654f36d 100644
--- a/app/pubspec.lock
+++ b/app/pubspec.lock
@@ -25,14 +25,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.13.0"
- ansicolor:
- dependency: transitive
+ animated_splash_screen:
+ dependency: "direct main"
description:
- name: ansicolor
- sha256: "8bf17a8ff6ea17499e40a2d2542c2f481cd7615760c6d34065cb22bfd22e6880"
+ name: animated_splash_screen
+ sha256: f45634db6ec4e8cf034c53e03f3bd83898a16fe3c9286bf5510b6831dfcf2124
url: "https://pub.dev"
source: hosted
- version: "2.0.2"
+ version: "1.3.0"
app_links:
dependency: transitive
description:
@@ -121,6 +121,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.0.0"
+ battery_plus:
+ dependency: "direct main"
+ description:
+ name: battery_plus
+ sha256: ccc1322fee1153a0f89e663e0eac2f64d659da506454cf24dcad75eb08ae138b
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.2"
+ battery_plus_platform_interface:
+ dependency: transitive
+ description:
+ name: battery_plus_platform_interface
+ sha256: e8342c0f32de4b1dfd0223114b6785e48e579bfc398da9471c9179b907fa4910
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.1"
bitsdojo_window:
dependency: "direct main"
description:
@@ -361,6 +377,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
+ dbus:
+ dependency: transitive
+ description:
+ name: dbus
+ sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.7.10"
device_info_plus:
dependency: transitive
description:
@@ -595,14 +619,6 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
- flutter_native_splash:
- dependency: "direct main"
- description:
- name: flutter_native_splash
- sha256: edf39bcf4d74aca1eb2c1e43c3e445fd9f494013df7f0da752fefe72020eedc0
- url: "https://pub.dev"
- source: hosted
- version: "2.4.0"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@@ -1117,6 +1133,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
+ page_transition:
+ dependency: transitive
+ description:
+ name: page_transition
+ sha256: dee976b1f23de9bbef5cd512fe567e9f6278caee11f5eaca9a2115c19dc49ef6
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
path:
dependency: "direct main"
description:
@@ -1618,14 +1642,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
- universal_io:
+ upower:
dependency: transitive
description:
- name: universal_io
- sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad"
+ name: upower
+ sha256: cf042403154751180affa1d15614db7fa50234bc2373cd21c3db666c38543ebf
url: "https://pub.dev"
source: hosted
- version: "2.2.2"
+ version: "0.7.0"
url_launcher:
dependency: "direct main"
description:
diff --git a/app/pubspec.yaml b/app/pubspec.yaml
index f0867a4..67af11d 100644
--- a/app/pubspec.yaml
+++ b/app/pubspec.yaml
@@ -42,7 +42,7 @@ dependencies:
flutter_svg: ^2.0.10+1
# Splash Screen
- flutter_native_splash: ^2.4.0
+ animated_splash_screen: ^1.3.0
# Window Management
bitsdojo_window: ^0.1.6
@@ -86,6 +86,7 @@ dependencies:
language_code: ^0.5.3+2
system_info2: ^4.0.0
gpu_info: ^0.0.3
+ battery_plus: ^6.0.2
# Environment Variables
envied: ^0.5.4+1
@@ -125,6 +126,7 @@ flutter:
# Model Metadata
- assets/metadata/ollama_models.json
# Logos
+ - assets/graphics/logos/open_local_ui.svg
- assets/graphics/logos/flutter.svg
- assets/graphics/logos/langchain.svg
- assets/graphics/logos/supabase.svg
diff --git a/app/windows/flutter/generated_plugin_registrant.cc b/app/windows/flutter/generated_plugin_registrant.cc
index 94f2b5f..58fbd3c 100644
--- a/app/windows/flutter/generated_plugin_registrant.cc
+++ b/app/windows/flutter/generated_plugin_registrant.cc
@@ -8,6 +8,7 @@
#include
#include
+#include
#include
#include
#include
@@ -23,6 +24,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("AppLinksPluginCApi"));
AudioplayersWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("AudioplayersWindowsPlugin"));
+ BatteryPlusWindowsPluginRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("BatteryPlusWindowsPlugin"));
BitsdojoWindowPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("BitsdojoWindowPlugin"));
GpuInfoPluginCApiRegisterWithRegistrar(
diff --git a/app/windows/flutter/generated_plugins.cmake b/app/windows/flutter/generated_plugins.cmake
index 1f41cd0..de294b5 100644
--- a/app/windows/flutter/generated_plugins.cmake
+++ b/app/windows/flutter/generated_plugins.cmake
@@ -5,6 +5,7 @@
list(APPEND FLUTTER_PLUGIN_LIST
app_links
audioplayers_windows
+ battery_plus
bitsdojo_window_windows
gpu_info
irondash_engine_context