FR: add an option for auto-sync
The auto-sync is a commonly expected feature for an RSS reader (this is what RSS was designed for, actually), so I'm surprised it still wasn't requested.
There is a big room for discussing the implementation details. I guess, at first it's enough to have a global setting for the refresh interval. Not sure if a switch for working on mobile data is needed, as RSS generally consumes a tiny amount of traffic. In future, the interval should be tuned per-feed.
Besides of that, the feeds should be synced when a user launches the app, via an another option.
Currently, the feeds seem to be re-synced only via a swipe gesture, which violates the recommendations for the following layout:
You should add a refresh action to your app's action bar to ensure that users who may not be able to perform a swipe gesture can still trigger a manual update. For example, users with accessibility needs can trigger action bar actions using external devices, such as keyboards and D-pads.
This is a subject for another issue though.
Auto-sync has been implemented in Readrops 1.2 with a global refresh interval. You can check out develop if you want to try it.
Regarding per-feed interval, why not, but it won't be a priority. Synchronisation at app start-up would be nice indeed.
Thank you for pointing out this sync layout issue, I will add an option.
check out develop
Can't build it.
@bq:20:50:20:/media/d/temp/git/Readrops$ ./gradlew build --info
Initialized native services in: /media/d/temp/home/gradle/native
The client will now receive all logging from the daemon (pid: 3196537). The daemon log file: /media/d/temp/home/gradle/daemon/5.6.4/daemon-3196537.out.log
Starting 3rd build in daemon [uptime: 15 mins 43.374 secs, performance: 99%]
Using 2 worker leases.
Starting Build
Settings evaluated using settings file '/media/d/temp/git/Readrops/settings.gradle'.
Projects loaded. Root project using build file '/media/d/temp/git/Readrops/build.gradle'.
Included projects: [root project 'Readrops', project ':app', project ':readropsdb', project ':readropslibrary']
> Configure project :
Evaluating root project 'Readrops' using build file '/media/d/temp/git/Readrops/build.gradle'.
> Configure project :app
Evaluating project ':app' using build file '/media/d/temp/git/Readrops/app/build.gradle'.
Creating configuration androidTestUtil
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration api
Creating configuration implementation
Creating configuration runtimeOnly
Creating configuration compileOnly
Creating configuration wearApp
Creating configuration annotationProcessor
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestApi
Creating configuration androidTestImplementation
Creating configuration androidTestRuntimeOnly
Creating configuration androidTestCompileOnly
Creating configuration androidTestWearApp
Creating configuration androidTestAnnotationProcessor
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testApi
Creating configuration testImplementation
Creating configuration testRuntimeOnly
Creating configuration testCompileOnly
Creating configuration testWearApp
Creating configuration testAnnotationProcessor
Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugApi
Creating configuration debugImplementation
Creating configuration debugRuntimeOnly
Creating configuration debugCompileOnly
Creating configuration debugWearApp
Creating configuration debugAnnotationProcessor
Creating configuration androidTestDebugCompile
Creating configuration androidTestDebugApk
Creating configuration androidTestDebugProvided
Creating configuration androidTestDebugApi
Creating configuration androidTestDebugImplementation
Creating configuration androidTestDebugRuntimeOnly
Creating configuration androidTestDebugCompileOnly
Creating configuration androidTestDebugWearApp
Creating configuration androidTestDebugAnnotationProcessor
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugApi
Creating configuration testDebugImplementation
Creating configuration testDebugRuntimeOnly
Creating configuration testDebugCompileOnly
Creating configuration testDebugWearApp
Creating configuration testDebugAnnotationProcessor
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseApi
Creating configuration releaseImplementation
Creating configuration releaseRuntimeOnly
Creating configuration releaseCompileOnly
Creating configuration releaseWearApp
Creating configuration releaseAnnotationProcessor
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseApi
Creating configuration testReleaseImplementation
Creating configuration testReleaseRuntimeOnly
Creating configuration testReleaseCompileOnly
Creating configuration testReleaseWearApp
Creating configuration testReleaseAnnotationProcessor
Parsed shrinker version: 1.6.82
Could not execute [class org.jetbrains.kotlin.gradle.plugin.statistics.DefaultKotlinBuildStatsService.buildFinished]
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring project ':app'.
> kotlin.KotlinNullPointerException (no error message)
* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 13s
Mmh, I can't reproduce. Which gradle version do you have?
Here is mine:
> ./gradlew -v
------------------------------------------------------------
Gradle 5.6.4
------------------------------------------------------------
Build time: 2019-11-01 20:42:00 UTC
Revision: dd870424f9bd8e195d614dc14bb140f43c22da98
Kotlin: 1.3.41
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 1.8.0_252 (Oracle Corporation 25.252-b09)
OS: ...
I upgraded my Oracle JVM home, now the versions are the same:
@bq:01:19:19:/media/d/temp/git/Readrops$ ./gradlew -v
------------------------------------------------------------
Gradle 5.6.4
------------------------------------------------------------
Build time: 2019-11-01 20:42:00 UTC
Revision: dd870424f9bd8e195d614dc14bb140f43c22da98
Kotlin: 1.3.41
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 1.8.0_251 (Oracle Corporation 25.251-b08)
OS: Linux 5.6.0-2-amd64 amd64
But still the same error :/
I am afraid to be helpless in this case. My knowledge of gradle isn't really high. It seems that something is missing like a part of the kotlin gradle plugin.
Could you run the same command but one with --stacktrace and one with --debug? It should display more useful info.
Another solution could be trying to build with Android Studio.
Synchronize action has been added in 71ccf98d633dfbdfca218f315064150c85d7b33a.
Can you please add an option to sync automatically, when the app is opened?