Merge branch 'service' of github.com-flutter_hbb:open-trade/flutter_hbb into service
This commit is contained in:
commit
7981d79820
@ -1,3 +1,4 @@
|
|||||||
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
||||||
@ -217,3 +218,47 @@ String readableFileSize(double size) {
|
|||||||
return (size / G).toStringAsFixed(2) + " GB";
|
return (size / G).toStringAsFixed(2) + " GB";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Flutter can't not catch PointerMoveEvent when size is 1
|
||||||
|
/// This will happen in Android AccessibilityService Input
|
||||||
|
/// android can't init dispatching size yet ,see: https://stackoverflow.com/questions/59960451/android-accessibility-dispatchgesture-is-it-possible-to-specify-pressure-for-a
|
||||||
|
/// use this temporary solution until flutter or android fixes the bug
|
||||||
|
class AccessibilityListener extends StatelessWidget {
|
||||||
|
final Widget? child;
|
||||||
|
static final offset = 100;
|
||||||
|
|
||||||
|
AccessibilityListener({this.child});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Listener(
|
||||||
|
onPointerDown: (evt) {
|
||||||
|
if (evt.size == 1 && GestureBinding.instance != null) {
|
||||||
|
GestureBinding.instance!.handlePointerEvent(PointerAddedEvent(
|
||||||
|
pointer: evt.pointer + offset, position: evt.position));
|
||||||
|
GestureBinding.instance!.handlePointerEvent(PointerDownEvent(
|
||||||
|
pointer: evt.pointer + offset,
|
||||||
|
size: 0.1,
|
||||||
|
position: evt.position));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onPointerUp: (evt) {
|
||||||
|
if (evt.size == 1 && GestureBinding.instance != null) {
|
||||||
|
GestureBinding.instance!.handlePointerEvent(PointerUpEvent(
|
||||||
|
pointer: evt.pointer + offset,
|
||||||
|
size: 0.1,
|
||||||
|
position: evt.position));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onPointerMove: (evt) {
|
||||||
|
if (evt.size == 1 && GestureBinding.instance != null) {
|
||||||
|
GestureBinding.instance!.handlePointerEvent(PointerMoveEvent(
|
||||||
|
pointer: evt.pointer + offset,
|
||||||
|
size: 0.1,
|
||||||
|
delta: evt.delta,
|
||||||
|
position: evt.position));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
child: child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -41,7 +41,13 @@ class App extends StatelessWidget {
|
|||||||
navigatorObservers: [
|
navigatorObservers: [
|
||||||
FirebaseAnalyticsObserver(analytics: analytics),
|
FirebaseAnalyticsObserver(analytics: analytics),
|
||||||
],
|
],
|
||||||
builder: EasyLoading.init(),
|
builder: isAndroid
|
||||||
|
? (_, child) {
|
||||||
|
return AccessibilityListener(
|
||||||
|
child: FlutterEasyLoading(child: child),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
: EasyLoading.init(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user