Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7da1afa643 | ||
|
|
77e89fc9e2 | ||
|
|
36e97cb621 | ||
|
|
c539376cc4 |
@@ -5,10 +5,10 @@ Subtracks is an Android open source music streaming app for [Subsonic-API-compat
|
|||||||
|
|
||||||
# Screenshots
|
# Screenshots
|
||||||
<p float="left">
|
<p float="left">
|
||||||
<img src="assets/screenshots/01_home.png" alt="home" width="200"/>
|
<img src="metadata/en-US/images/phoneScreenshots/01_home.png" alt="home" width="200"/>
|
||||||
<img src="assets/screenshots/02_now-playing.png" alt="now playing" width="200"/>
|
<img src="metadata/en-US/images/phoneScreenshots/02_now-playing.png" alt="now playing" width="200"/>
|
||||||
<img src="assets/screenshots/03_library-albums.png" alt="library albums" width="200"/>
|
<img src="metadata/en-US/images/phoneScreenshots/03_library-albums.png" alt="library albums" width="200"/>
|
||||||
<img src="assets/screenshots/04_album.png" alt="album view" width="200"/>
|
<img src="metadata/en-US/images/phoneScreenshots/04_album.png" alt="album view" width="200"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# Download
|
# Download
|
||||||
@@ -18,6 +18,7 @@ Subtracks is an Android open source music streaming app for [Subsonic-API-compat
|
|||||||
|
|
||||||
# Features
|
# Features
|
||||||
- Album and artist art display by default (full-res in detail/now playing views)
|
- Album and artist art display by default (full-res in detail/now playing views)
|
||||||
|
- Gapless playback
|
||||||
- Mulitple server support
|
- Mulitple server support
|
||||||
- Filterable/sortable album and artist library views
|
- Filterable/sortable album and artist library views
|
||||||
- Search artists, albums, and songs
|
- Search artists, albums, and songs
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ android {
|
|||||||
applicationId "com.subtracks"
|
applicationId "com.subtracks"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 1
|
versionCode 2
|
||||||
versionName '0.1.0'
|
versionName '1.0.0'
|
||||||
}
|
}
|
||||||
splits {
|
splits {
|
||||||
abi {
|
abi {
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import React, { useCallback, useState } from 'react'
|
|||||||
import { KeyboardTypeOptions, Linking, Modal, Pressable, StatusBar, StyleSheet, Text, View } from 'react-native'
|
import { KeyboardTypeOptions, Linking, Modal, Pressable, StatusBar, StyleSheet, Text, View } from 'react-native'
|
||||||
import { ScrollView } from 'react-native-gesture-handler'
|
import { ScrollView } from 'react-native-gesture-handler'
|
||||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons'
|
import Icon from 'react-native-vector-icons/MaterialCommunityIcons'
|
||||||
|
import { version } from '../../package.json'
|
||||||
|
|
||||||
const ServerItem = React.memo<{
|
const ServerItem = React.memo<{
|
||||||
server: Server
|
server: Server
|
||||||
@@ -286,6 +287,9 @@ const SettingsContent = React.memo(() => {
|
|||||||
buttonStyle="hollow"
|
buttonStyle="hollow"
|
||||||
/>
|
/>
|
||||||
<Header style={styles.header}>About</Header>
|
<Header style={styles.header}>About</Header>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Subtracks</Text> version {version}
|
||||||
|
</Text>
|
||||||
<Button
|
<Button
|
||||||
disabled={clearing}
|
disabled={clearing}
|
||||||
style={styles.button}
|
style={styles.button}
|
||||||
@@ -396,6 +400,14 @@ const styles = StyleSheet.create({
|
|||||||
modalTextSubmit: {
|
modalTextSubmit: {
|
||||||
marginLeft: 15,
|
marginLeft: 15,
|
||||||
},
|
},
|
||||||
|
text: {
|
||||||
|
color: 'white',
|
||||||
|
fontFamily: font.regular,
|
||||||
|
fontSize: 16,
|
||||||
|
},
|
||||||
|
bold: {
|
||||||
|
fontFamily: font.bold,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
export default Settings
|
export default Settings
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 149 KiB |
1
metadata/en-US/changelogs/1.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Initial release
|
||||||
1
metadata/en-US/changelogs/2.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Initial 1.0.0 release
|
||||||
12
metadata/en-US/full_description.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Subtracks is an Android open source music streaming app for Subsonic-API-compatible servers (Subsonic, Navidrome, Airsonic, and more). It's designed to give you clean and convenient access to your music in the style of modern media players.
|
||||||
|
|
||||||
|
Features
|
||||||
|
- Album and artist art display by default (full-res in detail/now playing views)
|
||||||
|
- Gapless playback
|
||||||
|
- Mulitple server support
|
||||||
|
- Filterable/sortable album and artist library views
|
||||||
|
- Search artists, albums, and songs
|
||||||
|
- Scrobble support
|
||||||
|
- Max bitrate and buffer size settings
|
||||||
|
- Loop and shuffle playback options
|
||||||
|
- Long-press for context menu shortcuts
|
||||||
BIN
metadata/en-US/images/featureGraphic.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
metadata/en-US/images/icon.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 649 KiB After Width: | Height: | Size: 649 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 905 KiB After Width: | Height: | Size: 905 KiB |
|
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 437 KiB After Width: | Height: | Size: 437 KiB |
|
Before Width: | Height: | Size: 444 KiB After Width: | Height: | Size: 444 KiB |
1
metadata/en-US/short_description.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
A music streaming app for Subsonic-API-compatible servers
|
||||||
1
metadata/en-US/title.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Subtracks
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "subtracks",
|
"name": "subtracks",
|
||||||
"version": "0.1.0",
|
"version": "1.0.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
"allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
|
"allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
|
||||||
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
|
||||||
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
||||||
"skipLibCheck": false /* Skip type checking of declaration files. */
|
"skipLibCheck": false /* Skip type checking of declaration files. */,
|
||||||
|
|
||||||
/* Source Map Options */
|
/* Source Map Options */
|
||||||
// "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
// "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
||||||
@@ -57,6 +57,7 @@
|
|||||||
/* Experimental Options */
|
/* Experimental Options */
|
||||||
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
||||||
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
|
||||||
|
"resolveJsonModule": true
|
||||||
},
|
},
|
||||||
"exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
|
"exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
|
||||||
}
|
}
|
||||||
|
|||||||