Skip to content

Commit

Permalink
Update metadata, minor code fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
aleksey-saenko committed Jan 14, 2024
1 parent 8325b4b commit 76946ad
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@ import com.mrsep.musicrecognizer.presentation.MainActivity
import dagger.hilt.android.HiltAndroidApp
import okhttp3.OkHttpClient
import javax.inject.Inject
import javax.inject.Provider
import com.mrsep.musicrecognizer.core.strings.R as StringsR
import com.mrsep.musicrecognizer.core.ui.R as UiR

@HiltAndroidApp
class MusicRecognizerApp : Application(), ImageLoaderFactory, Configuration.Provider {

@Inject
lateinit var okHttpClient: OkHttpClient
lateinit var okHttpClient: Provider<OkHttpClient>

@Inject
lateinit var workerFactory: HiltWorkerFactory
Expand All @@ -36,7 +37,7 @@ class MusicRecognizerApp : Application(), ImageLoaderFactory, Configuration.Prov

override fun newImageLoader(): ImageLoader {
return ImageLoader.Builder(this)
.okHttpClient { okHttpClient }
.okHttpClient { okHttpClient.get() }
.crossfade(true)
.respectCacheHeaders(false)
.build()
Expand Down
5 changes: 5 additions & 0 deletions core/ui/src/main/res/drawable/baseline_content_copy_24.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"/>
</vector>
4 changes: 4 additions & 0 deletions fastlane/metadata/android/en-US/changelogs/12.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* Added option to recognize on app startup (shortcut and preference)
* Added simple autoscroll function for lyrics
* Added ability to select and copy lyrics text and adjust font size while zooming
* Fixed issue with search redirecting to Wikipedia app
4 changes: 4 additions & 0 deletions fastlane/metadata/android/ru/changelogs/12.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* Добавлен ярлык и постоянная настройка для запуска распознавания при запуске приложения
* Добавлена простая автоматическая прокрутка для текста песни
* Добавлена возможность выделять и копировать текст песни и регулировать размер текста жестом зума
* Исправлена проблема с перенаправлением поискового запроса в приложение Wikipedia
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,8 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.compose.LifecycleStartEffect
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.mrsep.musicrecognizer.core.ui.components.LoadingStub
import com.mrsep.musicrecognizer.core.ui.components.rememberMultiSelectionState
Expand Down Expand Up @@ -47,15 +45,11 @@ internal fun QueueScreen(
Toast.makeText(context, playerStatus.message, Toast.LENGTH_LONG).show()
}
}
val lifecycle = LocalLifecycleOwner.current.lifecycle
DisposableEffect(Unit) {
val observer = LifecycleEventObserver { _, event ->
if (event == Lifecycle.Event.ON_STOP) viewModel.stopAudioPlayer()
LifecycleStartEffect(viewModel) {
onStopOrDispose {
viewModel.stopAudioPlayer()
}
lifecycle.addObserver(observer)
onDispose { lifecycle.removeObserver(observer) }
}

val multiSelectionState = rememberMultiSelectionState<Int>(state.enqueuedList)
BackHandler(
enabled = multiSelectionState.multiselectEnabled,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,35 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Share
import androidx.compose.material3.FilledTonalButton
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import com.mrsep.musicrecognizer.core.ui.util.copyTextToClipboard
import com.mrsep.musicrecognizer.core.ui.util.shareText
import com.mrsep.musicrecognizer.feature.recognition.domain.model.RecognitionTask
import com.mrsep.musicrecognizer.core.ui.R as UiR
import com.mrsep.musicrecognizer.core.strings.R as StringsR
Expand All @@ -44,6 +51,7 @@ internal fun AnimatedVisibilityScope.FatalErrorShield(
onRetryClick: () -> Unit,
onNavigateToQueue: (recognitionId: Int?) -> Unit
) {
val context = LocalContext.current
BaseShield(
modifier = modifier,
onDismissClick = onDismissClick
Expand Down Expand Up @@ -80,17 +88,40 @@ internal fun AnimatedVisibilityScope.FatalErrorShield(
shape = MaterialTheme.shapes.small,
modifier = Modifier.padding(top = 16.dp)
) {
Text(
text = moreInfo,
textAlign = TextAlign.Start,
style = MaterialTheme.typography.bodySmall.copy(
fontFamily = FontFamily.Monospace,
color = Color.Green
),
modifier = Modifier
.padding(16.dp)
.horizontalScroll(rememberScrollState())
)
Column(modifier = Modifier.padding(16.dp)) {
Text(
text = moreInfo,
textAlign = TextAlign.Start,
style = MaterialTheme.typography.bodySmall.copy(
fontFamily = FontFamily.Monospace
),
modifier = Modifier
.horizontalScroll(rememberScrollState())
)
Row {
TextButton(
onClick = { context.copyTextToClipboard(moreInfo) },
) {
Icon(
painter = painterResource(UiR.drawable.baseline_content_copy_24),
contentDescription = null
)
Spacer(modifier = Modifier.width(8.dp))
Text(text = stringResource(StringsR.string.copy))
}
Spacer(modifier = Modifier.width(8.dp))
TextButton(
onClick = { context.shareText(subject = "", body = moreInfo) },
) {
Icon(
imageVector = Icons.Default.Share,
contentDescription = null
)
Spacer(modifier = Modifier.width(8.dp))
Text(text = stringResource(StringsR.string.share))
}
}
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.Stable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.movableContentOf
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -203,13 +204,22 @@ internal fun LyricsScreen(
enabled = !autoScrollStarted
)
) {
SelectionContainer {
Text(
text = uiState.lyrics,
textAlign = TextAlign.Center,
style = uiState.fontStyle.toTextStyle(uiState.themeMode),
modifier = Modifier.fillMaxWidth()
)
val lyricsContent = remember(uiState) {
movableContentOf {
Text(
text = uiState.lyrics,
textAlign = TextAlign.Center,
style = uiState.fontStyle.toTextStyle(uiState.themeMode),
modifier = Modifier.fillMaxWidth()
)
}
}
if (autoScrollStarted) {
lyricsContent()
} else {
SelectionContainer {
lyricsContent()
}
}
}
}
Expand Down

0 comments on commit 76946ad

Please sign in to comment.