Repository navigation
One UI 9 throughout the app, a dashboard you can make your own, and widgets that
fit your device. This is the stable release of the 1.3.0 beta changes, with French
localisation and the latest fixes included. These changes are since stable 1.2.1.
One UI 9 and app appearance
- Rebuilt the interface on SESL9, with floating toolbars, softer cards, scrolling
fades, and layouts that adapt to phones, tablets, and foldables. - Reorganised Settings into smaller categories, including a dedicated Appearance
page for app fonts, widget defaults, and light, dark, or system themes. - Choose One UI Sans, Google Sans Flex, or the system font for the app separately
from your widget font. Headings, charts, dialogs, and controls follow your choice
while respecting device text scaling. - Refined the welcome screen, privacy links, API-key dialog, and tablet toolbars.
Fixed clipped notices, shadows, and drawer clearance above system navigation.
Your dashboard
- Press and hold a card, or tap Edit dashboard, to rearrange your dashboard.
Cards animate into edit mode with soft shadows and haptic feedback. - Added a grouped card picker with live previews. Hold a preview to drag a new
card directly into position on your dashboard. - Improved half-width card placement, drag autoscroll, and transitions when
dropping cards or leaving edit mode. Card navigation stays disabled while editing. - Refined metric and streak cards, including a personal-best streak state,
clearer chart labels, and headings that fit smaller cards.
Home screen widgets
- Added One UI and Material 3 Expressive styles for follower and Your Brief
widgets. Defaults follow your device; customise the style, font, platform logo,
and theme per widget or in Appearance settings. - One UI widgets keep their opacity and blur controls. Material widgets use
wallpaper colours and Google Sans Flex, with an optional contained username. - Improved follower typography, wrapping, spacing, and baselines across widget
sizes. Counts make better use of the available space when resizing. - Made resizing quicker and more accurate, and kept artwork within Android's
bitmap memory limit to avoid oversized widget updates. - Improved positive and negative delta contrast on dark and wallpaper-coloured
backgrounds. Compact platform icons now scale with the count rather than
dominating when long numbers shrink. - Updated widget picker previews and fixed configuration-preview flicker,
opacity controls, logo updates, and automatic theme changes.
Your Brief, languages, and follower rankings
- Added French throughout the app and widgets, including dates and follower
counts written in words. Improved language selection on older Android versions. - Corrected one-day streak wording in English, German, and French. German Brief
copy now uses native noun capitalisation and clearer restart wording, and compact
summaries preserve the difference between an active streak and one to restart. - Improved Brief fallback and goal wording, and simplified the Gemini API-key
dialog with an inline privacy link and clearer actions. - Limited tall tweet images while preserving shorter images' proportions. Your
Brief now lets you scroll through all photos in a tweet. - Improved remote Top Followers scans, ranked browsing, search clearance, and
the return-to-top action. - Thanks to Dy (evowizz) for the French localisation and
build improvements, and Aaron the Techie for German.
Dy now has a personal thank-you in About, with his avatar and website link.
Scheduling, imports, and feedback
- Paste images from the clipboard into the tweet composer. Refined thread
reordering and added haptic feedback for selection, saving, scheduling, and errors. - Added clearer feedback to manual refreshes and improved app haptics, with
waveform fallbacks where hardware primitives are unavailable. - Improved X Analytics imports when export and history timestamps differ slightly.
Import failures show clearer count comparisons and retry guidance. - Added native One UI snackbars for scheduling feedback and made chart-estimate
tips dismissible across refreshes, accounts, and app restarts.
Distribution and maintenance
- Prepared the Google Play distribution without the APK updater or its install
permissions. GitHub builds retain download notifications and pause, resume,
and stop controls for app updates. - Fixed beta version-code ordering, duplicate update downloads, and update
actions that remained unavailable after a release was detected. - Modernised the build with AGP 9.4.1, Gradle 9.8, and a shared build-logic module.
Target SDK is now 37; minimum support remains Android 8.0 (API 26). - Updated bridge dependencies to address reported security issues.
Changes since the previous release
What's Changed
- Add system font option for widgets by @thatjoshguy67 in #24
- Fix Android SDK setup in CI by @thatjoshguy67 in #25
- Support pasting images into composer by @thatjoshguy67 in #26
- Refine German onboarding and Brief copy by @thatjoshguy67 in #27
- More German string fixes by @aaronthetechie1 in #23
- Address outstanding review feedback before 1.3.0 beta by @thatjoshguy67 in #30
- (Partly) experimental improvements by @aaronthetechie1 in #29
- Fix clipped Continue button shadow on Brief onboarding by @thatjoshguy67 in #32
- Replace SamFonts card with a native One UI tip popup by @thatjoshguy67 in #33
- Use regular body text for the Your Brief introduction by @thatjoshguy67 in #34
- Restore One UI palette targeting for normal Twidget builds by @thatjoshguy67 in #35
- Restore Samsung system palette and themed settings icons by @thatjoshguy67 in #36
- Theme graph bars with the active colour palette by @thatjoshguy67 in #37
- Fix beta widget sizing, language delivery and About feedback by @thatjoshguy67 in #38
- Fix gradient loading spinner with original animation resources by @thatjoshguy67 in #39
- Use edited 1.3.0 beta release notes by @thatjoshguy67 in #40
- Fix floating toolbar navigation backgrounds in beta builds by @thatjoshguy67 in #41
- Make the dashboard estimate notice a dismissible native tips card by @thatjoshguy67 in #42
- Prepare 1.3.0-beta.2 release notes by @thatjoshguy67 in #43
- Fix Play beta version-code recovery and upload artifacts by @thatjoshguy67 in #44
- Update and string improvements by @aaronthetechie1 in #45
- Fix update download lifecycle and notifications by @thatjoshguy67 in #46
- Refresh the first-launch welcome screen by @thatjoshguy67 in #47
- Keep detected updates immediately actionable by @thatjoshguy67 in #48
- Add support for French translations by @evowizz in #49
- Modernize the build: AGP 9.4, SDK 37 and build-logic by @evowizz in #50
- Fix Brief localization and credit the French contributor by @thatjoshguy67 in #51
- Release Twidget 1.3.0 by @thatjoshguy67 in #53
New Contributors
Full Changelog: twidget-v1.2.1...twidget-v1.3.0