Conversation
Generated by 🚫 Danger |
Project manifest changes for WordPressThe following changes in the --- ./build/reports/diff_manifest/WordPress/jetpackVanillaRelease/base_manifest.txt 2026-03-09 01:46:28.447486398 +0000
+++ ./build/reports/diff_manifest/WordPress/jetpackVanillaRelease/head_manifest.txt 2026-03-09 01:46:31.357493933 +0000
@@ -478,6 +478,10 @@
android:label="@string/help_buttons_screen_title"
android:theme="@style/WordPress.NoActionBar" />
<activity
+ android:name="org.wordpress.android.ui.accounts.DeviceInfoActivity"
+ android:label="@string/device_info_title"
+ android:theme="@style/WordPress.NoActionBar" />
+ <activity
android:name="org.wordpress.android.ui.main.feedbackform.FeedbackFormActivity"
android:label="@string/feedback_form_title"
android:theme="@style/WordPress.NoActionBar" />Go to https://buildkite.com/automattic/wordpress-android/builds/25357/canvas?sid=019cd03c-fc38-4ac1-9428-e9a7e8378cb1, click on the |
Project manifest changes for WordPressThe following changes in the --- ./build/reports/diff_manifest/WordPress/wordpressVanillaRelease/base_manifest.txt 2026-03-09 01:46:07.456832046 +0000
+++ ./build/reports/diff_manifest/WordPress/wordpressVanillaRelease/head_manifest.txt 2026-03-09 01:46:10.416855979 +0000
@@ -284,6 +284,10 @@
android:label="@string/help_buttons_screen_title"
android:theme="@style/WordPress.NoActionBar" />
<activity
+ android:name="org.wordpress.android.ui.accounts.DeviceInfoActivity"
+ android:label="@string/device_info_title"
+ android:theme="@style/WordPress.NoActionBar" />
+ <activity
android:name="org.wordpress.android.ui.main.feedbackform.FeedbackFormActivity"
android:label="@string/feedback_form_title"
android:theme="@style/WordPress.NoActionBar" />Go to https://buildkite.com/automattic/wordpress-android/builds/25357/canvas?sid=019cd03c-fc37-437f-bcd0-fb55355bbbbc, click on the |
|
|
|
|
WordPress/src/main/java/org/wordpress/android/ui/accounts/DeviceInfoActivity.kt
Fixed
Show fixed
Hide fixed
WordPress/src/main/java/org/wordpress/android/ui/prefs/AppSettingsFragment.java
Fixed
Show fixed
Hide fixed
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## trunk #22663 +/- ##
==========================================
- Coverage 38.01% 37.99% -0.03%
==========================================
Files 2268 2270 +2
Lines 116720 116944 +224
Branches 16180 16199 +19
==========================================
+ Hits 44376 44433 +57
- Misses 68707 68874 +167
Partials 3637 3637 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Enabling the theme from the prompt does not relaunch the app. Manually relaunching the app is not showing the grayscale theme either. Screen_recording_20260309_130528.mp4 |
Enabling and disabling the settings toggles is not taking any effect either Screen_recording_20260309_131034.mp4 |
Should we include this in the new Modern Support screen as well? |
|
This dialog is quite wordy. I think we can get rid of "It looks like you might be using an e-reader" given the title says an E-ink display was detected.
Also, is "E-ink" the correct term? The website shows "E Ink" without the hyphen. Like @adalpari I don't see the app immediately switch to grayscale but I do see Compose screens like the new post list graying out. XML screens do not show grayscale - given this PR adds a Compose theme, this makes sense but I'd think we'd want to handle XML screens Even when grayscale appears to be applied it doesn't affect images (like featured images in the experimental post list). I'm not sure we can do anything about that but wanted to point it out. One possibility is to create a custom image components which automatically handle grayscale, but that would require changes to Coil, Glide, and FluxCImageLoader
Since this is a beta feature, should it be moved from App Settings to Experimental Features?
|
Adds e-ink support for Android e-readers (Onyx Boox, Kobo, etc.): - Device detection using known manufacturer, brand, and model lists - Grayscale Compose color scheme with forced light mode - Animation disabling across all AniUtils methods and activity transitions - Settings toggle in App Settings (marked Beta) - Auto-detect prompt shown on first launch for detected e-ink devices - Analytics tracking for prompt and settings interactions - Preferences stored via AppPrefs (EINK_MODE_ENABLED, EINK_AUTO_DETECT_DONE) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a dedicated Device Info screen accessible from Help & Support showing manufacturer, brand, model, Android version, SDK level, app version, and e-ink detection status. Includes a copy-to-clipboard button for sharing device details with support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove empty line before closing brace in WPSwitchPreference - Suppress ReturnCount for EinkDeviceDetector.isEinkDevice (early returns are clearer than alternatives for this detection logic) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
df99684 to
1f464f6
Compare
Project manifest changes for WordPressThe following changes in the --- ./build/reports/diff_manifest/WordPress/wordpressRelease/base_manifest.txt 2026-03-09 20:26:02.675949472 +0000
+++ ./build/reports/diff_manifest/WordPress/wordpressRelease/head_manifest.txt 2026-03-09 20:26:04.695954453 +0000
@@ -284,6 +284,10 @@
android:label="@string/help_buttons_screen_title"
android:theme="@style/WordPress.NoActionBar" />
<activity
+ android:name="org.wordpress.android.ui.accounts.DeviceInfoActivity"
+ android:label="@string/device_info_title"
+ android:theme="@style/WordPress.NoActionBar" />
+ <activity
android:name="org.wordpress.android.ui.main.feedbackform.FeedbackFormActivity"
android:label="@string/feedback_form_title"
android:theme="@style/WordPress.NoActionBar" />Go to https://buildkite.com/automattic/wordpress-android/builds/25379/canvas?sid=019cd43e-f8fa-4b0b-a832-28b4752351fa, click on the |
Project manifest changes for WordPressThe following changes in the --- ./build/reports/diff_manifest/WordPress/jetpackRelease/base_manifest.txt 2026-03-09 20:26:16.030332513 +0000
+++ ./build/reports/diff_manifest/WordPress/jetpackRelease/head_manifest.txt 2026-03-09 20:26:17.970317834 +0000
@@ -476,6 +476,10 @@
android:label="@string/help_buttons_screen_title"
android:theme="@style/WordPress.NoActionBar" />
<activity
+ android:name="org.wordpress.android.ui.accounts.DeviceInfoActivity"
+ android:label="@string/device_info_title"
+ android:theme="@style/WordPress.NoActionBar" />
+ <activity
android:name="org.wordpress.android.ui.main.feedbackform.FeedbackFormActivity"
android:label="@string/feedback_form_title"
android:theme="@style/WordPress.NoActionBar" />Go to https://buildkite.com/automattic/wordpress-android/builds/25379/canvas?sid=019cd43e-f8fb-45a6-8b4a-776d1a036a0b, click on the |
This would certainly be a future thing – right now we're trying to keep this feature small. The devices themselves will do grayscale conversion for images so I'm not sure this needs to be our issue. |
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@adalpari and @nbradbury, I've reduced the scope of the PR – we'll just test the animation disabling (which is a huge issue on E Ink because the screens refresh very slowly). The theme won't really be useful until we're entirely on Jetpack Compose. |
|
@nbradbury I've moved it under experimental features – it feels a bit odd to have an experimental feature prompt you like that, but it's ok for now. |
|
I'm confused by this because we're still using the grayscale Compose theme when this feature is enabled, which means Compose screens are grayscale but XML screens are not. Do we want to drop the grayscale part of this feature? If not, then when the feature is toggled we should probably reload the experimental features screen to reflect the change (since it's a Compose screen). |








Description
Adds e-ink mode support for e-reader devices (Onyx BOOX, PocketBook, Kobo, reMarkable, etc.). When enabled, the app disables all animations for faster screen refreshes and forces light mode.
Key changes:
EinkDeviceDetector): ChecksBuild.MANUFACTURER,Build.BRAND, andBuild.MODELagainst a list of known e-ink devices sourced from KOReader's device database. Handles dual-use manufacturers (e.g. Hisense, Xiaomi) by requiring model pattern matches.colorSchemeEink): A dedicated Material 3 color scheme optimized for e-ink displays. Forces light mode when active.AniUtilsanimations skip to their end state immediately. Activity transitions are disabled viaBaseAppCompatActivity.EINK_PROMPT_SHOWN,EINK_PROMPT_ACCEPTED,EINK_PROMPT_DISMISSED, andAPP_SETTINGS_EINK_MODE_CHANGED.Testing instructions
E-ink auto-detection prompt:
EinkDeviceDetectorto returntruefor your device – this is the more likely testing flow)Manual toggle:
Device Info screen:
🤖 Generated with Claude Code