Skip to content

Commit

Permalink
Merge branch 'hotfix/1.3.1' into versions
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeehut committed Nov 8, 2021
2 parents c4921bb + f59425a commit 1b39904
Show file tree
Hide file tree
Showing 13 changed files with 76 additions and 56 deletions.
12 changes: 6 additions & 6 deletions App/Resources/tr.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@

"SETTINGS.AUDIO.OUTPUT_DEVICE.TITLE" = "Çıkış cihazını seçin (AirPlay simgesi ile):";

"SETTINGS.AUDIO.SPEECH_SYNTHESIZER.PITCH_MULTIPLIER" = "Pitch Çarpanı";
"SETTINGS.AUDIO.SPEECH_SYNTHESIZER.PITCH_MULTIPLIER" = "Tonaj derecesi";

"SETTINGS.AUDIO.SPEECH_SYNTHESIZER.SPEECH_RATE" = "Konuşma hızı";

Expand All @@ -102,7 +102,7 @@

"SETTINGS.AUDIO_SPEED_SECTION.FIXED_TEXTS.TITLE" = "Diğer metin hızı";

"SETTINGS.AUDIO_SPEED_SECTION.FOOTER" = "Mevcut iki ses modundan birini seçin, yada ikisinide yada hiç birini. İlkinde, bir dua sırasında pozisyon değiştirildiğinde sadece kısa bir ses çalınır. İkinci modda, tüm metin yüksek sesle okunur, böylece yalnızca dinleyerek kılınabilir. Bu, cihaz cebinizde kilitliyken de çalışır. Bu mesela aynı mescitteki diğer kişiler farkında olmadan tercih edilen dilde kılmak için faydalı olabilir.";
"SETTINGS.AUDIO_SPEED_SECTION.FOOTER" = "Mevcut iki ses modundan birini seçin, yada ikisinide yada hiç birini. İlkinde, bir dua sırasında pozisyon değiştirildiğinde sadece kısa bir ses çalınır. İkinci modda, tüm metin yüksek sesle okunur, böylece yalnızca dinleyerek kılınabilir. Bu, cihaz cebinizde ekran kilitliyken de çalışır. Bu mesela aynı mescid deki diğer kişiler farkında olmadan tercih edilen dilde kılmak için faydalı olabilir.";

"SETTINGS.AUDIO_SPEED_SECTION.MOVEMENT_SOUND_INSTRUMENT.TITLE" = "Hareket tonu";

Expand All @@ -114,17 +114,17 @@

"SETTINGS.FAQ_BUTTON.TITLE" = "SSS";

"SETTINGS.FAQ_ENTRIES.APP_MOTIVATION.ANSWER" = "Bu uygulamanın şu anda iki hedefi vardır:\n1. Namaz kılarken ne söylenildiğinin farkında olunmasi.\n2. Namaz kılarken Kuranın hatim edilmesi.\n\nŞu anda uygulama sadece Kurandaki son 24 sûreyi içerir ve namazda kıyamda iken rastgele bir sure seçer. Ama bu sadece ilk adımdır. Tüm eksik olan sûreler güncelleştirmeler ile tamamen ilave edilecektir ki, namaz kılarken parça parça Kuranı okuyabilesiniz. Uzun sureler için de parça parça okuma çözümümüz var.\n\nBu uygulamanın amacı namaz kılmayı sıfırdan öğretmek DEĞİLDİR. Bu uygulama namazdaki sureleri yabanci dil (Arapça) yerine, bildiğiniz bir dilden okuyabilmeniz için hazırlanmıştır. Şu anda dil olarak Türkçe, Almanca ve İngilizce mevcuttur.";
"SETTINGS.FAQ_ENTRIES.APP_MOTIVATION.ANSWER" = "Bu uygulamanın şu anda iki hedefi vardır:\n1. Namaz kılarken ne söylenildiğinin farkında olunmasi.\n2. Namaz kılarken Kuranın hatim edilmesi.\n\nŞu anda uygulama sadece Kurandaki son 24 sûreyi içerir ve namazda kıyamda iken rastgele bir sure seçer. Ama bu sadece ilk adımımızdır. Tüm eksik olan sûreler güncelleştirmeler ile tamamen ilave edilecektir ki, namaz kılarken parça parça Kuranı okuyabilesiniz. Uzun sureler için de parça parça okuma çözümümüz var.\n\nBu uygulamanın amacı namaz kılmayı sıfırdan öğretmek DEĞİLDİR. Bu uygulama namazdaki sureleri yabanci dil (Arapça) yerine, bildiğiniz bir dilden okuyabilmeniz için hazırlanmıştır. Şu anda dil olarak Türkçe, Almanca ve İngilizce mevcuttur.";

"SETTINGS.FAQ_ENTRIES.APP_MOTIVATION.QUESTION" = "Bu uygulamanın amacı nedir?";

"SETTINGS.FAQ_ENTRIES.IPAD_READING.ANSWER" = "Bu soruya sonuçta sadece Tanrımız cevap verebilir, ama biz tüm eleştirmenlere şu soruyu sormak istiyoruz: Eğer namazda konuşulan kelimelerin anlamı bilinmez ise, namazın gerçekten kabul olabileceğini mi düşünüyorsunuz?";
"SETTINGS.FAQ_ENTRIES.IPAD_READING.ANSWER" = "Bu soruya sonuçta sadece Tanrımız cevap verebilir, ama biz tüm eleştirmenlere şu soruyu sormak istiyoruz: Eğer namazda söylenen kelimelerin anlamı bilinmez ise, namazın gerçekten kabul olabileceğini mi düşünüyorsunuz?";

"SETTINGS.FAQ_ENTRIES.IPAD_READING.QUESTION" = "Namazda kelimeler cihaz dan okunulursa yada sesli dinlenilirse, namaz hiç geçerli olabilirmi?";

"SETTINGS.FAQ_ENTRIES.LANGUAGE.ANSWER" = "Kuranı bizim içinde yazan şeylerden haberdar olmamız ve hayatımıza aktarmamız için indiğini düşünüyoruz. Anlamadığımız kelimeler ne bize yanlış yolu gösterir, nede bizi doğru yola iletir. Fakat bu Kuranın en büyük hedefidir.\n\nAllah günde beş vakit onun kelimelerinin anlamsız bir şekilde kulağa güzel gelen bir siir gibi dinlememizi istediğine inanamıyoruz. Kurandaki Arapça Allahın bize gönderdiği en doğru mesaj olmasına rağmen, Arapça diline hakim olmayan bir kişinin arapça okunan namazın kabul edildiğine inanamıyoruz. Bu tür bir namazda büyük bir eksiklik vardır. Üstelik bizim bilgimize göre Kuranda namazın Arapça dilde okunması meçbur olduğunu söğleğen bir ayet bulunmamaktadır.";
"SETTINGS.FAQ_ENTRIES.LANGUAGE.ANSWER" = "Kuranı bizim içinde yazan şeylerden haberdar olmamız ve hayatımıza aktarmamız için indiğini düşünüyoruz. Anlamadığımız kelimeler ne bize yanlış yolu gösterir, nede bizi doğru yola iletir. Fakat bu Kuranın en büyük hedefidir.\n\nAllah günde beş vakit onun kelimelerinin anlamsız bir şekilde kulağa güzel gelen bir şiir gibi dinlememizi istediğine inanamıyoruz. Kurandaki Arapça Allahın bize gönderdiği en doğru mesaj olmasına rağmen, Arapça diline hakim olmayan bir kişinin arapça okunan namazın kabul edildiğine inanamıyoruz. Bu tür bir namazda büyük bir eksiklik vardır. Üstelik bizim bilgimize göre Kuranda namazın Arapça dilde okunması meçbur olduğunu söyleyen bir ayet bulunmamaktadır.";

"SETTINGS.FAQ_ENTRIES.LANGUAGE.QUESTION" = "Namaz daki sureler ve dualar Kuranın asıl dili Arapçadan okunması şart değilmidir?";
"SETTINGS.FAQ_ENTRIES.LANGUAGE.QUESTION" = "Namaz daki sureler ve dualar Kuranın asıl dili olan Arapça okunması şart değilmidir?";

"SETTINGS.FAQ_ENTRIES.TRANSLATION_PROBLEM.ANSWER" = "Biz namaz kılmanın çok önemli bir ibadet olduğu için, mümkün olduğu kadar doğru yapmak istediğinizi anlıyoruz. Bizde bu sebeple ayrıca dinde aynı metnin anlamları hakkında çok farklı görüşlerin olduğunu bildiğimiz için, sizler icin orijinala yakın bir meal kullanmayı tercih ettik.\n\nBu nedenle, biz de Kuranın kendisini okumanızın şart olduğunu düşünerek bu uygulamayı size bir yardım olarak hazırladık. Kuranın içindekilerine başkaların (sözde) hikayelerini ve hurafelerini dinleyerek onların size \"Kuranın gerçek mesajını\" öğretmesine engel olabilmeniz için Kuranın ta kendisini okumayı öneriyoruz. Onların dediklerinin doğru olup olmadığını sadece böylece ayrım edebileceğinize inanıyoruz.";

Expand Down
13 changes: 13 additions & 0 deletions App/Sources/Models/MovementSound.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// Created by Cihat Gündüz on 08.11.21.
// Copyright © 2021 Flinesoft. All rights reserved.
//

import Foundation

enum MovementSound: String {
case downwards = "C-Short"
case upwards = "E-Short"
case longSitting = "E-Long"
case salam = "G-Short"
}
8 changes: 4 additions & 4 deletions App/Sources/Models/PrayerState.swift
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ class PrayerState {
}

var movementDelay: TimeInterval? {
guard lineIndex == 0 && currentComponent.needsMovement else { return nil }
guard lineIndex == 0, currentComponent.needsMovement else { return nil }
return previousPositon.movementDuration(forChangingTo: currentPosition)
}

var currentMovementSoundUrl: URL? {
guard let movementSound = currentComponent.movementSound else { return nil }
return AudioPlayer.shared.movementSoundUrl(name: movementSound, instrument: movementSoundInstrument)
guard lineIndex == 0, let movementSound = currentComponent.movementSound else { return nil }
return AudioPlayer.shared.movementSoundUrl(name: movementSound.rawValue, instrument: movementSoundInstrument)
}

var currentRecitationChapterNum: Int? { return currentComponent.chapterNumber }
Expand Down Expand Up @@ -94,7 +94,7 @@ class PrayerState {
guard lineIndex == 0 else { return nil }
guard let movementSound = currentComponent.movementSound else { return nil }

return AudioPlayer.shared.movementSoundUrl(name: movementSound, instrument: movementSoundInstrument)
return AudioPlayer.shared.movementSoundUrl(name: movementSound.rawValue, instrument: movementSoundInstrument)
}

