Basic Mobile App Framework
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/screens/example2/components/body.dart';
|
||||
import 'package:imagini/screens/example2/example2-bloc.dart';
|
||||
import 'package:imagini/bloc/bloc-prov.dart';
|
||||
|
||||
class ExScreen2 extends StatefulWidget {
|
||||
@override
|
||||
_ExScreen2State createState() => _ExScreen2State();
|
||||
}
|
||||
|
||||
class _ExScreen2State extends State<ExScreen2> {
|
||||
Example2Bloc example2Bloc;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
example2Bloc = Example2Bloc();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
example2Bloc.dispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider(
|
||||
bloc: Example2Bloc(),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("Second Screen"),
|
||||
),
|
||||
body: Body(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -5,14 +5,14 @@ import 'package:imagini/models/contact.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/bloc/bloc.dart';
|
||||
|
||||
class Example2Bloc extends Bloc {
|
||||
class GalleryBloc extends Bloc {
|
||||
StreamSubscription _audioPlayerStateSubscription;
|
||||
|
||||
Stream<String> get example => _exampleSubject.stream;
|
||||
Sink<String> get exampleSink => _exampleSubject.sink;
|
||||
final StreamController<String> _exampleSubject = StreamController<String>();
|
||||
|
||||
Example2Bloc();
|
||||
GalleryBloc();
|
||||
|
||||
void dispose() {
|
||||
_exampleSubject.close();
|
||||
45
web_native/lib/screens/gallery/galleryscreen.dart
Normal file
45
web_native/lib/screens/gallery/galleryscreen.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/screens/gallery/components/body.dart';
|
||||
import 'package:imagini/screens/gallery/gallery-bloc.dart';
|
||||
import 'package:imagini/bloc/bloc-prov.dart';
|
||||
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||
|
||||
|
||||
class GalleryScreen extends StatefulWidget {
|
||||
@override
|
||||
_GalleryScreenState createState() => _GalleryScreenState();
|
||||
}
|
||||
|
||||
class _GalleryScreenState extends State<GalleryScreen> {
|
||||
GalleryBloc exampleBloc;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
exampleBloc = GalleryBloc();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
exampleBloc.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider(
|
||||
bloc: exampleBloc,
|
||||
child: PlatformScaffold(
|
||||
appBar: PlatformAppBar(
|
||||
title: Text('Gallerys'),
|
||||
cupertino: (_, __) => CupertinoNavigationBarData(
|
||||
// Issue with cupertino where a bar with no transparency
|
||||
// will push the list down. Adding some alpha value fixes it (in a hacky way)
|
||||
backgroundColor: Colors.lightGreen.withAlpha(254),
|
||||
),
|
||||
),
|
||||
body: Body(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -6,10 +6,11 @@ class Body extends StatelessWidget {
|
||||
return Center(
|
||||
child: RaisedButton(
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
// Go to Login Screen
|
||||
Navigator.pushNamed(context, '/Gallery');
|
||||
},
|
||||
child: Text('Go back!'),
|
||||
child: Text('Login'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,14 +5,14 @@ import 'package:imagini/models/contact.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/bloc/bloc.dart';
|
||||
|
||||
class Example2Bloc extends Bloc {
|
||||
class LoginBloc extends Bloc {
|
||||
StreamSubscription _audioPlayerStateSubscription;
|
||||
|
||||
Stream<String> get example => _exampleSubject.stream;
|
||||
Sink<String> get exampleSink => _exampleSubject.sink;
|
||||
final StreamController<String> _exampleSubject = StreamController<String>();
|
||||
|
||||
Example2Bloc();
|
||||
LoginBloc();
|
||||
|
||||
void dispose() {
|
||||
_exampleSubject.close();
|
||||
|
||||
@@ -1,37 +1,35 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/screens/example2/components/body.dart';
|
||||
import 'package:imagini/screens/example2/example2-bloc.dart';
|
||||
import 'package:imagini/screens/login/components/body.dart';
|
||||
import 'package:imagini/screens/login/login-bloc.dart';
|
||||
import 'package:imagini/bloc/bloc-prov.dart';
|
||||
|
||||
class ExScreen2 extends StatefulWidget {
|
||||
class LoginScreen extends StatefulWidget {
|
||||
@override
|
||||
_ExScreen2State createState() => _ExScreen2State();
|
||||
_LoginScreenState createState() => _LoginScreenState();
|
||||
}
|
||||
|
||||
class _ExScreen2State extends State<ExScreen2> {
|
||||
Example2Bloc example2Bloc;
|
||||
class _LoginScreenState extends State<LoginScreen> {
|
||||
LoginBloc loginBloc;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
|
||||
example2Bloc = Example2Bloc();
|
||||
loginBloc = LoginBloc();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
example2Bloc.dispose();
|
||||
|
||||
loginBloc.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider(
|
||||
bloc: Example2Bloc(),
|
||||
bloc: LoginBloc(),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("Second Screen"),
|
||||
title: Text("Login"),
|
||||
),
|
||||
body: Body(),
|
||||
),
|
||||
|
||||
@@ -6,10 +6,10 @@ class Body extends StatelessWidget {
|
||||
return Center(
|
||||
child: RaisedButton(
|
||||
onPressed: () {
|
||||
Navigator.pop(context);
|
||||
Navigator.pushNamed(context, '/Upload');
|
||||
},
|
||||
child: Text('Go back!'),
|
||||
child: Text('Page Two!'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,14 +5,14 @@ import 'package:imagini/models/contact.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/bloc/bloc.dart';
|
||||
|
||||
class PhotoBloc extends Bloc {
|
||||
class MeBloc extends Bloc {
|
||||
StreamSubscription _audioPlayerStateSubscription;
|
||||
|
||||
Stream<String> get example => _exampleSubject.stream;
|
||||
Sink<String> get exampleSink => _exampleSubject.sink;
|
||||
final StreamController<String> _exampleSubject = StreamController<String>();
|
||||
|
||||
PhotoBloc();
|
||||
MeBloc();
|
||||
|
||||
void dispose() {
|
||||
_exampleSubject.close();
|
||||
@@ -1,22 +1,22 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/screens/photo/components/body.dart';
|
||||
import 'package:imagini/screens/photo/photo-bloc.dart';
|
||||
import 'package:imagini/screens/me/components/body.dart';
|
||||
import 'package:imagini/screens/me/me-bloc.dart';
|
||||
import 'package:imagini/bloc/bloc-prov.dart';
|
||||
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||
|
||||
|
||||
class PhotoScreen extends StatefulWidget {
|
||||
class MeScreen extends StatefulWidget {
|
||||
@override
|
||||
_PhotoScreenState createState() => _PhotoScreenState();
|
||||
_MeScreenState createState() => _MeScreenState();
|
||||
}
|
||||
|
||||
class _PhotoScreenState extends State<PhotoScreen> {
|
||||
PhotoBloc exampleBloc;
|
||||
class _MeScreenState extends State<MeScreen> {
|
||||
MeBloc exampleBloc;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
exampleBloc = PhotoBloc();
|
||||
exampleBloc = MeBloc();
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -31,7 +31,7 @@ class _PhotoScreenState extends State<PhotoScreen> {
|
||||
bloc: exampleBloc,
|
||||
child: PlatformScaffold(
|
||||
appBar: PlatformAppBar(
|
||||
title: Text('Photos'),
|
||||
title: Text('Mes'),
|
||||
cupertino: (_, __) => CupertinoNavigationBarData(
|
||||
// Issue with cupertino where a bar with no transparency
|
||||
// will push the list down. Adding some alpha value fixes it (in a hacky way)
|
||||
15
web_native/lib/screens/settings/components/body.dart
Normal file
15
web_native/lib/screens/settings/components/body.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class Body extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Center(
|
||||
child: RaisedButton(
|
||||
onPressed: () {
|
||||
Navigator.pushNamed(context, '/Upload');
|
||||
},
|
||||
child: Text('Page Two!'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
20
web_native/lib/screens/settings/settings-bloc.dart
Normal file
20
web_native/lib/screens/settings/settings-bloc.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'dart:async';
|
||||
import 'dart:ui';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:imagini/models/contact.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/bloc/bloc.dart';
|
||||
|
||||
class SettingsBloc extends Bloc {
|
||||
StreamSubscription _audioPlayerStateSubscription;
|
||||
|
||||
Stream<String> get example => _exampleSubject.stream;
|
||||
Sink<String> get exampleSink => _exampleSubject.sink;
|
||||
final StreamController<String> _exampleSubject = StreamController<String>();
|
||||
|
||||
SettingsBloc();
|
||||
|
||||
void dispose() {
|
||||
_exampleSubject.close();
|
||||
}
|
||||
}
|
||||
45
web_native/lib/screens/settings/settingsscreen.dart
Normal file
45
web_native/lib/screens/settings/settingsscreen.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/screens/settings/components/body.dart';
|
||||
import 'package:imagini/screens/settings/settings-bloc.dart';
|
||||
import 'package:imagini/bloc/bloc-prov.dart';
|
||||
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||
|
||||
|
||||
class SettingsScreen extends StatefulWidget {
|
||||
@override
|
||||
_SettingsScreenState createState() => _SettingsScreenState();
|
||||
}
|
||||
|
||||
class _SettingsScreenState extends State<SettingsScreen> {
|
||||
SettingsBloc exampleBloc;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
exampleBloc = SettingsBloc();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
exampleBloc.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider(
|
||||
bloc: exampleBloc,
|
||||
child: PlatformScaffold(
|
||||
appBar: PlatformAppBar(
|
||||
title: Text('Settings'),
|
||||
cupertino: (_, __) => CupertinoNavigationBarData(
|
||||
// Issue with cupertino where a bar with no transparency
|
||||
// will push the list down. Adding some alpha value fixes it (in a hacky way)
|
||||
backgroundColor: Colors.lightGreen.withAlpha(254),
|
||||
),
|
||||
),
|
||||
body: Body(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
19
web_native/lib/screens/splash/components/body.dart
Normal file
19
web_native/lib/screens/splash/components/body.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class Body extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Center(
|
||||
child: RaisedButton(
|
||||
onPressed: () {
|
||||
// Back (popping)
|
||||
// Navigator.pop(context);
|
||||
|
||||
// Go to Login Screen
|
||||
Navigator.pushNamed(context, '/Login');
|
||||
},
|
||||
child: Text('Login'),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
20
web_native/lib/screens/splash/splash-bloc.dart
Normal file
20
web_native/lib/screens/splash/splash-bloc.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'dart:async';
|
||||
import 'dart:ui';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:imagini/models/contact.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/bloc/bloc.dart';
|
||||
|
||||
class SplashBloc extends Bloc {
|
||||
StreamSubscription _audioPlayerStateSubscription;
|
||||
|
||||
Stream<String> get example => _exampleSubject.stream;
|
||||
Sink<String> get exampleSink => _exampleSubject.sink;
|
||||
final StreamController<String> _exampleSubject = StreamController<String>();
|
||||
|
||||
SplashBloc();
|
||||
|
||||
void dispose() {
|
||||
_exampleSubject.close();
|
||||
}
|
||||
}
|
||||
38
web_native/lib/screens/splash/splashscreen.dart
Normal file
38
web_native/lib/screens/splash/splashscreen.dart
Normal file
@@ -0,0 +1,38 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:imagini/screens/splash/components/body.dart';
|
||||
import 'package:imagini/screens/splash/splash-bloc.dart';
|
||||
import 'package:imagini/bloc/bloc-prov.dart';
|
||||
|
||||
class SplashScreen extends StatefulWidget {
|
||||
@override
|
||||
_SplashScreenState createState() => _SplashScreenState();
|
||||
}
|
||||
|
||||
class _SplashScreenState extends State<SplashScreen> {
|
||||
SplashBloc splashBloc;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
splashBloc = SplashBloc();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
splashBloc.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider(
|
||||
bloc: SplashBloc(),
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("First Screen"),
|
||||
),
|
||||
body: Body(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user