feat: implemented playlist sharing

This commit is contained in:
antonio 2023-09-17 18:22:57 +02:00
parent 26b8f3f65c
commit 7f820bd5a6
5 changed files with 68 additions and 15 deletions

View file

@ -2,8 +2,12 @@ package com.cappielloantonio.tempo.ui.dialog;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
@ -99,6 +103,14 @@ public class PlaylistEditorDialog extends DialogFragment {
playlistEditorViewModel.deletePlaylist();
dialogDismiss();
});
bind.playlistShareButton.setOnClickListener(view -> {
playlistEditorViewModel.sharePlaylist().observe(requireActivity(), sharedPlaylist -> {
ClipboardManager clipboardManager = (ClipboardManager) requireActivity().getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText(getString(R.string.app_name), sharedPlaylist.getUrl());
clipboardManager.setPrimaryClip(clipData);
});
});
}
private void initSongsView() {

View file

@ -50,9 +50,12 @@ public class MusicUtil {
uri.append("&maxBitRate=").append(getBitratePreference());
if (!Preferences.isServerPrioritized())
uri.append("&format=").append(getTranscodingFormatPreference());
if (false)
uri.append("&estimateContentLength=true");
uri.append("&id=").append(id);
Log.d(TAG, "getStreamUri: " + uri);
return Uri.parse(uri.toString());

View file

@ -8,8 +8,10 @@ import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.cappielloantonio.tempo.repository.PlaylistRepository;
import com.cappielloantonio.tempo.repository.SharingRepository;
import com.cappielloantonio.tempo.subsonic.models.Child;
import com.cappielloantonio.tempo.subsonic.models.Playlist;
import com.cappielloantonio.tempo.subsonic.models.Share;
import java.util.ArrayList;
import java.util.Collections;
@ -20,6 +22,7 @@ public class PlaylistEditorViewModel extends AndroidViewModel {
private static final String TAG = "PlaylistEditorViewModel";
private final PlaylistRepository playlistRepository;
private final SharingRepository sharingRepository;
private Child toAdd;
private Playlist toEdit;
@ -30,6 +33,7 @@ public class PlaylistEditorViewModel extends AndroidViewModel {
super(application);
playlistRepository = new PlaylistRepository();
sharingRepository = new SharingRepository();
}
public void createPlaylist(String name) {
@ -92,4 +96,8 @@ public class PlaylistEditorViewModel extends AndroidViewModel {
return ids;
}
public MutableLiveData<Share> sharePlaylist() {
return sharingRepository.createShare(toEdit.getId(), toEdit.getName(), null);
}
}