func moveToNextLine() -> Bool {
Expand Down
14 changes: 7 additions & 7 deletions App/Sources/Models/RakahComponent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ class RakahComponent {
static var movementSoundInstrument: String {
get {
guard let instrument = UserDefaults.standard.string(forKey: "MovementSoundInstrument") else {
return "Baroque Organ"
return "Grand Piano with Pad & Choir"
}
return instrument
}
Expand All @@ -31,7 +31,7 @@ class RakahComponent {
let spokenTextLines: [String]
let needsMovement: Bool
let position: Position
let movementSound: String?
let movementSound: MovementSound?
let isChangingText: Bool

let l10n = L10n.RakahComponent.self
Expand All @@ -50,15 +50,15 @@ class RakahComponent {
chapterNumber = nil

if longSitting {
movementSound = "E-Long"
movementSound = .longSitting
}
else {
switch pos {
case .bending, .worship:
movementSound = "C-Short"
movementSound = .downwards

case .standing, .sitting:
movementSound = "E-Short"
movementSound = .upwards

default:
movementSound = nil
Expand Down Expand Up @@ -112,7 +112,7 @@ class RakahComponent {
spokenTextLines = RakahComponent.readLinesFromFile(named: "Straightening-Up")
needsMovement = true
position = .standing
movementSound = "E-Short"
movementSound = .upwards
isChangingText = false
chapterNumber = nil

Expand Down Expand Up @@ -156,7 +156,7 @@ class RakahComponent {
name = l10n.Salam.name
spokenTextLines = RakahComponent.readLinesFromFile(named: "Salam")
needsMovement = true
movementSound = "G-Short"
movementSound = .salam
isChangingText = false
position = pos
chapterNumber = nil
Expand Down
19 changes: 19 additions & 0 deletions App/Sources/Models/SoundInstrument.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// Created by Cihat Gündüz on 08.11.21.
// Copyright © 2021 Flinesoft. All rights reserved.
//

import Foundation

enum SoundInstrument: String, CaseIterable {
case baroqueOrgan = "Baroque Organ"
case bleepCity = "Bleep City"
case erhu = "Erhu"
case flowMotion = "Flow Motion"
case grandPianoWithPadAndChoir = "Grand Piano with Pad & Choir"
case infiniteSpace = "Infinite Space"
case persionSantoor = "Persian Santoor"
case softWaves = "Soft Waves"
case turkishSazZither = "Turkish Saz Zither"
case tweedPickedSynth = "Tweed Picked Synth"
}
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ class SettingsViewController: FormViewController {
private func movementSoundInstrumentRow() -> PushRow<String> {
PushRow<String> { row in
row.title = l10n.AudioSpeedSection.MovementSoundInstrument.title
row.options = SettingsViewModel.availableMovementSoundInstruments
row.options = SoundInstrument.allCases.map(\.rawValue)
row.value = viewModel.movementSoundInstrument
row.hidden = Condition.function([audioModeRowTag]) { _ in
self.audioMode != .movementSound && self.audioMode != .movementSoundAndSpeechSynthesizer
Expand Down
9 changes: 2 additions & 7 deletions App/Sources/ScreenFlows/Settings/SettingsViewModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@ import SwiftyUserDefaults
import UIKit

class SettingsViewModel {
static let availableMovementSoundInstruments: [String] = [
"Baroque Organ", "Bleep City", "Erhu", "Flow Motion", "Grand Piano with Pad & Choir", "Infinite Space",
"Persian Santoor", "Soft Waves", "Turkish Saz Zither", "Tweed Picked Synth",
]

var rakatCount: Int {
get { Defaults.rakatCount }
set { Defaults.rakatCount = newValue }
Expand Down Expand Up @@ -78,7 +73,7 @@ class SettingsViewModel {
}

extension DefaultsKeys {
private var defaultInstrument: String { SettingsViewModel.availableMovementSoundInstruments.first! }
private var defaultInstrument: SoundInstrument { .grandPianoWithPadAndChoir }
private var defaultSpeechRate: Double { Double(AVSpeechUtteranceDefaultSpeechRate) }
private var defaultVoice: String { SpeechSynthesizer.SupportedLanguage.bestMatchingVoice.identifier }

Expand All @@ -88,7 +83,7 @@ extension DefaultsKeys {
var showChangingTextName: DefaultsKey<Bool> { .init("ShowChangingTextName", defaultValue: true) }
var allowLongerRecitations: DefaultsKey<Bool> { .init("AllowLongerRecitations", defaultValue: false) }
var allowSplittingRecitations: DefaultsKey<Bool> { .init("AllowSplittingRecitations", defaultValue: false) }
var movementSoundInstrument: DefaultsKey<String> { .init("MovementSoundInstrument", defaultValue: defaultInstrument) }
var movementSoundInstrument: DefaultsKey<String> { .init("MovementSoundInstrument", defaultValue: defaultInstrument.rawValue) }
var speechSynthesizerVoiceId: DefaultsKey<String> { .init("VoiceId", defaultValue: defaultVoice) }
var speechSynthesizerPitchMultiplier: DefaultsKey<Double> { .init("PitchMultiplier", defaultValue: 1.0) }
var speechSynthesizerSpeechRate: DefaultsKey<Double> { .init("SpeechRate", defaultValue: defaultSpeechRate) }
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ If needed, pluralize to `Issues`, `PRs` or `Authors` and list multiple separated
### Security
- None.

## [1.3.1] - 2021-11-08
### Changed
- Improved wording in Turkish translations.
### Fixed
- Fixed an issue with the movement sound played twice while standing.

## [1.3.0] - 2021-10-31
### Added
- Adds a new audio mode where a computer voice reads out loud the full text of the prayer.
Expand Down
12 changes: 10 additions & 2 deletions Prayer.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

/* Begin PBXBuildFile section */
2E06625B27243C9E001D8531 /* AudioMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E06625A27243C9E001D8531 /* AudioMode.swift */; };
2E30457D27399B8F00B8BBD2 /* SoundInstrument.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E30457C27399B8F00B8BBD2 /* SoundInstrument.swift */; };
2E30457F27399CF300B8BBD2 /* MovementSound.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E30457E27399CF300B8BBD2 /* MovementSound.swift */; };
2E6C0B442646FD7A00A4D8E3 /* HandySwift in Frameworks */ = {isa = PBXBuildFile; productRef = 2E6C0B432646FD7A00A4D8E3 /* HandySwift */; };
2E6C0B472646FD9200A4D8E3 /* HandyUIKit in Frameworks */ = {isa = PBXBuildFile; productRef = 2E6C0B462646FD9200A4D8E3 /* HandyUIKit */; };
2E6C0B4A2646FDC800A4D8E3 /* Eureka in Frameworks */ = {isa = PBXBuildFile; productRef = 2E6C0B492646FDC800A4D8E3 /* Eureka */; };
Expand Down Expand Up @@ -136,6 +138,8 @@

/* Begin PBXFileReference section */
2E06625A27243C9E001D8531 /* AudioMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMode.swift; sourceTree = "<group>"; };
2E30457C27399B8F00B8BBD2 /* SoundInstrument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SoundInstrument.swift; sourceTree = "<group>"; };
2E30457E27399CF300B8BBD2 /* MovementSound.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovementSound.swift; sourceTree = "<group>"; };
2E6C0B5E2647315600A4D8E3 /* .swift-format */ = {isa = PBXFileReference; lastKnownFileType = text; name = ".swift-format"; path = "../WhatNext-appleOS/.swift-format"; sourceTree = "<group>"; };
2E9976BD271585A500F61BFE /* Recitation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Recitation.swift; sourceTree = "<group>"; };
2E9976DA2715A75400F61BFE /* en */ = {isa = PBXFileReference; lastKnownFileType = text; name = en; path = "en.lproj/090_The-Land.txt"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -394,13 +398,15 @@
isa = PBXGroup;
children = (
2E06625A27243C9E001D8531 /* AudioMode.swift */,
2E30457E27399CF300B8BBD2 /* MovementSound.swift */,
A1A6A4651E3A819D00A909FF /* Position.swift */,
A16484E21E243AAC008EC78C /* Prayer.swift */,
A1D1EFC11E3937FC0029C009 /* PrayerState.swift */,
A16484E41E243B5F008EC78C /* Rakah.swift */,
A16484E61E25503C008EC78C /* RakahComponent.swift */,
2E9976BD271585A500F61BFE /* Recitation.swift */,
2EAF6389271AAC9D00145D5D /* RecitationPart.swift */,
2E30457C27399B8F00B8BBD2 /* SoundInstrument.swift */,
);
path = Models;
sourceTree = "<group>";
Expand Down Expand Up @@ -961,6 +967,7 @@
A11830EB1E591EF600CBE087 /* FAQViewController.swift in Sources */,
A11830ED1E591F0A00CBE087 /* FAQViewModel.swift in Sources */,
A1370CD81E368DF300B55D9E /* Logger.swift in Sources */,
2E30457F27399CF300B8BBD2 /* MovementSound.swift in Sources */,
A1A6A4661E3A819D00A909FF /* Position.swift in Sources */,
A16484E31E243AAC008EC78C /* Prayer.swift in Sources */,
A1370CE91E37394600B55D9E /* PrayerFlowController.swift in Sources */,
Expand All @@ -974,6 +981,7 @@
A1370CDB1E368FA600B55D9E /* SettingsFlowController.swift in Sources */,
A16484D51E243898008EC78C /* SettingsViewController.swift in Sources */,
A1D1EFB71E381FD00029C009 /* SettingsViewModel.swift in Sources */,
2E30457D27399B8F00B8BBD2 /* SoundInstrument.swift in Sources */,
2EA2CDF6271D2AC7009172C3 /* SpeechSynthesizer.swift in Sources */,
A1494BCF1E2ED79500286EBF /* Storyboards.swift in Sources */,
A1494BCE1E2ED79500286EBF /* Strings.swift in Sources */,
Expand Down Expand Up @@ -1539,7 +1547,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.3.0;
MARKETING_VERSION = 1.3.1;
PRODUCT_BUNDLE_IDENTIFIER = com.flinesoft.prayer;
PRODUCT_MODULE_NAME = App;
PRODUCT_NAME = Prayer;
Expand All @@ -1560,7 +1568,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.3.0;
MARKETING_VERSION = 1.3.1;
PRODUCT_BUNDLE_IDENTIFIER = com.flinesoft.prayer;
PRODUCT_MODULE_NAME = App;
PRODUCT_NAME = Prayer;
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
alt="Build Status">
</a>
<a href="https://github.com/Flinesoft/Prayer/releases">
<img src="https://img.shields.io/badge/Version-1.3.0-blue.svg"
alt="Version: 1.3.0">
<img src="https://img.shields.io/badge/Version-1.3.1-blue.svg"
alt="Version: 1.3.1">
</a>
<img src="https://img.shields.io/badge/Swift-5.5-FFAC45.svg"
alt="Swift: 5.5">
Expand Down
11 changes: 2 additions & 9 deletions fastlane/metadata/de-DE/release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
NEU:
- Fügt einen neuen Audiomodus hinzu, bei dem eine Computerstimme den vollständigen Text des Gebets laut vorliest.
- Stellt sicher, dass der neue Audiomodus für gesprochenen Text weiter abgespielt wird, wenn das Gerät gesperrt ist oder die App im Hintergrund läuft.
- Zeigt das aktuell verbundene Audiogerät an und fügt eine Schaltfläche zum Wechseln des Geräts direkt in der App hinzu.
- Fügt detaillierte Beschreibungen unter jedem Einstellungsabschnitt hinzu, um zusätzlichen Kontext zu liefern.

GEÄNDERT:
- Der Ton beim Positionswechsel ignoriert jetzt die Einstellung des Stummschalters des Systems. Künftig den Audiomodus stattdessen auf "stumm" stellen.
- Alle Einstellungseinträge haben jetzt ein Icon, um schneller erkannt zu werden und den Einstellungsbildschirm schöner aussehen zu lassen.
- Verbesserte Formulierung in den türkischen Übersetzungen.

BEHOBEN:
- Die grüne Akzentfarbe im dunklen Modus wurde heller gestaltet, damit der Text auf den Schaltflächen besser lesbar ist.
- Ein Problem wurde behoben, bei dem der Bewegungston im Stehen zweimal abgespielt wurde.
11 changes: 2 additions & 9 deletions fastlane/metadata/en-US/release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
NEW:
- Adds a new audio mode where a computer voice reads out loud the full text of the prayer.
- Ensures the new spoken text audio mode continues to play when device is locked or app is in background.
- Shows the currently connected audio device and adds a button to switch the device right within the app.
- Adds detailed descriptions below each settings section to give some additional context.

CHANGED:
- Position change sound now ignores the systems Mute switch setting. Set audio mode to `muted` instead to pray without any sounds.
- All settings entries now have an icon for faster recognition and to make the settings screen look nicer.
- Improved wording in Turkish translations.

FIXED:
- Adjusted green accent color in dark mode to be brighter for more legible text on buttons.
- Fixed an issue with the movement sound played twice while standing.
Loading

0 comments on commit 1b39904

Please sign in to comment.