├── Steps
├── Assets
│ ├── Logo.png
│ ├── AlignmentGrid.png
│ ├── Logo.scale-240.png
│ ├── steps_launcher.png
│ ├── WideLogo.scale-240.png
│ ├── BadgeLogo.scale-240.png
│ ├── StoreLogo.scale-240.png
│ ├── Tiles
│ │ ├── IconicTileSmall.png
│ │ └── IconicTileMediumLarge.png
│ ├── steps_background_02.png
│ ├── SplashScreen.scale-240.png
│ ├── SquareTile71x71.scale-240.png
│ └── SquareTile150x150.scale-240.png
├── Properties
│ ├── AppManifest.xml
│ ├── AssemblyInfo.cs
│ └── WMAppManifest.xml
├── packages.config
├── LocalizedStrings.cs
├── AboutPage.xaml.cs
├── App.xaml
├── DataConverter.cs
├── Package.appxmanifest
├── AboutPage.xaml
├── DataModels
│ └── MainModel.cs
├── Resources
│ ├── AppResources.Designer.cs
│ └── AppResources.resx
├── MainPage.xaml
├── App.xaml.cs
├── StepsDemoVersion.csproj
├── MainPage.xaml.cs
└── Simulations
│ └── short walk.txt
├── README.md
├── ActivateSensorCore
├── packages.config
├── ActivateSensorCoreResults.cs
├── Properties
│ └── AssemblyInfo.cs
├── Pages
│ ├── ActivateSensorCore.xaml
│ └── ActivateSensorCore.xaml.cs
├── Resources
│ ├── AppResources.fi-FI.resx
│ ├── AppResources.Designer.cs
│ └── AppResources.resx
└── ActivateSensorCoreSL81.csproj
├── .gitattributes
├── .gitignore
├── Steps.sln
└── .nuget
└── NuGet.targets
/Steps/Assets/Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/Logo.png
--------------------------------------------------------------------------------
/Steps/Assets/AlignmentGrid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/AlignmentGrid.png
--------------------------------------------------------------------------------
/Steps/Assets/Logo.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/Logo.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/steps_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/steps_launcher.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ActivateSensorCore
2 | ==================
3 |
4 | Helper library for SensorCore SDK to activate Location and Motion data.
5 |
--------------------------------------------------------------------------------
/Steps/Assets/WideLogo.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/WideLogo.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/BadgeLogo.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/BadgeLogo.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/StoreLogo.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/StoreLogo.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/Tiles/IconicTileSmall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/Tiles/IconicTileSmall.png
--------------------------------------------------------------------------------
/Steps/Assets/steps_background_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/steps_background_02.png
--------------------------------------------------------------------------------
/Steps/Assets/SplashScreen.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/SplashScreen.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/SquareTile71x71.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/SquareTile71x71.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/SquareTile150x150.scale-240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/SquareTile150x150.scale-240.png
--------------------------------------------------------------------------------
/Steps/Assets/Tiles/IconicTileMediumLarge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/activate-sensorcore/master/Steps/Assets/Tiles/IconicTileMediumLarge.png
--------------------------------------------------------------------------------
/ActivateSensorCore/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Steps/Properties/AppManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Steps/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ActivateSensorCore/ActivateSensorCoreResults.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace ActivateSensorCore
8 | {
9 | public enum ActivationRequestResults
10 | {
11 | AllEnabled,
12 | AskMeLater,
13 | NoAndDontAskAgain
14 | };
15 |
16 | public class ActivateSensorCoreResult
17 | {
18 | public ActivationRequestResults ActivationRequestResult;
19 | public bool Ongoing = false;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Steps/LocalizedStrings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Microsoft Mobile. All rights reserved.
3 | * See the license text file provided with this project for more information.
4 | */
5 | using Steps.Resources;
6 |
7 | namespace Steps
8 | {
9 | ///
10 | /// Provides access to string resources.
11 | ///
12 | public class LocalizedStrings
13 | {
14 | private static AppResources _localizedResources = new AppResources();
15 |
16 | public AppResources LocalizedResources { get { return _localizedResources; } }
17 | }
18 | }
--------------------------------------------------------------------------------
/Steps/AboutPage.xaml.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Microsoft Mobile. All rights reserved.
3 | * See the license text file provided with this project for more information.
4 | */
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Linq;
8 | using System.Net;
9 | using System.Windows;
10 | using System.Windows.Controls;
11 | using System.Windows.Navigation;
12 | using Microsoft.Phone.Controls;
13 | using Microsoft.Phone.Shell;
14 |
15 | namespace Steps
16 | {
17 | public partial class AboutPage : PhoneApplicationPage
18 | {
19 | public AboutPage()
20 | {
21 | InitializeComponent();
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/Steps/App.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Steps/DataConverter.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Microsoft Mobile. All rights reserved.
3 | * See the license text file provided with this project for more information.
4 | */
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Globalization;
8 | using System.Linq;
9 | using System.Text;
10 | using System.Threading.Tasks;
11 | using System.Windows.Data;
12 |
13 | namespace Steps
14 | {
15 |
16 | public class Half : IValueConverter
17 | {
18 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
19 | {
20 |
21 | return (double)value/2;
22 | }
23 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 |
26 | return "";
27 | }
28 |
29 | }
30 |
31 | public class Margin : IValueConverter
32 | {
33 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
34 | {
35 |
36 | return (double)value -6;
37 | }
38 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
39 | {
40 |
41 | return "";
42 | }
43 |
44 | }
45 |
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/Steps/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using System.Resources;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("Steps")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("Steps")]
14 | [assembly: AssemblyCopyright("Copyright © 2014")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 |
18 | // Setting ComVisible to false makes the types in this assembly not visible
19 | // to COM components. If you need to access a type in this assembly from
20 | // COM, set the ComVisible attribute to true on that type.
21 | [assembly: ComVisible(false)]
22 |
23 | // The following GUID is for the ID of the typelib if this project is exposed to COM
24 | [assembly: Guid("fb9770c8-5c8a-4e54-818b-ef540d05b2c3")]
25 |
26 | // Version information for an assembly consists of the following four values:
27 | //
28 | // Major Version
29 | // Minor Version
30 | // Build Number
31 | // Revision
32 | //
33 | // You can specify all the values or you can default the Revision and Build Numbers
34 | // by using the '*' as shown below:
35 | [assembly: AssemblyVersion("1.0.0.2")]
36 | [assembly: AssemblyFileVersion("1.0.0.2")]
37 | [assembly: NeutralResourcesLanguageAttribute("en-US")]
38 |
--------------------------------------------------------------------------------
/ActivateSensorCore/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using System.Resources;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("ActivateSensorCore")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("ActivateSensorCore")]
14 | [assembly: AssemblyCopyright("Copyright © 2014")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 |
18 | // Setting ComVisible to false makes the types in this assembly not visible
19 | // to COM components. If you need to access a type in this assembly from
20 | // COM, set the ComVisible attribute to true on that type.
21 | [assembly: ComVisible(false)]
22 |
23 | // The following GUID is for the ID of the typelib if this project is exposed to COM
24 | [assembly: Guid("bfa88a28-3d42-42d0-8b37-107c18b9dd74")]
25 |
26 | // Version information for an assembly consists of the following four values:
27 | //
28 | // Major Version
29 | // Minor Version
30 | // Build Number
31 | // Revision
32 | //
33 | // You can specify all the values or you can default the Revision and Build Numbers
34 | // by using the '*' as shown below:
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 | [assembly: NeutralResourcesLanguageAttribute("en-US")]
38 |
--------------------------------------------------------------------------------
/Steps/Properties/WMAppManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Assets\steps_launcher.png
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | Assets\Tiles\IconicTileSmall.png
21 | 0
22 | Assets\Tiles\IconicTileMediumLarge.png
23 |
24 |
25 |
26 |
27 |
28 |
29 | false
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/Steps/Package.appxmanifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Steps
7 | juhankos
8 | Assets\StoreLogo.png
9 |
10 |
11 | 6.3.1
12 | 6.3.1
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | AgHostSvcs.dll
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/Steps/AboutPage.xaml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.sln.docstates
8 |
9 | # Build results
10 |
11 | [Dd]ebug/
12 | [Rr]elease/
13 | x64/
14 | build/
15 | [Bb]in/
16 | [Oo]bj/
17 |
18 | # Enable "build/" folder in the NuGet Packages folder since NuGet packages use it for MSBuild targets
19 | !packages/*/build/
20 |
21 | # MSTest test Results
22 | [Tt]est[Rr]esult*/
23 | [Bb]uild[Ll]og.*
24 |
25 | *_i.c
26 | *_p.c
27 | *.ilk
28 | *.meta
29 | *.obj
30 | *.pch
31 | *.pdb
32 | *.pgc
33 | *.pgd
34 | *.rsp
35 | *.sbr
36 | *.tlb
37 | *.tli
38 | *.tlh
39 | *.tmp
40 | *.tmp_proj
41 | *.log
42 | *.vspscc
43 | *.vssscc
44 | .builds
45 | *.pidb
46 | *.log
47 | *.scc
48 |
49 | # Visual C++ cache files
50 | ipch/
51 | *.aps
52 | *.ncb
53 | *.opensdf
54 | *.sdf
55 | *.cachefile
56 |
57 | # Visual Studio profiler
58 | *.psess
59 | *.vsp
60 | *.vspx
61 |
62 | # Guidance Automation Toolkit
63 | *.gpState
64 |
65 | # ReSharper is a .NET coding add-in
66 | _ReSharper*/
67 | *.[Rr]e[Ss]harper
68 |
69 | # TeamCity is a build add-in
70 | _TeamCity*
71 |
72 | # DotCover is a Code Coverage Tool
73 | *.dotCover
74 |
75 | # NCrunch
76 | *.ncrunch*
77 | .*crunch*.local.xml
78 |
79 | # Installshield output folder
80 | [Ee]xpress/
81 |
82 | # DocProject is a documentation generator add-in
83 | DocProject/buildhelp/
84 | DocProject/Help/*.HxT
85 | DocProject/Help/*.HxC
86 | DocProject/Help/*.hhc
87 | DocProject/Help/*.hhk
88 | DocProject/Help/*.hhp
89 | DocProject/Help/Html2
90 | DocProject/Help/html
91 |
92 | # Click-Once directory
93 | publish/
94 |
95 | # Publish Web Output
96 | *.Publish.xml
97 |
98 | # NuGet Packages Directory
99 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line
100 | #packages/
101 |
102 | # Windows Azure Build Output
103 | csx
104 | *.build.csdef
105 |
106 | # Windows Store app package directory
107 | AppPackages/
108 |
109 | # Others
110 | sql/
111 | *.Cache
112 | ClientBin/
113 | [Ss]tyle[Cc]op.*
114 | ~$*
115 | *~
116 | *.dbmdl
117 | *.[Pp]ublish.xml
118 | *.pfx
119 | *.publishsettings
120 |
121 | # RIA/Silverlight projects
122 | Generated_Code/
123 |
124 | # Backup & report files from converting an old project file to a newer
125 | # Visual Studio version. Backup files are not needed, because we have git ;-)
126 | _UpgradeReport_Files/
127 | Backup*/
128 | UpgradeLog*.XML
129 | UpgradeLog*.htm
130 |
131 | # SQL Server files
132 | App_Data/*.mdf
133 | App_Data/*.ldf
134 |
135 |
136 | #LightSwitch generated files
137 | GeneratedArtifacts/
138 | _Pvt_Extensions/
139 | ModelManifest.xml
140 |
141 | # =========================
142 | # Windows detritus
143 | # =========================
144 |
145 | # Windows image file caches
146 | Thumbs.db
147 | ehthumbs.db
148 |
149 | # Folder config file
150 | Desktop.ini
151 |
152 | # Recycle Bin used on file shares
153 | $RECYCLE.BIN/
154 |
155 | # Mac desktop service store files
156 | .DS_Store
157 |
--------------------------------------------------------------------------------
/Steps.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2013
4 | VisualStudioVersion = 12.0.30723.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StepsDemoVersion", "Steps\StepsDemoVersion.csproj", "{C80AFAB2-39D5-406A-ABBE-3777E3F0B625}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{483F2517-011A-4381-8379-3041287C4CAD}"
9 | ProjectSection(SolutionItems) = preProject
10 | .nuget\NuGet.targets = .nuget\NuGet.targets
11 | EndProjectSection
12 | EndProject
13 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ActivateSensorCoreSL81", "ActivateSensorCore\ActivateSensorCoreSL81.csproj", "{BFA88A28-3D42-42D0-8B37-107C18B9DD74}"
14 | EndProject
15 | Global
16 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
17 | Debug|Any CPU = Debug|Any CPU
18 | Debug|ARM = Debug|ARM
19 | Debug|Mixed Platforms = Debug|Mixed Platforms
20 | Debug|x86 = Debug|x86
21 | Release|Any CPU = Release|Any CPU
22 | Release|ARM = Release|ARM
23 | Release|Mixed Platforms = Release|Mixed Platforms
24 | Release|x86 = Release|x86
25 | EndGlobalSection
26 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
27 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|Any CPU.Build.0 = Debug|Any CPU
29 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
30 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|ARM.ActiveCfg = Debug|ARM
31 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|ARM.Build.0 = Debug|ARM
32 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|ARM.Deploy.0 = Debug|ARM
33 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
34 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|Mixed Platforms.Build.0 = Debug|x86
35 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|Mixed Platforms.Deploy.0 = Debug|x86
36 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|x86.ActiveCfg = Debug|x86
37 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|x86.Build.0 = Debug|x86
38 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Debug|x86.Deploy.0 = Debug|x86
39 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|Any CPU.ActiveCfg = Release|Any CPU
40 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|Any CPU.Build.0 = Release|Any CPU
41 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|Any CPU.Deploy.0 = Release|Any CPU
42 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|ARM.ActiveCfg = Release|ARM
43 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|ARM.Build.0 = Release|ARM
44 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|ARM.Deploy.0 = Release|ARM
45 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|Mixed Platforms.ActiveCfg = Release|x86
46 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|Mixed Platforms.Build.0 = Release|x86
47 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|Mixed Platforms.Deploy.0 = Release|x86
48 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|x86.ActiveCfg = Release|x86
49 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|x86.Build.0 = Release|x86
50 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}.Release|x86.Deploy.0 = Release|x86
51 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
52 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|Any CPU.Build.0 = Debug|Any CPU
53 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|ARM.ActiveCfg = Debug|ARM
54 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|ARM.Build.0 = Debug|ARM
55 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
56 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|Mixed Platforms.Build.0 = Debug|x86
57 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|x86.ActiveCfg = Debug|x86
58 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Debug|x86.Build.0 = Debug|x86
59 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|Any CPU.ActiveCfg = Release|Any CPU
60 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|Any CPU.Build.0 = Release|Any CPU
61 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|ARM.ActiveCfg = Release|ARM
62 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|ARM.Build.0 = Release|ARM
63 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|Mixed Platforms.ActiveCfg = Release|x86
64 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|Mixed Platforms.Build.0 = Release|x86
65 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|x86.ActiveCfg = Release|x86
66 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}.Release|x86.Build.0 = Release|x86
67 | EndGlobalSection
68 | GlobalSection(SolutionProperties) = preSolution
69 | HideSolutionNode = FALSE
70 | EndGlobalSection
71 | EndGlobal
72 |
--------------------------------------------------------------------------------
/Steps/DataModels/MainModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace Steps
9 | {
10 |
11 |
12 | public class MainModel : INotifyPropertyChanged
13 | {
14 | private double _width;
15 | private double _height;
16 | private List _steps = new List();
17 | private uint _max = 20000;
18 | int _resolutionInMinutes = 15;
19 | int _arrayMaxSize = 96;
20 | int _margin = 6;
21 |
22 | public void setParameters(double width, double height, List steps, int resolutionInMinutes)
23 | {
24 | _width = width;
25 | _height = height;
26 | _steps = steps;
27 |
28 | _resolutionInMinutes = resolutionInMinutes; // Resolution of graph is 15 min. Can be 5,10,15,20...60
29 | _arrayMaxSize = 1440 / _resolutionInMinutes;
30 |
31 | NotifyPropertyChanged(null); //We refresh all properties here
32 | }
33 |
34 | public void ChangeMax()
35 | {
36 | if (_max == 20000)
37 | _max = 10000;
38 | else if (_max == 10000)
39 | _max = 5000;
40 | else
41 | _max = 20000;
42 |
43 |
44 | NotifyPropertyChanged(null); //We refresh all properties here
45 | }
46 |
47 |
48 |
49 | public string MAX { get { return _max.ToString(); } }
50 | public string HALF { get { return (_max/2).ToString(); } }
51 | public string MARGIN { get { return (_margin).ToString(); } }
52 |
53 |
54 | private uint _walkingSteps = 0;
55 | ///
56 | /// Sample ViewModel property; this property is used in the view to display its value using a Binding.
57 | ///
58 | ///
59 | public uint WalkingSteps
60 | {
61 | get
62 | {
63 | return _walkingSteps;
64 | }
65 | set
66 | {
67 |
68 | if (value != _walkingSteps)
69 | {
70 | _walkingSteps = value;
71 | NotifyPropertyChanged("WalkingSteps");
72 | }
73 | }
74 | }
75 |
76 | private uint _runningSteps = 0;
77 | ///
78 | /// Sample ViewModel property; this property is used in the view to display its value using a Binding.
79 | ///
80 | ///
81 | public uint RunningSteps
82 | {
83 | get
84 | {
85 | return _runningSteps;
86 | }
87 | set
88 | {
89 |
90 | if (value != _runningSteps)
91 | {
92 | _runningSteps = value;
93 | NotifyPropertyChanged("RunningSteps");
94 | }
95 | }
96 | }
97 | private uint _stepsToday = 0;
98 |
99 | public uint StepsToday
100 | {
101 | get
102 | {
103 | return _stepsToday;
104 | }
105 | set
106 | {
107 |
108 | if (value != _stepsToday)
109 | {
110 | _stepsToday = value;
111 | NotifyPropertyChanged("StepsToday");
112 | }
113 | }
114 | }
115 |
116 | public string PathString {
117 | get {
118 |
119 | String path = "M 6," + ((uint)_height).ToString();
120 | for(int i = 1 ; i < _steps.Count ; i++ ){
121 | uint stepcount = _max > _steps[i] ? _steps[i] : _max;
122 |
123 | path += " L " + ((uint)(((double)i / _arrayMaxSize) * (_width-6) )+6).ToString() + "," + (_height - (uint)(stepcount * (_height / _max))).ToString() + " ";
124 | }
125 | System.Diagnostics.Debug.WriteLine(path);
126 | return path;
127 | }
128 | }
129 |
130 |
131 | public event PropertyChangedEventHandler PropertyChanged;
132 |
133 | private void NotifyPropertyChanged(String propertyName)
134 | {
135 | PropertyChangedEventHandler handler = PropertyChanged;
136 | if (null != handler)
137 | {
138 | handler(this, new PropertyChangedEventArgs(propertyName));
139 | }
140 | }
141 |
142 | }
143 | }
144 |
--------------------------------------------------------------------------------
/ActivateSensorCore/Pages/ActivateSensorCore.xaml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/ActivateSensorCore/Resources/AppResources.fi-FI.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | Testaus!
122 |
123 |
--------------------------------------------------------------------------------
/ActivateSensorCore/Resources/AppResources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.34014
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ActivateSensorCore.Resources {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class AppResources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal AppResources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | internal static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ActivateSensorCore.Resources.AppResources", typeof(AppResources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | internal static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized string similar to MyDemo App.
65 | ///
66 | internal static string AppName {
67 | get {
68 | return ResourceManager.GetString("AppName", resourceCulture);
69 | }
70 | }
71 |
72 | ///
73 | /// Looks up a localized string similar to Later.
74 | ///
75 | internal static string LaterButton {
76 | get {
77 | return ResourceManager.GetString("LaterButton", resourceCulture);
78 | }
79 | }
80 |
81 | ///
82 | /// Looks up a localized string similar to Switch on.
83 | ///
84 | internal static string LocationActivationButton {
85 | get {
86 | return ResourceManager.GetString("LocationActivationButton", resourceCulture);
87 | }
88 | }
89 |
90 | ///
91 | /// Looks up a localized string similar to This application requires location data in order to work correctly.
92 | ///
93 | internal static string LocationActivationExplanation {
94 | get {
95 | return ResourceManager.GetString("LocationActivationExplanation", resourceCulture);
96 | }
97 | }
98 |
99 | ///
100 | /// Looks up a localized string similar to Switch on location sensor.
101 | ///
102 | internal static string LocationActivationTitle {
103 | get {
104 | return ResourceManager.GetString("LocationActivationTitle", resourceCulture);
105 | }
106 | }
107 |
108 | ///
109 | /// Looks up a localized string similar to Switch on.
110 | ///
111 | internal static string MotionDataActivationButton {
112 | get {
113 | return ResourceManager.GetString("MotionDataActivationButton", resourceCulture);
114 | }
115 | }
116 |
117 | ///
118 | /// Looks up a localized string similar to This application requires motion data in order to work correctly.
119 | ///
120 | internal static string MotionDataActivationExplanation {
121 | get {
122 | return ResourceManager.GetString("MotionDataActivationExplanation", resourceCulture);
123 | }
124 | }
125 |
126 | ///
127 | /// Looks up a localized string similar to Switch on motion data.
128 | ///
129 | internal static string MotionDataActivationTitle {
130 | get {
131 | return ResourceManager.GetString("MotionDataActivationTitle", resourceCulture);
132 | }
133 | }
134 |
135 | ///
136 | /// Looks up a localized string similar to Do not ask again.
137 | ///
138 | internal static string NeverButton {
139 | get {
140 | return ResourceManager.GetString("NeverButton", resourceCulture);
141 | }
142 | }
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/ActivateSensorCore/Pages/ActivateSensorCore.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO.IsolatedStorage;
5 | using System.Linq;
6 | using System.Net;
7 | using System.Windows;
8 | using System.Windows.Controls;
9 | using System.Windows.Navigation;
10 | using Microsoft.Phone.Controls;
11 | using Microsoft.Phone.Shell;
12 | using ActivateSensorCore.Resources;
13 | using Lumia.Sense;
14 |
15 | namespace ActivateSensorCore.Pages
16 | {
17 | public partial class ActivateSensorCore : PhoneApplicationPage
18 | {
19 | public ActivateSensorCoreResult ActivationResult;
20 |
21 | public static bool OptedOut()
22 | {
23 | using (var file = IsolatedStorageFile.GetUserStoreForApplication())
24 | {
25 | if (file.FileExists("SensorCoreDontBugMe.txt"))
26 | return true;
27 | }
28 | return false;
29 | }
30 |
31 | public ActivateSensorCore()
32 | {
33 | InitializeComponent();
34 | Loaded += ActivateSensorCore_Loaded;
35 | }
36 |
37 | void ActivateSensorCore_Loaded(object sender, RoutedEventArgs e)
38 | {
39 | UpdateDialog();
40 |
41 | // AppName.Text = GetApplicationName();
42 | }
43 |
44 | void ShowMotionDataActivationBox()
45 | {
46 | MotionDataActivationTitle.Text = AppResources.MotionDataActivationTitle;
47 | MotionDataActivationExplanation.Text = AppResources.MotionDataActivationExplanation;
48 | MotionDataActivationButton.Content = AppResources.MotionDataActivationButton;
49 | MotionDataActivationLaterButton.Content = AppResources.LaterButton;
50 | MotionDataActivationNeverButton.Content = AppResources.NeverButton;
51 | MotionDataActivationBox.Visibility = System.Windows.Visibility.Visible;
52 | }
53 |
54 | void ShowLocationActivationBox()
55 | {
56 | LocationActivationTitle.Text = AppResources.LocationActivationTitle;
57 | LocationActivationExplanation.Text = AppResources.LocationActivationExplanation;
58 | LocationActivationButton.Content = AppResources.LocationActivationButton;
59 | LocationActivationLaterButton.Content = AppResources.LaterButton;
60 | LocationActivationNeverButton.Content = AppResources.NeverButton;
61 | LocationActivationBox.Visibility = System.Windows.Visibility.Visible;
62 | }
63 |
64 |
65 | async void UpdateDialog()
66 | {
67 | MotionDataActivationBox.Visibility = System.Windows.Visibility.Collapsed;
68 | ActivationResult.ActivationRequestResult = ActivationRequestResults.AskMeLater;
69 |
70 | Exception failure = null;
71 | try
72 | {
73 | await Lumia.Sense.PlaceMonitor.GetDefaultAsync();
74 | }
75 | catch (Exception exception)
76 | {
77 | switch (SenseHelper.GetSenseError(exception.HResult))
78 | {
79 | case SenseError.LocationDisabled:
80 | ShowLocationActivationBox();
81 | break;
82 | case SenseError.SenseDisabled:
83 | ShowMotionDataActivationBox();
84 | break;
85 | default:
86 | // do something clever here
87 | break;
88 | }
89 |
90 | failure = exception;
91 | }
92 | if (failure == null)
93 | {
94 | // All is now good, dismiss the dialog.
95 |
96 | ActivationResult.ActivationRequestResult = ActivationRequestResults.AllEnabled;
97 | NavigationService.GoBack();
98 | }
99 |
100 | }
101 | ///
102 | /// Get application name.
103 | ///
104 | /// Name of the application.
105 | private string GetApplicationName()
106 | {
107 | string appName = AppResources.AppName;
108 |
109 | // If application name has not been defined by the application,
110 | // extract it from the Application class.
111 | if (appName == null || appName.Length <= 0)
112 | {
113 | appName = Application.Current.ToString();
114 | if (appName.EndsWith(".App"))
115 | {
116 | appName = appName.Remove(appName.LastIndexOf(".App"));
117 | }
118 | }
119 |
120 | return appName;
121 | }
122 |
123 | protected override void OnNavigatedTo(NavigationEventArgs e)
124 | {
125 | if (!e.IsNavigationInitiator && e.NavigationMode == NavigationMode.Back)
126 | {
127 | // Back from the setting view.
128 | UpdateDialog();
129 | }
130 | }
131 |
132 | private void LaterButton_Click(object sender, RoutedEventArgs e)
133 | {
134 | ActivationResult.ActivationRequestResult = ActivationRequestResults.AskMeLater;
135 | NavigationService.GoBack();
136 | }
137 |
138 | private void NeverButton_Click(object sender, RoutedEventArgs e)
139 | {
140 | using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
141 | {
142 | isoStore.CreateFile("SensorCoreDontBugMe.txt");
143 | }
144 |
145 | ActivationResult.ActivationRequestResult = ActivationRequestResults.NoAndDontAskAgain;
146 | NavigationService.GoBack();
147 | }
148 |
149 |
150 | private async void MotionDataActivationButton_Click(object sender, RoutedEventArgs e)
151 | {
152 | await SenseHelper.LaunchSenseSettingsAsync();
153 | // Although asynchoneous, this completes before the user has actually done anything.
154 | // The application will loose control, the system settings will be displayed.
155 | // We will get the control back to our application via an OnNavigatedTo event.
156 | }
157 |
158 | private async void LocationActivationButton_Click(object sender, RoutedEventArgs e)
159 | {
160 | await SenseHelper.LaunchLocationSettingsAsync();
161 | // Although asynchoneous, this completes before the user has actually done anything.
162 | // The application will loose control, the system settings will be displayed.
163 | // We will get the control back to our application via an OnNavigatedTo event.
164 | }
165 |
166 | }
167 | }
--------------------------------------------------------------------------------
/Steps/Resources/AppResources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.34014
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace Steps.Resources {
12 | using System;
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | public class AppResources {
26 |
27 | private static global::System.Resources.ResourceManager resourceMan;
28 |
29 | private static global::System.Globalization.CultureInfo resourceCulture;
30 |
31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32 | internal AppResources() {
33 | }
34 |
35 | ///
36 | /// Returns the cached ResourceManager instance used by this class.
37 | ///
38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39 | public static global::System.Resources.ResourceManager ResourceManager {
40 | get {
41 | if (object.ReferenceEquals(resourceMan, null)) {
42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Steps.Resources.AppResources", typeof(AppResources).Assembly);
43 | resourceMan = temp;
44 | }
45 | return resourceMan;
46 | }
47 | }
48 |
49 | ///
50 | /// Overrides the current thread's CurrentUICulture property for all
51 | /// resource lookups using this strongly typed resource class.
52 | ///
53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54 | public static global::System.Globalization.CultureInfo Culture {
55 | get {
56 | return resourceCulture;
57 | }
58 | set {
59 | resourceCulture = value;
60 | }
61 | }
62 |
63 | ///
64 | /// Looks up a localized string similar to This developer sample demonstrates SensorCore SDK Steps API functionality..
65 | ///
66 | public static string AboutDescription {
67 | get {
68 | return ResourceManager.GetString("AboutDescription", resourceCulture);
69 | }
70 | }
71 |
72 | ///
73 | /// Looks up a localized string similar to This developer example application has been created to provide tips and best practice guidance for software developers and app designers, and may not have all the features you would expect in a commercial product. This application is published in Store as a free software as it may also have value to regular phone users. The source code and documentation of this example can be downloaded from Nokia Developer website..
74 | ///
75 | public static string AboutDisclaimer {
76 | get {
77 | return ResourceManager.GetString("AboutDisclaimer", resourceCulture);
78 | }
79 | }
80 |
81 | ///
82 | /// Looks up a localized string similar to Nokia Developer website.
83 | ///
84 | public static string AboutHyperlinkProject {
85 | get {
86 | return ResourceManager.GetString("AboutHyperlinkProject", resourceCulture);
87 | }
88 | }
89 |
90 | ///
91 | /// Looks up a localized string similar to add.
92 | ///
93 | public static string AppBarButtonText {
94 | get {
95 | return ResourceManager.GetString("AppBarButtonText", resourceCulture);
96 | }
97 | }
98 |
99 | ///
100 | /// Looks up a localized string similar to Menu Item.
101 | ///
102 | public static string AppBarMenuItemText {
103 | get {
104 | return ResourceManager.GetString("AppBarMenuItemText", resourceCulture);
105 | }
106 | }
107 |
108 | ///
109 | /// Looks up a localized string similar to MY APPLICATION.
110 | ///
111 | public static string ApplicationTitle {
112 | get {
113 | return ResourceManager.GetString("ApplicationTitle", resourceCulture);
114 | }
115 | }
116 |
117 | ///
118 | /// Looks up a localized string similar to SENSORCORE SAMPLE.
119 | ///
120 | public static string AppName {
121 | get {
122 | return ResourceManager.GetString("AppName", resourceCulture);
123 | }
124 | }
125 |
126 | ///
127 | /// Looks up a localized string similar to LeftToRight.
128 | ///
129 | public static string ResourceFlowDirection {
130 | get {
131 | return ResourceManager.GetString("ResourceFlowDirection", resourceCulture);
132 | }
133 | }
134 |
135 | ///
136 | /// Looks up a localized string similar to en-US.
137 | ///
138 | public static string ResourceLanguage {
139 | get {
140 | return ResourceManager.GetString("ResourceLanguage", resourceCulture);
141 | }
142 | }
143 |
144 | ///
145 | /// Looks up a localized string similar to .
146 | ///
147 | public static string Sen {
148 | get {
149 | return ResourceManager.GetString("Sen", resourceCulture);
150 | }
151 | }
152 | }
153 | }
154 |
--------------------------------------------------------------------------------
/ActivateSensorCore/Resources/AppResources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | MyDemo App
122 | Do not localize.
123 |
124 |
125 | Later
126 |
127 |
128 | Switch on
129 |
130 |
131 | This application requires location data in order to work correctly
132 |
133 |
134 | Switch on location sensor
135 |
136 |
137 | Switch on
138 |
139 |
140 | This application requires motion data in order to work correctly
141 |
142 |
143 | Switch on motion data
144 |
145 |
146 | Do not ask again
147 |
148 |
--------------------------------------------------------------------------------
/ActivateSensorCore/ActivateSensorCoreSL81.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | 10.0.20506
7 | 2.0
8 | {BFA88A28-3D42-42D0-8B37-107C18B9DD74}
9 | {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
10 | Library
11 | Properties
12 | ActivateSensorCore
13 | ActivateSensorCore
14 | WindowsPhone
15 | v8.1
16 | $(TargetFrameworkVersion)
17 | false
18 | true
19 | 12.0
20 | true
21 | bf10c7de
22 | ..\..\..\..\temp\SensorCore\steps-1.0\Steps\
23 |
24 |
25 | true
26 | full
27 | false
28 | Bin\Debug
29 | DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
30 | true
31 | true
32 | prompt
33 | 4
34 |
35 |
36 | pdbonly
37 | true
38 | Bin\Release
39 | TRACE;SILVERLIGHT;WINDOWS_PHONE
40 | true
41 | true
42 | prompt
43 | 4
44 |
45 |
46 | true
47 | full
48 | false
49 | Bin\x86\Debug
50 | DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
51 | true
52 | true
53 | prompt
54 | 4
55 |
56 |
57 | pdbonly
58 | true
59 | Bin\x86\Release
60 | TRACE;SILVERLIGHT;WINDOWS_PHONE
61 | true
62 | true
63 | prompt
64 | 4
65 |
66 |
67 | true
68 | full
69 | false
70 | Bin\ARM\Debug
71 | DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
72 | true
73 | true
74 | prompt
75 | 4
76 |
77 |
78 | pdbonly
79 | true
80 | Bin\ARM\Release
81 | TRACE;SILVERLIGHT;WINDOWS_PHONE
82 | true
83 | true
84 | prompt
85 | 4
86 |
87 |
88 |
89 |
90 | ActivateSensorCore.xaml
91 |
92 |
93 |
94 | True
95 | True
96 | AppResources.resx
97 |
98 |
99 |
100 |
101 | Designer
102 | MSBuild:Compile
103 |
104 |
105 |
106 |
107 |
108 | ResXFileCodeGenerator
109 | AppResources.Designer.cs
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 | ..\packages\LumiaSensorCoreSDK.0.9.1.3\lib\wp81\x86\Lumia.Sense.winmd
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
128 |
129 |
130 |
131 |
132 |
133 |
140 |
--------------------------------------------------------------------------------
/.nuget/NuGet.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildProjectDirectory)\..\
5 |
6 |
7 | true
8 |
9 |
10 | false
11 |
12 |
13 | true
14 |
15 |
16 | true
17 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
30 | $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
31 |
32 |
33 |
34 |
35 | $(SolutionDir).nuget
36 |
37 |
38 |
39 | $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config
40 | $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config
41 |
42 |
43 |
44 | $(MSBuildProjectDirectory)\packages.config
45 | $(PackagesProjectConfig)
46 |
47 |
48 |
49 |
50 | $(NuGetToolsPath)\NuGet.exe
51 | @(PackageSource)
52 |
53 | "$(NuGetExePath)"
54 | mono --runtime=v4.0.30319 $(NuGetExePath)
55 |
56 | $(TargetDir.Trim('\\'))
57 |
58 | -RequireConsent
59 | -NonInteractive
60 |
61 | "$(SolutionDir) "
62 | "$(SolutionDir)"
63 |
64 |
65 | $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)
66 | $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols
67 |
68 |
69 |
70 | RestorePackages;
71 | $(BuildDependsOn);
72 |
73 |
74 |
75 |
76 | $(BuildDependsOn);
77 | BuildPackage;
78 |
79 |
80 |
81 |
82 |
83 |
84 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
99 |
100 |
103 |
104 |
105 |
106 |
108 |
109 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
141 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/Steps/Resources/AppResources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | LeftToRight
122 | Controls the FlowDirection for all elements in the RootFrame. Set to the traditional direction of this resource file's language
123 |
124 |
125 | en-US
126 | Controls the Language and ensures that the font for all elements in the RootFrame aligns with the app's language. Set to the language code of this resource file's language.
127 |
128 |
129 | MY APPLICATION
130 |
131 |
132 | add
133 |
134 |
135 | Menu Item
136 |
137 |
138 | This developer sample demonstrates SensorCore SDK Steps API functionality.
139 |
140 |
141 | This developer example application has been created to provide tips and best practice guidance for software developers and app designers, and may not have all the features you would expect in a commercial product. This application is published in Store as a free software as it may also have value to regular phone users. The source code and documentation of this example can be downloaded from Nokia Developer website.
142 |
143 |
144 | Nokia Developer website
145 |
146 |
147 | SENSORCORE SAMPLE
148 |
149 |
150 |
151 |
152 |
--------------------------------------------------------------------------------
/Steps/MainPage.xaml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
--------------------------------------------------------------------------------
/Steps/App.xaml.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Microsoft Mobile. All rights reserved.
3 | * See the license text file provided with this project for more information.
4 | */
5 | using System;
6 | using System.Diagnostics;
7 | using System.Resources;
8 | using System.Windows;
9 | using System.Windows.Markup;
10 | using System.Windows.Navigation;
11 | using Microsoft.Phone.Controls;
12 | using Microsoft.Phone.Shell;
13 | using Steps.Resources;
14 |
15 | namespace Steps
16 | {
17 | public partial class App : Application
18 | {
19 | ///
20 | /// Provides easy access to the root frame of the Phone Application.
21 | ///
22 | /// The root frame of the Phone Application.
23 | public static PhoneApplicationFrame RootFrame { get; private set; }
24 |
25 | ///
26 | /// Constructor for the Application object.
27 | ///
28 | public App()
29 | {
30 | // Global handler for uncaught exceptions.
31 | UnhandledException += Application_UnhandledException;
32 |
33 | // Standard XAML initialization
34 | InitializeComponent();
35 |
36 | // Phone-specific initialization
37 | InitializePhoneApplication();
38 |
39 | // Language display initialization
40 | InitializeLanguage();
41 |
42 | // Show graphics profiling information while debugging.
43 | if (Debugger.IsAttached)
44 | {
45 | // Display the current frame rate counters.
46 | Application.Current.Host.Settings.EnableFrameRateCounter = false;
47 |
48 | // Show the areas of the app that are being redrawn in each frame.
49 | //Application.Current.Host.Settings.EnableRedrawRegions = true;
50 |
51 | // Enable non-production analysis visualization mode,
52 | // which shows areas of a page that are handed off to GPU with a colored overlay.
53 | //Application.Current.Host.Settings.EnableCacheVisualization = true;
54 |
55 | // Prevent the screen from turning off while under the debugger by disabling
56 | // the application's idle detection.
57 | // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
58 | // and consume battery power when the user is not using the phone.
59 | PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
60 | }
61 |
62 | }
63 |
64 | // Code to execute when the application is launching (eg, from Start)
65 | // This code will not execute when the application is reactivated
66 | private void Application_Launching(object sender, LaunchingEventArgs e)
67 | {
68 | }
69 |
70 | // Code to execute when the application is activated (brought to foreground)
71 | // This code will not execute when the application is first launched
72 | private void Application_Activated(object sender, ActivatedEventArgs e)
73 | {
74 | }
75 |
76 | // Code to execute when the application is deactivated (sent to background)
77 | // This code will not execute when the application is closing
78 | private void Application_Deactivated(object sender, DeactivatedEventArgs e)
79 | {
80 | }
81 |
82 | // Code to execute when the application is closing (eg, user hit Back)
83 | // This code will not execute when the application is deactivated
84 | private void Application_Closing(object sender, ClosingEventArgs e)
85 | {
86 | }
87 |
88 | // Code to execute if a navigation fails
89 | private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
90 | {
91 | if (Debugger.IsAttached)
92 | {
93 | // A navigation has failed; break into the debugger
94 | Debugger.Break();
95 | }
96 | }
97 |
98 | // Code to execute on Unhandled Exceptions
99 | private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
100 | {
101 | if (Debugger.IsAttached)
102 | {
103 | // An unhandled exception has occurred; break into the debugger
104 | Debugger.Break();
105 | }
106 | }
107 |
108 | #region Phone application initialization
109 |
110 | // Avoid double-initialization
111 | private bool phoneApplicationInitialized = false;
112 |
113 | // Do not add any additional code to this method
114 | private void InitializePhoneApplication()
115 | {
116 | if (phoneApplicationInitialized)
117 | return;
118 |
119 | // Create the frame but don't set it as RootVisual yet; this allows the splash
120 | // screen to remain active until the application is ready to render.
121 | RootFrame = new PhoneApplicationFrame();
122 | RootFrame.Navigated += CompleteInitializePhoneApplication;
123 |
124 | // Handle navigation failures
125 | RootFrame.NavigationFailed += RootFrame_NavigationFailed;
126 |
127 | // Handle reset requests for clearing the backstack
128 | RootFrame.Navigated += CheckForResetNavigation;
129 |
130 | // Ensure we don't initialize again
131 | phoneApplicationInitialized = true;
132 | }
133 |
134 | // Do not add any additional code to this method
135 | private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
136 | {
137 | // Set the root visual to allow the application to render
138 | if (RootVisual != RootFrame)
139 | RootVisual = RootFrame;
140 |
141 | // Remove this handler since it is no longer needed
142 | RootFrame.Navigated -= CompleteInitializePhoneApplication;
143 | }
144 |
145 | private void CheckForResetNavigation(object sender, NavigationEventArgs e)
146 | {
147 | // If the app has received a 'reset' navigation, then we need to check
148 | // on the next navigation to see if the page stack should be reset
149 | if (e.NavigationMode == NavigationMode.Reset)
150 | RootFrame.Navigated += ClearBackStackAfterReset;
151 | }
152 |
153 | private void ClearBackStackAfterReset(object sender, NavigationEventArgs e)
154 | {
155 | // Unregister the event so it doesn't get called again
156 | RootFrame.Navigated -= ClearBackStackAfterReset;
157 |
158 | // Only clear the stack for 'new' (forward) and 'refresh' navigations
159 | if (e.NavigationMode != NavigationMode.New && e.NavigationMode != NavigationMode.Refresh)
160 | return;
161 |
162 | // For UI consistency, clear the entire page stack
163 | while (RootFrame.RemoveBackEntry() != null)
164 | {
165 | ; // do nothing
166 | }
167 | }
168 |
169 | #endregion
170 |
171 | // Initialize the app's font and flow direction as defined in its localized resource strings.
172 | //
173 | // To ensure that the font of your application is aligned with its supported languages and that the
174 | // FlowDirection for each of those languages follows its traditional direction, ResourceLanguage
175 | // and ResourceFlowDirection should be initialized in each resx file to match these values with that
176 | // file's culture. For example:
177 | //
178 | // AppResources.es-ES.resx
179 | // ResourceLanguage's value should be "es-ES"
180 | // ResourceFlowDirection's value should be "LeftToRight"
181 | //
182 | // AppResources.ar-SA.resx
183 | // ResourceLanguage's value should be "ar-SA"
184 | // ResourceFlowDirection's value should be "RightToLeft"
185 | //
186 | // For more info on localizing Windows Phone apps see http://go.microsoft.com/fwlink/?LinkId=262072.
187 | //
188 | private void InitializeLanguage()
189 | {
190 | try
191 | {
192 | // Set the font to match the display language defined by the
193 | // ResourceLanguage resource string for each supported language.
194 | //
195 | // Fall back to the font of the neutral language if the Display
196 | // language of the phone is not supported.
197 | //
198 | // If a compiler error is hit then ResourceLanguage is missing from
199 | // the resource file.
200 | RootFrame.Language = XmlLanguage.GetLanguage(AppResources.ResourceLanguage);
201 |
202 | // Set the FlowDirection of all elements under the root frame based
203 | // on the ResourceFlowDirection resource string for each
204 | // supported language.
205 | //
206 | // If a compiler error is hit then ResourceFlowDirection is missing from
207 | // the resource file.
208 | FlowDirection flow = (FlowDirection)Enum.Parse(typeof(FlowDirection), AppResources.ResourceFlowDirection);
209 | RootFrame.FlowDirection = flow;
210 | }
211 | catch
212 | {
213 | // If an exception is caught here it is most likely due to either
214 | // ResourceLangauge not being correctly set to a supported language
215 | // code or ResourceFlowDirection is set to a value other than LeftToRight
216 | // or RightToLeft.
217 |
218 | if (Debugger.IsAttached)
219 | {
220 | Debugger.Break();
221 | }
222 |
223 | throw;
224 | }
225 | }
226 | }
227 | }
--------------------------------------------------------------------------------
/Steps/StepsDemoVersion.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | AnyCPU
6 | 10.0.20506
7 | 2.0
8 | {C80AFAB2-39D5-406A-ABBE-3777E3F0B625}
9 | {C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
10 | Library
11 | Properties
12 | Steps
13 | Steps
14 | WindowsPhone
15 | v8.1
16 | $(TargetFrameworkVersion)
17 | true
18 |
19 |
20 | true
21 | true
22 | Steps$(Configuration)_$(Platform).xap
23 | Properties\AppManifest.xml
24 | Steps.App
25 | true
26 | 12.0
27 | true
28 | en-US
29 | ..\
30 | true
31 | 57855283
32 |
33 |
34 | true
35 | full
36 | false
37 | Bin\Debug
38 | DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
39 | true
40 | true
41 | prompt
42 | 4
43 |
44 |
45 | pdbonly
46 | true
47 | Bin\Release
48 | TRACE;SILVERLIGHT;WINDOWS_PHONE
49 | true
50 | true
51 | prompt
52 | 4
53 |
54 |
55 | true
56 | full
57 | false
58 | Bin\x86\Debug
59 | DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
60 | true
61 | true
62 | prompt
63 | 4
64 |
65 |
66 | pdbonly
67 | true
68 | Bin\x86\Release
69 | TRACE;SILVERLIGHT;WINDOWS_PHONE
70 | true
71 | true
72 | prompt
73 | 4
74 |
75 |
76 | true
77 | full
78 | false
79 | Bin\ARM\Debug
80 | DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE
81 | true
82 | true
83 | prompt
84 | 4
85 |
86 |
87 | pdbonly
88 | true
89 | Bin\ARM\Release
90 | TRACE;SILVERLIGHT;WINDOWS_PHONE
91 | true
92 | true
93 | prompt
94 | 4
95 |
96 |
97 |
98 | AboutPage.xaml
99 |
100 |
101 | App.xaml
102 |
103 |
104 |
105 |
106 |
107 | MainPage.xaml
108 |
109 |
110 |
111 | True
112 | True
113 | AppResources.resx
114 |
115 |
116 |
117 |
118 | Designer
119 | MSBuild:Compile
120 |
121 |
122 | Designer
123 | MSBuild:Compile
124 |
125 |
126 | Designer
127 | MSBuild:Compile
128 |
129 |
130 |
131 |
132 | Designer
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 | Designer
141 |
142 |
143 | Designer
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 | PreserveNewest
160 |
161 |
162 | PreserveNewest
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | PublicResXFileCodeGenerator
171 | AppResources.Designer.cs
172 |
173 |
174 |
175 |
176 | Microsoft Visual C++ 2013 Runtime Package for Windows Phone
177 |
178 |
179 |
180 |
181 | Microsoft Visual C++ 2013 Runtime Package for Windows Phone
182 |
183 |
184 |
185 |
186 | Microsoft Visual C++ 2013 Runtime Package for Windows Phone
187 |
188 |
189 |
190 |
191 | Microsoft Visual C++ 2013 Runtime Package for Windows Phone
192 |
193 |
194 |
195 |
196 | Microsoft Visual C++ 2013 Runtime Package for Windows Phone
197 |
198 |
199 |
200 |
201 | Microsoft Visual C++ 2013 Runtime Package for Windows Phone
202 |
203 |
204 |
205 |
206 | ..\packages\LumiaSensorCoreSDK.0.9.1.3\lib\wp81\x86\Lumia.Sense.winmd
207 |
208 |
209 | ..\packages\LumiaSensorCoreSDKTesting.0.9.1.3\lib\wp81\x86\Lumia.Sense.Testing.winmd
210 |
211 |
212 |
213 |
214 | {bfa88a28-3d42-42d0-8b37-107c18b9dd74}
215 | ActivateSensorCoreSL81
216 |
217 |
218 |
219 |
220 |
227 |
228 |
229 |
230 | This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
--------------------------------------------------------------------------------
/Steps/MainPage.xaml.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Microsoft Mobile. All rights reserved.
3 | * See the license text file provided with this project for more information.
4 | */
5 | using System;
6 | using System.Collections.Generic;
7 | using System.Linq;
8 | using System.Net;
9 | using System.Windows;
10 | using System.Windows.Controls;
11 | using System.Windows.Navigation;
12 | using Microsoft.Phone.Controls;
13 | using Microsoft.Phone.Shell;
14 | using Steps.Resources;
15 | using Lumia.Sense;
16 | using Lumia.Sense.Testing;
17 | using System.Threading.Tasks;
18 | using System.Windows.Threading;
19 | using System.Windows.Data;
20 | using System.Globalization;
21 |
22 | namespace Steps
23 | {
24 |
25 | public partial class MainPage : PhoneApplicationPage
26 | {
27 | private MainModel _mainModel;
28 | private IStepCounter _stepCounter;
29 |
30 | private uint _firstWalkingSteps = 0;
31 | private uint _firstRunningSteps = 0;
32 |
33 | private DispatcherTimer _pollTimer;
34 |
35 | const int _resolutionInMinutes = 15; // Resolution of graph is 15 min. Can be 5,10,15,20...60
36 | const int _ArrayMaxSize = 1440 / _resolutionInMinutes;
37 |
38 | private bool _usingSimulator = false;
39 | private ActivateSensorCore.ActivateSensorCoreResult ActivationResults = new ActivateSensorCore.ActivateSensorCoreResult();
40 |
41 |
42 | // Constructor
43 | public MainPage()
44 | {
45 |
46 | InitializeComponent();
47 |
48 | _mainModel = new MainModel();
49 | LayoutRoot.DataContext = _mainModel;
50 |
51 | // Sample code to localize the ApplicationBar
52 | //BuildLocalizedApplicationBar();
53 | }
54 |
55 | private void Button_Click(object sender, RoutedEventArgs e)
56 | {
57 |
58 | }
59 |
60 |
61 | protected override void OnNavigatedFrom(NavigationEventArgs e)
62 | {
63 | // Pass the ActivationResult object to the ActivationPage
64 | ActivateSensorCore.Pages.ActivateSensorCore activateSensorCorePage = e.Content as ActivateSensorCore.Pages.ActivateSensorCore;
65 | if (activateSensorCorePage != null)
66 | {
67 | activateSensorCorePage.ActivationResult = ActivationResults;
68 | ActivationResults.Ongoing = true;
69 | }
70 |
71 | }
72 |
73 | protected async override void OnNavigatedTo(NavigationEventArgs e)
74 | {
75 | if (ActivationResults.Ongoing)
76 | {
77 | ActivationResults.Ongoing = false;
78 | if (ActivationResults.ActivationRequestResult != ActivateSensorCore.ActivationRequestResults.AllEnabled)
79 | {
80 | MessageBox.Show("This application doesn't work without the sensors. Application will be closed");
81 | Application.Current.Terminate();
82 | }
83 | }
84 | if (_stepCounter == null)
85 | {
86 | await InitializeAsync();
87 | }
88 |
89 | }
90 |
91 | protected override async void OnNavigatingFrom(NavigatingCancelEventArgs e)
92 | {
93 | if (_pollTimer != null)
94 | {
95 | _pollTimer.Stop();
96 | }
97 | if (_stepCounter != null)
98 | {
99 | await _stepCounter.DeactivateAsync();
100 | }
101 | }
102 |
103 | private async Task UpdateModelAsync()
104 | {
105 | List steps = new List();
106 |
107 | await GetListAsync(steps);
108 |
109 | _mainModel.setParameters(StepGraph.ActualWidth, StepGraph.ActualHeight, steps, _resolutionInMinutes);
110 |
111 | await UpdateStepsAsync();
112 |
113 | _pollTimer = new DispatcherTimer();
114 | _pollTimer.Interval = TimeSpan.FromSeconds(5);
115 | _pollTimer.Tick += _pollTimer_Tick;
116 |
117 | _pollTimer.Start();
118 |
119 | }
120 |
121 | async void _pollTimer_Tick(object sender, EventArgs e)
122 | {
123 | await UpdateStepsAsync();
124 | }
125 |
126 | private async Task UpdateStepsAsync()
127 | {
128 | if (_stepCounter != null)
129 | {
130 | StepCounterReading reading = null;
131 |
132 | bool res = await CallSensorCoreApiAsync(async () => { reading = await _stepCounter.GetCurrentReadingAsync(); });
133 |
134 | if (reading != null && res)
135 | {
136 | _mainModel.StepsToday = reading.WalkingStepCount + reading.RunningStepCount - _firstRunningSteps - _firstWalkingSteps;
137 | _mainModel.WalkingSteps = reading.WalkingStepCount - _firstWalkingSteps;
138 | _mainModel.RunningSteps = reading.RunningStepCount - _firstRunningSteps;
139 | }
140 | }
141 |
142 | }
143 |
144 |
145 | private async Task InitializeAsync(bool useSimulator = false)
146 | {
147 | if (Microsoft.Devices.Environment.DeviceType == Microsoft.Devices.DeviceType.Emulator || useSimulator)
148 | {
149 | _usingSimulator = true;
150 | await InitializeSimulatorAsync();
151 | }
152 | else
153 | {
154 | _usingSimulator = false;
155 | await InitializeSensorAsync();
156 | }
157 | }
158 |
159 | private async Task InitializeSimulatorAsync()
160 | {
161 | var obj = await SenseRecording.LoadFromFileAsync("Simulations\\short recording.txt");
162 |
163 | bool res = await CallSensorCoreApiAsync(async () => { _stepCounter = await StepCounterSimulator.GetDefaultAsync(obj, DateTime.Now - TimeSpan.FromHours(12)); });
164 |
165 | if (!res)
166 | Application.Current.Terminate();
167 | }
168 |
169 | private async Task InitializeSensorAsync()
170 | {
171 | Exception failure = null;
172 | if (!await StepCounter.IsSupportedAsync())
173 | {
174 | MessageBox.Show(
175 | "Your device doesn't support Motion Data. Application will be closed",
176 | "Information", MessageBoxButton.OK);
177 | Application.Current.Terminate();
178 | }
179 |
180 | try
181 | {
182 | _stepCounter = await StepCounter.GetDefaultAsync();
183 | }
184 | catch (Exception e)
185 | {
186 | failure = e;
187 | }
188 |
189 | if (failure != null)
190 | {
191 |
192 | switch (SenseHelper.GetSenseError(failure.HResult))
193 | {
194 | case SenseError.LocationDisabled:
195 | case SenseError.SenseDisabled:
196 | NavigationService.Navigate(new Uri("/ActivateSensorCore;component/Pages/ActivateSensorCore.xaml", UriKind.Relative));
197 | break;
198 | default:
199 | throw (failure);
200 | }
201 | }
202 | else
203 | {
204 | await _stepCounter.ActivateAsync();
205 | await UpdateModelAsync();
206 | }
207 |
208 | }
209 |
210 | ///
211 | /// Creates an array of today's step count.
212 | ///
213 | private async Task GetListAsync( List steps)
214 | {
215 |
216 | for (int i = 0; i < _ArrayMaxSize; i++)
217 | steps.Add(0);
218 |
219 | var results = await _stepCounter.GetStepCountHistoryAsync(DateTime.Now.Date, DateTime.Now-DateTime.Now.Date);
220 |
221 | bool first = true;
222 |
223 | int currentStep = 0;
224 |
225 | foreach (StepCounterReading reading in results)
226 | {
227 | if (first)
228 | {
229 | first = false;
230 | _firstWalkingSteps = reading.WalkingStepCount;
231 | _firstRunningSteps = reading.RunningStepCount;
232 |
233 | }
234 | else if (reading.Timestamp.DateTime.Minute % _resolutionInMinutes == 0)
235 | {
236 | currentStep = (reading.Timestamp.DateTime.Hour * 60 + reading.Timestamp.DateTime.Minute) / _resolutionInMinutes;
237 | steps[currentStep] = reading.WalkingStepCount + reading.RunningStepCount - _firstWalkingSteps - _firstRunningSteps;
238 | }
239 |
240 | }
241 |
242 | //If there are gaps in the array we fill them e.g. 13,15,0,20 will be 13,15,15,20
243 | for (int i = 0; i < currentStep - 1; i++)
244 | {
245 | if (steps[i] > steps[i + 1])
246 | steps[i+1] = steps[i];
247 | }
248 |
249 | //Removes empty items from the end of array
250 | if (currentStep < _ArrayMaxSize)
251 | steps.RemoveRange(currentStep + 1, _ArrayMaxSize - 1 - currentStep);
252 |
253 | return true;
254 |
255 |
256 | }
257 |
258 | private async Task CallSensorCoreApiAsync(Func action)
259 | {
260 | Exception failure = null;
261 |
262 | try
263 | {
264 | await action();
265 | }
266 | catch (Exception e)
267 | {
268 | failure = e;
269 | }
270 |
271 | if (failure != null)
272 | {
273 |
274 | switch (SenseHelper.GetSenseError(failure.HResult))
275 | {
276 | case SenseError.LocationDisabled:
277 | MessageBoxResult res = MessageBox.Show(
278 | "Location has been disabled. Do you want to open Location settings now?",
279 | "Information",
280 | MessageBoxButton.OKCancel
281 | );
282 | if (res == MessageBoxResult.OK)
283 | {
284 | await SenseHelper.LaunchLocationSettingsAsync();
285 | }
286 |
287 | return false;
288 |
289 | case SenseError.SenseDisabled:
290 |
291 | MessageBoxResult res2 = MessageBox.Show(
292 | "Motion data has been disabled. Do you want to open Motion data settings now?",
293 | "Information",
294 | MessageBoxButton.OKCancel
295 | );
296 |
297 | if (res2 == MessageBoxResult.OK)
298 | {
299 | await SenseHelper.LaunchSenseSettingsAsync();
300 | }
301 |
302 | return false;
303 |
304 |
305 | default:
306 | MessageBoxResult res3 = MessageBox.Show(
307 | "Error:" + SenseHelper.GetSenseError(failure.HResult),
308 | "Information",
309 | MessageBoxButton.OK);
310 |
311 | return false;
312 | }
313 | }
314 | else
315 | {
316 | return true;
317 | }
318 | }
319 |
320 | private void StepGraph_Tap(object sender, System.Windows.Input.GestureEventArgs e)
321 | {
322 | _mainModel.ChangeMax();
323 | }
324 |
325 | private void ApplicationBarMenuItem_Click(object sender, EventArgs e)
326 | {
327 | NavigationService.Navigate(new Uri("/AboutPage.xaml", UriKind.Relative));
328 | }
329 |
330 | private async void ApplicationBarMenuItem_Click_1(object sender, EventArgs e)
331 | {
332 |
333 | (sender as ApplicationBarMenuItem).Text = _usingSimulator ? "Use Simulation" : "Use Sensor";
334 |
335 | await InitializeAsync(!_usingSimulator);
336 |
337 | await UpdateModelAsync();
338 | }
339 |
340 |
341 |
342 |
343 | // Sample code for building a localized ApplicationBar
344 | //private void BuildLocalizedApplicationBar()
345 | //{
346 | // // Set the page's ApplicationBar to a new instance of ApplicationBar.
347 | // ApplicationBar = new ApplicationBar();
348 |
349 | // // Create a new button and set the text value to the localized string from AppResources.
350 | // ApplicationBarIconButton appBarButton = new ApplicationBarIconButton(new Uri("/Assets/AppBar/appbar.add.rest.png", UriKind.Relative));
351 | // appBarButton.Text = AppResources.AppBarButtonText;
352 | // ApplicationBar.Buttons.Add(appBarButton);
353 |
354 | // // Create a new menu item with the localized string from AppResources.
355 | // ApplicationBarMenuItem appBarMenuItem = new ApplicationBarMenuItem(AppResources.AppBarMenuItemText);
356 | // ApplicationBar.MenuItems.Add(appBarMenuItem);
357 | //}
358 | }
359 | }
--------------------------------------------------------------------------------
/Steps/Simulations/short walk.txt:
--------------------------------------------------------------------------------
1 | { " D a t a P o l l H i s t o r y " : [ ] , " C u r r e n t R e a d i n g H i s t o r y " : [ { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 5 1 1 5 5 1 0 9 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 5 3 1 4 7 1 7 6 4 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 5 5 1 5 0 7 2 0 0 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 5 7 1 3 5 7 1 1 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 5 9 1 7 1 7 2 3 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 6 1 1 7 5 6 0 0 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 6 3 1 8 0 5 4 2 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 6 5 1 8 4 2 0 1 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 6 7 1 7 9 1 9 8 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 6 9 2 0 5 1 2 5 3 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 7 1 2 1 0 2 3 3 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 7 3 2 1 4 9 1 7 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 7 5 2 1 6 6 2 5 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 7 7 2 2 2 4 9 9 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 7 9 2 4 9 6 6 9 3 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 8 1 2 5 4 3 5 2 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 2 4 " , " W a l k T i m e " : " 1 6 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 8 3 2 5 7 9 1 9 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 4 4 " , " W a l k T i m e " : " 2 7 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 8 5 2 5 7 1 6 6 4 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 4 8 " , " W a l k T i m e " : " 2 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 8 7 2 5 9 1 3 0 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 5 1 " , " W a l k T i m e " : " 3 1 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 8 9 2 5 2 0 1 3 2 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 5 5 " , " W a l k T i m e " : " 3 3 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 9 1 2 5 5 0 9 0 2 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 5 8 " , " W a l k T i m e " : " 3 5 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 9 3 2 5 7 1 3 7 0 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 6 1 " , " W a l k T i m e " : " 3 7 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 9 5 2 5 6 0 8 4 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 6 5 " , " W a l k T i m e " : " 3 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 9 7 2 5 7 6 1 2 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 6 8 " , " W a l k T i m e " : " 4 1 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 1 9 9 2 5 7 0 3 5 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 7 1 " , " W a l k T i m e " : " 4 3 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 0 1 2 5 7 5 9 9 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 7 4 " , " W a l k T i m e " : " 4 5 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 0 3 2 5 7 6 1 7 4 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 7 8 " , " W a l k T i m e " : " 4 7 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 0 5 1 2 8 4 0 2 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 8 1 " , " W a l k T i m e " : " 4 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 0 7 1 5 5 9 9 4 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 8 4 " , " W a l k T i m e " : " 5 1 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 0 9 1 5 9 7 8 7 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 8 7 " , " W a l k T i m e " : " 5 3 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 1 1 1 6 3 9 3 5 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 9 1 " , " W a l k T i m e " : " 5 5 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 1 3 1 6 7 8 7 4 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 9 4 " , " W a l k T i m e " : " 5 7 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 1 5 1 7 1 6 9 6 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 9 7 " , " W a l k T i m e " : " 5 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 1 7 1 7 5 7 4 0 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 0 0 " , " W a l k T i m e " : " 6 1 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 1 9 1 5 7 8 9 3 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 0 3 " , " W a l k T i m e " : " 6 3 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 2 1 1 9 3 3 0 1 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 0 6 " , " W a l k T i m e " : " 6 5 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 2 3 2 0 9 5 7 1 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 0 9 " , " W a l k T i m e " : " 6 7 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 2 5 1 5 0 4 2 3 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 2 7 1 6 7 4 6 9 3 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 2 9 1 7 5 4 1 3 4 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 3 1 1 0 6 6 6 1 4 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 3 3 1 0 8 2 3 3 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 3 5 1 0 8 0 6 0 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 3 7 2 5 1 9 3 7 8 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 3 9 1 1 6 7 4 1 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 4 1 2 0 3 6 5 3 4 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 4 3 2 1 4 8 6 2 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 4 5 2 5 1 9 3 4 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 4 7 1 2 6 9 2 8 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 4 9 2 5 7 2 6 0 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 5 1 2 0 3 6 5 1 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 5 3 2 5 7 2 7 4 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 5 5 2 5 1 9 3 6 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 5 7 2 5 7 1 8 3 3 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 5 9 2 5 7 6 2 6 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 6 1 2 0 3 6 5 2 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 6 3 1 2 6 0 4 0 0 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 6 5 1 7 1 4 2 4 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 6 7 2 5 7 3 8 4 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 6 9 2 5 7 4 8 6 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 7 1 2 0 3 6 7 6 6 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 7 3 2 5 7 3 9 6 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 7 5 1 7 2 4 4 1 9 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 7 7 2 5 7 5 5 6 3 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 7 9 2 5 7 4 3 5 7 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 8 1 2 1 9 5 2 2 3 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 8 3 2 5 1 9 3 1 5 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } , { " T i m e s t a m p " : " 1 3 0 3 8 8 9 9 2 8 5 2 5 1 9 2 9 1 " , " R u n S t e p s " : " 0 " , " R u n T i m e " : " 0 " , " W a l k S t e p s " : " 1 1 3 " , " W a l k T i m e " : " 6 9 0 0 0 0 0 0 0 " } ] , " R e c o r d i n g I n f o " : { " V e r s i o n " : " 1 0 0 0 " , " T y p e " : " 1 " , " D e s c r i p t i o n " : " " , " S t a r t " : " 1 3 0 3 8 8 9 9 1 4 9 0 9 4 6 6 3 1 " , " L e n g t h " : " 1 3 6 8 0 6 6 9 9 0 " } }
--------------------------------------------------------------------------------