mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
fix: Disable "sync starred tracks/albums" switches when Cancel is clicked in warning dialog, use proper view for "Sync starred albums" dialog (#79)
This commit is contained in:
commit
59b40df9ef
3 changed files with 24 additions and 5 deletions
|
|
@ -12,7 +12,7 @@ import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
|
|
||||||
import com.cappielloantonio.tempo.R;
|
import com.cappielloantonio.tempo.R;
|
||||||
import com.cappielloantonio.tempo.databinding.DialogStarredSyncBinding;
|
import com.cappielloantonio.tempo.databinding.DialogStarredAlbumSyncBinding;
|
||||||
import com.cappielloantonio.tempo.model.Download;
|
import com.cappielloantonio.tempo.model.Download;
|
||||||
import com.cappielloantonio.tempo.util.DownloadUtil;
|
import com.cappielloantonio.tempo.util.DownloadUtil;
|
||||||
import com.cappielloantonio.tempo.util.MappingUtil;
|
import com.cappielloantonio.tempo.util.MappingUtil;
|
||||||
|
|
@ -26,10 +26,16 @@ import java.util.stream.Collectors;
|
||||||
public class StarredAlbumSyncDialog extends DialogFragment {
|
public class StarredAlbumSyncDialog extends DialogFragment {
|
||||||
private StarredAlbumsSyncViewModel starredAlbumsSyncViewModel;
|
private StarredAlbumsSyncViewModel starredAlbumsSyncViewModel;
|
||||||
|
|
||||||
|
private Runnable onCancel;
|
||||||
|
|
||||||
|
public StarredAlbumSyncDialog(Runnable onCancel) {
|
||||||
|
this.onCancel = onCancel;
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
DialogStarredSyncBinding bind = DialogStarredSyncBinding.inflate(getLayoutInflater());
|
DialogStarredAlbumSyncBinding bind = DialogStarredAlbumSyncBinding.inflate(getLayoutInflater());
|
||||||
|
|
||||||
starredAlbumsSyncViewModel = new ViewModelProvider(requireActivity()).get(StarredAlbumsSyncViewModel.class);
|
starredAlbumsSyncViewModel = new ViewModelProvider(requireActivity()).get(StarredAlbumsSyncViewModel.class);
|
||||||
|
|
||||||
|
|
@ -74,6 +80,7 @@ public class StarredAlbumSyncDialog extends DialogFragment {
|
||||||
Button negativeButton = dialog.getButton(Dialog.BUTTON_NEGATIVE);
|
Button negativeButton = dialog.getButton(Dialog.BUTTON_NEGATIVE);
|
||||||
negativeButton.setOnClickListener(v -> {
|
negativeButton.setOnClickListener(v -> {
|
||||||
Preferences.setStarredAlbumsSyncEnabled(false);
|
Preferences.setStarredAlbumsSyncEnabled(false);
|
||||||
|
if (onCancel != null) onCancel.run();
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,12 @@ import java.util.stream.Collectors;
|
||||||
public class StarredSyncDialog extends DialogFragment {
|
public class StarredSyncDialog extends DialogFragment {
|
||||||
private StarredSyncViewModel starredSyncViewModel;
|
private StarredSyncViewModel starredSyncViewModel;
|
||||||
|
|
||||||
|
private Runnable onCancel;
|
||||||
|
|
||||||
|
public StarredSyncDialog(Runnable onCancel) {
|
||||||
|
this.onCancel = onCancel;
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
|
|
@ -75,6 +81,7 @@ public class StarredSyncDialog extends DialogFragment {
|
||||||
Button negativeButton = dialog.getButton(Dialog.BUTTON_NEGATIVE);
|
Button negativeButton = dialog.getButton(Dialog.BUTTON_NEGATIVE);
|
||||||
negativeButton.setOnClickListener(v -> {
|
negativeButton.setOnClickListener(v -> {
|
||||||
Preferences.setStarredSyncEnabled(false);
|
Preferences.setStarredSyncEnabled(false);
|
||||||
|
if (onCancel != null) onCancel.run();
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.preference.ListPreference;
|
import androidx.preference.ListPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
import com.cappielloantonio.tempo.BuildConfig;
|
import com.cappielloantonio.tempo.BuildConfig;
|
||||||
import com.cappielloantonio.tempo.R;
|
import com.cappielloantonio.tempo.R;
|
||||||
|
|
@ -257,9 +258,11 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
findPreference("sync_starred_tracks_for_offline_use").setOnPreferenceChangeListener((preference, newValue) -> {
|
findPreference("sync_starred_tracks_for_offline_use").setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
if (newValue instanceof Boolean) {
|
if (newValue instanceof Boolean) {
|
||||||
if ((Boolean) newValue) {
|
if ((Boolean) newValue) {
|
||||||
StarredSyncDialog dialog = new StarredSyncDialog();
|
StarredSyncDialog dialog = new StarredSyncDialog(() -> {
|
||||||
|
((SwitchPreference)preference).setChecked(false);
|
||||||
|
});
|
||||||
dialog.show(activity.getSupportFragmentManager(), null);
|
dialog.show(activity.getSupportFragmentManager(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
@ -269,7 +272,9 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
findPreference("sync_starred_albums_for_offline_use").setOnPreferenceChangeListener((preference, newValue) -> {
|
findPreference("sync_starred_albums_for_offline_use").setOnPreferenceChangeListener((preference, newValue) -> {
|
||||||
if (newValue instanceof Boolean) {
|
if (newValue instanceof Boolean) {
|
||||||
if ((Boolean) newValue) {
|
if ((Boolean) newValue) {
|
||||||
StarredAlbumSyncDialog dialog = new StarredAlbumSyncDialog();
|
StarredAlbumSyncDialog dialog = new StarredAlbumSyncDialog(() -> {
|
||||||
|
((SwitchPreference)preference).setChecked(false);
|
||||||
|
});
|
||||||
dialog.show(activity.getSupportFragmentManager(), null);
|
dialog.show(activity.getSupportFragmentManager(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue