Ported Create Progress Button for Platform Aware
Signed-off-by: Andreas Fahrecker <AndreasFahrecker@gmail.com>
This commit is contained in:
parent
e889f93d5c
commit
45d4f7ba3a
@ -1,18 +1,39 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart';
|
||||||
|
import 'package:time_progress_tracker/utils/helper_functions.dart';
|
||||||
|
|
||||||
class CreateProgressButton extends StatelessWidget {
|
class CreateProgressButton extends StatelessWidget {
|
||||||
final String _heroTag = "createProgressBTN";
|
final String _heroTag = "createProgressBTN";
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
void _onButtonPressed() =>
|
void _onButtonPressed() => Navigator.push(
|
||||||
Navigator.pushNamed(context, ProgressCreationScreen.routeName);
|
context,
|
||||||
|
platformPageRoute(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => ProgressCreationScreen(),
|
||||||
|
));
|
||||||
|
|
||||||
|
Widget _renderCupertino() {
|
||||||
|
return PlatformButton(
|
||||||
|
padding: EdgeInsets.all(4),
|
||||||
|
child: Icon(
|
||||||
|
Icons.add,
|
||||||
|
color: Colors.white,
|
||||||
|
),
|
||||||
|
onPressed: _onButtonPressed,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget _renderMaterial() {
|
||||||
return FloatingActionButton(
|
return FloatingActionButton(
|
||||||
heroTag: _heroTag,
|
heroTag: _heroTag,
|
||||||
child: Icon(Icons.add),
|
child: Icon(Icons.add),
|
||||||
onPressed: _onButtonPressed,
|
onPressed: _onButtonPressed,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return useCupertino() ? _renderCupertino() : _renderMaterial();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
|
||||||
|
import 'package:time_progress_tracker/ui/buttons/create_progress_button.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/active_time_progresses_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/active_time_progresses_screen.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/inactive_time_progresses_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/inactive_time_progresses_screen.dart';
|
||||||
import 'package:time_progress_tracker/ui/screens/settings_screen.dart';
|
import 'package:time_progress_tracker/ui/screens/settings_screen.dart';
|
||||||
@ -40,6 +41,9 @@ class _DashboardScreenState extends State<DashboardScreen> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _renderCreateProgressBtn() =>
|
||||||
|
_tabSelectedIndex == 2 ? null : CreateProgressButton();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return PlatformScaffold(
|
return PlatformScaffold(
|
||||||
@ -50,9 +54,12 @@ class _DashboardScreenState extends State<DashboardScreen> {
|
|||||||
),
|
),
|
||||||
cupertino: (_, __) => CupertinoNavigationBarData(
|
cupertino: (_, __) => CupertinoNavigationBarData(
|
||||||
transitionBetweenRoutes: false,
|
transitionBetweenRoutes: false,
|
||||||
|
leading: _renderCreateProgressBtn(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
material: (_, __) => MaterialScaffoldData(),
|
material: (_, __) => MaterialScaffoldData(
|
||||||
|
floatingActionButton: _renderCreateProgressBtn(),
|
||||||
|
),
|
||||||
body: _renderTabScreen(_tabSelectedIndex),
|
body: _renderTabScreen(_tabSelectedIndex),
|
||||||
bottomNavBar: PlatformNavBar(
|
bottomNavBar: PlatformNavBar(
|
||||||
currentIndex: _tabSelectedIndex,
|
currentIndex: _tabSelectedIndex,
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
import 'dart:io' show Platform;
|
||||||
import 'dart:ui';
|
import 'dart:ui';
|
||||||
|
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:time_progress_tracker/models/time_progress.dart';
|
import 'package:time_progress_tracker/models/time_progress.dart';
|
||||||
import 'package:time_progress_tracker/redux/actions/app_settings_actions.dart';
|
import 'package:time_progress_tracker/redux/actions/app_settings_actions.dart';
|
||||||
@ -28,3 +30,8 @@ bool useBrightBackground(Color bC) {
|
|||||||
double yiq = ((bC.red * 299) + (bC.green * 587) + (bC.blue * 114)) / 1000;
|
double yiq = ((bC.red * 299) + (bC.green * 587) + (bC.blue * 114)) / 1000;
|
||||||
return yiq >= 186 || (bC.red == 0 && bC.green == 0 && bC.blue == 0);
|
return yiq >= 186 || (bC.red == 0 && bC.green == 0 && bC.blue == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool useCupertino() {
|
||||||
|
if (kIsWeb) return false;
|
||||||
|
return Platform.isIOS;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user