Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,7 @@ playing stuff.

## :new: What's new

The latest update to the **RecorderApp** contains a new onboarding screen added with some settings
route improvements
The latest update to the **RecorderApp** contains some improvements with the media player

## :next_track_button: What's next

Expand Down Expand Up @@ -124,5 +123,5 @@ GitHub. Your feedback is invaluable!

### :end: Conclusion

The app can be marked as finished for now.A significant amount of time and effort has been invested
The app can be marked as finished for now. A significant amount of time and effort has been invested
in this project hope you all love it.
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ android {
applicationId = "com.eva.recorderapp"
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.compileSdk.get().toInt()
versionCode = 12
versionName = "1.4.2"
versionCode = 13
versionName = "1.4.3"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down
30 changes: 28 additions & 2 deletions app/src/main/java/com/eva/recorderapp/RecorderApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ package com.eva.recorderapp
import android.app.Application
import android.app.NotificationChannel
import android.app.NotificationManager
import android.os.StrictMode
import androidx.compose.runtime.Composer
import androidx.compose.runtime.ExperimentalComposeRuntimeApi
import androidx.compose.runtime.tooling.ComposeStackTraceMode
import androidx.core.app.NotificationCompat
import androidx.core.content.getSystemService
import androidx.hilt.work.HiltWorkerFactory
Expand Down Expand Up @@ -37,8 +39,8 @@ class RecorderApp : Application(), Configuration.Provider {
override fun onCreate() {
super.onCreate()

// enabled compose stack-trace
Composer.setDiagnosticStackTraceEnabled(enabled = BuildConfig.DEBUG)
enableComposeStackTrace()
enableStrictMode()

createNotificationChannels()

Expand Down Expand Up @@ -86,4 +88,28 @@ class RecorderApp : Application(), Configuration.Provider {

notificationManager?.createNotificationChannels(channels)
}


private fun enableComposeStackTrace() {
if (!BuildConfig.DEBUG) return
Composer.setDiagnosticStackTraceMode(ComposeStackTraceMode.SourceInformation)
}

private fun enableStrictMode() {
if (!BuildConfig.DEBUG) return
// thread policy
StrictMode.setThreadPolicy(
StrictMode.ThreadPolicy.Builder()
.detectAll() // Detect all thread violations
.penaltyLog() // Log to console
.build()
)

StrictMode.setVmPolicy(
StrictMode.VmPolicy.Builder()
.detectAll() // Detect all VM violations
.penaltyLog()
.build()
)
}
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
@file:OptIn(ExperimentalSharedTransitionApi::class)

package com.eva.ui.animation

import androidx.compose.animation.BoundsTransform
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.animation.ExperimentalSharedTransitionApi
import androidx.compose.animation.SharedTransitionScope
import androidx.compose.animation.SharedTransitionScope.ResizeMode
import androidx.compose.animation.SharedTransitionScope.ResizeMode.Companion.ScaleToBounds
import androidx.compose.animation.core.Spring.StiffnessMediumLow
import androidx.compose.animation.core.VisibilityThreshold
import androidx.compose.animation.core.spring
import androidx.compose.animation.fadeIn
import androidx.compose.animation.fadeOut
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment.Companion.Center
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
import androidx.compose.ui.geometry.Rect
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.layout.ContentScale
import com.eva.ui.utils.LocalSharedTransitionScopeProvider
import com.eva.ui.utils.LocalSharedTransitionVisibilityScopeProvider
Expand All @@ -32,8 +30,9 @@ fun Modifier.sharedElementWrapper(
key: Any,
renderInOverlayDuringTransition: Boolean = true,
zIndexInOverlay: Float = 0f,
placeHolderSize: SharedTransitionScope.PlaceHolderSize = SharedTransitionScope.PlaceHolderSize.contentSize,
placeHolderSize: SharedTransitionScope.PlaceholderSize = SharedTransitionScope.PlaceholderSize.ContentSize,
boundsTransform: BoundsTransform = BoundsTransform { _, _ -> NormalSpring },
clipShape: Shape = RectangleShape,
) = composed {
val transitionScope = LocalSharedTransitionScopeProvider.current ?: return@composed Modifier
val visibilityScope =
Expand All @@ -47,8 +46,9 @@ fun Modifier.sharedElementWrapper(
animatedVisibilityScope = visibilityScope,
renderInOverlayDuringTransition = renderInOverlayDuringTransition,
zIndexInOverlay = zIndexInOverlay,
placeHolderSize = placeHolderSize,
boundsTransform = boundsTransform
placeholderSize = placeHolderSize,
boundsTransform = boundsTransform,
clipInOverlayDuringTransition = OverlayClip(clipShape)
)
}
}
Expand All @@ -58,10 +58,14 @@ fun Modifier.sharedBoundsWrapper(
enter: EnterTransition = fadeIn(),
exit: ExitTransition = fadeOut(),
renderInOverlayDuringTransition: Boolean = true,
resizeMode: ResizeMode = ScaleToBounds(ContentScale.FillWidth, Center),
resizeMode: SharedTransitionScope.ResizeMode = SharedTransitionScope.ResizeMode.scaleToBounds(
ContentScale.FillWidth,
Center
),
zIndexInOverlay: Float = 0f,
placeHolderSize: SharedTransitionScope.PlaceHolderSize = SharedTransitionScope.PlaceHolderSize.contentSize,
placeHolderSize: SharedTransitionScope.PlaceholderSize = SharedTransitionScope.PlaceholderSize.ContentSize,
boundsTransform: BoundsTransform = BoundsTransform { _, _ -> NormalSpring },
clipShape: Shape = RectangleShape,
) = composed {

val transitionScope = LocalSharedTransitionScopeProvider.current ?: return@composed Modifier
Expand All @@ -79,8 +83,38 @@ fun Modifier.sharedBoundsWrapper(
boundsTransform = boundsTransform,
renderInOverlayDuringTransition = renderInOverlayDuringTransition,
zIndexInOverlay = zIndexInOverlay,
placeHolderSize = placeHolderSize,
placeholderSize = placeHolderSize,
resizeMode = resizeMode,
clipInOverlayDuringTransition = OverlayClip(clipShape)
)
}
}

@Composable
fun Modifier.sharedTransitionSkipChildSize(): Modifier {
val transitionScope = LocalSharedTransitionScopeProvider.current ?: return this

return with(transitionScope) {
[email protected]()
}
}

@Composable
fun Modifier.sharedTransitionSkipChildPosition(): Modifier {
val transitionScope = LocalSharedTransitionScopeProvider.current ?: return this

return with(transitionScope) {
this@sharedTransitionSkipChildPosition
.skipToLookaheadPosition()
}
}


@Composable
fun Modifier.sharedTransitionRenderInOverlay(zIndexInOverlay: Float): Modifier {
val transitionScope = LocalSharedTransitionScopeProvider.current ?: return this
return with(transitionScope) {
this@sharedTransitionRenderInOverlay
.renderInSharedTransitionScopeOverlay(zIndexInOverlay = zIndexInOverlay)
}
}
42 changes: 26 additions & 16 deletions core/ui/src/main/java/com/eva/ui/navigation/AnimatedComposable.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.animation.SizeTransform
import androidx.compose.animation.core.EaseIn
import androidx.compose.animation.core.EaseInCubic
import androidx.compose.animation.core.EaseOut
import androidx.compose.animation.core.EaseOutCubic
import androidx.compose.animation.core.FastOutLinearInEasing
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.LinearOutSlowInEasing
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.spring
import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn
Expand All @@ -25,30 +25,40 @@ inline fun <reified T : Any> NavGraphBuilder.animatedComposable(
typeMap: Map<KType, @JvmSuppressWildcards NavType<*>> = emptyMap(),
deepLinks: List<NavDeepLink> = emptyList(),
noinline sizeTransform: (AnimatedContentTransitionScope<NavBackStackEntry>.() -> @JvmSuppressWildcards SizeTransform?)? = {
SizeTransform(clip = false) { _, _ -> spring() }
SizeTransform(clip = false) { _, _ -> spring(stiffness = Spring.StiffnessMediumLow) }
},
noinline content: @Composable AnimatedContentScope.(NavBackStackEntry) -> Unit,
) = composable<T>(
typeMap = typeMap,
deepLinks = deepLinks,
enterTransition = { slideIntoContainerAndFadeIn },
exitTransition = { slideOutOfContainerAndFadeOut },
popEnterTransition = { slideIntoContainerAndFadeIn },
popExitTransition = { slideOutOfContainerAndFadeOut },
enterTransition = { slideInFromRightAndFadeIn },
exitTransition = { slideOutToLeftAndFadeOut },
popEnterTransition = { slideInFromLeftAndFadeIn },
popExitTransition = { slideOutToRightAndFadeOut },
sizeTransform = sizeTransform,
content = content
)

val AnimatedContentTransitionScope<NavBackStackEntry>.slideIntoContainerAndFadeIn: EnterTransition
val AnimatedContentTransitionScope<NavBackStackEntry>.slideInFromRightAndFadeIn: EnterTransition
get() = slideIntoContainer(
AnimatedContentTransitionScope.SlideDirection.Up,
animationSpec = tween(durationMillis = 300, easing = EaseInCubic)
) + fadeIn(animationSpec = tween(easing = EaseIn, durationMillis = 300))
animationSpec = tween(durationMillis = 300, easing = LinearEasing)
) + fadeIn(animationSpec = tween(easing = LinearOutSlowInEasing, durationMillis = 300))


