Skip to content

Commit 9e4fa0c

Browse files
Removed redundant Paging3 code.
Increased sending timeout for WebSocket service. Minor UI changes. Version bumped to 1.1.1.
1 parent 0cf5b0f commit 9e4fa0c

File tree

21 files changed

+28
-79
lines changed

21 files changed

+28
-79
lines changed

app/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ android {
2020
applicationId = "com.mrsep.musicrecognizer"
2121
minSdk = libs.versions.sdkMin.get().toInt()
2222
targetSdk = libs.versions.sdkTarget.get().toInt()
23-
versionCode = 3
24-
versionName = "1.1.0"
23+
versionCode = 4
24+
versionName = "1.1.1"
2525

2626
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2727

@@ -128,7 +128,6 @@ dependencies {
128128
kapt(libs.hilt.compiler)
129129

130130
implementation(libs.coil.compose)
131-
implementation(libs.androidx.paging3.common)
132131

133132
implementation(libs.androidx.workKtx)
134133
implementation(libs.hilt.ext.work)

app/src/main/java/com/mrsep/musicrecognizer/glue/library/adapter/AdapterTrackRepository.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.mrsep.musicrecognizer.glue.library.adapter
22

3-
import androidx.paging.PagingData
4-
import androidx.paging.map
53
import com.mrsep.musicrecognizer.core.common.BidirectionalMapper
64
import com.mrsep.musicrecognizer.core.common.Mapper
75
import com.mrsep.musicrecognizer.data.preferences.UserPreferencesDo
@@ -27,11 +25,6 @@ class AdapterTrackRepository @Inject constructor(
2725
return trackRepositoryDo.isEmptyFlow()
2826
}
2927

30-
override fun getPagedFlow(): Flow<PagingData<Track>> {
31-
return trackRepositoryDo.getPagedFlow()
32-
.map { paging -> paging.map { entity -> trackMapper.map(entity) } }
33-
}
34-
3528
override fun getFilteredFlow(filter: TrackFilter): Flow<List<Track>> {
3629
return trackRepositoryDo.getFilteredFlow(trackFilterMapper.reverseMap(filter))
3730
.map { list -> list.map { entity -> trackMapper.map(entity) } }

core/strings/src/main/res/values-ru/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
<string name="track_not_found_message">Что-то пошло не так, возможно, трек был удален или неправильно изменен</string>
156156
<string name="track_not_found">Трек не найден</string>
157157
<string name="loading">Загрузка</string>
158-
<string name="ver">вер. %s</string>
158+
<string name="ver">верcия %s</string>
159159
<string name="music_recognizing_app">Приложение для распознавания музыки</string>
160160
<string name="powered_by_audd">Работает с помощью сервиса AudD®</string>
161161
<string name="github_repository">Репозиторий GitHub</string>

core/strings/src/main/res/values-sk/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
<string name="track_not_found_message">Niečo sa pokazilo, stopa mohla byť odstránená alebo nesprávne upravená</string>
156156
<string name="track_not_found">Skladba sa nenašla</string>
157157
<string name="loading">Načítavam</string>
158-
<string name="ver">"ver. %s"</string>
158+
<string name="ver">"version %s"</string>
159159
<string name="music_recognizing_app">Aplikácia na rozpoznávanie hudby</string>
160160
<string name="powered_by_audd">Poháňaný AudD®</string>
161161
<string name="github_repository">GitHub repozitár</string>

core/strings/src/main/res/values/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@
164164
<string name="track_not_found_message">Something went wrong, the track may have been removed or modified incorrectly</string>
165165
<string name="track_not_found">The track not found</string>
166166
<string name="loading">Loading</string>
167-
<string name="ver">"ver. %s"</string>
167+
<string name="ver">"version %s"</string>
168168
<string name="music_recognizing_app">Music recognition application</string>
169-
<string name="powered_by_audd">Powered by AudD®</string>
169+
<string name="powered_by_audd">Powered by AudD® service</string>
170170
<string name="github_repository">GitHub repository</string>
171171
<string name="license_gnu_gplv3">License GNU GPLv3</string>
172172
<string name="lyrics_text_style">Lyrics text style</string>

data/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ dependencies {
8282

8383
implementation(libs.room.ktx)
8484
implementation(libs.room.runtime)
85-
implementation(libs.room.paging3)
8685
ksp(libs.room.compiler)
8786

8887
implementation(platform(libs.okhttp.bom))
@@ -97,8 +96,6 @@ dependencies {
9796
implementation(libs.moshi.adapters)
9897
ksp(libs.moshi.codegen)
9998

100-
implementation(libs.androidx.paging3.runtimeKtx)
101-
10299
testImplementation(libs.junit4)
103100
testImplementation(libs.kotlinx.coroutinesTest)
104101
testImplementation(libs.turbine)

data/src/main/java/com/mrsep/musicrecognizer/data/remote/audd/websocket/RecognitionStreamServiceImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import javax.inject.Inject
3232
private const val TAG = "RemoteRecognitionStreamServiceImpl"
3333

3434
private const val TIMEOUT_AFTER_RECORDING_FINISHED = 5_000L
35-
private const val TIMEOUT_RECORDING_SENDING = 5_000L
35+
private const val TIMEOUT_RECORDING_SENDING = 8_000L
3636
private const val WEB_SOCKET_RECONNECT_LIMIT = 1
3737

3838
private enum class SendingJobResult {

data/src/main/java/com/mrsep/musicrecognizer/data/track/TrackDao.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.mrsep.musicrecognizer.data.track
22

3-
import androidx.paging.PagingSource
43
import androidx.room.*
54
import androidx.sqlite.db.SupportSQLiteQuery
65
import kotlinx.coroutines.flow.Flow
@@ -85,13 +84,6 @@ interface TrackDao {
8584
)
8685
fun searchFlow(key: String, escapeSymbol: String, limit: Int): Flow<List<TrackEntity>>
8786

88-
89-
@Query("SELECT * FROM track ORDER BY last_recognition_date DESC LIMIT (:limit) OFFSET (:offset)")
90-
suspend fun getWithOffset(limit: Int, offset: Int): List<TrackEntity>
91-
92-
@Query("SELECT * FROM track ORDER BY last_recognition_date DESC")
93-
fun pagingSource(): PagingSource<Int, TrackEntity>
94-
9587
@RawQuery(observedEntities = [TrackEntity::class])
9688
fun getFlowByCustomQuery(query: SupportSQLiteQuery): Flow<List<TrackEntity>>
9789

data/src/main/java/com/mrsep/musicrecognizer/data/track/TrackRepositoryDo.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package com.mrsep.musicrecognizer.data.track
22

3-
import androidx.paging.PagingData
43
import com.mrsep.musicrecognizer.data.preferences.UserPreferencesDo
54
import kotlinx.coroutines.flow.Flow
65

76
interface TrackRepositoryDo {
87

98
fun isEmptyFlow(): Flow<Boolean>
10-
fun getPagedFlow(): Flow<PagingData<TrackEntity>>
11-
suspend fun getWithOffset(pageIndex: Int, pageSize: Int): List<TrackEntity>
129

1310
suspend fun insertOrReplace(vararg track: TrackEntity)
1411
suspend fun insertOrReplaceSaveMetadata(vararg track: TrackEntity): List<TrackEntity>

data/src/main/java/com/mrsep/musicrecognizer/data/track/TrackRepositoryImpl.kt

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package com.mrsep.musicrecognizer.data.track
22

3-
import androidx.paging.Pager
4-
import androidx.paging.PagingConfig
5-
import androidx.paging.PagingData
63
import androidx.sqlite.db.SimpleSQLiteQuery
74
import androidx.sqlite.db.SupportSQLiteQuery
85
import com.mrsep.musicrecognizer.core.common.di.ApplicationScope
@@ -32,26 +29,6 @@ class TrackRepositoryImpl @Inject constructor(
3229
.flowOn(ioDispatcher)
3330
}
3431

35-
override fun getPagedFlow(): Flow<PagingData<TrackEntity>> {
36-
return Pager(
37-
config = PagingConfig(
38-
pageSize = TRACK_PAGE_SIZE,
39-
enablePlaceholders = false,
40-
// maxSize = 100
41-
),
42-
pagingSourceFactory = {
43-
trackDao.pagingSource()
44-
}
45-
).flow.flowOn(ioDispatcher)
46-
}
47-
48-
override suspend fun getWithOffset(pageIndex: Int, pageSize: Int): List<TrackEntity> {
49-
return withContext(ioDispatcher) {
50-
trackDao.getWithOffset(limit = pageSize, offset = pageIndex * pageSize)
51-
}
52-
}
53-
54-
5532
override suspend fun insertOrReplace(vararg track: TrackEntity) {
5633
withContext(persistentCoroutineContext) {
5734
trackDao.insertOrReplace(*track)
@@ -208,7 +185,6 @@ class TrackRepositoryImpl @Inject constructor(
208185

209186
companion object {
210187
private const val ESCAPE_SYMBOL = "/"
211-
private const val TRACK_PAGE_SIZE = 30
212188
}
213189

214190
}

data/src/test/java/com/mrsep/musicrecognizer/data/RecognitionStreamServiceImplTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import org.junit.Test
2121
// test socket replacement
2222

2323
private const val TIMEOUT_AFTER_RECORDING_FINISHED = 5_000L
24-
private const val TIMEOUT_RECORDING_SENDING = 5_000L
24+
private const val TIMEOUT_RECORDING_SENDING = 8_000L
2525

2626
private const val TEST_QUEUE_DELAY = 450L
2727
private const val TEST_RESPONSE_DELAY = 600L
@@ -211,7 +211,7 @@ class RecognitionStreamServiceImplTest {
211211
override fun send(bytes: ByteString): Boolean {
212212
queueSize += bytes.size.toLong()
213213
launch {
214-
clearQueue(bytes, 6_000)
214+
clearQueue(bytes, TIMEOUT_RECORDING_SENDING + 500)
215215
delay(TEST_RESPONSE_DELAY)
216216
outputChannel.send(SocketEvent.ResponseReceived(
217217
RemoteRecognitionResultDo.Error.WrongToken(true))
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
* Added User-Agent to prevent potential network request blocking by remote services
2+
* Fixed non-functioning buttons for the notification service on Android 14
3+
* Improved permission handling for the notification service on Android 14
4+
* Minor UI changes
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
* Добавлен User-Agent, чтобы избежать потенциальных блокировок сетевых запросов удаленным сервисом
2+
* Исправлен баг с неработающими кнопками сервиса уведомлений на Android 14
3+
* Улучшена обработка запросов разрешений для сервиса уведомлений на Android 14
4+
* Незначительные изменения внешнего вида

feature/library/build.gradle.kts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,6 @@ dependencies {
7979
implementation(libs.kotlinx.coroutinesAndroid)
8080
implementation(libs.kotlinx.collectionImmutable)
8181

82-
implementation(libs.androidx.paging3.runtimeKtx)
83-
implementation(libs.androidx.paging3.compose)
84-
implementation(libs.room.paging3)
85-
8682
implementation(libs.accompanist.permissions)
8783

8884
implementation(libs.coil.compose)

feature/library/src/main/java/com/mrsep/musicrecognizer/feature/library/domain/repository/TrackRepository.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.mrsep.musicrecognizer.feature.library.domain.repository
22

3-
import androidx.paging.PagingData
43
import com.mrsep.musicrecognizer.feature.library.domain.model.SearchResult
54
import com.mrsep.musicrecognizer.feature.library.domain.model.Track
65
import com.mrsep.musicrecognizer.feature.library.domain.model.TrackFilter
@@ -10,8 +9,6 @@ interface TrackRepository {
109

1110
fun isEmptyFlow(): Flow<Boolean>
1211

13-
fun getPagedFlow(): Flow<PagingData<Track>>
14-
1512
fun getFilteredFlow(filter: TrackFilter): Flow<List<Track>>
1613

1714
suspend fun search(keyword: String, limit: Int): List<Track>

feature/library/src/main/java/com/mrsep/musicrecognizer/feature/library/presentation/search/LibrarySearchScreen.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ internal fun LibrarySearchScreen(
136136
} else {
137137
LazyColumn(
138138
modifier = Modifier.fillMaxWidth(),
139-
contentPadding = PaddingValues(16.dp),
140-
verticalArrangement = Arrangement.spacedBy(16.dp)
139+
contentPadding = PaddingValues(12.dp),
140+
verticalArrangement = Arrangement.spacedBy(12.dp)
141141
) {
142142
items(thisSearchResult.data.size) { index ->
143143
TrackSearchItem(

feature/library/src/main/java/com/mrsep/musicrecognizer/feature/library/presentation/search/TrackSearchItem.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ internal fun TrackSearchItem(
4444
.fillMaxWidth()
4545
.background(
4646
color = MaterialTheme.colorScheme.surfaceColorAtElevation(1.dp),
47-
shape = MaterialTheme.shapes.medium
47+
shape = MaterialTheme.shapes.large
4848
)
4949
) {
5050
val placeholder = forwardingPainter(
@@ -59,11 +59,11 @@ internal fun TrackSearchItem(
5959
contentDescription = stringResource(StringsR.string.artwork),
6060
contentScale = ContentScale.Crop,
6161
modifier = Modifier
62-
.clip(MaterialTheme.shapes.medium)
62+
.clip(MaterialTheme.shapes.large)
6363
.aspectRatio(1f)
6464
)
6565
Column(
66-
modifier = Modifier.padding(16.dp)
66+
modifier = Modifier.padding(12.dp)
6767
) {
6868
Text(
6969
text = highlightKeyword(track.title, keyword),

feature/preferences/src/main/java/com/mrsep/musicrecognizer/feature/preferences/presentation/about/AboutScreen.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,16 @@ internal fun AboutScreen(
6464
modifier = Modifier.padding(top = 24.dp)
6565
)
6666
Text(
67-
text = stringResource(StringsR.string.music_recognizing_app),
67+
text = stringResource(StringsR.string.ver, version),
6868
modifier = Modifier.padding(top = 8.dp)
6969
)
7070
Text(
71-
text = stringResource(StringsR.string.ver, version),
71+
text = stringResource(StringsR.string.music_recognizing_app),
7272
modifier = Modifier.padding(top = 8.dp)
7373
)
7474
Text(
7575
text = stringResource(StringsR.string.powered_by_audd),
76-
modifier = Modifier.padding(top = 16.dp)
76+
modifier = Modifier.padding(top = 8.dp)
7777
)
7878

7979
Column(

feature/recognition/src/main/java/com/mrsep/musicrecognizer/feature/recognition/domain/model/PlayerStatus.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import kotlin.time.Duration
55

66
sealed class PlayerStatus {
77

8-
data object Idle : PlayerStatus()
8+
data object Idle : PlayerStatus()
99

1010
data class Started(
1111
val record: File,

feature/recognition/src/main/java/com/mrsep/musicrecognizer/feature/recognition/presentation/queuescreen/LazyColumnEnqueuedItem.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ internal fun LazyColumnEnqueuedItem(
9393
Row(
9494
modifier = modifier
9595
.fillMaxWidth()
96-
.clip(MaterialTheme.shapes.extraLarge)
96+
.clip(MaterialTheme.shapes.large)
9797
.background(
9898
color = containerColor,
99-
shape = MaterialTheme.shapes.extraLarge
99+
shape = MaterialTheme.shapes.large
100100
)
101101
.combinedClickable(
102102
onLongClick = { onLongClick(enqueued.id) },

gradle/libs.versions.toml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ materialKolor = "1.2.7"
3131
moshi = "1.15.0"
3232
okhttpBom = "4.12.0"
3333
okhttpCoroutines = "1.0"
34-
paging3 = "3.2.1"
35-
paging3Compose = "3.2.1"
3634
palette = "1.0.0"
3735
protobufJavalite = "3.24.3"
3836
protobufPlugin = "0.9.4"
@@ -63,9 +61,6 @@ androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lif
6361
androidx-lifecycle-runtimeKtx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }
6462
androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycleViewmodelCompose" }
6563
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "androidxNavigation" }
66-
androidx-paging3-runtimeKtx = { group = "androidx.paging", name = "paging-runtime-ktx", version.ref = "paging3" }
67-
androidx-paging3-common = { group = "androidx.paging", name = "paging-common", version.ref = "paging3" }
68-
androidx-paging3-compose = { group = "androidx.paging", name = "paging-compose", version.ref = "paging3Compose" }
6964
androidx-palette = { group = "androidx.palette", name = "palette-ktx", version.ref = "palette" }
7065
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitExt" }
7166
androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" }
@@ -95,7 +90,6 @@ retrofit-converter-scalars = { group = "com.squareup.retrofit2", name = "convert
9590
room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
9691
room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
9792
room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
98-
room-paging3 = { group = "androidx.room", name = "room-paging", version.ref = "room" }
9993
turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" }
10094

10195
[plugins]

0 commit comments

Comments
 (0)