Skip to content

Unlock all styles now that Sustainer is discontinued - #1847

Open
joashrajin wants to merge 1 commit into
trunkfrom
remove/style-premium-gate
Open

Unlock all styles now that Sustainer is discontinued#1847
joashrajin wants to merge 1 commit into
trunkfrom
remove/style-premium-gate

Conversation

@joashrajin

@joashrajin joashrajin commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Fix

Simplenote Sustainer has been discontinued, and pref_key_premium is never written anywhere in the codebase's history, so isPremium() was always false — leaving every style except Default permanently locked and the Style row hidden in Settings, even though a pure-black AMOLED style (Black) already exists.

Per review feedback, this is the minimal change:

  • PrefUtils.isPremium now defaults to true (no device ever stored a value, so this unlocks everyone).
  • The pref_key_style row in preferences.xml is visible again (app:isPreferenceVisible="true").

Fixes #1771
Fixes #1661

Test

  1. Go to Settings — the Style row is visible under Appearance.
  2. Open it and verify no styles show a lock icon and each can be selected.
  3. Select Black and enable dark mode — backgrounds are pure black (AMOLED).
  4. Add the note widget and note list widget in dark mode with the Black style selected — widgets use the black layouts.

Review

Anyone can review. Note: with isPremium() defaulting to true, the (still hidden) membership row would show "premium" if ever un-hidden.

Release

RELEASE-NOTES.txt was updated in 6e28103 with:

Unlocked all styles, including the pure-black AMOLED style, for everyone now that Simplenote Sustainer is discontinued

@dangermattic

dangermattic commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator
1 Warning
⚠️ PR is not assigned to a milestone.

Generated by 🚫 Danger

@wpmobilebot

wpmobilebot commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

📲 You can test the changes from this Pull Request in Simplenote Android by scanning the QR code below to install the corresponding build.

App NameSimplenote Android
Build TypeDebug
Commit6e28103
Direct Downloadsimplenote-android-prototype-build-pr1847-6e28103-019f60f9-2c3a-40b8-acc8-2014a9ca5f31.apk

@joashrajin
joashrajin requested a review from Copilot July 9, 2026 21:36
@joashrajin joashrajin self-assigned this Jul 9, 2026
@joashrajin

Copy link
Copy Markdown
Contributor Author

@mzorz thoughts on this? since sustainer is done away with, maybe we release this to all?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the now-defunct “premium” gating from style selection so all users can choose and apply any available style (including the Black/AMOLED style) across the app UI and widgets.

Changes:

  • Always apply the user-selected style in ThemeUtils.getStyle() and widget/layout selectors (no fallback to Default for non-premium).
  • Simplify StyleActivity UX by removing lock indicators and the locked/upsell dialog so tapping a style always selects it.
  • Update Settings’ style summary to always reflect the selected style name, and add release notes entry for the change.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Simplenote/src/main/java/com/automattic/simplenote/utils/ThemeUtils.java Always returns the selected style (removes premium gate).
Simplenote/src/main/java/com/automattic/simplenote/utils/PrefUtils.java Removes premium-based fallbacks for widget layouts and dialog theme selection; removes unused default style name helper.
Simplenote/src/main/java/com/automattic/simplenote/StyleActivity.java Removes premium lock UI/upsell dialog; enables selecting any style.
Simplenote/src/main/java/com/automattic/simplenote/PreferencesFragment.java Settings summary always shows the currently selected style.
RELEASE-NOTES.txt Documents unlocking styles for all users.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 87 to 90
public StyleAdapter(List<String> styles) {
this.mStyles = new ArrayList<>(styles);
mSelectedPosition = mIsPremium ? PrefUtils.getStyleIndexSelected(StyleActivity.this) : STYLE_DEFAULT;
mSelectedPosition = PrefUtils.getStyleIndexSelected(StyleActivity.this);
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 12d22e5.

Comment on lines +123 to +126
notifyItemChanged(mSelectedPosition);
mSelectedPosition = holder.getAdapterPosition();
notifyItemChanged(mSelectedPosition);
PrefUtils.setStyleIndex(StyleActivity.this, holder.getAdapterPosition());

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 12d22e5.

@theck13

theck13 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

You don't need all these changes to enable styles. Just update PrefUtils.isPremium and preferences.pref_key_style from false to true.

@joashrajin

Copy link
Copy Markdown
Contributor Author

You don't need all these changes to enable styles. Just update PrefUtils.isPremium and preferences.pref_key_style from false to true.

Thank you. will do

Per review feedback, the minimal change: default PrefUtils.isPremium to
true (pref_key_premium was never written anywhere, so no device has a
stored value) and make the Style preference row visible in Settings.

Fixes #1771
Fixes #1661
@joashrajin
joashrajin force-pushed the remove/style-premium-gate branch from 12d22e5 to 6e28103 Compare July 14, 2026 14:12
@joashrajin

joashrajin commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @theck13, I reworked to exactly that in 6e28103: isPremium() now defaults to true and the pref_key_style row is visible again. I confirmed pref_key_premium was never written anywhere in the repo's history, so no device has a stored false to override the new default.

@joashrajin
joashrajin marked this pull request as ready for review July 14, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Amoled/Black mode Amoled Theme

5 participants