Skip to content
Merged
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
2 changes: 1 addition & 1 deletion lib/apps_list/widgets/custom_app_bar.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';

import '../../../settings/cubit/settings_cubit.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/apps_list/widgets/first_run_dialog.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';

import '../../app/app.dart';

Expand Down
21 changes: 5 additions & 16 deletions lib/hotkey/global/hotkey_service.dart
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:hotkey_manager/hotkey_manager.dart';

import '../../logs/logs.dart';

/// The default hotkey to use if none is set.
final HotKey defaultHotkey = HotKey(KeyCode.pause);
final HotKey defaultHotkey = HotKey(key: PhysicalKeyboardKey.pause);

/// Handles global (system-wide) hotkeys.
class HotkeyService {
Expand All @@ -19,34 +20,22 @@ class HotkeyService {

Future<void> addHotkey(HotKey hotKey) async {
if (hotKeyManager.registeredHotKeyList.contains(hotKey)) {
log.w('Hotkey already registered: ${hotKey.toStringHelper()}');
log.w('Hotkey already registered: ${hotKey.debugName}');
return;
}

await hotKeyManager.register(
hotKey,
keyDownHandler: (hotKey) {
log.i('Hotkey triggered: ${hotKey.toStringHelper()}');
log.i('Hotkey triggered: ${hotKey.debugName}');
_hotkeyTriggeredStreamController.add(hotKey);
},
);

log.i('Registered hotkey: ${hotKey.toStringHelper()}');
log.i('Registered hotkey: ${hotKey.debugName}');
}

Future<void> removeHotkey(HotKey hotkey) async {
await hotKeyManager.unregister(hotkey);
}
}

extension HotKeyHelper on HotKey {
String toStringHelper() {
String hotkeyString = '';
for (var modifier in modifiers ?? <KeyModifier>[]) {
hotkeyString += '${modifier.keyLabel} + ';
}

hotkeyString += keyCode.keyLabel;
return hotkeyString;
}
}
2 changes: 1 addition & 1 deletion lib/loading/loading_page.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:flutter_markdown_plus/flutter_markdown_plus.dart';

import '../../apps_list/apps_list.dart';
import '../app/app.dart';
Expand Down
24 changes: 0 additions & 24 deletions lib/localization/app_localizations.dart
Original file line number Diff line number Diff line change
Expand Up @@ -419,30 +419,6 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'Select app'**
String get selectApp;

/// Label for the show window menu item in system tray
///
/// In en, this message translates to:
/// **'Show'**
String get show;

/// Label for the hide window menu item in system tray
///
/// In en, this message translates to:
/// **'Hide'**
String get hide;

/// Label for the reset window menu item in system tray
///
/// In en, this message translates to:
/// **'Reset Window'**
String get resetWindow;

/// Label for the exit menu item in system tray
///
/// In en, this message translates to:
/// **'Exit'**
String get exit;
}

