Compare commits
11 Commits
e2f82ccd12
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0abfa744ac | ||
| 597374fa3c | |||
| 1a13b66013 | |||
| ad32311de3 | |||
|
|
9bab266925 | ||
| 05f23b8ab1 | |||
|
|
d4d332ec3c | ||
| 0b9e5b75cf | |||
|
|
2a18f86051 | ||
| f8968766bf | |||
| 92ebba1d44 |
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -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">
|
||||||
|
|||||||
@@ -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
5972
app/lint-baseline.xml
Normal file
File diff suppressed because one or more lines are too long
@@ -157,7 +157,7 @@ public class AlbumCatalogueAdapter extends RecyclerView.Adapter<AlbumCatalogueAd
|
|||||||
albums.sort(Comparator.comparing(AlbumID3::getName));
|
albums.sort(Comparator.comparing(AlbumID3::getName));
|
||||||
break;
|
break;
|
||||||
case Constants.ALBUM_ORDER_BY_ARTIST:
|
case Constants.ALBUM_ORDER_BY_ARTIST:
|
||||||
albums.sort(Comparator.comparing(AlbumID3::getArtist));
|
albums.sort(Comparator.comparing(AlbumID3::getArtist, Comparator.nullsLast(Comparator.naturalOrder())));
|
||||||
break;
|
break;
|
||||||
case Constants.ALBUM_ORDER_BY_YEAR:
|
case Constants.ALBUM_ORDER_BY_YEAR:
|
||||||
albums.sort(Comparator.comparing(AlbumID3::getYear));
|
albums.sort(Comparator.comparing(AlbumID3::getYear));
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba
|
|||||||
Playlist playlist = bundle.getParcelable(Constants.PLAYLIST_OBJECT);
|
Playlist playlist = bundle.getParcelable(Constants.PLAYLIST_OBJECT);
|
||||||
|
|
||||||
playlistChooserViewModel.isSongInPlaylist(Objects.requireNonNull(playlist).getId(), requireActivity()).observe(requireActivity(), songInPlaylist -> {
|
playlistChooserViewModel.isSongInPlaylist(Objects.requireNonNull(playlist).getId(), requireActivity()).observe(requireActivity(), songInPlaylist -> {
|
||||||
if (songInPlaylist) {
|
if (!songInPlaylist) {
|
||||||
playlistChooserViewModel.addSongToPlaylist(playlist.getId());
|
playlistChooserViewModel.addSongToPlaylist(playlist.getId());
|
||||||
dismiss();
|
dismiss();
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -12,4 +12,4 @@
|
|||||||
android:id="@+id/downloadFragment"
|
android:id="@+id/downloadFragment"
|
||||||
android:icon="@drawable/ic_play_for_work"
|
android:icon="@drawable/ic_play_for_work"
|
||||||
android:title="@string/menu_download_label" />
|
android:title="@string/menu_download_label" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -18,4 +18,4 @@ allprojects {
|
|||||||
|
|
||||||
tasks.register('clean', Delete) {
|
tasks.register('clean', Delete) {
|
||||||
delete rootProject.buildDir
|
delete rootProject.buildDir
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user