Closed irfano closed 2 weeks ago
4 Warnings | |
---|---|
:warning: | strings.xml files should only be updated on release branches, when the translations are downloaded by our automation. |
:warning: | This PR is larger than 300 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews. |
:warning: | Class SubscribersUseCaseFactory is missing tests, but unit-tests-exemption label was set to ignore this. |
:warning: | Class SubscribersChartLabelFormatter is missing tests, but unit-tests-exemption label was set to ignore this. |
Generated by :no_entry_sign: Danger
App Name | Jetpack | |
Flavor | Jalapeno | |
Build Type | Debug | |
Version | pr20706-f0ddce1 | |
Commit | f0ddce1dec0bf543ef818723e85a5cfc52f36c5f | |
Direct Download | jetpack-prototype-build-pr20706-f0ddce1.apk |
App Name | WordPress | |
Flavor | Jalapeno | |
Build Type | Debug | |
Version | pr20706-f0ddce1 | |
Commit | f0ddce1dec0bf543ef818723e85a5cfc52f36c5f | |
Direct Download | wordpress-prototype-build-pr20706-f0ddce1.apk |
Attention: Patch coverage is 21.27660%
with 111 lines
in your changes are missing coverage. Please review.
Project coverage is 40.60%. Comparing base (
5efa916
) to head (f0ddce1
). Report is 6 commits behind head on trunk.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I'm seeing this chart on the
mobile.blog
site as well as a few others I tested with, which looks incorrect
Good catch! I addressed it (60b9408e8b205e2969713c91c3eab81de27ca88c) by matching the behavior with the web. I set the min value to 0 and the max value to twice of subscribers count if there is no change on the line.
Failed conditions
14.2% Duplication on New Code (required ≤ 10%)
Found 1 violations:
```diff -+--- 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:fluxc:{strictly 2993-d6cb0eded15c3dbbb924172ab3d1c5d8431f1be3} -> 2993-d6cb0eded15c3dbbb924172ab3d1c5d8431f1be3 +| +--- 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:2993-d6cb0eded15c3dbbb924172ab3d1c5d8431f1be3 +| +--- 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-e6bb1ab9b9b73ee49ca380e8e3b665358922e01e (*) + \--- org.wordpress:fluxc:trunk-ed60798b4d96ec19863c74b0f525e2e20f4525db -> 2993-d6cb0eded15c3dbbb924172ab3d1c5d8431f1be3 (*) ```
Please review and act accordingly
Fixes #20687
This adds a line graph card to the Subscribers tab of Stats. It displays a graph of the total subscriber count for the last 30 days. If you tap on line, you'll see the data for that specific point. The marker view is the same as the marker on the "Views & Visitors" card. Most of the design details were taken from the "Views & Visitors" card.
To Test:
stats_traffic_subscribers_tab
from My site → Debug settings.Regression Notes
Potential unintended areas of impact
What I did to test those areas of impact (or what existing automated tests I relied on)
What automated tests I added (or what prevented me from doing so)
SubscribersChartUseCaseTest
PR Submission Checklist:
RELEASE-NOTES.txt
if necessary.Testing Checklist (strike-out the not-applying and unnecessary ones):