Skip to content

Commit c5f1a10

Browse files
authored
[RELEASE] 2.3.1 πŸš€ (#707)
2 parents 94a4590 + d00e66c commit c5f1a10

File tree

8 files changed

+4594
-6039
lines changed

8 files changed

+4594
-6039
lines changed

β€Ž.github/workflows/sync-develop.ymlβ€Ž

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,27 @@ on:
55
workflows: ["Deploy to Play Store"]
66
types:
77
- completed
8+
workflow_dispatch:
89

910
permissions:
1011
contents: write
12+
pull-requests: write
1113

1214
jobs:
1315
sync_develop:
1416
name: Sync Main -> Develop
1517
runs-on: ubuntu-latest
16-
if: ${{ github.event.workflow_run.conclusion == 'success' }}
18+
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
1719
steps:
1820
- name: Checkout repository
1921
uses: actions/checkout@v6
20-
with:
21-
fetch-depth: 0
22-
token: ${{ secrets.GITHUB_TOKEN }}
2322

24-
- name: Merge Main to Develop
23+
- name: Sync Main to Develop (Create PR)
24+
env:
25+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2526
run: |
26-
git config --global user.name "github-actions[bot]"
27-
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
28-
29-
# Checkout develop branch
30-
git checkout develop
31-
git pull origin develop --rebase
32-
33-
# Merge main into develop
34-
git merge origin/main --no-edit -m "[CHORE] Sync main to develop [skip ci]"
35-
36-
# Push changes
37-
git push origin develop
27+
echo "Creating sync PR..."
28+
gh pr create --base develop --head main \
29+
--title "[CHORE] Sync main to develop" \
30+
--body "πŸš€ **Release deployed successfully!**\n\nPlease approve and merge this PR to sync `main` changes back to `develop`." \
31+
|| echo "PR already exists or creation failed."
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources xmlns:tools="http://schemas.android.com/tools"
3+
tools:keep="@raw/aboutlibraries" />

β€Žapp/src/release/generated/baselineProfiles/baseline-prof.txtβ€Ž

Lines changed: 2281 additions & 2998 deletions
Large diffs are not rendered by default.

β€Žapp/src/release/generated/baselineProfiles/startup-prof.txtβ€Ž

Lines changed: 2281 additions & 2998 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
β€’ μ˜¨λ³΄λ”© 화면이 μΆ”κ°€λ˜μ—ˆμ–΄μš”.
2-
β€’ μ•Œλ¦Ό κΈ°λŠ₯이 κ°œμ„ λ˜μ—ˆμ–΄μš”.
1+
β€’ μ˜€ν”ˆμ†ŒμŠ€ ν™”λ©΄ μ§„μž…μ‹œ λ°œμƒν•˜λ˜ 문제λ₯Ό μˆ˜μ •ν–ˆμ–΄μš”.

β€Žgradle/libs.versions.tomlβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ androidGradlePlugin = "9.0.1"
1111
spotless = "8.2.1"
1212

1313
# App version
14-
versionCode = "2030000"
15-
versionName = "2.3.0"
14+
versionCode = "2030100"
15+
versionName = "2.3.1"
1616

1717
# Kotlin
1818
kotlin = "2.3.10"

β€Žpresentation/feed/src/main/java/com/hilingual/presentation/feed/FeedScreen.ktβ€Ž

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ internal fun FeedRoute(
162162
onUnpublishClick = viewModel::diaryUnpublish,
163163
onReportClick = { context.launchCustomTabs(UrlConstant.FEEDBACK_REPORT) },
164164
readAllFeed = viewModel::readAllFeed,
165-
isScrollingDown = viewModel::isScrollingDown
166165
)
167166
}
168167
}
@@ -185,7 +184,6 @@ private fun FeedScreen(
185184
onReportClick: () -> Unit,
186185
readAllFeed: () -> Unit,
187186
onFeedRefresh: (FeedTab) -> Unit,
188-
isScrollingDown: (FeedScrollState?, FeedScrollState) -> Boolean,
189187
modifier: Modifier = Modifier
190188
) {
191189
val coroutineScope = rememberCoroutineScope()
@@ -239,14 +237,14 @@ private fun FeedScreen(
239237
LaunchedEffect(pagerState.currentPage) {
240238
snapshotFlow {
241239
FeedScrollState(
242-
firstVisibleItemIndex = currentListState.firstVisibleItemIndex,
243-
firstVisibleItemScrollOffset = currentListState.firstVisibleItemScrollOffset
240+
itemIndex = currentListState.firstVisibleItemIndex,
241+
scrollOffset = currentListState.firstVisibleItemScrollOffset
244242
)
245243
}
246244
.pairwise()
247245
.collect { (previous, current) ->
248246
if (currentListState.isScrollInProgress &&
249-
isScrollingDown(previous, current) &&
247+
current.isScrollingDownFrom(previous) &&
250248
isAtBottom
251249
) {
252250
latestReadAllFeed()
@@ -349,8 +347,18 @@ private fun FeedScreenPreview() {
349347
hasFollowing = false,
350348
recommendRefreshing = false,
351349
followingRefreshing = false,
352-
onFeedRefresh = {},
353-
isScrollingDown = { _, _ -> false }
350+
onFeedRefresh = {}
354351
)
355352
}
356353
}
354+
355+
private data class FeedScrollState(
356+
val itemIndex: Int,
357+
val scrollOffset: Int
358+
) {
359+
fun isScrollingDownFrom(previous: FeedScrollState?): Boolean {
360+
if (previous == null) return false
361+
return itemIndex > previous.itemIndex ||
362+
(itemIndex == previous.itemIndex && scrollOffset > previous.scrollOffset)
363+
}
364+
}

β€Žpresentation/feed/src/main/java/com/hilingual/presentation/feed/FeedViewModel.ktβ€Ž

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,6 @@ internal class FeedViewModel @Inject constructor(
188188
}
189189
}
190190

191-
fun isScrollingDown(previous: FeedScrollState?, current: FeedScrollState): Boolean {
192-
if (previous == null) return false
193-
194-
return current.firstVisibleItemIndex > previous.firstVisibleItemIndex ||
195-
(
196-
current.firstVisibleItemIndex == previous.firstVisibleItemIndex &&
197-
current.firstVisibleItemScrollOffset > previous.firstVisibleItemScrollOffset
198-
)
199-
}
200-
201191
private fun UiState<ImmutableList<FeedItemUiModel>>.updateIfSuccess(
202192
transform: (ImmutableList<FeedItemUiModel>) -> ImmutableList<FeedItemUiModel>
203193
): UiState<ImmutableList<FeedItemUiModel>> {
@@ -246,11 +236,6 @@ internal class FeedViewModel @Inject constructor(
246236
}
247237
}
248238

249-
internal data class FeedScrollState(
250-
val firstVisibleItemIndex: Int,
251-
val firstVisibleItemScrollOffset: Int
252-
)
253-
254239
sealed interface FeedSideEffect {
255240
data class ShowErrorDialog(val onRetry: () -> Unit) : FeedSideEffect
256241

0 commit comments

Comments
Β (0)