Skip to content

Commit 6903f51

Browse files
committed
Add: play seed song first (Play similar songs) #60
1 parent c73a6f4 commit 6903f51

11 files changed

Lines changed: 35 additions & 13 deletions

File tree

app/components/lists/CustomScroll.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { ThemeContext } from '~/contexts/theme';
66
import { SettingsContext } from '~/contexts/settings';
77
import size from '~/styles/size';
88

9-
const CustomScroll = ({ children, data, renderItem, style = { width: '100%' }, contentContainerStyle = { paddingHorizontal: 20, columnGap: 10 }, widthItem = 0 }) => {
9+
const CustomScroll = ({ children, data, renderItem, style = { width: '100%' }, contentContainerStyle = { paddingHorizontal: 20, columnGap: 10 } }) => {
1010
const theme = React.useContext(ThemeContext)
1111
const settings = React.useContext(SettingsContext)
1212
const indexScroll = React.useRef(0)

app/components/options/OptionsSongsList.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ import { SongContext, SongDispatchContext } from '~/contexts/song';
1010
import { urlCover } from '~/utils/api';
1111
import size from '~/styles/size';
1212
import OptionsPopup from '~/components/popup/OptionsPopup';
13+
import { SettingsContext } from '~/contexts/settings';
1314

1415
const OptionsSongsList = ({ songs, indexOptions, setIndexOptions, onUpdate = () => { }, idPlaylist = null }) => {
1516
const { t } = useTranslation();
1617
const navigation = useNavigation();
1718
const song = React.useContext(SongContext);
1819
const songDispatch = React.useContext(SongDispatchContext);
1920
const config = React.useContext(ConfigContext);
21+
const settings = React.useContext(SettingsContext);
2022
const refOption = React.useRef();
2123

2224
const playSimilarSongs = () => {
@@ -25,7 +27,8 @@ const OptionsSongsList = ({ songs, indexOptions, setIndexOptions, onUpdate = ()
2527
if (!json.similarSongs?.song) {
2628
playSong(config, songDispatch, [songs[indexOptions]], 0)
2729
} else {
28-
playSong(config, songDispatch, json.similarSongs?.song, 0)
30+
if (settings.playSeedFirst) playSong(config, songDispatch, [songs[indexOptions], ...json.similarSongs.song], 0)
31+
else playSong(config, songDispatch, json.similarSongs.song, 0)
2932
}
3033
})
3134
.catch(() => { })

app/contexts/settings.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export const defaultSettings = {
5757
// Player settings
5858
streamFormat: 'raw',
5959
maxBitRate: 0,
60+
playSeedFirst: false,
6061
// Playlist settings
6162
reversePlaylist: false,
6263
orderPlaylist: 'title',

app/i18next/de.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "Übertragungsformat",
6565
"Stream format Description": "Lege das Format der zu wiedergebenden Übertragung fest.",
6666
"Max bitrate": "Maximale Bitrate",
67-
"Max bitrate Description": "Lege die maximale Bitrate in Kilobits pro Sekunde für den zu wiedergebenden Stream fest. Eine niedrigere Bitrate sort für geringere Datennutzung, kann jedoch die Wiedergabequalität beinträchtigen"
67+
"Max bitrate Description": "Lege die maximale Bitrate in Kilobits pro Sekunde für den zu wiedergebenden Stream fest. Eine niedrigere Bitrate sort für geringere Datennutzung, kann jedoch die Wiedergabequalität beinträchtigen",
68+
"Play seed first": "Seed-Lied zuerst abspielen"
6869
},
6970
"theme": {
7071
"Player Theme": "Darstellung des Players"

app/i18next/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "Stream format",
6565
"Stream format Description": "Specify the format of the stream to be played.",
6666
"Max bitrate": "Max bitrate",
67-
"Max bitrate Description": "Specify the maximum bit rate in kilobits per second for the stream to be played. Lower bit rates will consume less data but may result in lower audio quality."
67+
"Max bitrate Description": "Specify the maximum bit rate in kilobits per second for the stream to be played. Lower bit rates will consume less data but may result in lower audio quality.",
68+
"Play seed first": "Play seed song first"
6869
},
6970
"theme": {
7071
"Player Theme": "Player Theme"

app/i18next/fr.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "Format du flux",
6565
"Stream format description": "Spécifiez le format du flux à lire.",
6666
"Max bitrate": "Débit maximal",
67-
"Max bitrate description": "Spécifiez le débit maximal en kilobits par seconde pour le flux à lire. Des débits plus bas consommeront moins de données mais peuvent entraîner une qualité audio inférieure."
67+
"Max bitrate description": "Spécifiez le débit maximal en kilobits par seconde pour le flux à lire. Des débits plus bas consommeront moins de données mais peuvent entraîner une qualité audio inférieure.",
68+
"Play seed first": "Lire la référence en premier"
6869
},
6970
"theme": {
7071
"Player Theme": "Thème du lecteur"

app/i18next/it.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "Formato streaming",
6565
"Stream format Description": "Specifica il formato dello streaming da riprodurre.",
6666
"Max bitrate": "Bitrate massimo",
67-
"Max bitrate Description": "Specifica il bitrate massimo in kilobit al secondo per lo streaming. Bitrate inferiori consumano meno dati ma possono ridurre la qualità audio."
67+
"Max bitrate Description": "Specifica il bitrate massimo in kilobit al secondo per lo streaming. Bitrate inferiori consumano meno dati ma possono ridurre la qualità audio.",
68+
"Play seed first": "Prima il brano di riferimento"
6869
},
6970
"theme": {
7071
"Player Theme": "Tema del lettore"

app/i18next/ru.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "Формат потока",
6565
"Stream format Description": "Укажите формат потока для воспроизведения.",
6666
"Max bitrate": "Максимальный битрейт",
67-
"Max bitrate Description": "Укажите максимальный битрейт в килобитах в секунду для воспроизведения. Меньшие битрейты будут потреблять меньше данных, но могут привести к снижению качества звука."
67+
"Max bitrate Description": "Укажите максимальный битрейт в килобитах в секунду для воспроизведения. Меньшие битрейты будут потреблять меньше данных, но могут привести к снижению качества звука.",
68+
"Play seed first": "Сначала воспроизвести трек"
6869
},
6970
"theme": {
7071
"Player Theme": "Тема плеера"

app/i18next/zh-Hans.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "流格式",
6565
"Stream format Description": "指定播放流的格式。",
6666
"Max bitrate": "最大比特率",
67-
"Max bitrate Description": "指定播放流的最大比特率(单位:kbps)。较低的比特率将消耗较少的数据,但可能会导致音频质量下降。"
67+
"Max bitrate Description": "指定播放流的最大比特率(单位:kbps)。较低的比特率将消耗较少的数据,但可能会导致音频质量下降。",
68+
"Play seed first": "优先播放种子曲目"
6869
},
6970
"theme": {
7071
"Player Theme": "播放器主题"

app/i18next/zh-Hant.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@
6464
"Stream format": "流格式",
6565
"Stream format Description": "指定播放流的格式。",
6666
"Max bitrate": "最大比特率",
67-
"Max bitrate Description": "指定播放流的最大比特率(單位:kbps)。較低的比特率將消耗較少的數據,但可能會導致音質下降。"
67+
"Max bitrate Description": "指定播放流的最大比特率(單位:kbps)。較低的比特率將消耗較少的數據,但可能會導致音質下降。",
68+
"Play seed first": "優先播放種子曲目"
6869
},
6970
"theme": {
7071
"Player Theme": "播放器主題"

0 commit comments

Comments
 (0)