StravaZpot-Android
StravaZpot-Android copied to clipboard
Support for virtual runs
hi there, it seems virtual runs are not supported (the type is not listed in the model folder of the library, under activitytype). When reading a virtual run, it is reported as virtual ride from the library. Any chance this can be extended? Thank you.
Can you provide a source in Strava docs where they state they support this in their API? If so, I'll be happy to include it.
thank you for the quick reply. Indeed their APIs are not updated, however the activity type is supported (can be selected as manual activity, and is automatically selected when using a third party app like Zwift). In any case it would be useful if the virtual run would be read by the library as run (if not as virtual run), because it does not make sense that it becomes a ride. I hope this clarifies, thank you.
p.s. I can for example use the type correctly using the library I use on iOS, but not using this library on Android (so the type is supported on their end, despite the lack of documentation unfortunately)
Do you have an example of a JSON response that includes a virtual run? Or can you point out the library you are using on iOS that handles this properly?
I use this library: https://github.com/sebastienwindal/FRDStravaClient which works despite not being updated in 4 years, it could be that they simply 'carry the activity type' instead of forcing a match to some pre-defined categories. Makes sense?
To reproduce this you could simply go on Strava and create a manual activity, of type Virtual Run (no need to have an actual activity file), then read it with your library. When I do so, I end up with a Ride, let me know if you cannot reproduce the problem, and I'll try to dig a little more, thanks again for your help.
When you read the type
field on the iOS library, what is the String value for the virtual run? Is is VirtualRun
?
yes. If you add one manually in your Strava account, you can probably see it as well using your library.
On Mon, May 7, 2018 at 4:53 PM, Tomás Ruiz-López [email protected] wrote:
When you read the type field on the iOS library, what is the String value for the virtual run? Is is VirtualRun?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-387090785, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwT_f5rhpT2NK-wllL56dtbyqGDfOAks5twF_agaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
Ok, I've updated the library to version 1.3.1 with this activity type. I think that will work, but let me know if it doesn't. Close the issue when you check it out. Thanks!
thanks a lot, appreciate the quick help!
On Mon, May 7, 2018 at 5:13 PM, Tomás Ruiz-López [email protected] wrote:
Ok, I've updated the library to version 1.3.1 with this activity type. I think that will work, but let me know if it doesn't. Close the issue when you check it out. Thanks!
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-387097944, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwT8x6SVwMNvbkxK2a_hBB62VLUVmeks5twGSVgaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
sorry to bother you again, while with 1.3 it's all good (apart with the virtual run story), with 1.3.1 I get a lot of 'class def not found' issues, maybe something wrong with the library? (the code hasn't changed and runs smoothly with the previous version). I'm using gradle. Thank you.
On Mon, May 7, 2018 at 5:17 PM, Marco Altini [email protected] wrote:
thanks a lot, appreciate the quick help!
On Mon, May 7, 2018 at 5:13 PM, Tomás Ruiz-López <[email protected]
wrote:
Ok, I've updated the library to version 1.3.1 with this activity type. I think that will work, but let me know if it doesn't. Close the issue when you check it out. Thanks!
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-387097944, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwT8x6SVwMNvbkxK2a_hBB62VLUVmeks5twGSVgaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
I had to change build tools and some other things in gradle. Can you post your build tools, target sdk number, etc? I can then configure a project with your settings and see what's going on
I'm using:
compileSdkVersion 26 buildToolsVersion "26.0.2" targetSdkVersion 26
Let me know if you need anything else!
On Mon, May 7, 2018 at 6:33 PM, Tomás Ruiz-López [email protected] wrote:
I had to change build tools and some other things in gradle. Can you post your build tools, target sdk number, etc? I can then configure a project with your settings and see what's going on
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-387123648, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwT0wBxSmXlHL-h4W9l7j6lj5KPiphks5twHdlgaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
just FYI I was using 1.0.2. without issues and the same applies to the latest versions before this one (1.2 and 1.3), but I can't seem to get 1.3.1 to work.
Which version of Gradle for Android are you using? I updated it to 3.1.1 in the last release. I've tested it with the sample project, compile and target SDKs to 26, build tools 27.0.3 (minimum supported for the gradle version I'm using) and it works correctly.
thanks Tomas, I am using 2.3.3
On Thu, May 10, 2018 at 1:02 PM, Tomás Ruiz-López [email protected] wrote:
Which version of Gradle for Android are you using? I updated it to 3.1.1 in the last release. I've tested it with the sample project, compile and target SDKs to 26, build tools 27.0.3 (minimum supported for the gradle version I'm using) and it works correctly.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-388022873, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwT8cQ40OURWqtRSC0HGO3-26Jmcrvks5txB4wgaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
It seems that might be the issue. Is it possible for you to update it to the latest version? Otherwise, could you paste the specific error you are getting?
I have updated everything to your version, I now am using
classpath 'com.android.tools.build:gradle:3.1.1'
and
buildToolsVersion '27.0.3'
It seems there is a problem with code shrinking / minification, again when using 1.3 I have no problems while when I switch to 1.3.1 I get:
'Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.'
and then the stacktrace is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithAndroidGradleClassShrinkerForDebug'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Caused by: org.gradle.tooling.BuildException: Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them. at com.android.build.gradle.internal.transforms.BuiltInShrinkerTransform.checkForWarnings(BuiltInShrinkerTransform.java:200) at com.android.build.gradle.internal.transforms.BuiltInShrinkerTransform.fullRun(BuiltInShrinkerTransform.java:178) at com.android.build.gradle.internal.transforms.BuiltInShrinkerTransform.transform(BuiltInShrinkerTransform.java:130) at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221) at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102) at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) ... 32 more
this does not happen with the other version of the library.
maybe you could try to set also
minifyEnabled true
and see if you can reproduce the problem. Thanks.
On Thu, May 10, 2018 at 3:25 PM, Tomás Ruiz-López [email protected] wrote:
It seems that might be the issue. Is it possible for you to update it to the latest version? Otherwise, could you paste the specific error you are getting?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife Creator of HRV4Training marcoaltini.com
alright I think I have it up and running after suppressing the warning and adding a few dependencies that were not required before. Thank you for your quick support, I will let you know if I have issues with the new setup once I've experimented a little more :)
have a nice week end
On Thu, May 10, 2018 at 4:09 PM, Marco Altini [email protected] wrote:
I have updated everything to your version, I now am using
classpath 'com.android.tools.build:gradle:3.1.1'
and
buildToolsVersion '27.0.3'
It seems there is a problem with code shrinking / minification, again when using 1.3 I have no problems while when I switch to 1.3.1 I get:
'Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.'
and then the stacktrace is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithAndroidGradleClassShrinkerForDebug'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter. executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter. execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExe cuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter. execute(SkipUpToDateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateE xecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute( ValidatingTaskExecuter.java:60) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecut er.execute(SkipEmptySourceFilesTaskExecuter.java:97) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter. execute(CleanupStaleOutputsExecuter.java:87) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskEx ecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter. execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute( SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter. execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter. execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$ EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor. java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor. java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute( DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run( DefaultBuildOperationExecutor.java:110) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute( DefaultTaskExecutionPlan.java:626) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan. executeWithTask(DefaultTaskExecutionPlan.java:581) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures. onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run( ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Caused by: org.gradle.tooling.BuildException: Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them. at com.android.build.gradle.internal.transforms.BuiltInShrinkerTransform. checkForWarnings(BuiltInShrinkerTransform.java:200) at com.android.build.gradle.internal.transforms.BuiltInShrinkerTransform. fullRun(BuiltInShrinkerTransform.java:178) at com.android.build.gradle.internal.transforms.BuiltInShrinkerTransform. transform(BuiltInShrinkerTransform.java:130) at com.android.build.gradle.internal.pipeline.TransformTask$2.call( TransformTask.java:221) at com.android.build.gradle.internal.pipeline.TransformTask$2.call( TransformTask.java:217) at com.android.builder.profile.ThreadRecorder.record( ThreadRecorder.java:102) at com.android.build.gradle.internal.pipeline.TransformTask.transform( TransformTask.java:212) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction. doExecute(IncrementalTaskAction.java:46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute( StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute( StandardTaskAction.java:26) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1. run(ExecuteActionsTaskExecuter.java:121) at org.gradle.internal.progress.DefaultBuildOperationExecutor$ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor. java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor. java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute( DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run( DefaultBuildOperationExecutor.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter. executeAction(ExecuteActionsTaskExecuter.java:110) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter. executeActions(ExecuteActionsTaskExecuter.java:92) ... 32 more
this does not happen with the other version of the library.
maybe you could try to set also
minifyEnabled true
and see if you can reproduce the problem. Thanks.
On Thu, May 10, 2018 at 3:25 PM, Tomás Ruiz-López < [email protected]> wrote:
It seems that might be the issue. Is it possible for you to update it to the latest version? Otherwise, could you paste the specific error you are getting?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife Creator of HRV4Training marcoaltini.com
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
Great to hear that and sorry for all the inconveniences; I hope you can make good use of the library. Just in case, as you mentioned you were using another library for iOS, we have an implementation of this library in Swift, with a very similar API, that you can find here. Please, close the issue when you think it's done.
thanks for letting me know, I can confirm also that the new virtual run works correctly.
On Thu, May 10, 2018 at 4:33 PM, Tomás Ruiz-López [email protected] wrote:
Great to hear that and sorry for all the inconveniences; I hope you can make good use of the library. Just in case, as you mentioned you were using another library for iOS, we have an implementation of this library in Swift, with a very similar API, that you can find here https://github.com/SweetzpotAS/StravaZpot-Swift. Please, close the issue when you think it's done.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-388071924, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwTzQYbTJTTrAixkZrGCiRQUNCr-hNks5txE_EgaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
hi Tomas, As you might have seen Strava is moving to refresh tokens ( https://developers.strava.com/docs/oauth-updates/?utm_source=strava&utm_medium=mktgemail&utm_campaign=2018_10_15_API_update), do you have plans to update your libraries on android and ios? Thank you
Marco
On Thu, May 10, 2018 at 4:34 PM Marco Altini [email protected] wrote:
thanks for letting me know, I can confirm also that the new virtual run works correctly.
On Thu, May 10, 2018 at 4:33 PM, Tomás Ruiz-López < [email protected]> wrote:
Great to hear that and sorry for all the inconveniences; I hope you can make good use of the library. Just in case, as you mentioned you were using another library for iOS, we have an implementation of this library in Swift, with a very similar API, that you can find here https://github.com/SweetzpotAS/StravaZpot-Swift. Please, close the issue when you think it's done.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SweetzpotAS/StravaZpot-Android/issues/17#issuecomment-388071924, or mute the thread https://github.com/notifications/unsubscribe-auth/AFtwTzQYbTJTTrAixkZrGCiRQUNCr-hNks5txE_EgaJpZM4TySFO .
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/
-- Marco Altini
PhD, MSc Lead Data Scientist - Bloomlife https://bloomlife.com/ Creator of HRV4Training http://www.hrv4training.com/ marcoaltini.com http://www.marcoaltini.com/