Hibok
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

36 Zeilen
1.1 KiB

  1. import 'dart:async';
  2. import 'package:chat/data/constants.dart';
  3. import 'package:chat/utils/MessageMgr.dart';
  4. import 'package:keyboard_utils/keyboard_listener.dart';
  5. import 'package:keyboard_utils/keyboard_utils.dart';
  6. import 'package:shared_preferences/shared_preferences.dart';
  7. class KeyboardBloc {
  8. KeyboardUtils _keyboardUtils = KeyboardUtils();
  9. StreamController<double> _streamController = StreamController<double>();
  10. Stream<double> get stream => _streamController.stream;
  11. KeyboardUtils get keyboardUtils => _keyboardUtils;
  12. void start() {
  13. _keyboardUtils.add(listener:
  14. KeyboardListener(willShowKeyboard: (double keyboardHeight) async {
  15. SharedPreferences prefs = await SharedPreferences.getInstance();
  16. if (keyboardHeight > 10) {
  17. _streamController.sink.add(keyboardHeight);
  18. prefs.setDouble(Constants.KeyboardHeight, keyboardHeight);
  19. }
  20. },willHideKeyboard: () async{
  21. print('~~~~willHideKeyboard~~~~~~');
  22. MessageMgr().emit('Keyboard Hide');
  23. }));
  24. }
  25. void dispose() {
  26. _keyboardUtils.dispose();
  27. _streamController.close();
  28. }
  29. }