Skip to content
This repository was archived by the owner on Jan 28, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ void main() {
* Use the "environments.local.json" for running against your local web-api
* For IOS users: change the SERVER_HOST in the environment.local file to "http://localhost:5000"
*/
environment.setFile('assets/environments.dev.json').whenComplete(() {
environment.setFile('assets/environments.local.json').whenComplete(() {
_runApp();
});
}
Expand Down
99 changes: 44 additions & 55 deletions lib/screens/show_activity_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ class ShowActivityScreen extends StatelessWidget {
final DisplayNameModel _girafUser;
final ActivityModel _activity;


final PictogramImageBloc _pictoImageBloc = di.get<PictogramImageBloc>();
final SettingsBloc _settingsBloc = di.get<SettingsBloc>();
final ActivityBloc _activityBloc = di.get<ActivityBloc>();
Expand All @@ -79,8 +78,7 @@ class ShowActivityScreen extends StatelessWidget {
///Used to check if the keyboard is visible
return StreamBuilder<WeekplanMode>(
stream: _authBloc.mode,
builder: (BuildContext context,
AsyncSnapshot<WeekplanMode> snapshot) {
builder: (BuildContext context, AsyncSnapshot<WeekplanMode> snapshot) {
return buildScreenFromOrientation(
orientation, context, snapshot.data);
});
Expand Down Expand Up @@ -123,43 +121,38 @@ class ShowActivityScreen extends StatelessWidget {
/// Builds the activity.
List<Widget> buildScreen(BuildContext context, WeekplanMode mode) {
final List<Widget> list = <Widget>[];
list.add(Expanded(
flex: 2,
child:
Center(
child:
AspectRatio(
aspectRatio: 1,
child: Padding(
padding: const EdgeInsets.all(20),
child: buildActivity(context),
),
list.add(
Expanded(
flex: 2,
child: Center(
child: AspectRatio(
aspectRatio: 1,
child: Padding(
padding: const EdgeInsets.all(20),
child: buildActivity(context),
),
),
),
);
),
);

// All the buttons excluding the activity itself
final List<Widget> buttons = <Widget>[];
buttons.add(Container(
margin: const EdgeInsets.all(10),
width: 150,
height: 150,
child:
CitizenAvatar(
displaynameModel: _girafUser,
)
));
margin: const EdgeInsets.all(10),
width: 150,
height: 150,
child: CitizenAvatar(
displaynameModel: _girafUser,
)));
buttons.add(
StreamBuilder<ActivityModel>(
stream: _activityBloc.activityModelStream,
builder: (BuildContext context,
AsyncSnapshot<ActivityModel> activitySnapshot) {
return (activitySnapshot.hasData &&

(activitySnapshot.data.state == ActivityState.Canceled ||
activitySnapshot.data.state == ActivityState.Completed))

(activitySnapshot.data.state == ActivityState.Canceled ||
activitySnapshot.data.state == ActivityState.Completed))
? _resetTimerAndBuildEmptyContainer()
: _buildTimer(context);
}),
Expand Down Expand Up @@ -581,8 +574,8 @@ class ShowActivityScreen extends StatelessWidget {
// depending on whether the timer is running.
child: GirafButton(
key: (timerRunningSnapshot.hasData
? timerRunningSnapshot.data == TimerRunningMode.running
: false)
? timerRunningSnapshot.data == TimerRunningMode.running
: false)
? const Key('TimerPauseButtonKey')
: const Key('TimerPlayButtonKey'),
onPressed: () {
Expand All @@ -592,21 +585,25 @@ class ShowActivityScreen extends StatelessWidget {
switch (timerRunningSnapshot.data) {
case TimerRunningMode.initialized:
case TimerRunningMode.stopped:
case TimerRunningMode.paused: {
_timerBloc.playTimer();
break;
}
case TimerRunningMode.running: {
case TimerRunningMode.paused:
{
_timerBloc.playTimer();
break;
}
case TimerRunningMode.running:
{
_timerBloc.pauseTimer();
break;
}
case TimerRunningMode.not_initialized: {
}
case TimerRunningMode.not_initialized:
{
break;
}
case TimerRunningMode.completed: {
}
case TimerRunningMode.completed:
{
_timerBloc.stopTimer();
break;
}
}
}
},
icon: (timerRunningSnapshot.hasData
Expand Down Expand Up @@ -705,7 +702,7 @@ class ShowActivityScreen extends StatelessWidget {
return GirafActivityTimerPickerDialog(_activity, _timerBloc);
});
}

/// Builds the button that changes the state of the activity. The content
/// of the button depends on whether it is in guardian or citizen mode.
ButtonBar buildButtonBar() {
Expand All @@ -730,8 +727,6 @@ class ShowActivityScreen extends StatelessWidget {
key: const Key('CompleteStateToggleButton'),
onPressed: () {
_activityBloc.completeActivity();


},
isEnabled: activitySnapshot.data.state !=
ActivityState.Canceled,
Expand All @@ -753,10 +748,9 @@ class ShowActivityScreen extends StatelessWidget {
key: const Key('CancelStateToggleButton'),
onPressed: () {
_activityBloc.cancelActivity();
_activity.state = _activityBloc.getActivity().state;
_activity.state = _activityBloc.getActivity().state;
//This removes current context
// so back button correctly navigates

},
isEnabled: activitySnapshot.data.state !=
ActivityState.Completed,
Expand Down Expand Up @@ -872,25 +866,20 @@ class ShowActivityScreen extends StatelessWidget {
},
);
}

/// Builds the icon that displays the activity's state
Stack _buildActivityStateIcon(
BuildContext context, ActivityState state, TimerRunningMode timemode) {


if (state == ActivityState.Completed ||
TimerRunningMode.completed == timemode) {
return Stack(children: <Widget>[
Container(
child: Icon(
Icons.check,
key: const Key('IconComplete'),
color: theme.GirafColors.green,
size: MediaQuery
.of(context)
.size
.width,
),
Icons.check,
key: const Key('IconComplete'),
color: theme.GirafColors.green,
size: MediaQuery.of(context).size.width,
),
),
Container(
child: ImageIcon(
Expand Down
11 changes: 7 additions & 4 deletions lib/widgets/choiceboard_widgets/choice_board_part.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:weekplanner/blocs/activity_bloc.dart';
import 'package:weekplanner/blocs/pictogram_image_bloc.dart';
import 'package:weekplanner/blocs/weekplan_bloc.dart';

import '../../di.dart';
import 'delete_pictogram_from_choice_board_button.dart';
Expand All @@ -17,8 +18,7 @@ class ChoiceBoardPart extends StatelessWidget {
_pictogramImageBloc.load(_pictogramModel);
}

final PictogramImageBloc _pictogramImageBloc =
di.get<PictogramImageBloc>();
final PictogramImageBloc _pictogramImageBloc = di.get<PictogramImageBloc>();

final PictogramModel _pictogramModel;

Expand All @@ -28,6 +28,8 @@ class ChoiceBoardPart extends StatelessWidget {

final ActivityBloc _bloc;

final WeekplanBloc _weekplanBloc = di.get<WeekplanBloc>();

@override
Widget build(BuildContext context) {
return StreamBuilder<Image>(
Expand All @@ -46,15 +48,16 @@ class ChoiceBoardPart extends StatelessWidget {
Positioned(
top: 5,
right: 5,
child:
DeletePictogramFromChoiceBoardButton(() {
child: DeletePictogramFromChoiceBoardButton(() {
_bloc.load(_activity, _user);
_activity.pictograms.remove(_pictogramModel);
if (_activity.pictograms.length == 1) {
_activity.isChoiceBoard = false;
_bloc.getTitleWhenChoiceboardDeleted();
}
_bloc.update();
_weekplanBloc.loadWeek(_user);
_bloc.load(_activity, _user);
}),
),
],
Expand Down
Loading