mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 09:53:33 +00:00
feat: implemented playlist sharing
This commit is contained in:
parent
26b8f3f65c
commit
7f820bd5a6
5 changed files with 68 additions and 15 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue