Add video store
This commit is contained in:
parent
e3f774d8e5
commit
9499511c48
2 changed files with 100 additions and 0 deletions
51
lib/stores/video_store.dart
Normal file
51
lib/stores/video_store.dart
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import 'dart:async';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:mobx/mobx.dart';
|
||||
import 'package:webview_flutter/webview_flutter.dart';
|
||||
|
||||
part 'video_store.g.dart';
|
||||
|
||||
class VideoStore = _VideoStoreBase with _$VideoStore;
|
||||
|
||||
abstract class _VideoStoreBase with Store {
|
||||
late final WebViewController controller;
|
||||
|
||||
late Timer timer;
|
||||
|
||||
_VideoStoreBase() {
|
||||
timer = Timer(const Duration(seconds: 5), () => menuVisible = false);
|
||||
}
|
||||
|
||||
@observable
|
||||
var menuVisible = true;
|
||||
|
||||
@observable
|
||||
var paused = false;
|
||||
|
||||
void handlePausePlay() {
|
||||
if (paused) {
|
||||
controller.runJavascript('document.getElementsByTagName("video")[0].play();');
|
||||
} else {
|
||||
controller.runJavascript('document.getElementsByTagName("video")[0].pause();');
|
||||
}
|
||||
|
||||
paused = !paused;
|
||||
}
|
||||
|
||||
void handleVideoTap() async {
|
||||
menuVisible = true;
|
||||
timer.cancel();
|
||||
timer = Timer(const Duration(seconds: 5), () {
|
||||
debugPrint('timer thing');
|
||||
menuVisible = false;
|
||||
});
|
||||
}
|
||||
|
||||
void removeOverlay() {
|
||||
controller.runJavascript('document.getElementsByClassName("video-player__overlay")[0].innerHTML = "";');
|
||||
}
|
||||
|
||||
void requestFullscreen() {
|
||||
controller.runJavascript('document.getElementsByTagName("video")[0].requestFullscreen()');
|
||||
}
|
||||
}
|
||||
49
lib/stores/video_store.g.dart
Normal file
49
lib/stores/video_store.g.dart
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
|
||||
part of 'video_store.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// StoreGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// ignore_for_file: non_constant_identifier_names, unnecessary_brace_in_string_interps, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic
|
||||
|
||||
mixin _$VideoStore on _VideoStoreBase, Store {
|
||||
final _$menuVisibleAtom = Atom(name: '_VideoStoreBase.menuVisible');
|
||||
|
||||
@override
|
||||
bool get menuVisible {
|
||||
_$menuVisibleAtom.reportRead();
|
||||
return super.menuVisible;
|
||||
}
|
||||
|
||||
@override
|
||||
set menuVisible(bool value) {
|
||||
_$menuVisibleAtom.reportWrite(value, super.menuVisible, () {
|
||||
super.menuVisible = value;
|
||||
});
|
||||
}
|
||||
|
||||
final _$pausedAtom = Atom(name: '_VideoStoreBase.paused');
|
||||
|
||||
@override
|
||||
bool get paused {
|
||||
_$pausedAtom.reportRead();
|
||||
return super.paused;
|
||||
}
|
||||
|
||||
@override
|
||||
set paused(bool value) {
|
||||
_$pausedAtom.reportWrite(value, super.paused, () {
|
||||
super.paused = value;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return '''
|
||||
menuVisible: ${menuVisible},
|
||||
paused: ${paused}
|
||||
''';
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue