From 3eb9b2fb5ccef9da008cfc3c3de767af018b5341 Mon Sep 17 00:00:00 2001 From: eddyizm Date: Sat, 27 Sep 2025 21:52:04 -0700 Subject: [PATCH] chore: added dialog to starred artists sync --- .../tempo/ui/fragment/SettingsFragment.java | 18 +++++++++++++++++- .../viewmodel/StarredArtistsSyncViewModel.java | 1 - 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java index aa33631c..602acc8c 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java @@ -42,6 +42,7 @@ import com.cappielloantonio.tempo.ui.dialog.DeleteDownloadStorageDialog; import com.cappielloantonio.tempo.ui.dialog.DownloadStorageDialog; import com.cappielloantonio.tempo.ui.dialog.StarredSyncDialog; import com.cappielloantonio.tempo.ui.dialog.StarredAlbumSyncDialog; +import com.cappielloantonio.tempo.ui.dialog.StarredArtistSyncDialog; import com.cappielloantonio.tempo.ui.dialog.StreamingCacheStorageDialog; import com.cappielloantonio.tempo.util.DownloadUtil; import com.cappielloantonio.tempo.util.Preferences; @@ -110,6 +111,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { actionScan(); actionSyncStarredAlbums(); actionSyncStarredTracks(); + actionSyncStarredArtists(); actionChangeStreamingCacheStorage(); actionChangeDownloadStorage(); actionDeleteDownloadStorage(); @@ -296,7 +298,21 @@ public class SettingsFragment extends PreferenceFragmentCompat { return true; }); } - + + private void actionSyncStarredArtists() { + findPreference("sync_starred_artists_for_offline_use").setOnPreferenceChangeListener((preference, newValue) -> { + if (newValue instanceof Boolean) { + if ((Boolean) newValue) { + StarredArtistSyncDialog dialog = new StarredArtistSyncDialog(() -> { + ((SwitchPreference)preference).setChecked(false); + }); + dialog.show(activity.getSupportFragmentManager(), null); + } + } + return true; + }); + } + private void actionChangeStreamingCacheStorage() { findPreference("streaming_cache_storage").setOnPreferenceClickListener(preference -> { StreamingCacheStorageDialog dialog = new StreamingCacheStorageDialog(new DialogClickCallback() { diff --git a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/StarredArtistsSyncViewModel.java b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/StarredArtistsSyncViewModel.java index 724a7f9c..474cbe87 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/StarredArtistsSyncViewModel.java +++ b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/StarredArtistsSyncViewModel.java @@ -72,7 +72,6 @@ public class StarredArtistsSyncViewModel extends AndroidViewModel { AtomicInteger remainingArtists = new AtomicInteger(artists.size()); for (ArtistID3 artist : artists) { - // Use the new callback-based method artistRepository.getArtistAllSongs(artist.getId(), new ArtistRepository.ArtistSongsCallback() { @Override public void onSongsCollected(List songs) {