class _AppLocalizationsDelegate extends LocalizationsDelegate<AppLocalizations> {
Expand Down
40 changes: 40 additions & 0 deletions lib/localization/app_localizations_de.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get favoriteButtonTooltipRemove => 'Remove from favorites';

@override
String get suspendAllInstances => 'Suspend all instances';

@override
String get resumeAllInstances => 'Resume all instances';

@override
String get close => 'Close';

@override
String get detailsDialogTitle => 'Details';

Expand All @@ -38,6 +47,15 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get detailsDialogCurrentStatus => 'Aktueller Status';

@override
String get statusNormal => 'Normal';

@override
String get statusSuspended => 'Suspended';

@override
String get statusUnknown => 'Unknown';

@override
String get copyLogs => 'Protokolle kopieren';

Expand Down Expand Up @@ -121,6 +139,9 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get logs => 'Protokolle';

@override
String get verboseLogging => 'Verbose logging';

@override
String get aboutTitle => 'Über';

Expand All @@ -132,4 +153,23 @@ class AppLocalizationsDe extends AppLocalizations {

@override
String get repository => 'GitHub Repository';

@override
String get hotkey => 'Hotkey';

@override
String get recordNewHotkey => 'Record a new hotkey';

@override
String get appSpecificHotkeys => 'App specific hotkeys';

@override
String get appSpecificHotkeysTooltip =>
'Hotkeys to directly toggle suspend/resume for specific apps, even when they are not focused.';

@override
String get addAppSpecificHotkey => 'Add app specific hotkey';

@override
String get selectApp => 'Select app';
}
12 changes: 0 additions & 12 deletions lib/localization/app_localizations_en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -172,16 +172,4 @@ class AppLocalizationsEn extends AppLocalizations {

@override
String get selectApp => 'Select app';

@override
String get show => 'Show';

@override
String get hide => 'Hide';

@override
String get resetWindow => 'Reset Window';

@override
String get exit => 'Exit';
}
40 changes: 40 additions & 0 deletions lib/localization/app_localizations_it.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,15 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get favoriteButtonTooltipRemove => 'Remove from favorites';

@override
String get suspendAllInstances => 'Suspend all instances';

@override
String get resumeAllInstances => 'Resume all instances';

@override
String get close => 'Close';

@override
String get detailsDialogTitle => 'Dettagli';

Expand All @@ -38,6 +47,15 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get detailsDialogCurrentStatus => 'Stato attuale';

@override
String get statusNormal => 'Normal';

@override
String get statusSuspended => 'Suspended';

@override
String get statusUnknown => 'Unknown';

@override
String get copyLogs => 'Copia log';

Expand Down Expand Up @@ -122,6 +140,9 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get logs => 'Log';

@override
String get verboseLogging => 'Verbose logging';

@override
String get aboutTitle => 'Informazioni';

Expand All @@ -133,4 +154,23 @@ class AppLocalizationsIt extends AppLocalizations {

@override
String get repository => 'Repository GitHub';

@override
String get hotkey => 'Hotkey';

@override
String get recordNewHotkey => 'Record a new hotkey';

@override
String get appSpecificHotkeys => 'App specific hotkeys';

@override
String get appSpecificHotkeysTooltip =>
'Hotkeys to directly toggle suspend/resume for specific apps, even when they are not focused.';

@override
String get addAppSpecificHotkey => 'Add app specific hotkey';

@override
String get selectApp => 'Select app';
}
12 changes: 0 additions & 12 deletions lib/localization/app_localizations_zh.dart
Original file line number Diff line number Diff line change
Expand Up @@ -168,16 +168,4 @@ class AppLocalizationsZh extends AppLocalizations {

@override
String get selectApp => '选择应用';

@override
String get show => '显示';

@override
String get hide => '隐藏';

@override
String get resetWindow => '重置窗口';

@override
String get exit => '退出';
}
5 changes: 2 additions & 3 deletions lib/settings/widgets/integration_section.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:hotkey_manager/hotkey_manager.dart';

import '../../apps_list/apps_list.dart';
import '../../hotkey/global/hotkey_service.dart';
import '../../localization/app_localizations.dart';
import '../../theme/styles.dart';
import '../settings.dart';
Expand Down Expand Up @@ -134,7 +133,7 @@ class _HotkeyConfigWidget extends StatelessWidget {
),
child: BlocBuilder<SettingsCubit, SettingsState>(
builder: (context, state) {
return Text(state.hotKey.toStringHelper());
return Text(state.hotKey.debugName);
},
),
),
Expand Down Expand Up @@ -262,7 +261,7 @@ class _AppSpecificHotkeys extends StatelessWidget {
child: Card(
elevation: 2,
child: ListTile(
leading: Text(hotkey.hotkey.toStringHelper()),
leading: Text(hotkey.hotkey.debugName),
title: Text(hotkey.executable),
trailing: ElevatedButton(
onPressed: () => settingsCubit.removeAppSpecificHotkey(
Expand Down
58 changes: 30 additions & 28 deletions lib/settings/widgets/theme_section.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,37 +24,39 @@ class _ThemeChooser extends StatelessWidget {
Widget build(BuildContext context) {
return BlocBuilder<ThemeCubit, ThemeState>(
builder: (context, state) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
AppLocalizations.of(context)!.themeTitle,
),
RadioListTile<AppTheme>(
title: Text(
AppLocalizations.of(context)!.dark,
return RadioGroup<AppTheme>(
groupValue: state.appTheme,
onChanged: (value) {
if (value != null) {
themeCubit.changeTheme(value);
}
},
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
AppLocalizations.of(context)!.themeTitle,
),
groupValue: state.appTheme,
value: AppTheme.dark,
onChanged: (value) => themeCubit.changeTheme(value!),
),
RadioListTile<AppTheme>(
title: Text(
AppLocalizations.of(context)!.pitchBlack,
RadioListTile<AppTheme>(
title: Text(
AppLocalizations.of(context)!.dark,
),
value: AppTheme.dark,
),
groupValue: state.appTheme,
value: AppTheme.pitchBlack,
onChanged: (value) => themeCubit.changeTheme(value!),
),
RadioListTile<AppTheme>(
title: Text(
AppLocalizations.of(context)!.light,
RadioListTile<AppTheme>(
title: Text(
AppLocalizations.of(context)!.pitchBlack,
),
value: AppTheme.pitchBlack,
),
groupValue: state.appTheme,
value: AppTheme.light,
onChanged: (value) => themeCubit.changeTheme(value!),
),
],
RadioListTile<AppTheme>(
title: Text(
AppLocalizations.of(context)!.light,
),
value: AppTheme.light,
),
],
),
);
},
);
Expand Down
Loading