feat: sync Playlists, wip: pair songs

This commit is contained in:
2026-05-14 02:43:49 +02:00
parent 26115f773f
commit e2ab026e84
36 changed files with 2324 additions and 34 deletions

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/ic_launcher_bg" />
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<!-- Running shoe, centered in adaptive-icon safe zone -->
<path
android:fillColor="#FFFFFF"
android:pathData="M18,70c0,-4 3,-7 7,-7h4l2,8c8,2 18,3 28,2l32,-6c5,-1 9,2 10,7l1,6c0,4 -3,8 -8,9l-38,7c-16,2 -32,0 -46,-6l-2,-1c-4,-2 -7,-6 -6,-11l4,-8z" />
<path
android:fillColor="#FFFFFF"
android:pathData="M32,52c6,-14 22,-22 38,-20l26,4c8,1 14,8 15,16l1,10c0,3 -2,6 -5,7l-8,2 -30,4c-12,1 -24,-4 -32,-13l-6,-9c-2,-3 -1,-7 1,-10z" />
<path
android:fillAlpha="0.92"
android:fillColor="#FFFFFF"
android:pathData="M48,46l18,-2c4,0 7,3 8,7v2l-20,3c-3,0 -6,-2 -7,-5v-3c0,-1 0,-2 1,-2z" />
</vector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_launcher_background" />
<item android:drawable="@drawable/ic_launcher_foreground" />
</layer-list>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_bg">#E65100</color>
</resources>

View File

@@ -4,4 +4,43 @@
<string name="cd_previous_track">Previous track</string>
<string name="cd_play_pause">Play or pause</string>
<string name="cd_next_track">Next track</string>
<string name="notification_channel_playback_name">Playback</string>
<string name="notification_channel_playback_description">Now playing controls while Lockstep runs</string>
<string name="notification_prev">Previous</string>
<string name="notification_next">Next</string>
<string name="notification_play_pause">Play or pause</string>
<string name="notification_loading_playlist">Loading playlist…</string>
<string name="onboarding_title">Welcome to Lockstep</string>
<string name="onboarding_notifications_body">Lockstep shows playback controls in a notification while you run. Grant notification permission so controls stay visible.</string>
<string name="onboarding_notifications_cta">Continue and ask for notification permission</string>
<string name="onboarding_spotify_body">Sign in with Spotify via the Lockstep web login. When your browser returns to this app, your access token is stored locally.</string>
<string name="onboarding_spotify_open_browser">Open Spotify login</string>
<string name="onboarding_spotify_connected">Account linked — you can continue.</string>
<string name="onboarding_continue_signed_in">Continue</string>
<string name="onboarding_continue_without_spotify">Continue without Spotify for now</string>
<string name="library_title">Playlists</string>
<string name="library_open_playlist">Tap to play (or pair local MP3s)</string>
<string name="settings_title">Settings</string>
<string name="settings_stub_body">More controls will land here in a later milestone.</string>
<string name="pairing_title">Pair local MP3s</string>
<string name="pairing_choose_folder">Choose folder of MP3s</string>
<string name="pairing_status_paired">Paired with local file</string>
<string name="pairing_status_unpaired">Not paired — tap to pick an MP3</string>
<string name="pairing_no_mp3_in_folder">No MP3 files found in that folder.</string>
<string name="pairing_jukebox_empty">No tracks loaded for this playlist yet. Open Playlists and wait for sync, then try again.</string>
<string name="pairing_all_missing_spotify_id">Tracks appear but have no Spotify id (removed items or sync issue). See LockstepPairing logs.</string>
<string name="pairing_folder_ok">Paired %1$d track(s).</string>
<string name="pairing_folder_mixed_result">Paired %1$d track(s); %2$d still unmatched or unreadable.</string>
<string name="pairing_unknown_track">(removed or unknown track)</string>
<string name="now_playing_title">Now playing</string>
<string name="now_playing_idle_title">No track yet</string>
<string name="now_playing_idle_artist"></string>
<string name="now_playing_step_frequency_label">Step frequency</string>
<string name="step_frequency_placeholder">--</string>
</resources>