Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:bloc_pattern/bloc_pattern.dart';
- import 'package:flutter/material.dart';
- import 'package:mobile/blocs/settings-bloc.dart';
- import 'package:mobile/widgets/custom-drawer.dart';
- import '../config.dart';
- class HomeScreen extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: AppBar(
- title: Text("MaisSync"),
- centerTitle: true,
- ),
- drawer: CustomDrawer(),
- body: DetailsWidget(),
- );
- }
- }
- class DetailsWidget extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- final bloc = BlocProvider.of<SettingsBloc>(context);
- return SingleChildScrollView(
- child: Container(
- margin: EdgeInsets.all(32),
- child: Column(
- children: <Widget>[
- Container(
- width: 160,
- child: Image.asset("images/logo.png"),
- ), // Logo
- SizedBox(height: 48),
- Card(
- child: Container(
- margin: EdgeInsets.all(8),
- child: Column(
- children: <Widget>[
- Text(
- "Dados de conexão",
- style: TextStyle(
- fontSize: 18,
- fontWeight: FontWeight.bold,
- ),
- ),
- SizedBox(height: 32),
- StreamBuilder<String>(
- stream: bloc.outIP,
- builder: (context, snapshot) {
- return ("IP: ${snapshot.data}");
- return Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: <Widget>[
- Text(
- "IP do Concentrador",
- style: TextStyle(fontSize: 16),
- ),
- Text(
- snapshot.data,
- style: TextStyle(fontSize: 16),
- ),
- ],
- );
- },
- ),
- SizedBox(height: 16),
- StreamBuilder<int>(
- stream: bloc.outPort,
- builder: (context, snapshot) {
- return ("Porta: ${snapshot.data}");
- return Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: <Widget>[
- Text(
- "Porta de conexão",
- style: TextStyle(fontSize: 16),
- ),
- Text(
- "${snapshot.data}",
- style: TextStyle(fontSize: 16),
- ),
- ],
- );
- },
- ),
- ],
- ),
- ),
- ),
- ],
- ),
- ),
- );
- }
- }
- import 'dart:async';
- import 'package:bloc_pattern/bloc_pattern.dart';
- import 'package:rxdart/rxdart.dart';
- import 'package:shared_preferences/shared_preferences.dart';
- class SettingsBloc extends BlocBase {
- // Fluxo do IP
- var _ipController = BehaviorSubject<String>(seedValue: "---");
- Stream<String> get outIP => _ipController.stream;
- Sink<String> get inIP => _ipController.sink;
- // Fluxo da Porta
- var _portController = BehaviorSubject<int>(seedValue: 0);
- Stream<int> get outPort => _portController.stream;
- Sink<int> get inPort => _portController.sink;
- SettingsBloc() {
- SharedPreferences.getInstance().then((prefs) {
- String ip =
- prefs.getKeys().contains("ip") ? prefs.getString("ip") : "---";
- int port = prefs.getKeys().contains("port") ? prefs.getInt("port") : 0;
- _ipController.add(ip);
- _portController.add(port);
- });
- }
- @override
- void dispose() {
- _ipController.close();
- _portController.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement