wordpress-mobile / WordPress-Android

WordPress for Android
http://android.wordpress.org
GNU General Public License v2.0
2.92k stars 1.3k forks source link

Offline mode: conflict on scheduled posts #20710

Closed pantstamp closed 2 weeks ago

pantstamp commented 2 weeks ago

This PR is the companion app for FluxC Post conflict resolution for scheduled posts. FluxC PR: https://github.com/wordpress-mobile/WordPress-FluxC-Android/pull/2994

Merge Instructions

Ensure FluxC PR has been merged to trunk Update this PR with the CI Publish hash from the FluxC Merge into trunk Remove the Not Ready for Merge label Merge as normal

To Test:

Follow the instructions in the FLuxC https://github.com/wordpress-mobile/WordPress-FluxC-Android/pull/2994


Regression Notes

  1. Potential unintended areas of impact

    • The scheduled post or page is not updated properly
  2. What I did to test those areas of impact (or what existing automated tests I relied on)

    • Manual tests and existing unit tests
  3. What automated tests I added (or what prevented me from doing so)

    • N/A

PR Submission Checklist:


Testing Checklist (strike-out the not-applying and unnecessary ones):

dangermattic commented 2 weeks ago
1 Warning
:warning: This PR is assigned to the milestone 24.8. This milestone is due in less than 4 days.
Please make sure to get it merged by then or assign it to a milestone with a later deadline.

Generated by :no_entry_sign: Danger

wpmobilebot commented 2 weeks ago

Found 1 violations:

The PR caused some dependency changes (expand to see details)

```diff -+--- org.wordpress:fluxc:{strictly trunk-b5daa1e612ae7ce5a248c5975f90b0e0093378b1} -> trunk-b5daa1e612ae7ce5a248c5975f90b0e0093378b1 -| +--- org.wordpress:wellsql:2.0.0 -| | +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*) -| | \--- org.wordpress.wellsql:wellsql-annotations:2.0.0 -| +--- org.wordpress.fluxc:fluxc-annotations:trunk-b5daa1e612ae7ce5a248c5975f90b0e0093378b1 -| +--- org.greenrobot:eventbus:3.3.1 -| | \--- org.greenrobot:eventbus-java:3.3.1 -| +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*) -| +--- com.android.volley:volley:1.1.1 -> 1.2.1 -| +--- androidx.paging:paging-runtime:2.1.2 -| | +--- androidx.paging:paging-common:2.1.2 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) -| | | \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*) -| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*) -| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*) -| | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 (*) -| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*) -| +--- com.goterl:lazysodium-android:5.0.2 -| +--- net.java.dev.jna:jna:5.5.0 -| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.9.10 (*) -| +--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.20 -> 1.9.22 (*) -| +--- androidx.appcompat:appcompat:1.0.2 -> 1.6.1 (*) -| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*) -| +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6 (*) -| +--- androidx.security:security-crypto:1.0.0 -| | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) -| | \--- com.google.crypto.tink:tink-android:1.5.0 -| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0 -> 4.9.2 (*) -| +--- com.google.code.gson:gson:2.8.5 -> 2.10.1 -| +--- org.apache.commons:commons-text:1.10.0 -| | \--- org.apache.commons:commons-lang3:3.12.0 -| +--- androidx.room:room-runtime:2.4.2 -> 2.5.0 -| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.1 (*) -| | +--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*) -| | +--- androidx.room:room-common:2.5.0 -| | | +--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 -> 1.9.10 (*) -| | +--- androidx.sqlite:sqlite:2.3.0 -| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) -| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*) -| | \--- androidx.sqlite:sqlite-framework:2.3.0 -| | +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*) -| | +--- androidx.sqlite:sqlite:2.3.0 (*) -| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*) -| +--- androidx.room:room-ktx:2.4.2 -> 2.5.0 -| | +--- androidx.room:room-common:2.5.0 (*) -| | +--- androidx.room:room-runtime:2.5.0 (*) -| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*) -| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) -| +--- com.google.dagger:dagger:2.42 -> 2.50 -| | \--- javax.inject:javax.inject:1 -| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9 -> 1.7.3 (*) -| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9 -> 1.7.3 (*) ++--- org.wordpress:fluxc:{strictly trunk-e6bb1ab9b9b73ee49ca380e8e3b665358922e01e} -> trunk-e6bb1ab9b9b73ee49ca380e8e3b665358922e01e +| +--- org.wordpress:wellsql:2.0.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*) +| | \--- org.wordpress.wellsql:wellsql-annotations:2.0.0 +| +--- org.wordpress.fluxc:fluxc-annotations:trunk-e6bb1ab9b9b73ee49ca380e8e3b665358922e01e +| +--- org.greenrobot:eventbus:3.3.1 +| | \--- org.greenrobot:eventbus-java:3.3.1 +| +--- com.squareup.okhttp3:okhttp:4.9.0 -> 4.12.0 (*) +| +--- com.android.volley:volley:1.1.1 -> 1.2.1 +| +--- androidx.paging:paging-runtime:2.1.2 +| | +--- androidx.paging:paging-common:2.1.2 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | \--- androidx.arch.core:core-common:2.0.0 -> 2.2.0 (*) +| | +--- androidx.arch.core:core-runtime:2.0.0 -> 2.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.6.2 (*) +| | +--- androidx.lifecycle:lifecycle-livedata:2.0.0 -> 2.6.2 (*) +| | \--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*) +| +--- com.goterl:lazysodium-android:5.0.2 +| +--- net.java.dev.jna:jna:5.5.0 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.9.10 (*) +| +--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.6.20 -> 1.9.22 (*) +| +--- androidx.appcompat:appcompat:1.0.2 -> 1.6.1 (*) +| +--- androidx.recyclerview:recyclerview:1.0.0 -> 1.3.0 (*) +| +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.3.6 (*) +| +--- androidx.security:security-crypto:1.0.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.6.0 (*) +| | \--- com.google.crypto.tink:tink-android:1.5.0 +| +--- com.squareup.okhttp3:okhttp-urlconnection:4.9.0 -> 4.9.2 (*) +| +--- com.google.code.gson:gson:2.8.5 -> 2.10.1 +| +--- org.apache.commons:commons-text:1.10.0 +| | \--- org.apache.commons:commons-lang3:3.12.0 +| +--- androidx.room:room-runtime:2.4.2 -> 2.5.0 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.1 (*) +| | +--- androidx.arch.core:core-runtime:2.0.1 -> 2.2.0 (*) +| | +--- androidx.room:room-common:2.5.0 +| | | +--- androidx.annotation:annotation:1.3.0 -> 1.6.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 -> 1.9.10 (*) +| | +--- androidx.sqlite:sqlite:2.3.0 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.6.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*) +| | \--- androidx.sqlite:sqlite-framework:2.3.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.6.0 (*) +| | +--- androidx.sqlite:sqlite:2.3.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*) +| +--- androidx.room:room-ktx:2.4.2 -> 2.5.0 +| | +--- androidx.room:room-common:2.5.0 (*) +| | +--- androidx.room:room-runtime:2.5.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 -> 1.9.22 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*) +| +--- com.google.dagger:dagger:2.42 -> 2.50 +| | \--- javax.inject:javax.inject:1 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9 -> 1.7.3 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9 -> 1.7.3 (*) \--- org.wordpress:login:1.15.0 - \--- org.wordpress:fluxc:trunk-ed60798b4d96ec19863c74b0f525e2e20f4525db -> trunk-b5daa1e612ae7ce5a248c5975f90b0e0093378b1 (*) + \--- org.wordpress:fluxc:trunk-ed60798b4d96ec19863c74b0f525e2e20f4525db -> trunk-e6bb1ab9b9b73ee49ca380e8e3b665358922e01e (*) ```

Please review and act accordingly

wpmobilebot commented 2 weeks ago
WordPress📲 You can test the changes from this Pull Request in WordPress by scanning the QR code below to install the corresponding build.
App NameWordPress WordPress
FlavorJalapeno
Build TypeDebug
Versionpr20710-ec1fb5f
Commitec1fb5f4fe618215fbad97065a06da5fdb69f71e
Direct Downloadwordpress-prototype-build-pr20710-ec1fb5f.apk
Note: Google Login is not supported on these builds.
wpmobilebot commented 2 weeks ago
Jetpack📲 You can test the changes from this Pull Request in Jetpack by scanning the QR code below to install the corresponding build.
App NameJetpack Jetpack
FlavorJalapeno
Build TypeDebug
Versionpr20710-ec1fb5f
Commitec1fb5f4fe618215fbad97065a06da5fdb69f71e
Direct Downloadjetpack-prototype-build-pr20710-ec1fb5f.apk
Note: Google Login is not supported on these builds.
codecov[bot] commented 2 weeks ago

Codecov Report

Attention: Patch coverage is 38.88889% with 11 lines in your changes are missing coverage. Please review.

Project coverage is 40.62%. Comparing base (5ca7a8d) to head (572bbf3).

:exclamation: Current head 572bbf3 differs from pull request most recent head ec1fb5f. Consider uploading reports for the commit ec1fb5f to get more accurate results

Files Patch % Lines
...oid/ui/posts/PostConflictResolutionFeatureUtils.kt 46.66% 5 Missing and 3 partials :warning:
...org/wordpress/android/util/DateTimeUtilsWrapper.kt 0.00% 3 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## trunk #20710 +/- ## =========================================== - Coverage 82.58% 40.62% -41.96% =========================================== Files 15 1485 +1470 Lines 534 68330 +67796 Branches 50 11302 +11252 =========================================== + Hits 441 27760 +27319 - Misses 75 38054 +37979 - Partials 18 2516 +2498 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

sonarcloud[bot] commented 2 weeks ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud