public void Initialize()
{
- NavigationService.Instance.NavigateToMainView();
+ //NavigationService.Instance.NavigateToMainView();
+ NavigationService.Instance.NavigateToExercisingView();
}
protected override void OnCreate()
public WorkoutState State { get; private set; }
/// <summary>
+ /// Current workout isPaused.
+ /// </summary>
+ public bool IsPaused { get; private set; } = false;
+ public bool IsPlaying { get; private set; } = true;
+ /// <summary>
/// Pause workout
/// </summary>
public ICommand Pause { get; private set; }
{
if (State == WorkoutState.Paused)
{
+ IsPaused = true;
+ this.RaisePropertyChanged(nameof(IsPaused));
+ IsPlaying = false;
+ this.RaisePropertyChanged(nameof(IsPlaying));
State = WorkoutState.Playing;
}
else if (State == WorkoutState.Playing)
{
+ IsPaused = false;
+ this.RaisePropertyChanged(nameof(IsPaused));
+ IsPlaying = true;
+ this.RaisePropertyChanged(nameof(IsPlaying));
State = WorkoutState.Paused;
}
}
--- /dev/null
+namespace Fitness.Views
+{
+ public partial class BarView
+ {
+ public BarView()
+ {
+ InitializeComponent();
+ }
+ }
+}
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Binding;
+
+namespace Fitness.Views.Behaviors
+{
+ public static class VisibilitySetter
+ {
+ public static readonly BindableProperty IsVisibleProperty =
+ BindableProperty.CreateAttached(
+ "IsVisible",
+ typeof(bool),
+ typeof(VisibilitySetter),
+ true,
+ propertyChanged: OnStyleChanged);
+
+ public static void OnStyleChanged(BindableObject bindable, object oldValue, object newValue)
+ {
+ if (newValue is bool isVisible && bindable is View view)
+ {
+ if (isVisible)
+ {
+ view.Show();
+ view.HeightResizePolicy = Tizen.NUI.ResizePolicyType.FillToParent;
+ //view.SizeHeight = 500;
+ }
+ else
+ {
+ view.Hide();
+ view.SizeHeight = 0;
+ }
+ }
+ }
+ }
+}
public ExercisingView()
{
InitializeComponent();
-
- this.Pause.ApplyStyle(Styles.Buttons.Regular);
}
}
}
--- /dev/null
+using Fitness.Controls;
+
+namespace Fitness.Views
+{
+ public partial class PauseView
+ {
+ public PauseView()
+ {
+ InitializeComponent();
+ }
+ }
+}
--- /dev/null
+namespace Fitness.Views
+{
+ public partial class PlayingView
+ {
+ public PlayingView()
+ {
+ InitializeComponent();
+ }
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<View x:Class="Fitness.Views.BarView"
+ xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+ xmlns:vm="clr-namespace:Fitness.ViewModels"
+ xmlns:ctrl="clr-namespace:Fitness.Controls"
+ xmlns:views="clr-namespace:Fitness.Views"
+ xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+ xmlns:style="clr-namespace:Fitness.Views.Styles"
+ WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Height=30}"
+ x:Name="Root">
+ <ImageView Position="{views:PositionInUnits X=17, Y=5}"
+ Size="{views:SizeInUnits Width=20, Height=20}"
+ ResourceUrl="*Resource*/layout/images/left_arrow.png"/>
+ <TextLabel Text="previous"
+ TextColor="#000C2B"
+ PixelSize="24"
+ HorizontalAlignment="Begin"
+ Position="{views:PositionInUnits X=40, Y=11}"
+ Margin="{views:ExtentsInUnits Start=40, Top=11}"
+ Size="{views:SizeInUnits Width=28, Height=9}"/>
+ <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ Text="{Binding Title}"
+ TextColor="#000C2B"
+ PixelSize="32"
+ HorizontalAlignment="Center"
+ Position="{views:PositionInUnits X=220, Y=10}"
+ Size="{views:SizeInUnits Width=40, Height=10}"/>
+ <TextLabel Text="next"
+ TextColor="#000C2B"
+ PixelSize="24"
+ HorizontalAlignment="End"
+ Position="{views:PositionInUnits X=400, Y=11}"
+ Size="{views:SizeInUnits Width=40, Height=9}"/>
+ <ImageView Position="{views:PositionInUnits X=443, Y=5}"
+ Size="{views:SizeInUnits Width=20, Height=20}"
+ ResourceUrl="*Resource*/layout/images/right_arrow.png"/>
+</View>
\ No newline at end of file
xmlns:ctrl="clr-namespace:Fitness.Controls"
xmlns:views="clr-namespace:Fitness.Views"
xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
- xmlns:style="clr-namespace:Fitness.Views.Styles"
+ xmlns:behaviors="clr-namespace:Fitness.Views.Behaviors"
+ xmlns:styles="clr-namespace:Fitness.Views.Styles"
x:Name="Root"
BackgroundColor="#EEEFF1" >
<View.BindingContext>
<vm:ExercisingViewModel/>
</View.BindingContext>
- <View.Layout>
- <LinearLayout LinearOrientation="Vertical"/>
- </View.Layout>
- <!--Bar-->
- <View WidthResizePolicy="FillToParent"
- Size="{views:SizeInUnits Height=30}">
- <ImageView Position="{views:PositionInUnits X=17, Y=5}"
- Size="{views:SizeInUnits Width=20, Height=20}"
- ResourceUrl="*Resource*/layout/images/left_arrow.png"/>
- <TextLabel Text="previous"
- TextColor="#000C2B"
- PixelSize="24"
- HorizontalAlignment="Begin"
- Position="{views:PositionInUnits X=40, Y=11}"
- Margin="{views:ExtentsInUnits Start=40, Top=11}"
- Size="{views:SizeInUnits Width=28, Height=9}"/>
- <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
- Text="{Binding Title}"
- TextColor="#000C2B"
- PixelSize="32"
- HorizontalAlignment="Center"
- Position="{views:PositionInUnits X=220, Y=10}"
- Size="{views:SizeInUnits Width=40, Height=10}"/>
- <TextLabel Text="next"
- TextColor="#000C2B"
- PixelSize="24"
- HorizontalAlignment="End"
- Position="{views:PositionInUnits X=400, Y=11}"
- Size="{views:SizeInUnits Width=40, Height=9}"/>
- <ImageView Position="{views:PositionInUnits X=443, Y=5}"
- Size="{views:SizeInUnits Width=20, Height=20}"
- ResourceUrl="*Resource*/layout/images/right_arrow.png"/>
- </View>
- <!--Margin-->
- <View BackgroundColor="Transparent"
- WidthResizePolicy="FillToParent"
- Size="{views:SizeInUnits Height=5}"/>
- <View BackgroundColor="Transparent"
- WidthResizePolicy="FillToParent"
- HeightResizePolicy="FillToParent"
- Weight="1"/>
- <!--Content-->
- <View Size="{views:SizeInUnits Height=189}"
- WidthResizePolicy="FillToParent">
- <View.Layout>
- <LinearLayout LinearOrientation="Horizontal"/>
- </View.Layout>
- <!--Video-->
- <View BackgroundColor="Transparent"
- HeightResizePolicy="FillToParent"
- WidthResizePolicy="FillToParent"
- Weight="1">
- <View.Layout>
- <LinearLayout LinearOrientation="Vertical"/>
- </View.Layout>
- <!--Video-->
- <ImageView HeightForWidth="true"
- WidthResizePolicy="FillToParent"
- HeightResizePolicy="SizeRelativeToParent"
- SizeModeFactor="0.0,0.6,0.0"
- ResourceUrl="*Resource*/layout/images/preview.png"/>
- <View BackgroundColor="Transparent"
- Size="{views:SizeInUnits Height=6}"
- WidthResizePolicy="FillToParent"/>
- <!--Time 165-->
- <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
- Text="{Binding TimeLeft, StringFormat=\{0:m\\:ss\}}"
- TextColor="#000C2B"
- PixelSize="165"
- HorizontalAlignment="Center"
- Margin="{views:ExtentsInUnits Start=48}"
- WidthResizePolicy="FillToParent"
- Size="{views:SizeInUnits Width=102, Height=50}"/>
- <TextLabel Text="Time left"
- TextColor="#000C2B"
- PixelSize="24"
- HorizontalAlignment="Center"
- Margin="{views:ExtentsInUnits Start=87}"
- WidthResizePolicy="FillToParent"
- Size="{views:SizeInUnits Width=28, Height=9}"/>
- </View>
- <!--Cemera Preview-->
- <View BackgroundColor="Transparent"
- HeightResizePolicy="FillToParent"
- WidthResizePolicy="FillToParent"
- Size="{views:SizeInUnits Width=281, Height=189}">
- <View.Layout>
- <LinearLayout LinearOrientation="Vertical"/>
- </View.Layout>
- <ImageView WidthResizePolicy="FillToParent"
- Size="{views:SizeInUnits Width=281, Height=158}"
- ResourceUrl="*Resource*/layout/images/camera.png"/>
- <!--Numbers-->
- <View Size="{views:SizeInUnits Width=281, Height=16}">
- <View.Layout>
- <LinearLayout LinearOrientation="Horizontal"/>
- </View.Layout>
- <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
- Text="{Binding Hold, StringFormat='{0:ss}'}"
- TextColor="#000C2B"
- PixelSize="40"
- HorizontalAlignment="Center"
- Margin="{views:ExtentsInUnits Start=87}"
- Size="{views:SizeInUnits Width=36, Height=16}"/>
- <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
- Text="{Binding Repetitions}"
- TextColor="#000C2B"
- PixelSize="40"
- HorizontalAlignment="Center"
- Size="{views:SizeInUnits Width=36, Height=16}"/>
- <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
- Text="{Binding Score}"
- TextColor="#000C2B"
- PixelSize="40"
- HorizontalAlignment="Center"
- Size="{views:SizeInUnits Width=36, Height=16}"/>
- </View>
- <!--Description-->
- <View Size="{views:SizeInUnits Width=281, Height=16}">
- <View.Layout>
- <LinearLayout LinearOrientation="Horizontal"/>
- </View.Layout>
- <TextLabel Text="Hold"
- TextColor="#000C2B"
- PixelSize="24"
- HorizontalAlignment="Center"
- Margin="{views:ExtentsInUnits Start=87}"
- Size="{views:SizeInUnits Width=36, Height=16}"/>
- <TextLabel Text="Count"
- TextColor="#000C2B"
- PixelSize="24"
- HorizontalAlignment="Center"
- Size="{views:SizeInUnits Width=36, Height=16}"/>
- <TextLabel Text="Score"
- TextColor="#000C2B"
- PixelSize="24"
- HorizontalAlignment="Center"
- Size="{views:SizeInUnits Width=36, Height=16}"/>
- </View>
- </View>
- </View>
- <!--Margin-->
- <View BackgroundColor="Transparent"
- WidthResizePolicy="FillToParent"
- HeightResizePolicy="FillToParent"
- Weight="1" />
- <!--Bar-->
- <View Size="{views:SizeInUnits Height=35}"
- WidthResizePolicy="FillToParent">
- <nui:Button x:Name="Pause"
- BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
- PositionUsesPivotPoint="True"
- ParentOrigin="Center"
- PivotPoint="Center"
- Text="Pause"
- Command="{Binding PauseResumeWorkout}"
- Size="{views:SizeInUnits Width=448, Height=30}">
- </nui:Button>
- </View>
+ <views:PauseView BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ behaviors:VisibilitySetter.IsVisible="{Binding IsPaused}"/>
+ <views:PlayingView BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ behaviors:VisibilitySetter.IsVisible="{Binding IsPlaying}"/>
</ctrl:Page>
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<View x:Class="Fitness.Views.PauseView"
+ xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+ xmlns:vm="clr-namespace:Fitness.ViewModels"
+ xmlns:ctrl="clr-namespace:Fitness.Controls"
+ xmlns:views="clr-namespace:Fitness.Views"
+ xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+ xmlns:style="clr-namespace:Fitness.Views.Styles"
+ HeightResizePolicy="FillToParent"
+ WidthResizePolicy="FillToParent"
+ x:Name="Root">
+ <ImageView HeightResizePolicy="FillToParent"
+ WidthResizePolicy="FillToParent"
+ ResourceUrl="*Resource*/layout/images/previewBig.png"/>
+ <View HeightResizePolicy="FillToParent"
+ WidthResizePolicy="FillToParent">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Vertical"/>
+ </View.Layout>
+ <!--Bar-->
+ <views:BarView BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"/>
+ <!--Margin-->
+ <View BackgroundColor="Transparent"
+ WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Height=5}"/>
+ <View BackgroundColor="Transparent"
+ WidthResizePolicy="FillToParent"
+ HeightResizePolicy="FillToParent"
+ Weight="1"/>
+ <View Size="{views:SizeInUnits Height=35}"
+ WidthResizePolicy="FillToParent">
+ <nui:Button BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ PositionUsesPivotPoint="True"
+ ParentOrigin="Center"
+ PivotPoint="Center"
+ Text="Play"
+ Command="{Binding PauseResumeWorkout}"
+ Size="{views:SizeInUnits Width=448, Height=30}"/>
+ </View>
+ </View>
+</View>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8" ?>
+<View x:Class="Fitness.Views.PlayingView"
+ xmlns="http://tizen.org/Tizen.NUI/2018/XAML"
+ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
+ xmlns:vm="clr-namespace:Fitness.ViewModels"
+ xmlns:ctrl="clr-namespace:Fitness.Controls"
+ xmlns:views="clr-namespace:Fitness.Views"
+ xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
+ xmlns:style="clr-namespace:Fitness.Views.Styles"
+ HeightResizePolicy="FillToParent"
+ WidthResizePolicy="FillToParent"
+ x:Name="Root">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Vertical"/>
+ </View.Layout>
+ <views:BarView BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"/>
+ <!--Margin-->
+ <View BackgroundColor="Transparent"
+ WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Height=5}"/>
+ <View BackgroundColor="Transparent"
+ WidthResizePolicy="FillToParent"
+ HeightResizePolicy="FillToParent"
+ Weight="1"/>
+ <!--Content-->
+ <View Size="{views:SizeInUnits Height=189}"
+ WidthResizePolicy="FillToParent">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Horizontal"/>
+ </View.Layout>
+ <!--Video-->
+ <View BackgroundColor="Transparent"
+ HeightResizePolicy="FillToParent"
+ WidthResizePolicy="FillToParent"
+ Weight="1">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Vertical"/>
+ </View.Layout>
+ <!--Video-->
+ <ImageView HeightForWidth="true"
+ WidthResizePolicy="FillToParent"
+ HeightResizePolicy="SizeRelativeToParent"
+ SizeModeFactor="0.0,0.6,0.0"
+ ResourceUrl="*Resource*/layout/images/preview.png"/>
+ <View BackgroundColor="Transparent"
+ Size="{views:SizeInUnits Height=6}"
+ WidthResizePolicy="FillToParent"/>
+ <!--Time 165-->
+ <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ Text="{Binding TimeLeft, StringFormat=\{0:m\\:ss\}}"
+ TextColor="#000C2B"
+ PixelSize="165"
+ HorizontalAlignment="Center"
+ Margin="{views:ExtentsInUnits Start=48}"
+ WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Width=102, Height=50}"/>
+ <TextLabel Text="Time left"
+ TextColor="#000C2B"
+ PixelSize="24"
+ HorizontalAlignment="Center"
+ Margin="{views:ExtentsInUnits Start=87}"
+ WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Width=28, Height=9}"/>
+ </View>
+ <!--Cemera Preview-->
+ <View BackgroundColor="Transparent"
+ HeightResizePolicy="FillToParent"
+ WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Width=281, Height=189}">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Vertical"/>
+ </View.Layout>
+ <ImageView WidthResizePolicy="FillToParent"
+ Size="{views:SizeInUnits Width=281, Height=158}"
+ ResourceUrl="*Resource*/layout/images/camera.png"/>
+ <!--Numbers-->
+ <View Size="{views:SizeInUnits Width=281, Height=16}">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Horizontal"/>
+ </View.Layout>
+ <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ Text="{Binding Hold, StringFormat='{0:ss}'}"
+ TextColor="#000C2B"
+ PixelSize="40"
+ HorizontalAlignment="Center"
+ Margin="{views:ExtentsInUnits Start=87}"
+ Size="{views:SizeInUnits Width=36, Height=16}"/>
+ <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ Text="{Binding Repetitions}"
+ TextColor="#000C2B"
+ PixelSize="40"
+ HorizontalAlignment="Center"
+ Size="{views:SizeInUnits Width=36, Height=16}"/>
+ <TextLabel BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ Text="{Binding Score}"
+ TextColor="#000C2B"
+ PixelSize="40"
+ HorizontalAlignment="Center"
+ Size="{views:SizeInUnits Width=36, Height=16}"/>
+ </View>
+ <!--Description-->
+ <View Size="{views:SizeInUnits Width=281, Height=16}">
+ <View.Layout>
+ <LinearLayout LinearOrientation="Horizontal"/>
+ </View.Layout>
+ <TextLabel Text="Hold"
+ TextColor="#000C2B"
+ PixelSize="24"
+ HorizontalAlignment="Center"
+ Margin="{views:ExtentsInUnits Start=87}"
+ Size="{views:SizeInUnits Width=36, Height=16}"/>
+ <TextLabel Text="Count"
+ TextColor="#000C2B"
+ PixelSize="24"
+ HorizontalAlignment="Center"
+ Size="{views:SizeInUnits Width=36, Height=16}"/>
+ <TextLabel Text="Score"
+ TextColor="#000C2B"
+ PixelSize="24"
+ HorizontalAlignment="Center"
+ Size="{views:SizeInUnits Width=36, Height=16}"/>
+ </View>
+ </View>
+ </View>
+ <!--Margin-->
+ <View BackgroundColor="Transparent"
+ WidthResizePolicy="FillToParent"
+ HeightResizePolicy="FillToParent"
+ Weight="1" />
+ <!--Bar-->
+ <View Size="{views:SizeInUnits Height=35}"
+ WidthResizePolicy="FillToParent">
+ <nui:Button BindingContext="{Binding Source={x:Reference Root}, Path=BindingContext}"
+ PositionUsesPivotPoint="True"
+ ParentOrigin="Center"
+ PivotPoint="Center"
+ Text="Pause"
+ Command="{Binding PauseResumeWorkout}"
+ Size="{views:SizeInUnits Width=448, Height=30}">
+ </nui:Button>
+ </View>
+</View>
\ No newline at end of file
xmlns:nui="clr-namespace:Tizen.NUI.Components;assembly=Tizen.NUI.Components"
xmlns:behaviors="clr-namespace:Fitness.Views.Behaviors"
xmlns:styles="clr-namespace:Fitness.Views.Styles"
- HeightResizePolicy="FillToParent"
- WidthResizePolicy="FillToParent"
- BackgroundColor="White"
x:Name="Root">
<View.BindingContext>
<vm:SummaryViewModel/>