Add e-ink mode with device detection and grayscale theme#22663
Add e-ink mode with device detection and grayscale theme#22663
Conversation
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>
Generated by 🚫 Danger |
|
Project manifest changes for WordPressThe following changes in the --- ./build/reports/diff_manifest/WordPress/jetpackVanillaRelease/base_manifest.txt 2026-03-07 00:30:35.377801970 +0000
+++ ./build/reports/diff_manifest/WordPress/jetpackVanillaRelease/head_manifest.txt 2026-03-07 00:30:38.607805702 +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/25353/canvas?sid=019cc5af-2015-40e7-8fab-28fac5c1692a, click on the |
Project manifest changes for WordPressThe following changes in the --- ./build/reports/diff_manifest/WordPress/wordpressVanillaRelease/base_manifest.txt 2026-03-07 00:30:58.678425926 +0000
+++ ./build/reports/diff_manifest/WordPress/wordpressVanillaRelease/head_manifest.txt 2026-03-07 00:31:02.518439524 +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/25353/canvas?sid=019cc5af-2013-4eec-90e6-693cc182f0dc, click on the |
|
|
|
|
| context.getString( | ||
| R.string.device_info_title | ||
| ), |
Check failure
Code scanning / Android Lint
Querying resource properties using LocalContext.current Error
| private WPPreference mLanguagePreference; | ||
| private ListPreference mAppThemePreference; | ||
| private ListPreference mInitialScreenPreference; | ||
| private WPSwitchPreference mEinkModePref; |
Check notice
Code scanning / Android Lint
Nullable/NonNull annotation missing on field Note
| return AppPrefs.isEinkModeEnabled(); | ||
| } | ||
|
|
||
| private static ObjectAnimator noopAnimator(View target) { |
Check notice
Code scanning / Android Lint
Nullable/NonNull annotation missing on method parameter Note
🤖 Build Failure AnalysisThis build has failures. Claude has analyzed them - check the build annotations for details. |





Description
Adds e-ink mode support for e-reader devices (Onyx BOOX, PocketBook, Kobo, reMarkable, etc.). When enabled, the app uses a grayscale color scheme optimized for e-ink displays (typically 16 shades of gray) and disables all animations for faster screen refreshes.
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 using black, white, and gray values. 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