Skip to content

Commit

Permalink
💾 Feat(Vibration): Enhanced
Browse files Browse the repository at this point in the history
  • Loading branch information
Dynesshely committed Jul 31, 2024
1 parent 9327c50 commit bcc11f4
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 18 deletions.
30 changes: 17 additions & 13 deletions kitx_mobile/lib/pages/about_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import 'package:kitx_mobile/pages/controls/group_divider.dart';
import 'package:kitx_mobile/pages/controls/repo_button.dart';
import 'package:kitx_mobile/pages/pages.dart';
import 'package:kitx_mobile/utils/composer.dart';
import 'package:kitx_mobile/utils/handlers/tasks/delayed_task.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';

/// About Page
Expand Down Expand Up @@ -319,21 +318,26 @@ class _AboutPageState extends State<AboutPage> {
duration: 1400,
child: Container(
padding: EdgeInsets.all(15),
child: ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: thirdPartyDataDisplayCount.value,
itemBuilder: thirdPartyLicenseBuilder,
child: Obx(
() => ListView.builder(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: thirdPartyDataDisplayCount.value,
itemBuilder: thirdPartyLicenseBuilder,
),
),
),
),
Visibility(
visible: thirdPartyDataDisplayCount.value != thirdPartyDataList.length,
child: ElevatedButton(
onPressed: (() => super.setState(() {
thirdPartyDataDisplayCount.value = thirdPartyDataList.length;
})).delay(milliseconds: 200).execute,
child: Text('AboutPage_ThirdPartyLicenses_DisplayAll'.tr),
Obx(
() => Visibility(
visible: thirdPartyDataDisplayCount.value != thirdPartyDataList.length,
child: ElevatedButton(
onPressed: () {
VibrationHandler.tryVibrate();
thirdPartyDataDisplayCount.value = thirdPartyDataList.length;
},
child: Text('AboutPage_ThirdPartyLicenses_DisplayAll'.tr),
),
),
),
],
Expand Down
6 changes: 5 additions & 1 deletion kitx_mobile/lib/pages/controls/contributor_chip.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:flutter/material.dart';
import 'package:kitx_mobile/instances.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';

/// Contributor Chip
class ContributorChip extends StatelessWidget {
Expand All @@ -14,7 +15,10 @@ class ContributorChip extends StatelessWidget {
return Chip(
label: Text(name),
deleteIcon: const Icon(Icons.open_in_new),
onDeleted: () => instances.urlHandler.open(url),
onDeleted: () {
VibrationHandler.tryVibrate();
instances.urlHandler.open(url);
},
deleteButtonTooltipMessage: '',
);
}
Expand Down
6 changes: 5 additions & 1 deletion kitx_mobile/lib/pages/controls/repo_button.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import 'package:community_material_icon/community_material_icon.dart';
import 'package:flutter/material.dart';
import 'package:kitx_mobile/instances.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';

/// Repo Button
class RepoButton extends StatelessWidget {
Expand All @@ -13,7 +14,10 @@ class RepoButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ElevatedButton.icon(
onPressed: () => instances.urlHandler.open(url),
onPressed: () {
VibrationHandler.tryVibrate();
instances.urlHandler.open(url);
},
label: Text(name),
icon: name == 'GitHub' ? const Icon(CommunityMaterialIcons.github) : const Icon(CommunityMaterialIcons.git),
);
Expand Down
4 changes: 3 additions & 1 deletion kitx_mobile/lib/pages/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,9 @@ class HomePage extends StatelessWidget implements ConstantPage {
subtitle: isLandscape ? const Text('no notifications') : null,
trailing: const Icon(Icons.keyboard_arrow_right),
shape: tileRadius,
onTap: () => (() => Get.toNamed(SettingsPage.getRoute())).tryVibrate().delay(milliseconds: config.delayOpenPageInHomePage.value ? pageOpenDelay : 0).execute(),
onTap: () => (() => Get.toNamed(
SettingsPage.getRoute(),
)).tryVibrate().delay(milliseconds: config.delayOpenPageInHomePage.value ? pageOpenDelay : 0).execute(),
),
),
),
Expand Down
5 changes: 3 additions & 2 deletions kitx_mobile/lib/pages/settings_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,21 @@ class _SettingsPageState extends State<SettingsPage> {
padding: EdgeInsets.all(0),
icon: const Icon(Icons.translate),
position: PopupMenuPosition.under,
onOpened: () => VibrationHandler.tryVibrate(),
itemBuilder: (context) => [
PopupMenuItem(
child: const Text('简体中文'),
onTap: () => () {
instances.appInfo.languageCodeProperty = 'zh-CN';
SettingsPage.saveChanges();
}.delay(milliseconds: 200).execute(),
}.tryVibrate().delay(milliseconds: 200).execute(),
),
PopupMenuItem(
child: const Text('English (US)'),
onTap: () => () {
instances.appInfo.languageCodeProperty = 'en-US';
SettingsPage.saveChanges();
}.delay(milliseconds: 200).execute(),
}.tryVibrate().delay(milliseconds: 200).execute(),
),
],
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:kitx_mobile/pages/pages.dart';
import 'package:kitx_mobile/utils/composer.dart';
import 'package:kitx_mobile/utils/config.dart';
import 'package:kitx_mobile/utils/handlers/tasks/delayed_task.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';
import 'package:kitx_mobile/utils/themes/light_theme.dart';

