tempus/app/src/main/java/com/cappielloantonio/play/viewmodel/SyncViewModel.java
2021-04-27 11:01:02 +02:00

109 lines
2.6 KiB
Java

package com.cappielloantonio.play.viewmodel;
import android.app.Application;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.repository.SongRepository;
import java.util.HashMap;
import java.util.Map;
public class SyncViewModel extends AndroidViewModel {
private static final String TAG = "SyncViewModel";
private SongRepository songRepository;
private boolean syncAlbum = false;
private boolean syncArtist = false;
private boolean syncGenres = false;
private boolean syncPlaylist = false;
private boolean syncSong = false;
private boolean crossSyncSongGenre = false;
private int step = 0;
private int progress = 0;
public SyncViewModel(@NonNull Application application) {
super(application);
songRepository = new SongRepository(application);
}
public void setArguemnts(Bundle bundle) {
step = 0;
progress = 0;
syncAlbum = bundle.getBoolean("sync_album", false);
syncArtist = bundle.getBoolean("sync_artist", false);
syncGenres = bundle.getBoolean("sync_genres", false);
syncPlaylist = bundle.getBoolean("sync_playlist", false);
syncSong = bundle.getBoolean("sync_song", false);
crossSyncSongGenre = bundle.getBoolean("cross_sync_song_genre", false);
countStep();
}
private void countStep() {
if (syncAlbum) step++;
if (syncArtist) step++;
if (syncGenres) step++;
if (syncPlaylist) step++;
if (syncSong) step++;
if (crossSyncSongGenre) step++;
}
public boolean isSyncAlbum() {
return syncAlbum;
}
public boolean isSyncArtist() {
return syncArtist;
}
public boolean isSyncGenres() {
return syncGenres;
}
public boolean isSyncPlaylist() {
return syncPlaylist;
}
public boolean isSyncSong() {
return syncSong;
}
public boolean isCrossSyncSongGenre() {
return crossSyncSongGenre;
}
public int getStep() {
return step;
}
public int getProgress() {
return progress;
}
public void setProgress(Boolean step) {
if (step) progress++;
}
public int getProgressBarInfo() {
return progress * (100 / step);
}
public Map<Integer, Song> getCatalogue() {
Map<Integer, Song> map = new HashMap<>();
for (Song song : songRepository.getCatalogue()) {
map.put(song.hashCode(), song);
}
return map;
}
}