val AnimatedContentTransitionScope<NavBackStackEntry>.slideOutOfContainerAndFadeOut: ExitTransition
val AnimatedContentTransitionScope<NavBackStackEntry>.slideOutToLeftAndFadeOut: ExitTransition
get() = slideOutOfContainer(
AnimatedContentTransitionScope.SlideDirection.Up,
animationSpec = tween(durationMillis = 300, easing = EaseOutCubic)
) + fadeOut(animationSpec = tween(easing = EaseOut, durationMillis = 300))
animationSpec = tween(durationMillis = 300, easing = LinearEasing)
) + fadeOut(animationSpec = tween(easing = FastOutLinearInEasing, durationMillis = 300))

val AnimatedContentTransitionScope<NavBackStackEntry>.slideInFromLeftAndFadeIn: EnterTransition
get() = slideIntoContainer(
AnimatedContentTransitionScope.SlideDirection.Down,
animationSpec = tween(durationMillis = 300, easing = LinearEasing)
) + fadeIn(animationSpec = tween(easing = LinearOutSlowInEasing, durationMillis = 300))

val AnimatedContentTransitionScope<NavBackStackEntry>.slideOutToRightAndFadeOut: ExitTransition
get() = slideOutOfContainer(
AnimatedContentTransitionScope.SlideDirection.Down,
animationSpec = tween(durationMillis = 300, easing = LinearEasing)
) + fadeOut(animationSpec = tween(easing = FastOutLinearInEasing, durationMillis = 300))
8 changes: 5 additions & 3 deletions core/ui/src/main/java/com/eva/ui/navigation/PlayerSubGraph.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package com.eva.ui.navigation

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
sealed interface PlayerSubGraph {

// we need audio id to mark to get the route data from saved state handle
@Serializable
data class NavGraph(val audioId: Long) : PlayerSubGraph
data class NavGraph(@SerialName("audioId") val audioId: Long) : PlayerSubGraph

// we need the audio id to let deep links work
@Serializable
data class AudioPlayerRoute(val audioId: Long) : PlayerSubGraph
data class AudioPlayerRoute(@SerialName("audioId") val audioId: Long) : PlayerSubGraph

// we are using the audio id to set up the player again so audio id
@Serializable
data object AudioEditorRoute : PlayerSubGraph
data class AudioEditorRoute(@SerialName("audioId") val audioId: Long) : PlayerSubGraph
}
22 changes: 6 additions & 16 deletions core/ui/src/main/res/drawable/ic_music_file.xml
Original file line number Diff line number Diff line change
@@ -1,19 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="32"
android:viewportHeight="32">