/// Exterior Settings Page
Expand Down Expand Up @@ -74,6 +75,7 @@ class _AppearanceSettingsPageState extends State<AppearanceSettingsPage> {
// selectedIcon: Icon(Icons.check),
showSelectedIcon: false,
onSelectionChanged: (Set<ThemeMode> newSelection) {
VibrationHandler.tryVibrate();
selectedMode.value = newSelection.first;
instances.appInfo.themeModeProperty = newSelection.first;
// Global.themeMode = newSelection.first,
Expand All @@ -94,6 +96,7 @@ class _AppearanceSettingsPageState extends State<AppearanceSettingsPage> {
() => Switch.adaptive(
value: useMaterial3.value,
onChanged: (selection) {
VibrationHandler.tryVibrate();
instances.appInfo.updateTheme(useMaterial3: selection);
useMaterial3.value = selection;
SettingsPage.saveChanges();
Expand Down Expand Up @@ -121,6 +124,7 @@ class _AppearanceSettingsPageState extends State<AppearanceSettingsPage> {
() => Switch.adaptive(
value: instances.appInfo.animationEnabled.value,
onChanged: (selection) {
VibrationHandler.tryVibrate();
instances.appInfo.animationEnabled.value = selection;
SettingsPage.saveChanges();
},
Expand All @@ -139,6 +143,7 @@ class _AppearanceSettingsPageState extends State<AppearanceSettingsPage> {
() => Switch.adaptive(
value: config.delayOpenPageInHomePage.value,
onChanged: (selection) {
VibrationHandler.tryVibrate();
config.delayOpenPageInHomePage.value = selection;
SettingsPage.saveChanges();
},
Expand Down
5 changes: 5 additions & 0 deletions kitx_mobile/lib/pages/settings_pages/log_settings_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import 'package:kitx_mobile/pages/controls/settings_group_divider.dart';
import 'package:kitx_mobile/pages/controls/settings_group_title.dart';
import 'package:kitx_mobile/pages/pages.dart';
import 'package:kitx_mobile/utils/composer.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';

/// Log Settings Page
class LogSettingsPage extends StatefulWidget implements ConstantPage {
Expand Down Expand Up @@ -47,7 +48,9 @@ class _LogSettingsPageState extends State<LogSettingsPage> {
Obx(
() => DropdownButton<CherriLogLevel>(
value: logLevelRange.value.$1,
onTap: () => VibrationHandler.tryVibrate(),
onChanged: (newLevel) {
VibrationHandler.tryVibrate();
CherriLog.instance = CherriLog.instance!
..withOptions(
CherriLog.instance!.options..logLevelRange = (newLevel!, logLevelRange.value.$2),
Expand All @@ -71,7 +74,9 @@ class _LogSettingsPageState extends State<LogSettingsPage> {
Obx(
() => DropdownButton<CherriLogLevel>(
value: logLevelRange.value.$2,
onTap: () => VibrationHandler.tryVibrate(),
onChanged: (newLevel) {
VibrationHandler.tryVibrate();
CherriLog.instance = CherriLog.instance!
..withOptions(
CherriLog.instance!.options..logLevelRange = (logLevelRange.value.$1, newLevel!),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'dart:math';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';
import 'package:sensors_plus/sensors_plus.dart';

/// AccelerationDisplayStand
Expand Down Expand Up @@ -204,6 +205,7 @@ class AccelerationDisplayStandState extends State<AccelerationDisplayStand> {
? const Text('No sensor data, you are seeing random data.')
: ElevatedButton(
onPressed: () {
VibrationHandler.tryVibrate();
if (userAccelerometerDataListener?.isPaused ?? true) {
userAccelerometerDataListener?.resume();
listenerPaused.value = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'dart:math';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:kitx_mobile/utils/emulators/rotation_emulator.dart';
import 'package:kitx_mobile/utils/handlers/vibration_handler.dart';
import 'package:sensors_plus/sensors_plus.dart';
import 'package:vector_math/vector_math.dart' as vector_math;

Expand Down Expand Up @@ -115,6 +116,7 @@ class GyroscopeDisplayStandState extends State<GyroscopeDisplayStand> {
painter: painter,
),
onTap: () {
VibrationHandler.tryVibrate();
if (gyroscopeDataListener != null) {
if (gyroscopeDataListener?.isPaused ?? true) {
gyroscopeDataListener?.resume();
Expand Down

0 comments on commit bcc11f4

Please sign in to comment.