init
This commit is contained in:
57
lib/app.dart
Normal file
57
lib/app.dart
Normal file
@ -0,0 +1,57 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:logger/logger.dart';
|
||||
import 'package:openmediacentermobile/login_screen.dart';
|
||||
import 'package:openmediacentermobile/token.dart';
|
||||
|
||||
import 'video_feed.dart';
|
||||
|
||||
class App extends StatefulWidget {
|
||||
App({Key? key}) : super(key: key) {}
|
||||
|
||||
@override
|
||||
State<StatefulWidget> createState() {
|
||||
return AppState();
|
||||
}
|
||||
}
|
||||
|
||||
class AppState extends State<App> {
|
||||
String? loggedin = null;
|
||||
|
||||
onLogin() {
|
||||
setState(() {
|
||||
loggedin = "ddd";
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (loggedin == null) {
|
||||
return const CircularProgressIndicator();
|
||||
} else if (loggedin == "") {
|
||||
return MaterialApp(
|
||||
home: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text("Login"),
|
||||
),
|
||||
body: LoginScreen(onLogin: onLogin)));
|
||||
} else {
|
||||
return MaterialApp(
|
||||
home: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: const Text("Openmediacenter"),
|
||||
),
|
||||
body: VideoFeed()));
|
||||
}
|
||||
}
|
||||
|
||||
AppState() {
|
||||
final token = Token.getInstance();
|
||||
token.getToken().then((value) {
|
||||
Logger().i("The token value is $value");
|
||||
setState(() {
|
||||
loggedin = value;
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
18
lib/login_screen.dart
Normal file
18
lib/login_screen.dart
Normal file
@ -0,0 +1,18 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class LoginScreen extends StatefulWidget {
|
||||
const LoginScreen({Key? key, this.onLogin}) : super(key: key);
|
||||
|
||||
final onLogin;
|
||||
|
||||
@override
|
||||
_LoginScreenState createState() => _LoginScreenState();
|
||||
}
|
||||
|
||||
class _LoginScreenState extends State<LoginScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ElevatedButton(
|
||||
onPressed: this.widget.onLogin, child: Text("klick meee"));
|
||||
}
|
||||
}
|
9
lib/main.dart
Normal file
9
lib/main.dart
Normal file
@ -0,0 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:logger/logger.dart';
|
||||
import 'package:openmediacentermobile/app.dart';
|
||||
|
||||
// main app entry point
|
||||
void main() {
|
||||
Logger().i("App init!");
|
||||
runApp(App());
|
||||
}
|
26
lib/preview_tile.dart
Normal file
26
lib/preview_tile.dart
Normal file
@ -0,0 +1,26 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class VideoPreview {
|
||||
String thumbnail;
|
||||
String title;
|
||||
int id;
|
||||
|
||||
VideoPreview(this.thumbnail, this.title, this.id);
|
||||
}
|
||||
|
||||
class PreviewTile extends StatelessWidget {
|
||||
const PreviewTile({Key? key, required this.dta}) : super(key: key);
|
||||
|
||||
final VideoPreview dta;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return InkWell(
|
||||
child: Column(
|
||||
children: [Text(dta.title), Image.memory(base64Decode(dta.thumbnail))],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
42
lib/token.dart
Normal file
42
lib/token.dart
Normal file
@ -0,0 +1,42 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:logger/logger.dart';
|
||||
|
||||
class Token {
|
||||
static final Token _token = Token._();
|
||||
final _storage = const FlutterSecureStorage();
|
||||
final _l = Logger();
|
||||
|
||||
String _tokenval = "";
|
||||
|
||||
static Token getInstance() {
|
||||
return _token;
|
||||
}
|
||||
|
||||
Future<String?> _readToken() async {
|
||||
_l.d("reading token store");
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
return _storage.read(key: 'jwt');
|
||||
}
|
||||
|
||||
Future<String> getToken() async {
|
||||
var completer = Completer<String>();
|
||||
|
||||
if (_tokenval == "") {
|
||||
final token = await _readToken();
|
||||
completer.complete(token);
|
||||
} else {
|
||||
completer.complete(_tokenval);
|
||||
}
|
||||
return completer.future;
|
||||
}
|
||||
|
||||
void setToken(String token) {
|
||||
_tokenval = token;
|
||||
_storage.write(key: 'jwt', value: token);
|
||||
}
|
||||
|
||||
Token._();
|
||||
}
|
29
lib/video_feed.dart
Normal file
29
lib/video_feed.dart
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user