SweetzpotAS / StravaZpot-Android

A fluent API to integrate with Strava on Android apps
70 stars 35 forks source link

Support for virtual runs #17

Open marcoalt opened 6 years ago

marcoalt commented 6 years ago

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.

truizlop commented 6 years ago

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.

marcoalt commented 6 years ago

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)

truizlop commented 6 years ago

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?

marcoalt commented 6 years ago

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.

truizlop commented 6 years ago

When you read the type field on the iOS library, what is the String value for the virtual run? Is is VirtualRun?

marcoalt commented 6 years ago

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 notifications@github.com 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/

truizlop commented 6 years ago

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!

marcoalt commented 6 years ago

thanks a lot, appreciate the quick help!

On Mon, May 7, 2018 at 5:13 PM, Tomás Ruiz-López notifications@github.com 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/

marcoalt commented 6 years ago

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 altini.marco@gmail.com wrote:

thanks a lot, appreciate the quick help!

On Mon, May 7, 2018 at 5:13 PM, Tomás Ruiz-López <notifications@github.com

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/

truizlop commented 6 years ago

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

marcoalt commented 6 years ago

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 notifications@github.com 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/

marcoalt commented 6 years ago

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.

truizlop commented 6 years ago

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.

marcoalt commented 6 years ago

thanks Tomas, I am using 2.3.3

On Thu, May 10, 2018 at 1:02 PM, Tomás Ruiz-López notifications@github.com 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/

truizlop commented 6 years ago

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?

marcoalt commented 6 years ago

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 notifications@github.com 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

marcoalt commented 6 years ago

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 altini.marco@gmail.com 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 < notifications@github.com> 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/

truizlop commented 6 years ago

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.

marcoalt commented 6 years ago

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 notifications@github.com 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/

marcoalt commented 5 years ago

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 altini.marco@gmail.com 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 < notifications@github.com> 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/