~repos /only-bible-app
git clone https://pyrossh.dev/repos/only-bible-app.git
The only bible app you will ever need. No ads. No in-app purchases. No distractions.
97341cce
—
pyrossh 1 year ago
add SimpleParser
- .idea/deploymentTargetSelector.xml +3 -0
- .idea/misc.xml +0 -1
- .idea/other.xml +88 -0
- composeApp/build.gradle.kts +3 -0
- composeApp/src/androidMain/kotlin/dev/pyrossh/only_bible_app/Platform.android.kt +5 -6
- composeApp/src/commonMain/kotlin/dev/pyrossh/only_bible_app/composables/VerseHeading.kt +0 -1
- composeApp/src/iosMain/kotlin/dev/pyrossh/only_bible_app/Platform.ios.kt +15 -0
.idea/deploymentTargetSelector.xml
CHANGED
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
</DropdownSelection>
|
|
14
14
|
<DialogSelection />
|
|
15
15
|
</SelectionState>
|
|
16
|
+
<SelectionState runConfigName="composeApp">
|
|
17
|
+
<option name="selectionMode" value="DROPDOWN" />
|
|
18
|
+
</SelectionState>
|
|
16
19
|
</selectionStates>
|
|
17
20
|
</component>
|
|
18
21
|
</project>
|
.idea/misc.xml
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
1
|
<project version="4">
|
|
3
2
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
|
4
3
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_19" default="true" project-jdk-name="corretto-19" project-jdk-type="JavaSDK">
|
.idea/other.xml
CHANGED
|
@@ -28,6 +28,17 @@
|
|
|
28
28
|
<option name="screenX" value="1080" />
|
|
29
29
|
<option name="screenY" value="2160" />
|
|
30
30
|
</PersistentDeviceSelectionData>
|
|
31
|
+
<PersistentDeviceSelectionData>
|
|
32
|
+
<option name="api" value="34" />
|
|
33
|
+
<option name="brand" value="Lenovo" />
|
|
34
|
+
<option name="codename" value="TB370FU" />
|
|
35
|
+
<option name="id" value="TB370FU" />
|
|
36
|
+
<option name="manufacturer" value="Lenovo" />
|
|
37
|
+
<option name="name" value="Tab P12" />
|
|
38
|
+
<option name="screenDensity" value="340" />
|
|
39
|
+
<option name="screenX" value="1840" />
|
|
40
|
+
<option name="screenY" value="2944" />
|
|
41
|
+
</PersistentDeviceSelectionData>
|
|
31
42
|
<PersistentDeviceSelectionData>
|
|
32
43
|
<option name="api" value="31" />
|
|
33
44
|
<option name="brand" value="samsung" />
|
|
@@ -72,6 +83,28 @@
|
|
|
72
83
|
<option name="screenX" value="1080" />
|
|
73
84
|
<option name="screenY" value="2400" />
|
|
74
85
|
</PersistentDeviceSelectionData>
|
|
86
|
+
<PersistentDeviceSelectionData>
|
|
87
|
+
<option name="api" value="34" />
|
|
88
|
+
<option name="brand" value="google" />
|
|
89
|
+
<option name="codename" value="caiman" />
|
|
90
|
+
<option name="id" value="caiman" />
|
|
91
|
+
<option name="manufacturer" value="Google" />
|
|
92
|
+
<option name="name" value="Pixel 9 Pro" />
|
|
93
|
+
<option name="screenDensity" value="360" />
|
|
94
|
+
<option name="screenX" value="960" />
|
|
95
|
+
<option name="screenY" value="2142" />
|
|
96
|
+
</PersistentDeviceSelectionData>
|
|
97
|
+
<PersistentDeviceSelectionData>
|
|
98
|
+
<option name="api" value="34" />
|
|
99
|
+
<option name="brand" value="google" />
|
|
100
|
+
<option name="codename" value="comet" />
|
|
101
|
+
<option name="id" value="comet" />
|
|
102
|
+
<option name="manufacturer" value="Google" />
|
|
103
|
+
<option name="name" value="Pixel 9 Pro Fold" />
|
|
104
|
+
<option name="screenDensity" value="390" />
|
|
105
|
+
<option name="screenX" value="2076" />
|
|
106
|
+
<option name="screenY" value="2152" />
|
|
107
|
+
</PersistentDeviceSelectionData>
|
|
75
108
|
<PersistentDeviceSelectionData>
|
|
76
109
|
<option name="api" value="29" />
|
|
77
110
|
<option name="brand" value="samsung" />
|
|
@@ -94,6 +127,17 @@
|
|
|
94
127
|
<option name="screenX" value="1440" />
|
|
95
128
|
<option name="screenY" value="3088" />
|
|
96
129
|
</PersistentDeviceSelectionData>
|
|
130
|
+
<PersistentDeviceSelectionData>
|
|
131
|
+
<option name="api" value="34" />
|
|
132
|
+
<option name="brand" value="samsung" />
|
|
133
|
+
<option name="codename" value="e1q" />
|
|
134
|
+
<option name="id" value="e1q" />
|
|
135
|
+
<option name="manufacturer" value="Samsung" />
|
|
136
|
+
<option name="name" value="Galaxy S24" />
|
|
137
|
+
<option name="screenDensity" value="480" />
|
|
138
|
+
<option name="screenX" value="1080" />
|
|
139
|
+
<option name="screenY" value="2340" />
|
|
140
|
+
</PersistentDeviceSelectionData>
|
|
97
141
|
<PersistentDeviceSelectionData>
|
|
98
142
|
<option name="api" value="33" />
|
|
99
143
|
<option name="brand" value="google" />
|
|
@@ -105,6 +149,17 @@
|
|
|
105
149
|
<option name="screenX" value="2208" />
|
|
106
150
|
<option name="screenY" value="1840" />
|
|
107
151
|
</PersistentDeviceSelectionData>
|
|
152
|
+
<PersistentDeviceSelectionData>
|
|
153
|
+
<option name="api" value="34" />
|
|
154
|
+
<option name="brand" value="google" />
|
|
155
|
+
<option name="codename" value="felix" />
|
|
156
|
+
<option name="id" value="felix" />
|
|
157
|
+
<option name="manufacturer" value="Google" />
|
|
158
|
+
<option name="name" value="Pixel Fold" />
|
|
159
|
+
<option name="screenDensity" value="420" />
|
|
160
|
+
<option name="screenX" value="2208" />
|
|
161
|
+
<option name="screenY" value="1840" />
|
|
162
|
+
</PersistentDeviceSelectionData>
|
|
108
163
|
<PersistentDeviceSelectionData>
|
|
109
164
|
<option name="api" value="33" />
|
|
110
165
|
<option name="brand" value="google" />
|
|
@@ -149,6 +204,17 @@
|
|
|
149
204
|
<option name="screenX" value="720" />
|
|
150
205
|
<option name="screenY" value="1600" />
|
|
151
206
|
</PersistentDeviceSelectionData>
|
|
207
|
+
<PersistentDeviceSelectionData>
|
|
208
|
+
<option name="api" value="34" />
|
|
209
|
+
<option name="brand" value="google" />
|
|
210
|
+
<option name="codename" value="komodo" />
|
|
211
|
+
<option name="id" value="komodo" />
|
|
212
|
+
<option name="manufacturer" value="Google" />
|
|
213
|
+
<option name="name" value="Pixel 9 Pro XL" />
|
|
214
|
+
<option name="screenDensity" value="360" />
|
|
215
|
+
<option name="screenX" value="1008" />
|
|
216
|
+
<option name="screenY" value="2244" />
|
|
217
|
+
</PersistentDeviceSelectionData>
|
|
152
218
|
<PersistentDeviceSelectionData>
|
|
153
219
|
<option name="api" value="33" />
|
|
154
220
|
<option name="brand" value="google" />
|
|
@@ -193,6 +259,17 @@
|
|
|
193
259
|
<option name="screenX" value="1812" />
|
|
194
260
|
<option name="screenY" value="2176" />
|
|
195
261
|
</PersistentDeviceSelectionData>
|
|
262
|
+
<PersistentDeviceSelectionData>
|
|
263
|
+
<option name="api" value="34" />
|
|
264
|
+
<option name="brand" value="samsung" />
|
|
265
|
+
<option name="codename" value="q6q" />
|
|
266
|
+
<option name="id" value="q6q" />
|
|
267
|
+
<option name="manufacturer" value="Samsung" />
|
|
268
|
+
<option name="name" value="SM-F956B" />
|
|
269
|
+
<option name="screenDensity" value="420" />
|
|
270
|
+
<option name="screenX" value="1856" />
|
|
271
|
+
<option name="screenY" value="2160" />
|
|
272
|
+
</PersistentDeviceSelectionData>
|
|
196
273
|
<PersistentDeviceSelectionData>
|
|
197
274
|
<option name="api" value="30" />
|
|
198
275
|
<option name="brand" value="google" />
|
|
@@ -238,6 +315,17 @@
|
|
|
238
315
|
<option name="screenX" value="1600" />
|
|
239
316
|
<option name="screenY" value="2560" />
|
|
240
317
|
</PersistentDeviceSelectionData>
|
|
318
|
+
<PersistentDeviceSelectionData>
|
|
319
|
+
<option name="api" value="34" />
|
|
320
|
+
<option name="brand" value="google" />
|
|
321
|
+
<option name="codename" value="tokay" />
|
|
322
|
+
<option name="id" value="tokay" />
|
|
323
|
+
<option name="manufacturer" value="Google" />
|
|
324
|
+
<option name="name" value="Pixel 9" />
|
|
325
|
+
<option name="screenDensity" value="420" />
|
|
326
|
+
<option name="screenX" value="1080" />
|
|
327
|
+
<option name="screenY" value="2424" />
|
|
328
|
+
</PersistentDeviceSelectionData>
|
|
241
329
|
<PersistentDeviceSelectionData>
|
|
242
330
|
<option name="api" value="29" />
|
|
243
331
|
<option name="brand" value="samsung" />
|
composeApp/build.gradle.kts
CHANGED
|
@@ -74,6 +74,9 @@ kotlin {
|
|
|
74
74
|
implementation(libs.kotlinx.serialization.json)
|
|
75
75
|
implementation(libs.kotlinx.coroutines.core)
|
|
76
76
|
}
|
|
77
|
+
commonTest.dependencies {
|
|
78
|
+
implementation(libs.kotlin.test)
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
|
composeApp/src/androidMain/kotlin/dev/pyrossh/only_bible_app/Platform.android.kt
CHANGED
|
@@ -25,8 +25,7 @@ actual fun shareVerses(verses: List<Verse>) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
actual object SpeechService {
|
|
28
|
-
var isAudioPlaying = false
|
|
29
|
-
val
|
|
28
|
+
val speechSynthesizer = SpeechSynthesizer(
|
|
30
29
|
SpeechConfig.fromSubscription(
|
|
31
30
|
BuildKonfig.SUBSCRIPTION_KEY,
|
|
32
31
|
BuildKonfig.SUBSCRIPTION_REGION,
|
|
@@ -34,10 +33,10 @@ actual object SpeechService {
|
|
|
34
33
|
)
|
|
35
34
|
|
|
36
35
|
actual fun init(onStarted: () -> Unit, onEnded: () -> Unit) {
|
|
37
|
-
|
|
36
|
+
speechSynthesizer.SynthesisStarted.addEventListener { _: Any, _: SpeechSynthesisEventArgs ->
|
|
38
37
|
onStarted()
|
|
39
38
|
}
|
|
40
|
-
|
|
39
|
+
speechSynthesizer.SynthesisCompleted.addEventListener { _: Any, _: SpeechSynthesisEventArgs ->
|
|
41
40
|
onEnded()
|
|
42
41
|
}
|
|
43
42
|
}
|
|
@@ -48,7 +47,7 @@ actual object SpeechService {
|
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
actual fun startTextToSpeech(voiceName: String, text: String) {
|
|
51
|
-
|
|
50
|
+
speechSynthesizer.StartSpeakingSsml(
|
|
52
51
|
"""
|
|
53
52
|
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">
|
|
54
53
|
<voice name="$voiceName">
|
|
@@ -60,6 +59,6 @@ actual object SpeechService {
|
|
|
60
59
|
}
|
|
61
60
|
|
|
62
61
|
actual fun stopTextToSpeech() {
|
|
63
|
-
|
|
62
|
+
speechSynthesizer.StopSpeakingAsync()
|
|
64
63
|
}
|
|
65
64
|
}
|
composeApp/src/commonMain/kotlin/dev/pyrossh/only_bible_app/composables/VerseHeading.kt
CHANGED
|
@@ -18,7 +18,6 @@ fun VerseHeading(
|
|
|
18
18
|
fontType: FontType,
|
|
19
19
|
fontSizeDelta: Int,
|
|
20
20
|
) {
|
|
21
|
-
// val view = LocalView.current
|
|
22
21
|
val navController = LocalNavController.current
|
|
23
22
|
Text(
|
|
24
23
|
modifier = Modifier.padding(bottom = 12.dp),
|
composeApp/src/iosMain/kotlin/dev/pyrossh/only_bible_app/Platform.ios.kt
CHANGED
|
@@ -5,6 +5,7 @@ import androidx.compose.ui.ExperimentalComposeUiApi
|
|
|
5
5
|
import androidx.compose.ui.platform.LocalWindowInfo
|
|
6
6
|
import androidx.compose.ui.unit.Dp
|
|
7
7
|
import androidx.compose.ui.unit.dp
|
|
8
|
+
import dev.pyrossh.only_bible_app.config.BuildKonfig
|
|
8
9
|
import dev.pyrossh.only_bible_app.domain.Verse
|
|
9
10
|
import platform.UIKit.UIScreen
|
|
10
11
|
//import platform.AVKit.Audio
|
|
@@ -26,4 +27,18 @@ actual fun playClickSound() {
|
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
actual fun shareVerses(verses: List<Verse>) {
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
actual object SpeechService {
|
|
33
|
+
actual fun init(onStarted: () -> Unit, onEnded: () -> Unit) {
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
actual fun dispose(onStarted: () -> Unit, onEnded: () -> Unit) {
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
actual fun startTextToSpeech(voiceName: String, text: String) {
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
actual fun stopTextToSpeech() {
|
|
43
|
+
}
|
|
29
44
|
}
|