8 Commits

10 changed files with 6006 additions and 14 deletions

2
.idea/misc.xml generated
View File

@@ -193,7 +193,7 @@
</option> </option>
</component> </component>
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="temurin-21" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">

View File

@@ -68,12 +68,14 @@ android {
buildConfig true buildConfig true
} }
namespace 'com.cappielloantonio.tempo' namespace 'com.cappielloantonio.tempo'
lint {
baseline file('lint-baseline.xml')
}
} }
dependencies { dependencies {
implementation files('../libs/lib-decoder-ffmpeg-release.aar')
// AndroidX // AndroidX
implementation 'androidx.constraintlayout:constraintlayout:2.2.1' implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.3.0' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.3.0'
@@ -84,6 +86,7 @@ dependencies {
implementation 'androidx.room:room-runtime:2.8.4' implementation 'androidx.room:room-runtime:2.8.4'
implementation 'androidx.core:core-splashscreen:1.2.0' implementation 'androidx.core:core-splashscreen:1.2.0'
implementation 'androidx.appcompat:appcompat:1.7.1' implementation 'androidx.appcompat:appcompat:1.7.1'
implementation 'androidx.mediarouter:mediarouter:1.8.1'
// Android Material // Android Material
implementation 'com.google.android.material:material:1.13.0' implementation 'com.google.android.material:material:1.13.0'
@@ -108,4 +111,7 @@ dependencies {
implementation 'com.squareup.retrofit2:retrofit:3.0.0' implementation 'com.squareup.retrofit2:retrofit:3.0.0'
implementation 'com.squareup.okhttp3:logging-interceptor:5.3.2' implementation 'com.squareup.okhttp3:logging-interceptor:5.3.2'
implementation 'com.squareup.retrofit2:converter-gson:3.0.0' implementation 'com.squareup.retrofit2:converter-gson:3.0.0'
// Jellyfin
implementation 'org.jellyfin.media3:media3-ffmpeg-decoder:1.8.0+1'
} }

5972
app/lint-baseline.xml Normal file

File diff suppressed because one or more lines are too long

View File

@@ -129,17 +129,22 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback {
playlistPageViewModel.getPlaylistSongLiveList().observe(getViewLifecycleOwner(), songs -> { playlistPageViewModel.getPlaylistSongLiveList().observe(getViewLifecycleOwner(), songs -> {
if (isVisible() && getActivity() != null) { if (isVisible() && getActivity() != null) {
DownloadUtil.getDownloadTracker(requireContext()).download( DownloadUtil.getDownloadTracker(requireContext()).download(
MappingUtil.mapDownloads(songs), MappingUtil.mapDownloads(songs),
songs.stream().map(child -> { songs.stream().map(child -> {
Download toDownload = new Download(child); Download toDownload = new Download(child);
toDownload.setPlaylistId(playlistPageViewModel.getPlaylist().getId()); toDownload.setPlaylistId(playlistPageViewModel.getPlaylist().getId());
toDownload.setPlaylistName(playlistPageViewModel.getPlaylist().getName()); toDownload.setPlaylistName(playlistPageViewModel.getPlaylist().getName());
return toDownload; return toDownload;
}).collect(Collectors.toList()) }).collect(Collectors.toList())
); );
} }
}); });
return true; return true;
} else if (item.getItemId() == R.id.action_add_to_queue) {
playlistPageViewModel.getPlaylistSongLiveList().observe(getViewLifecycleOwner(), songs -> {
MediaManager.enqueue(mediaBrowserListenableFuture, songs, false);
});
return true;
} else if (item.getItemId() == R.id.action_pin_playlist) { } else if (item.getItemId() == R.id.action_pin_playlist) {
playlistPageViewModel.setPinned(true); playlistPageViewModel.setPinned(true);
return true; return true;

View File

@@ -36,6 +36,7 @@
android:paddingStart="24dp" android:paddingStart="24dp"
android:paddingEnd="24dp" android:paddingEnd="24dp"
android:visibility="gone" android:visibility="gone"
android:background="?attr/colorSurface"
app:menu="@menu/bottom_nav_menu" /> app:menu="@menu/bottom_nav_menu" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -13,6 +13,13 @@
android:icon="@drawable/ic_file_download" android:icon="@drawable/ic_file_download"
android:title="@string/menu_download_all_button" android:title="@string/menu_download_all_button"
app:showAsAction="never" /> app:showAsAction="never" />
<item
android:id="@+id/action_add_to_queue"
android:icon="@drawable/ic_add"
android:title="@string/menu_add_to_queue_button"
app:showAsAction="never" />
<item <item
android:id="@+id/action_pin_playlist" android:id="@+id/action_pin_playlist"
android:icon="@drawable/ic_add" android:icon="@drawable/ic_add"

View File

@@ -157,6 +157,7 @@
<string name="login_title">Subsonic servers</string> <string name="login_title">Subsonic servers</string>
<string name="login_title_expanded">Subsonic servers</string> <string name="login_title_expanded">Subsonic servers</string>
<string name="media_route_menu_title">Cast</string> <string name="media_route_menu_title">Cast</string>
<string name="menu_add_to_queue_button">Add to queue</string>
<string name="menu_add_button">Add</string> <string name="menu_add_button">Add</string>
<string name="menu_download_all_button">Download all</string> <string name="menu_download_all_button">Download all</string>
<string name="menu_download_label">Download</string> <string name="menu_download_label">Download</string>

View File

@@ -4,7 +4,7 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.13.1' classpath 'com.android.tools.build:gradle:8.13.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.21' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.21'
} }
} }

Binary file not shown.