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 { private static final class LazyClassKeyProvider {
static String com_rada_ui_playlists_PlaylistManagerViewModel = "com.rada.ui.playlists.PlaylistManagerViewModel"; 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_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_NowPlayingViewModel = "com.rada.ui.player.NowPlayingViewModel";
static String com_rada_ui_player_PlayerViewModel = "com.rada.ui.player.PlayerViewModel"; 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 @KeepFieldType
PlaylistManagerViewModel com_rada_ui_playlists_PlaylistManagerViewModel2; PlaylistManagerViewModel com_rada_ui_playlists_PlaylistManagerViewModel2;
@KeepFieldType @KeepFieldType
LibraryViewModel com_rada_ui_library_LibraryViewModel2; StreamsViewModel com_rada_ui_streams_StreamsViewModel2;
@KeepFieldType @KeepFieldType
StreamsViewModel com_rada_ui_streams_StreamsViewModel2; StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2;
@KeepFieldType @KeepFieldType
NowPlayingViewModel com_rada_ui_player_NowPlayingViewModel2; NowPlayingViewModel com_rada_ui_player_NowPlayingViewModel2;
@ -453,7 +453,7 @@ public final class DaggerRadAmpApp_HiltComponents_SingletonC {
PlayerViewModel com_rada_ui_player_PlayerViewModel2; PlayerViewModel com_rada_ui_player_PlayerViewModel2;
@KeepFieldType @KeepFieldType
StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2; LibraryViewModel com_rada_ui_library_LibraryViewModel2;
} }
} }
@ -509,35 +509,35 @@ public final class DaggerRadAmpApp_HiltComponents_SingletonC {
@IdentifierNameString @IdentifierNameString
private static final class LazyClassKeyProvider { private static final class LazyClassKeyProvider {
static String com_rada_ui_library_LibraryViewModel = "com.rada.ui.library.LibraryViewModel"; 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_playlists_PlaylistManagerViewModel = "com.rada.ui.playlists.PlaylistManagerViewModel"; 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"; static String com_rada_ui_streams_StreamsViewModel = "com.rada.ui.streams.StreamsViewModel";
@KeepFieldType static String com_rada_ui_player_NowPlayingViewModel = "com.rada.ui.player.NowPlayingViewModel";
LibraryViewModel com_rada_ui_library_LibraryViewModel2;
@KeepFieldType
StationBrowserViewModel com_rada_ui_stations_StationBrowserViewModel2;
@KeepFieldType
PlaylistManagerViewModel com_rada_ui_playlists_PlaylistManagerViewModel2;
@KeepFieldType @KeepFieldType
PlayerViewModel com_rada_ui_player_PlayerViewModel2; PlayerViewModel com_rada_ui_player_PlayerViewModel2;
@KeepFieldType @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 @KeepFieldType
StreamsViewModel com_rada_ui_streams_StreamsViewModel2; StreamsViewModel com_rada_ui_streams_StreamsViewModel2;
@KeepFieldType
NowPlayingViewModel com_rada_ui_player_NowPlayingViewModel2;
} }
private static final class SwitchingProvider<T> implements Provider<T> { 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()); return (T) AppModule_ProvidePlaylistDaoFactory.providePlaylistDao(singletonCImpl.provideDatabaseProvider.get());
case 6: // com.rada.data.repository.SongImporter 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 case 7: // com.rada.data.repository.StationRepository
return (T) AppModule_ProvideStationRepositoryFactory.provideStationRepository(ApplicationContextModule_ProvideContextFactory.provideContext(singletonCImpl.applicationContextModule)); 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<LibraryRepository> libraryRepositoryProvider;
private final Provider<PlaylistRepository> playlistRepositoryProvider;
public SongImporter_Factory(Provider<Context> contextProvider, public SongImporter_Factory(Provider<Context> contextProvider,
Provider<LibraryRepository> libraryRepositoryProvider) { Provider<LibraryRepository> libraryRepositoryProvider,
Provider<PlaylistRepository> playlistRepositoryProvider) {
this.contextProvider = contextProvider; this.contextProvider = contextProvider;
this.libraryRepositoryProvider = libraryRepositoryProvider; this.libraryRepositoryProvider = libraryRepositoryProvider;
this.playlistRepositoryProvider = playlistRepositoryProvider;
} }
@Override @Override
public SongImporter get() { 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, public static SongImporter_Factory create(Provider<Context> contextProvider,
Provider<LibraryRepository> libraryRepositoryProvider) { Provider<LibraryRepository> libraryRepositoryProvider,
return new SongImporter_Factory(contextProvider, libraryRepositoryProvider); Provider<PlaylistRepository> playlistRepositoryProvider) {
return new SongImporter_Factory(contextProvider, libraryRepositoryProvider, playlistRepositoryProvider);
} }
public static SongImporter newInstance(Context context, LibraryRepository libraryRepository) { public static SongImporter newInstance(Context context, LibraryRepository libraryRepository,
return new SongImporter(context, 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>> { public override fun getSongsInPlaylist(playlistId: Long): Flow<List<SavedSongEntity>> {
val _sql: String = """ 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.4=12/classes.dex
path.3=11/classes.dex path.3=11/classes.dex
path.2=10/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> вйЪяЧ╥З╕о╬Ш╤Р╢И╗

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