android:width="110dp"
android:height="135dp"
android:viewportWidth="110"
android:viewportHeight="135">
<path
android:fillColor="#000000"
android:pathData="M26.41,7l3.59,-3.59l-1.41,-1.41l-3.59,3.59l-3.59,-3.59l-1.41,1.41l3.59,3.59l-3.59,3.59l1.41,1.41l3.59,-3.59l3.59,3.59l1.41,-1.41l-3.59,-3.59z" />

<path
android:fillColor="#000000"
android:pathData="M24,15v7.556A3.955,3.955 0,0 0,22 22a4,4 0,1 0,4 4V15ZM22,28a2,2 0,1 1,2 -2A2.003,2.003 0,0 1,22 28Z" />

<path
android:fillColor="#000000"
android:pathData="M17,6H10A2.002,2.002 0,0 0,8 8V22.556A3.956,3.956 0,0 0,6 22a4,4 0,1 0,4 4V8h7ZM6,28a2,2 0,1 1,2 -2A2.002,2.002 0,0 1,6 28Z" />

android:fillColor="#FF000000"
android:pathData="m51.09,45.16c1.69,0.44 3.41,0.7 5.16,0.78 1.46,0.07 2.92,-0.26 4.22,-0.94 0.48,-0.31 0.77,-0.84 0.78,-1.41v-9.06c-0.01,-0.57 -0.3,-1.1 -0.78,-1.41 -0.47,-0.32 -1.09,-0.32 -1.56,0 -2.19,1.09 -4.38,0.47 -7.03,-0.16s-6.09,-1.72 -9.38,0.16c-0.53,0.26 -0.84,0.82 -0.78,1.41v18.28c-1.79,-1.75 -4.21,-2.7 -6.72,-2.66 -4,0 -7.59,2.42 -9.11,6.11 -1.51,3.7 -0.64,7.95 2.21,10.75 2.85,2.8 7.11,3.61 10.78,2.03 3.68,-1.57 6.03,-5.21 5.97,-9.2v-15.31c1.88,-0.63 3.91,0 6.25,0.63zM35,66.56c-2.72,0 -5.17,-1.64 -6.21,-4.15 -1.04,-2.51 -0.46,-5.4 1.46,-7.32s4.81,-2.5 7.32,-1.46c2.51,1.04 4.15,3.49 4.15,6.21 0.04,1.79 -0.65,3.53 -1.92,4.8s-3,1.96 -4.8,1.92zM44.84,41.41v-5.94c2.09,-0.46 4.26,-0.29 6.25,0.47 2.25,0.81 4.66,1.08 7.03,0.78v5.78c-1.88,0.78 -3.91,0.16 -6.25,-0.47 -1.69,-0.44 -3.41,-0.7 -5.16,-0.78zM86.25,73.44v-25c0.03,-0.5 -0.21,-0.97 -0.63,-1.25 -0.36,-0.26 -0.81,-0.38 -1.25,-0.31l-25,6.25c-0.71,0.2 -1.21,0.83 -1.25,1.56v18.75c-1.36,-1 -3,-1.55 -4.69,-1.56 -4.28,0.08 -7.73,3.53 -7.81,7.81 0,2.07 0.82,4.06 2.29,5.52 1.46,1.46 3.45,2.29 5.52,2.29s4.06,-0.82 5.52,-2.29c1.46,-1.46 2.29,-3.45 2.29,-5.52 0.01,-0.37 -0.04,-0.74 -0.16,-1.09 0.11,-0.13 0.17,-0.3 0.16,-0.47v-14.38l21.88,-5.47v8.91c-1.36,-1 -3,-1.55 -4.69,-1.56 -4.28,0.08 -7.73,3.53 -7.81,7.81 0,2.07 0.82,4.06 2.29,5.52 1.46,1.46 3.45,2.29 5.52,2.29 4.32,0 7.81,-3.5 7.81,-7.81zM53.44,84.38c-2.59,0 -4.69,-2.1 -4.69,-4.69 0.08,-2.55 2.13,-4.61 4.69,-4.69 2.59,0 4.69,2.1 4.69,4.69 0.04,1.26 -0.44,2.47 -1.32,3.36 -0.89,0.89 -2.11,1.37 -3.36,1.32zM61.25,60.47v-4.53l21.88,-5.47v4.53zM73.75,73.44c0.08,-2.55 2.13,-4.61 4.69,-4.69 2.59,0 4.69,2.1 4.69,4.69 0.04,1.26 -0.44,2.47 -1.32,3.36 -0.89,0.89 -2.11,1.37 -3.36,1.32 -2.59,0 -4.69,-2.1 -4.69,-4.69zM88.59,32.5h0.47c0.65,-0.04 1.21,-0.47 1.41,-1.09 0.44,-1.36 1.02,-2.66 1.72,-3.91 0.17,0.47 0.43,0.89 0.78,1.25 0.76,1.38 2.18,2.27 3.75,2.34 1.16,0.07 2.28,-0.46 2.97,-1.41 0.65,-0.85 0.98,-1.9 0.94,-2.97 0,-2.97 -2.03,-6.09 -5.16,-6.09 -0.78,-0.04 -1.55,0.18 -2.19,0.63 -0.32,-1.6 -0.32,-3.25 0,-4.84 0.15,-0.39 0.14,-0.83 -0.04,-1.21 -0.18,-0.38 -0.5,-0.68 -0.9,-0.82 -0.41,-0.14 -0.87,-0.11 -1.26,0.1 -0.39,0.21 -0.67,0.57 -0.77,1 -0.59,2.74 -0.48,5.59 0.31,8.28 -1.32,2.04 -2.37,4.25 -3.13,6.56 -0.15,0.43 -0.12,0.91 0.09,1.32 0.21,0.41 0.57,0.72 1,0.87zM95.47,23.91c1.09,0 2.03,1.56 2.03,2.97 0.01,0.39 -0.1,0.77 -0.31,1.09h-0.47c-0.31,0 -0.78,-0.31 -1.25,-0.94 -0.51,-0.79 -0.93,-1.62 -1.25,-2.5 0.3,-0.39 0.76,-0.63 1.25,-0.63zM26.72,39.06c1.56,-1.72 1.09,-4.06 -0.78,-5.78s-6.09,-2.66 -8.13,-0.16c-0.5,0.57 -0.82,1.28 -0.94,2.03 -1.45,-0.71 -2.69,-1.79 -3.59,-3.13 -0.22,-0.36 -0.58,-0.61 -1,-0.7 -0.41,-0.09 -0.84,-0.01 -1.19,0.23 -0.71,0.41 -0.98,1.29 -0.63,2.03 1.79,2.27 4.09,4.09 6.72,5.31 0.66,2.32 1.66,4.54 2.97,6.56 0.26,0.45 0.73,0.75 1.25,0.78h0.94c0.68,-0.52 0.88,-1.44 0.47,-2.19 -0.75,-1.18 -1.38,-2.44 -1.88,-3.75l1.41,0.31c1.63,0.26 3.28,-0.33 4.38,-1.56zM20,36.72c-0.19,-0.54 -0.07,-1.14 0.31,-1.56 0.63,-0.94 2.5,-0.47 3.59,0.47s0.78,0.94 0.47,1.41l-1.72,0.31zM15.16,92.97c-2.53,0 -4.81,1.52 -5.77,3.86 -0.97,2.34 -0.43,5.02 1.36,6.81 1.79,1.79 4.47,2.32 6.81,1.36 2.34,-0.96 3.86,-3.25 3.86,-5.77 0,-1.66 -0.66,-3.25 -1.83,-4.42s-2.76,-1.83 -4.42,-1.83zM15.16,102.34c-1.27,0 -2.4,-0.76 -2.89,-1.93 -0.48,-1.17 -0.21,-2.51 0.68,-3.41 0.89,-0.89 2.24,-1.16 3.41,-0.68 1.17,0.48 1.93,1.62 1.93,2.89 0,0.83 -0.33,1.63 -0.91,2.21 -0.59,0.59 -1.38,0.91 -2.21,0.91zM96.41,55.47c-2.59,0 -4.69,2.1 -4.69,4.69s2.1,4.69 4.69,4.69 4.69,-2.1 4.69,-4.69 -2.1,-4.69 -4.69,-4.69zM96.41,61.72c-0.43,0.05 -0.86,-0.1 -1.16,-0.4 -0.3,-0.3 -0.45,-0.73 -0.4,-1.16 0,-0.86 0.7,-1.56 1.56,-1.56s1.56,0.7 1.56,1.56c0.05,0.43 -0.1,0.86 -0.4,1.16 -0.3,0.3 -0.73,0.45 -1.16,0.4zM84.22,92.81c-3.13,-4.22 -8.91,-6.09 -9.22,-6.25 -0.37,-0.15 -0.79,-0.13 -1.15,0.05 -0.36,0.18 -0.62,0.5 -0.73,0.89 -0.15,0.39 -0.14,0.83 0.04,1.21 0.18,0.38 0.5,0.68 0.9,0.82 2,0.79 3.89,1.84 5.63,3.13 -2.66,0.31 -5,1.41 -5.63,3.59s0.63,4.38 2.81,6.25c1.43,1.29 3.24,2.05 5.16,2.19 0.65,-0.01 1.29,-0.17 1.88,-0.47 1.09,-0.47 2.5,-1.72 2.5,-4.84 0.06,-0.85 -0.04,-1.7 -0.31,-2.5 2.08,0.89 3.48,2.89 3.59,5.16 -0.05,0.43 0.1,0.86 0.4,1.16 0.3,0.3 0.73,0.45 1.16,0.4 0.83,-0.07 1.49,-0.73 1.56,-1.56 -0.31,-5.47 -4.53,-8.28 -8.59,-9.22zM82.5,101.41c-1.32,0.13 -2.64,-0.33 -3.59,-1.25 -1.41,-1.25 -2.03,-2.5 -1.88,-3.13s1.88,-1.41 4.06,-1.41h1.25c0.64,1.09 0.96,2.33 0.94,3.59 0,0.78 -0.16,1.88 -0.78,2.19zM40.31,88.75c0,0.41 -0.16,0.81 -0.46,1.11s-0.69,0.46 -1.11,0.46h-2.97v2.97c0,0.41 -0.16,0.81 -0.46,1.11s-0.69,0.46 -1.11,0.46c-0.83,-0.07 -1.49,-0.73 -1.56,-1.56v-2.97h-2.81c-0.43,0.05 -0.86,-0.1 -1.16,-0.4 -0.3,-0.3 -0.45,-0.73 -0.4,-1.16 0,-0.86 0.7,-1.56 1.56,-1.56h2.81v-2.81c0,-0.86 0.7,-1.56 1.56,-1.56 0.43,-0.05 0.86,0.1 1.16,0.4 0.3,0.3 0.45,0.73 0.4,1.16v2.81h2.97c0.83,0.07 1.49,0.73 1.56,1.56zM52.5,23.13c-0.22,-0.37 -0.28,-0.82 -0.16,-1.23 0.12,-0.41 0.4,-0.76 0.79,-0.96l2.5,-1.41 -1.56,-2.5c-0.22,-0.37 -0.28,-0.82 -0.16,-1.23 0.12,-0.41 0.4,-0.76 0.79,-0.96 0.74,-0.36 1.62,-0.08 2.03,0.63l1.56,2.5 2.34,-1.56c0.37,-0.22 0.82,-0.28 1.23,-0.16 0.41,0.12 0.76,0.4 0.96,0.79 0.38,0.7 0.18,1.57 -0.47,2.03l-2.5,1.56 1.41,2.5c0.23,0.32 0.3,0.73 0.21,1.12 -0.09,0.39 -0.34,0.71 -0.68,0.91l-0.78,0.31c-0.57,-0.01 -1.1,-0.3 -1.41,-0.78l-1.41,-2.5 -2.5,1.41 -0.78,0.31c-0.56,-0.04 -1.08,-0.32 -1.41,-0.78z" />
</vector>
1 change: 1 addition & 0 deletions core/ui/src/main/res/values-bn/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -235,4 +235,5 @@
<string name="action_previous">আগের</string>
<string name="action_continue">শুরু করুন</string>
<string name="onboarding_page_welcome_message">%s এ স্বাগত</string>
<string name="move_back_to_list">লিস্টে ফিরে যান</string>
</resources>
1 change: 1 addition & 0 deletions core/ui/src/main/res/values-hi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -235,4 +235,5 @@
<string name="action_previous">पिछला</string>
<string name="action_continue">जारी रखें</string>
<string name="onboarding_page_welcome_message">%s में आपका स्वागत है</string>
<string name="move_back_to_list">लिस्ट पर वापस जाएँ</string>
</resources>
1 change: 1 addition & 0 deletions core/ui/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -268,4 +268,5 @@
<string name="action_previous">Previous</string>
<string name="action_continue">Continue</string>
<string name="onboarding_page_welcome_message">Welcome to %s</string>
<string name="move_back_to_list">Go back to List</string>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.eva.player.data

internal object MediaPlayerConstants {
const val PLAYER_AUDIO_FILE_ID_KEY = "PLAYER_AUDIO_ID"
}
Loading
Loading