mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 09:28:41 +00:00
added haptic feedback
This commit is contained in:
parent
674e42722d
commit
180c0679ed
3 changed files with 21 additions and 5 deletions
|
|
@ -52,6 +52,7 @@
|
|||
<uses-permission android:name="android.permission.USE_BIOMETRIC"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
|
||||
<!-- Required to query activities that can process text, see:
|
||||
https://developer.android.com/training/package-visibility and
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
|
||||
class SlidingResponse extends StatefulWidget {
|
||||
|
|
@ -17,19 +18,27 @@ class SlidingResponse extends StatefulWidget {
|
|||
|
||||
class _SlidingResponseWidgetState extends State<SlidingResponse> {
|
||||
double _offset = 0.0;
|
||||
bool gotFeedback = false;
|
||||
|
||||
void _onHorizontalDragUpdate(DragUpdateDetails details) {
|
||||
setState(() {
|
||||
_offset += details.delta.dx;
|
||||
if (_offset > 50) {
|
||||
_offset = 50;
|
||||
if (_offset > 40) {
|
||||
_offset = 40;
|
||||
if (!gotFeedback) {
|
||||
HapticFeedback.heavyImpact();
|
||||
gotFeedback = true;
|
||||
}
|
||||
}
|
||||
if (_offset < 0) _offset = 0;
|
||||
if (_offset < 30) {
|
||||
gotFeedback = false;
|
||||
}
|
||||
if (_offset <= 0) _offset = 0;
|
||||
});
|
||||
}
|
||||
|
||||
void _onHorizontalDragEnd(DragEndDetails details) {
|
||||
if (_offset >= 50) {
|
||||
if (_offset >= 40) {
|
||||
widget.onResponseTriggered();
|
||||
}
|
||||
setState(() {
|
||||
|
|
@ -49,7 +58,7 @@ class _SlidingResponseWidgetState extends State<SlidingResponse> {
|
|||
child: widget.child,
|
||||
),
|
||||
),
|
||||
if (_offset >= 50)
|
||||
if (_offset >= 40)
|
||||
Positioned(
|
||||
left: 20,
|
||||
top: 0,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:drift/drift.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||
import 'package:pie_menu/pie_menu.dart';
|
||||
import 'package:twonly/globals.dart';
|
||||
|
|
@ -28,6 +29,11 @@ class _UserContextMenuState extends State<UserContextMenu> {
|
|||
Widget build(BuildContext context) {
|
||||
return PieMenu(
|
||||
onPressed: () => (),
|
||||
onToggle: (menuOpen) {
|
||||
if (menuOpen) {
|
||||
HapticFeedback.heavyImpact();
|
||||
}
|
||||
},
|
||||
actions: [
|
||||
if (!widget.contact.archived)
|
||||
PieAction(
|
||||
|
|
|
|||
Loading…
Reference in a new issue