feat: folder import creates a folder-named playlist (Library tab) + Imported/<folder>/ subdir

This commit is contained in:
dev 2026-09-07 11:44:12 -05:00
commit e6f88d5740
203 changed files with 205 additions and 73 deletions

View file

@ -427,24 +427,24 @@ public final class DaggerRadAmpApp_HiltComponents_SingletonC {
private static final class LazyClassKeyProvider {
static String com_rada_ui_playlists_PlaylistManagerViewModel = "com.rada.ui.playlists.PlaylistManagerViewModel";
static String com_rada_ui_library_LibraryViewModel = "com.rada.ui.library.LibraryViewModel";
static String com_rada_ui_streams_StreamsViewModel = "com.rada.ui.streams.StreamsViewModel";
static String com_rada_ui_stations_StationBrowserViewModel = "com.rada.ui.stations.StationBrowserViewModel";
static String com_rada_ui_player_NowPlayingViewModel = "com.rada.ui.player.NowPlayingViewModel";
static String com_rada_ui_player_PlayerViewModel = "com.rada.ui.player.PlayerViewModel";
static String com_rada_ui_stations_StationBrowserViewModel = "com.rada.ui.stations.StationBrowserViewModel";
static String com_rada_ui_library_LibraryViewModel = "com.rada.ui.library.LibraryViewModel";
@KeepFieldType
PlaylistManagerViewModel com_rada_ui_playlists_PlaylistManagerViewModel2;
@KeepFieldType
LibraryViewModel com_rada_ui_library_LibraryViewModel2;
StreamsViewModel com_rada_ui_streams_StreamsViewModel2;
@KeepFieldType
StreamsViewModel com_rada_ui_streams_StreamsViewModel2;
StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2;
@KeepFieldType
NowPlayingViewModel com_rada_ui_player_NowPlayingViewModel2;
@ -453,7 +453,7 @@ public final class DaggerRadAmpApp_HiltComponents_SingletonC {
PlayerViewModel com_rada_ui_player_PlayerViewModel2;
@KeepFieldType
StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2;
LibraryViewModel com_rada_ui_library_LibraryViewModel2;
}
}
@ -509,35 +509,35 @@ public final class DaggerRadAmpApp_HiltComponents_SingletonC {
@IdentifierNameString
private static final class LazyClassKeyProvider {
static String com_rada_ui_library_LibraryViewModel = "com.rada.ui.library.LibraryViewModel";
static String com_rada_ui_stations_StationBrowserViewModel = "com.rada.ui.stations.StationBrowserViewModel";
static String com_rada_ui_player_PlayerViewModel = "com.rada.ui.player.PlayerViewModel";
static String com_rada_ui_playlists_PlaylistManagerViewModel = "com.rada.ui.playlists.PlaylistManagerViewModel";
static String com_rada_ui_player_PlayerViewModel = "com.rada.ui.player.PlayerViewModel";
static String com_rada_ui_stations_StationBrowserViewModel = "com.rada.ui.stations.StationBrowserViewModel";
static String com_rada_ui_player_NowPlayingViewModel = "com.rada.ui.player.NowPlayingViewModel";
static String com_rada_ui_library_LibraryViewModel = "com.rada.ui.library.LibraryViewModel";
static String com_rada_ui_streams_StreamsViewModel = "com.rada.ui.streams.StreamsViewModel";
@KeepFieldType
LibraryViewModel com_rada_ui_library_LibraryViewModel2;
@KeepFieldType
StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2;
@KeepFieldType
PlaylistManagerViewModel com_rada_ui_playlists_PlaylistManagerViewModel2;
static String com_rada_ui_player_NowPlayingViewModel = "com.rada.ui.player.NowPlayingViewModel";
@KeepFieldType
PlayerViewModel com_rada_ui_player_PlayerViewModel2;
@KeepFieldType
NowPlayingViewModel com_rada_ui_player_NowPlayingViewModel2;
PlaylistManagerViewModel com_rada_ui_playlists_PlaylistManagerViewModel2;
@KeepFieldType
StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2;
@KeepFieldType
LibraryViewModel com_rada_ui_library_LibraryViewModel2;
@KeepFieldType
StreamsViewModel com_rada_ui_streams_StreamsViewModel2;
@KeepFieldType
NowPlayingViewModel com_rada_ui_player_NowPlayingViewModel2;
}
private static final class SwitchingProvider<T> implements Provider<T> {
@ -755,7 +755,7 @@ public final class DaggerRadAmpApp_HiltComponents_SingletonC {
return (T) AppModule_ProvidePlaylistDaoFactory.providePlaylistDao(singletonCImpl.provideDatabaseProvider.get());
case 6: // com.rada.data.repository.SongImporter
return (T) new SongImporter(ApplicationContextModule_ProvideContextFactory.provideContext(singletonCImpl.applicationContextModule), singletonCImpl.provideLibraryRepositoryProvider.get());
return (T) new SongImporter(ApplicationContextModule_ProvideContextFactory.provideContext(singletonCImpl.applicationContextModule), singletonCImpl.provideLibraryRepositoryProvider.get(), singletonCImpl.providePlaylistRepositoryProvider.get());
case 7: // com.rada.data.repository.StationRepository
return (T) AppModule_ProvideStationRepositoryFactory.provideStationRepository(ApplicationContextModule_ProvideContextFactory.provideContext(singletonCImpl.applicationContextModule));

View file

@ -28,23 +28,29 @@ public final class SongImporter_Factory implements Factory<SongImporter> {
private final Provider<LibraryRepository> libraryRepositoryProvider;
private final Provider<PlaylistRepository> playlistRepositoryProvider;
public SongImporter_Factory(Provider<Context> contextProvider,
Provider<LibraryRepository> libraryRepositoryProvider) {
Provider<LibraryRepository> libraryRepositoryProvider,
Provider<PlaylistRepository> playlistRepositoryProvider) {
this.contextProvider = contextProvider;
this.libraryRepositoryProvider = libraryRepositoryProvider;
this.playlistRepositoryProvider = playlistRepositoryProvider;
}
@Override
public SongImporter get() {
return newInstance(contextProvider.get(), libraryRepositoryProvider.get());
return newInstance(contextProvider.get(), libraryRepositoryProvider.get(), playlistRepositoryProvider.get());
}
public static SongImporter_Factory create(Provider<Context> contextProvider,
Provider<LibraryRepository> libraryRepositoryProvider) {
return new SongImporter_Factory(contextProvider, libraryRepositoryProvider);
Provider<LibraryRepository> libraryRepositoryProvider,
Provider<PlaylistRepository> playlistRepositoryProvider) {
return new SongImporter_Factory(contextProvider, libraryRepositoryProvider, playlistRepositoryProvider);
}
public static SongImporter newInstance(Context context, LibraryRepository libraryRepository) {
return new SongImporter(context, libraryRepository);
public static SongImporter newInstance(Context context, LibraryRepository libraryRepository,
PlaylistRepository playlistRepository) {
return new SongImporter(context, libraryRepository, playlistRepository);
}
}

View file

@ -133,6 +133,35 @@ public class PlaylistDao_Impl(
}
}
public override suspend fun getPlaylistByName(name: String): PlaylistEntity? {
val _sql: String = "SELECT * FROM playlists WHERE name = ? LIMIT 1"
return performSuspending(__db, true, false) { _connection ->
val _stmt: SQLiteStatement = _connection.prepare(_sql)
try {
var _argIndex: Int = 1
_stmt.bindText(_argIndex, name)
val _columnIndexOfId: Int = getColumnIndexOrThrow(_stmt, "id")
val _columnIndexOfName: Int = getColumnIndexOrThrow(_stmt, "name")
val _columnIndexOfCreatedAt: Int = getColumnIndexOrThrow(_stmt, "createdAt")
val _result: PlaylistEntity?
if (_stmt.step()) {
val _tmpId: Long
_tmpId = _stmt.getLong(_columnIndexOfId)
val _tmpName: String
_tmpName = _stmt.getText(_columnIndexOfName)
val _tmpCreatedAt: Long
_tmpCreatedAt = _stmt.getLong(_columnIndexOfCreatedAt)
_result = PlaylistEntity(_tmpId,_tmpName,_tmpCreatedAt)
} else {
_result = null
}
_result
} finally {
_stmt.close()
}
}
}
public override fun getSongsInPlaylist(playlistId: Long): Flow<List<SavedSongEntity>> {
val _sql: String = """
|

View file

@ -1,4 +1,4 @@
#Mon Sep 07 11:26:17 CDT 2026
#Mon Sep 07 11:43:56 CDT 2026
path.4=12/classes.dex
path.3=11/classes.dex
path.2=10/classes.dex

View file

@ -1 +1 @@
<EFBFBD>3<EFBFBD>%<EFBFBD>*<EFBFBD>(<EFBFBD>,<EFBFBD>,
<EFBFBD>3<EFBFBD>%<EFBFBD>*<EFBFBD>(<EFBFBD>,<EFBFBD>,<EFBFBD>+

View file

@ -1 +1 @@
<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD>
<EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD>

View file

@ -1 +1 @@
ラハ<EFBFBD>ム<EFBFBD>キ孖マセ郞<EFBFBD>
вйЪяЧ╥З╕о╬Ш╤Р╢И╗

View file

@ -1 +1 @@
<EFBFBD>?<EFBFBD>3<EFBFBD>5
<EFBFBD>?<EFBFBD>3<EFBFBD>5<EFBFBD>3

Some files were not shown because too many files have changed in this diff Show more