Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
350 commits
Select commit Hold shift + click to select a range
8e90445
feat(compose): Add highlight type headers for First Time Chat and Ele…
flex3r Mar 25, 2026
5530c1c
fix(lint): Convert mod duration strings to plurals for proper i18n gr…
flex3r Mar 25, 2026
faf9884
feat(compose): Add room state preset chips, fix duration formatting, …
flex3r Mar 25, 2026
ff2af2e
refactor(compose): Extract shared rendering, deduplicate composables,…
flex3r Mar 25, 2026
9f4effd
fix: Only post Connected system message to channels that actually tra…
flex3r Mar 25, 2026
7ff7102
refactor: Restructure packages — add ui/ layer, flatten compose/, mov…
flex3r Mar 25, 2026
cb7514a
fix(compose): Circular shared chat badges, username click behavior se…
flex3r Mar 26, 2026
390f0f7
feat(compose): Replace expand/collapse tabs with always-collapsed mod…
flex3r Mar 26, 2026
23dfd44
fix(compose): Polish quick switch dropdown icon, gradient, and spacing
flex3r Mar 26, 2026
d5a8ef5
feat(compose): Add scrollbar to quick switch menu, fix back gesture f…
flex3r Mar 26, 2026
0b3e6b2
feat(suggestions): Improve emote ranking, add : trigger, sort users/c…
flex3r Mar 26, 2026
0f80771
refactor: Replace HashSet() with mutableSetOf() across emote code
flex3r Mar 26, 2026
c58a0da
feat(suggestions): Add emoji suggestions for : trigger, reset list sc…
flex3r Mar 26, 2026
3833ea1
refactor(suggestions): Match C2 Smart scoring, optimize filtering, ad…
flex3r Mar 26, 2026
862dd07
fix(suggestions): Wire up suggestions toggle, remove obsolete preferE…
flex3r Mar 26, 2026
6834392
fix(compose): Add predictive back to input overflow menu, fix toolbar…
flex3r Mar 26, 2026
e5b1d0d
fix(compose): Reduce overflow menu max height for landscape compatibi…
flex3r Mar 27, 2026
a0a499e
feat(compose): Add scrollbar to overflow menu, skip intrinsic height …
flex3r Mar 27, 2026
e317a73
fix(compose): Update active channel eagerly on page change, defer not…
flex3r Mar 27, 2026
5626357
feat(replies): Add reply to original message option, fill missing tra…
flex3r Mar 27, 2026
debded4
fix(i18n): Fill missing translations for sr, fi, ca, en-AU, en-GB, zh…
flex3r Mar 27, 2026
4917593
feat(automod): Add user-side AutoMod held/accepted/denied messages vi…
flex3r Mar 27, 2026
404b1e2
feat(debug): Add debug analytics bottom sheet with live session, conn…
flex3r Mar 27, 2026
2e533c2
fix(pubsub): Rewrite PubSubManager to be reactive, fixing PubSub not …
flex3r Mar 27, 2026
faa5dd4
feat(helix): Add Helix API message sending as developer setting, add …
flex3r Mar 27, 2026
867e722
fix(auth): Defer auth dialogs until MainScreen is resumed, preventing…
flex3r Mar 27, 2026
c335c99
fix(input): Wire up repeated send long-press gesture on send button
flex3r Mar 27, 2026
be7b9df
feat(debug): Add app memory and thread debug section
flex3r Mar 27, 2026
f336f95
feat(mod-actions): Expand room state dialog into mod actions menu wit…
flex3r Mar 27, 2026
05b27e4
fix(viewmodel): Prefix keyed ViewModel keys to prevent ViewModelStore…
flex3r Mar 27, 2026
9c195b5
feat(input): Add announce mode with input overlay, unify overlay type…
flex3r Mar 27, 2026
211430f
refactor(dialogs): Convert input dialogs to bottom sheets, inline cha…
flex3r Mar 28, 2026
85f1124
refactor(sheets): Extract StyledBottomSheet and InputBottomSheet comp…
flex3r Mar 28, 2026
bfe012a
feat(add-channel): Add duplicate channel validation with animated err…
flex3r Mar 28, 2026
2cb08ea
feat(auth): Add startup validation gating, migrate auth dialogs to bo…
flex3r Mar 28, 2026
1e70d04
feat(onboarding): Add permissions disclaimer to login page, fix reset…
flex3r Mar 28, 2026
5cbfa50
feat(chat): Add Debug system message type with reduced opacity for Ev…
flex3r Mar 28, 2026
e71a68f
fix(emotes): Reparse emotes in mentions and whispers when emote data …
flex3r Mar 28, 2026
2aea313
refactor(highlights): Extract duplicated color picker into HighlightC…
flex3r Mar 28, 2026
a44a266
refactor(ui): Move DataStore and Repository access from composables i…
flex3r Mar 28, 2026
6ad9ba2
refactor(chat): Extract duplicated user annotation parsing into parse…
flex3r Mar 28, 2026
9a5da2a
refactor(chat): Extract ChatScreen callbacks into ChatScreenCallbacks…
flex3r Mar 28, 2026
7ed7011
refactor(ui): Move isOwnUser check from composable into UserPopupView…
flex3r Mar 28, 2026
67ca0e9
refactor(input): Extract ChatInputCallbacks and pass ChatInputUiState…
flex3r Mar 28, 2026
587499a
refactor(ui): Move upload disclaimer and whisper dialogs from MainScr…
flex3r Mar 28, 2026
e0e361e
feat(developer): Add token revocation option, categorize developer se…
flex3r Mar 28, 2026
4fd6bd5
fix(auth): Use closeAndReconnect on re-login to handle connections th…
flex3r Mar 28, 2026
05b711c
refactor(connection): Extract reconnection logic into ConnectionCoord…
flex3r Mar 28, 2026
3659bae
refactor(websocket): Migrate ChatConnection and PubSubConnection from…
flex3r Mar 28, 2026
103d211
refactor(ui): Migrate AlertDialogs to bottom sheets, add Confirmation…
flex3r Mar 29, 2026
5667fc1
feat(mod): Add Shield Mode activation confirmation, unify centered ti…
flex3r Mar 29, 2026
1f7dd21
Merge remote-tracking branch 'origin/develop' into feature/dankchat-4
flex3r Mar 29, 2026
4f5daa2
fix(ui): Use surfaceContainerHigh for all bottom sheets, enlarge send…
flex3r Mar 29, 2026
f0169c6
fix(ui): Replace navigation transitions with scale+fade exit and slid…
flex3r Mar 29, 2026
cb0ddd3
style: Reformat code, reorder imports, remove unused imports
flex3r Mar 29, 2026
5f02401
fix(ui): Use translated TextResource for room state display, add two-…
flex3r Mar 29, 2026
4095240
refactor: Extract state classes and sealed interfaces from ViewModels…
flex3r Mar 29, 2026
e142aed
refactor(compose): Add @Immutable annotations, use ImmutableList/Set …
flex3r Mar 29, 2026
14b3a4d
fix(ui): Animate input action icons when visibility changes on channe…
flex3r Mar 29, 2026
c086ff7
test(domain): Add ChannelDataCoordinator and ChannelDataLoader tests,…
flex3r Mar 29, 2026
7a04b33
build: Add ktfmt and detekt with compose-rules, update CI and editorc…
flex3r Mar 29, 2026
c2339a9
fix: Resolve all detekt and compose-rules violations, remove dead cod…
flex3r Mar 29, 2026
c9f5394
refactor: Migrate to Kotlin AtomicInt, localize ChatMessageSender err…
flex3r Mar 29, 2026
4cce56b
fix: Clean up WebSocket and EventSub code, remove unused hasModerator…
flex3r Mar 29, 2026
1c6f53e
fix: Clean up new feature data layer code, simplify EmoteRepository a…
flex3r Mar 29, 2026
ff3eebd
style: Remove stale comment from DankChatModule
flex3r Mar 29, 2026
1e8c84a
refactor(main): Extract MainScreen components, clean up dead code, ad…
flex3r Mar 29, 2026
9c417db
build: Migrate ktfmt from broken Gradle plugin to standalone binary
flex3r Mar 29, 2026
fa7b691
style: Apply Spotless + ktlint formatting to entire codebase
flex3r Mar 29, 2026
598a931
refactor(dialog): Replace overlaying delete confirmation with inline …
flex3r Mar 30, 2026
94d4a0c
style: Apply Spotless + ktlint formatting to entire codebase
flex3r Mar 30, 2026
d63829c
refactor(sheets): Migrate ConfirmationBottomSheet and UploadDisclaime…
flex3r Mar 30, 2026
09d33f6
fix(strings): Rename "Mod actions" to "Channel moderation" with trans…
flex3r Mar 30, 2026
26deea2
fix(input): Add two-line helper text to hidden input, fix marquee sto…
flex3r Mar 30, 2026
cc0345d
feat(chat): Add FAB actions menu, semi-transparent recovery FAB and h…
flex3r Mar 30, 2026
957884a
fix(toolbar): Fix predictive back showing opaque background on toolba…
flex3r Mar 30, 2026
0d02883
refactor(compose): Replace onGloballyPositioned with onSizeChanged fo…
flex3r Mar 30, 2026
db8a0ae
fix(ui): Add slight opacity to split pane draggable handle background
flex3r Mar 30, 2026
63f2189
feat(input): Make helper text expand to two lines on tap instead of a…
flex3r Mar 30, 2026
8533667
fix(toolbar): Long press tab row opens manage channels, fix tour tool…
flex3r Mar 30, 2026
0b7754e
style: Apply spotless formatting to build script
flex3r Mar 30, 2026
3eabeff
refactor(suggestions): Unify emote and user scoring, add typed combin…
flex3r Mar 30, 2026
17fe31d
fix(tour): Fix recovery FAB tooltip caret, complete tour on FAB click…
flex3r Mar 30, 2026
86edd85
fix: Manual review fixes for SevenTV, DankBackground, preference dial…
flex3r Mar 30, 2026
071e76b
fix(chat): Use localized full duration format for timeout and ban mes…
flex3r Mar 30, 2026
0e19eb4
fix(sheets): Use surfaceContainerLow for toolbar pills on fullscreen …
flex3r Mar 30, 2026
9d2d8ad
fix(highlights): Improve highlight colors for both themes, treat defa…
flex3r Mar 30, 2026
d3dc885
fix(chat): Use adaptive link color that falls back to inversePrimary …
flex3r Mar 30, 2026
4276eef
fix: Remove redundant Kotlin compiler arguments and .toInt() conversions
flex3r Mar 30, 2026
2efd41f
refactor(compose): Replace LocalView and LocalConfiguration with Loca…
flex3r Mar 30, 2026
3a5ea21
cleanup: Remove low-value KDoc that restates function names, describe…
flex3r Mar 30, 2026
224c769
fix(tabs): Fix unread state never clearing because settledPage guard …
flex3r Mar 30, 2026
9541d6b
refactor(compose): Consolidate EmoteAnimationCoordinator, fix Chrome …
flex3r Mar 30, 2026
b4de6a5
cleanup: Remove dead code, unused imports, and minor code review fixes
flex3r Mar 30, 2026
a4371ae
refactor(chat): Restructure ui/chat file organization and dissolve Em…
flex3r Mar 30, 2026
2ee22b8
fix(compose): Add @Immutable to RoomState, use ImmutableList in dialo…
flex3r Mar 30, 2026
99991ef
cleanup: Code review fixes, fix SuggestionFilteringTest for renamed f…
flex3r Mar 30, 2026
2c5fca9
feat(i18n): Localize all command response strings with translations
flex3r Mar 30, 2026
00ebc74
feat(chat): Add colorize nicknames setting for users without a set color
flex3r Mar 31, 2026
1376f72
fix(ui): Add navigation bar padding to channel deletion confirmation …
flex3r Mar 31, 2026
a965f56
style: Disable multiline-expression-wrapping and reformat
flex3r Mar 31, 2026
9e6690b
refactor(compose): Extract large composables into smaller private com…
flex3r Mar 31, 2026
fa15194
refactor(compose): Extract menu content, shared sheet toolbar, and em…
flex3r Mar 31, 2026
6e28c11
fix(stream): Hide stream for emote menu, fix toolbar alpha getting stuck
flex3r Mar 31, 2026
ea2f9b4
fix(search): Reset search filter when reopening message history
flex3r Mar 31, 2026
bc3c066
fix(detekt): Remove ViewModel forwarding, apply modifier at root in W…
flex3r Mar 31, 2026
fa4c935
fix(stream): Keep WebView in composition when hidden to avoid audio i…
flex3r Mar 31, 2026
667abbc
fix(input): Keep focus when switching from keyboard to emote menu
flex3r Mar 31, 2026
03594c7
fix(input): Prevent layout bounce when TextField label animates betwe…
flex3r Mar 31, 2026
cf786cd
fix(color): Use nullable color to distinguish unset from user-chosen …
flex3r Mar 31, 2026
e0b2f3e
feat(fab): Add show input option to recovery FAB menu
flex3r Mar 31, 2026
2ca2fb9
feat(appearance): Add option to disable channel swipe navigation
flex3r Mar 31, 2026
3202716
fix(input): Respect showCharacterCounter setting for character counte…
flex3r Mar 31, 2026
5eca427
refactor(tts): Extract TTS into ChatTTSPlayer, fix broken active chan…
flex3r Mar 31, 2026
4238e8b
feat(tts): Add volume slider and audio ducking, decouple service from…
flex3r Mar 31, 2026
aafb191
ci: Add version tags to signed release for Obtainium compatibility
flex3r Mar 31, 2026
04aff16
fix(chat): Remove annoying no-history system message when history is …
flex3r Mar 31, 2026
d879795
feat(suggestions): Replace boolean toggles with granular suggestion t…
flex3r Mar 31, 2026
75d0bdd
feat(stream): Add audio-only mode with collapsible bar and menu toggle
flex3r Mar 31, 2026
f2bb78f
fix(stream): Close stream when its channel is removed
flex3r Mar 31, 2026
a289162
chore: Bump version to 4.0.0
flex3r Mar 31, 2026
34e904b
refactor(emotes): Remove unused DankChat API emote set fallback
flex3r Mar 31, 2026
7c90d8b
fix: Use thread-safe collections, fix coroutine scope in Notification…
flex3r Mar 31, 2026
f0e7f34
chore: Bump version to 4.0.1
flex3r Mar 31, 2026
fe8f183
fix(ui): Unify input visibility state, reduce suggestion padding, rem…
flex3r Mar 31, 2026
32b5858
fix(theme): Override all surface container variants in true dark theme
flex3r Mar 31, 2026
6cc0042
chore: Bump version to 4.0.2
flex3r Mar 31, 2026
3d01255
feat(theme): Add custom accent color and palette style settings with …
flex3r Mar 31, 2026
2118ea6
fix(i18n): Use American English "gray" in default and en locale strings
flex3r Mar 31, 2026
9a9983a
chore: Bump version to 4.0.3
flex3r Mar 31, 2026
15bef57
feat(suggestions): Add prefix-only suggestion mode, split chat settin…
flex3r Apr 1, 2026
b1b2f3f
fix(about): Upgrade aboutlibraries to 14.0.0-b03 for AGP 9, use botto…
flex3r Apr 1, 2026
95a915b
fix(about): Make license bottom sheet edge-to-edge behind navigation bar
flex3r Apr 1, 2026
c245527
fix(suggestions): Fix duplicate key crash, validate custom command tr…
flex3r Apr 1, 2026
7b2582c
fix(i18n): Add translations for custom command trigger validation errors
flex3r Apr 1, 2026
4a33364
fix(chat): Relax username color contrast ratio to 3.5:1, use best-eff…
flex3r Apr 1, 2026
94121c2
feat(chat): Add watch streak highlight, fix ignore label bug, only co…
flex3r Apr 1, 2026
817c279
feat(chat): Add reward labels for gigantified emotes, animated messag…
flex3r Apr 1, 2026
62edd60
fix(theme): Allow palette style for system accent, fix AMOLED using r…
flex3r Apr 1, 2026
f953280
fix(chat): Fix link tap overlap and long-press by using string annota…
flex3r Apr 1, 2026
5f964ba
chore: Bump version to 4.0.4
flex3r Apr 1, 2026
a9ffcf6
fix(theme): Hoist NavController above DankChatTheme to prevent state …
flex3r Apr 1, 2026
c1a79ab
fix(suggestions): Increase suggestion item padding to 5dp
flex3r Apr 1, 2026
698d258
fix(input): Disable swipe-to-hide in sheets, restore input when openi…
flex3r Apr 1, 2026
a5cf900
chore: Bump version to 4.0.5
flex3r Apr 1, 2026
c2a8e08
fix(whispers): Fix notifications, bell icon, unread indicator, remove…
flex3r Apr 1, 2026
5b7a21d
fix(input): Make FAB show-input action work, hide last-message when i…
flex3r Apr 2, 2026
6a3599c
feat(debug): Add graphics, code, stack, and PSS memory stats to debug…
flex3r Apr 2, 2026
2e7d12b
chore: Bump version to 4.0.6
flex3r Apr 2, 2026
ad3953f
fix(upload): Support JSON array indices in custom uploader link patterns
flex3r Apr 2, 2026
46c28fe
fix(settings): Disable TTS volume slider when TTS is off
flex3r Apr 2, 2026
8c358a6
fix(input): Insert text at cursor position instead of always appending
flex3r Apr 2, 2026
9dd2d9f
fix(input): Disable swipe-to-hide gesture when input is multiline
flex3r Apr 2, 2026
f0f1086
fix(chat): Reduce timestamp-badge spacing, add horizontal message pad…
flex3r Apr 2, 2026
4361b9f
fix(suggestions): Use emote type, id, and code in suggestion keys to …
flex3r Apr 2, 2026
adabaa2
fix(input): Only make helper text tappable when it can expand to two …
flex3r Apr 2, 2026
b2ed88d
fix(chat): Remove elevation from recovery FABs to fix white rectangle…
flex3r Apr 2, 2026
db7f3ec
fix(chat): Show custom redeems as header, fix redemption text color, …
flex3r Apr 2, 2026
3f1cda4
refactor(settings): Replace marquee with auto-sizing text for prefere…
flex3r Apr 2, 2026
b89d6fe
fix(ui): Bold unread tab names for better contrast in light theme
flex3r Apr 2, 2026
9073353
fix(snackbar): Fix error snackbar re-showing after navigation, reduce…
flex3r Apr 2, 2026
90b6522
feat(chat): Show reply message preview in input overlay, add long-pre…
flex3r Apr 2, 2026
27316b9
fix(ui): Match emote info tab row background to sheet container color
flex3r Apr 2, 2026
b33c97c
fix(theme): Remove expressive motion scheme to reduce bouncy animations
flex3r Apr 2, 2026
16bdad3
fix(ui): Dismiss keyboard before opening bottom sheets to prevent ani…
flex3r Apr 2, 2026
b558ba8
perf(emotes): Cache emote lookup map, merge word splits, optimize emo…
flex3r Apr 2, 2026
522710f
style: Fix indentation in ChatSettingsScreen, MainScreenEventHandler,…
flex3r Apr 2, 2026
67c96b7
fix(ui): Remove bold from system message names, refactor moderation d…
flex3r Apr 2, 2026
d309f96
fix(ui): Use SemiBold for unread tabs, keep Bold for selected
flex3r Apr 2, 2026
1f567ad
fix(ui): Close toolbar menu when keyboard opens, dismiss keyboard whe…
flex3r Apr 2, 2026
30dc7ac
fix(ui): Animate status bar scrim crossfade when toolbar appears/disa…
flex3r Apr 2, 2026
ba2a341
fix(data): Include step name in failure logs, increase HTTP timeouts …
flex3r Apr 2, 2026
8a9d6e0
chore: Bump version to 4.0.7
flex3r Apr 2, 2026
5a1a433
fix(chat): Make URLs in system and notice messages clickable
flex3r Apr 2, 2026
786e511
fix(ui): Allow taps and long-presses through edge gesture guards
flex3r Apr 2, 2026
7cb82f3
fix(ui): Use outlined bell icon when no unread mentions
flex3r Apr 2, 2026
7abc6cb
chore: Bump version to 4.0.8
flex3r Apr 2, 2026
f640a47
fix(ui): Use outlined icons for contextual input actions with primary…
flex3r Apr 3, 2026
a94496b
fix(chat): Full-width backgrounds, overlay dividers, adaptive text co…
flex3r Apr 3, 2026
9d91cde
fix(ui): Rework edge gesture guards to not block taps on content
flex3r Apr 3, 2026
143634a
fix(colors): Restore hue correction as first step in username color n…
flex3r Apr 3, 2026
b7c389c
chore: Bump version to 4.0.9
flex3r Apr 3, 2026
0ffd16c
refactor(chat): Move highlight shape and divider logic from composabl…
flex3r Apr 3, 2026
73b3a53
refactor: Clean up constructor parameters that don't need to be store…
flex3r Apr 3, 2026
2ce5a54
chore: Bump version to 4.0.10
flex3r Apr 3, 2026
66dcb77
fix(mod): Persist shield mode state across dialog reopens via ShieldM…
flex3r Apr 3, 2026
2de0102
refactor(chat): Replace ClickableText with LinkableText, add configur…
flex3r Apr 3, 2026
5bfe45f
fix(ui): Add paste action to message copy snackbar via MainEventBus
flex3r Apr 3, 2026
1f7191b
chore: Migrate to detekt 2.x snapshot with type resolution support
flex3r Apr 3, 2026
229ca32
fix: Resolve all detekt type-resolution findings — inject dispatchers…
flex3r Apr 4, 2026
0f885f3
refactor(mod): Convert Action enum to sealed interface, fix room stat…
flex3r Apr 4, 2026
17d8f15
chore: Bump version to 4.0.11
flex3r Apr 4, 2026
650f6cd
fix(replies): Wire up missing onEmoteClick callback in reply sheet
flex3r Apr 4, 2026
e0f63e7
fix(input): Disable swipe-down gesture when keyboard or emote menu is…
flex3r Apr 4, 2026
eb9c2e5
chore: Bump version to 4.0.12
flex3r Apr 4, 2026
fcd163d
fix(ui): Only show menu scrollbar when a full item is offscreen
flex3r Apr 4, 2026
33db752
feat(emote): Adaptive emote info layout for wide emotes, smooth pager…
flex3r Apr 4, 2026
7f39828
fix(detekt): Fix composable parameter ordering and naming in MainAppBar
flex3r Apr 4, 2026
6222969
fix(ci): Run detektDebug and lintDebug instead of detekt and lintVita…
flex3r Apr 4, 2026
7fcb0ff
chore: Bump version to 4.0.13
flex3r Apr 4, 2026
1aab93b
fix: Remove redundant else branch in exhaustive when expression
flex3r Apr 4, 2026
fc05014
feat(logging): Add logback-android logging with kotlin-logging and in…
flex3r Apr 4, 2026
bffbad9
fix(toolbar): Close emote menu and keyboard consistently when opening…
flex3r Apr 4, 2026
7af893e
chore: Bump version to 4.0.14
flex3r Apr 4, 2026
e5b0b32
feat(settings): Add toggle to disable clear input button
flex3r Apr 5, 2026
13dd0e2
feat(log-viewer): Add multi-select copy mode for log lines
flex3r Apr 5, 2026
30c5962
chore: Suppress deprecation warning and PictureInPictureIssue lint
flex3r Apr 5, 2026
6c0abc1
fix(toolbar): Align quick switcher text styles with tab unread/mentio…
flex3r Apr 5, 2026
cbf6dd6
feat(settings): Add toggle to hide send button, split input settings …
flex3r Apr 5, 2026
9fb7616
feat(emotes): Track emote usage when user types emote codes manually
flex3r Apr 5, 2026
d72df77
fix(logging): Use date-based log file names, add file icons to log pi…
flex3r Apr 5, 2026
ab9b31f
feat(crash): Add crash reporting with post-crash sheet, viewer, email…
flex3r Apr 6, 2026
af230b9
refactor(ui): Unify sheet sub-view animations and use error color for…
flex3r Apr 6, 2026
12846ec
fix(i18n): Add missing translations across all maintained locales
flex3r Apr 6, 2026
9bb53c4
chore: Bump version to 4.0.15
flex3r Apr 6, 2026
004869d
perf(pager): Pre-compose adjacent channel pages for smoother swiping
flex3r Apr 6, 2026
b060778
perf(chat): Skip SubcomposeLayout when all inline content dimensions …
flex3r Apr 6, 2026
c8dd346
fix(menu): Size overflow menu width to fit main menu items, allow sub…
flex3r Apr 6, 2026
1caf700
fix(theme): Replace material-android-components with framework themes…
flex3r Apr 6, 2026
66ce26b
chore: Bump version to 4.0.16
flex3r Apr 6, 2026
bbd3d77
feat(settings): Add channel page preload count slider to developer se…
flex3r Apr 6, 2026
c179960
chore(lint): Suppress dependency version warnings
flex3r Apr 6, 2026
6a53ca8
fix(lint): Convert PluralsCandidate strings to proper plurals resources
flex3r Apr 6, 2026
404004f
chore: Bump version to 4.0.17
flex3r Apr 6, 2026
49edec6
fix(chat): Stabilize checkered message backgrounds by using index-bas…
flex3r Apr 6, 2026
a72186c
fix(replies): Fix missing reply actions on thread messages in message…
flex3r Apr 7, 2026
abf077a
feat(history): Add global history mode with channel switcher dropdown
flex3r Apr 7, 2026
f3d7606
fix(history): Clarify channel/global history button translations
flex3r Apr 7, 2026
1561f80
refactor(history): Simplify user popup to single message history butt…
flex3r Apr 7, 2026
6e8759b
fix(chat): Stabilize checkered backgrounds with per-context ordinal t…
flex3r Apr 7, 2026
de53f11
fix(chat): Render redemption cost as inline content, prevent Row over…
flex3r Apr 7, 2026
f13fe57
feat(chat): Color reply header username with cached user color
flex3r Apr 7, 2026
367f531
chore: Bump version to 4.0.18
flex3r Apr 7, 2026
c1fc63c
revert(settings): Remove channel page preload developer setting
flex3r Apr 7, 2026
d896941
fix(test): Update EmoteRepositoryTest mocks to match current constructor
flex3r Apr 7, 2026
1c11565
chore: Remove unused .serena directory
flex3r Apr 8, 2026
e300ba3
fix(emoji): Use shortcode for suggestion keys, update emoji data to 17.0
flex3r Apr 8, 2026
99baf4a
fix(tour): Anchor input actions tooltip to action icons, highlight re…
flex3r Apr 8, 2026
e6debd7
chore: Bump version to 4.0.19
flex3r Apr 8, 2026
631a8a0
chore(deps): Update aboutlibraries to 14.0.0 stable
flex3r Apr 8, 2026
b57bb0b
chore(deps): Migrate from Koin KSP to K2 compiler plugin, update Koin…
flex3r Apr 8, 2026
6b3c1bd
fix(di): Switch @Named qualifiers from type-based to string-based for…
flex3r Apr 8, 2026
886a6dd
fix(emote): Fix emote position adjustment for reply messages with emoji
flex3r Apr 8, 2026
aa86a9f
chore: Bump version to 4.0.20
flex3r Apr 8, 2026
fe087b7
fix(input): Offset clear button and character counter toward top of t…
flex3r Apr 9, 2026
9ade23c
chore: Bump version to 4.0.21
flex3r Apr 9, 2026
ab1e74e
feat(stream): Keep stream visible when keyboard or emote menu opens i…
flex3r Apr 9, 2026
c75952f
feat(stream): Show overlay buttons only on tap with auto-hide
flex3r Apr 9, 2026
689e185
feat(channel): Persist last selected channel across app restarts
flex3r Apr 9, 2026
eb9d43f
chore: Bump version to 4.0.22
flex3r Apr 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 11 additions & 6 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,19 @@ ij_xml_text_wrap = normal
ij_xml_use_custom_settings = true

[{*.kt,*.kts,*.main.kts}]
ij_kotlin_align_in_columns_case_branch = true
# ktlint configuration
ktlint_code_style = ktlint_official
ktlint_function_naming_ignore_when_annotated_with = Composable
ij_continuation_indent_size = 4
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
ij_kotlin_align_in_columns_case_branch = false
ij_kotlin_align_multiline_binary_operation = false
ij_kotlin_align_multiline_extends_list = false
ij_kotlin_align_multiline_method_parentheses = false
ij_kotlin_align_multiline_parameters = true
ij_kotlin_align_multiline_parameters_in_calls = false
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = false
ij_kotlin_allow_trailing_comma_on_call_site = true
ij_kotlin_assignment_wrap = normal
ij_kotlin_blank_lines_after_class_header = 0
ij_kotlin_blank_lines_around_block_when_branches = 0
Expand All @@ -59,7 +64,6 @@ ij_kotlin_call_parameters_right_paren_on_new_line = true
ij_kotlin_call_parameters_wrap = on_every_item
ij_kotlin_catch_on_new_line = false
ij_kotlin_class_annotation_wrap = split_into_lines
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
ij_kotlin_continuation_indent_for_chained_calls = false
ij_kotlin_continuation_indent_for_expression_bodies = false
ij_kotlin_continuation_indent_in_argument_lists = false
Expand All @@ -70,7 +74,7 @@ ij_kotlin_continuation_indent_in_supertype_lists = false
ij_kotlin_else_on_new_line = false
ij_kotlin_enum_constants_wrap = off
ij_kotlin_extends_list_wrap = normal
ij_kotlin_field_annotation_wrap = split_into_lines
ij_kotlin_field_annotation_wrap = off
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = true
ij_kotlin_import_nested_classes = false
Expand All @@ -84,8 +88,8 @@ ij_kotlin_keep_indents_on_empty_lines = false
ij_kotlin_keep_line_breaks = true
ij_kotlin_lbrace_on_next_line = false
ij_kotlin_line_break_after_multiline_when_entry = true
ij_kotlin_line_comment_add_space = false
ij_kotlin_line_comment_add_space_on_reformat = false
ij_kotlin_line_comment_add_space = true
ij_kotlin_line_comment_add_space_on_reformat = true
ij_kotlin_line_comment_at_first_column = true
ij_kotlin_method_annotation_wrap = split_into_lines
ij_kotlin_method_call_chain_wrap = normal
Expand Down Expand Up @@ -123,3 +127,4 @@ ij_kotlin_while_on_new_line = false
ij_kotlin_wrap_elvis_expressions = 1
ij_kotlin_wrap_expression_body_functions = 1
ij_kotlin_wrap_first_method_in_call_chain = false
ktfmt_trailing_comma_management_strategy = complete
34 changes: 20 additions & 14 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,25 @@ jobs:

steps:
- uses: actions/checkout@v6
- name: set up JDK 17
- name: set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
with:
cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }}

- name: Lint
run: bash ./gradlew lintVitalRelease
- name: Spotless check
run: bash ./gradlew :app:spotlessCheck

- name: Detekt
run: bash ./gradlew :app:detektDebug

- name: Android Lint
run: bash ./gradlew :app:lintDebug

build:
name: Generate apk
Expand Down Expand Up @@ -117,6 +123,12 @@ jobs:
fileDir: ${{ github.workspace }}
encodedString: ${{ secrets.SIGNING_KEY }}

- name: Extract version name
id: version
run: |
base=$(grep 'versionName' app/build.gradle.kts | head -1 | sed 's/.*"\(.*\)".*/\1/')
echo "tag=v${base}-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"

- name: Build signed release apk
run: bash ./gradlew app:assembleRelease
env:
Expand All @@ -130,17 +142,11 @@ jobs:
name: Signed release apk
path: ${{ github.workspace }}/app/build/outputs/apk/release/*.apk

- name: Update release tag
uses: richardsimko/update-tag@v1.1.6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: release

- name: Update signed release
- name: Update release
uses: ncipollo/release-action@v1.21.0
with:
tag: release
name: Signed release APK
tag: ${{ steps.version.outputs.tag }}
name: ${{ steps.version.outputs.tag }}
artifacts: ${{ github.workspace }}/app/build/outputs/apk/release/*.apk
allowUpdates: true
makeLatest: true
Loading