9 Commits

11 changed files with 6007 additions and 15 deletions

2
.idea/misc.xml generated
View File

@@ -193,7 +193,7 @@
</option>
</component>
<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" />
</component>
<component name="ProjectType">

View File

@@ -68,12 +68,14 @@ android {
buildConfig true
}
namespace 'com.cappielloantonio.tempo'
lint {
baseline file('lint-baseline.xml')
}
}
dependencies {
implementation files('../libs/lib-decoder-ffmpeg-release.aar')
// AndroidX
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.3.0'
@@ -84,6 +86,7 @@ dependencies {
implementation 'androidx.room:room-runtime:2.8.4'
implementation 'androidx.core:core-splashscreen:1.2.0'
implementation 'androidx.appcompat:appcompat:1.7.1'
implementation 'androidx.mediarouter:mediarouter:1.8.1'
// Android Material
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.okhttp3:logging-interceptor:5.3.2'
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

@@ -157,7 +157,7 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
albums.sort(Comparator.comparing(AlbumID3::getName));
break;
case Constants.ALBUM_ORDER_BY_ARTIST:
albums.sort(Comparator.comparing(AlbumID3::getArtist));
albums.sort(Comparator.comparing(AlbumID3::getArtist, Comparator.nullsLast(Comparator.naturalOrder())));
break;
case Constants.ALBUM_ORDER_BY_YEAR:
albums.sort(Comparator.comparing(AlbumID3::getYear));

View File

@@ -140,6 +140,11 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback {
}
});
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) {
playlistPageViewModel.setPinned(true);
return true;

View File

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

View File

@@ -13,6 +13,13 @@
android:icon="@drawable/ic_file_download"
android:title="@string/menu_download_all_button"
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
android:id="@+id/action_pin_playlist"
android:icon="@drawable/ic_add"

View File

@@ -157,6 +157,7 @@
<string name="login_title">Subsonic servers</string>
<string name="login_title_expanded">Subsonic servers</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_download_all_button">Download all</string>
<string name="menu_download_label">Download</string>

View File

@@ -4,7 +4,7 @@ buildscript {
mavenCentral()
}
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'
}
}

Binary file not shown.