diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java index cfb7527f..5cf0ba50 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java @@ -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() { diff --git a/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java b/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java index 5ae88785..d27f49f7 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java +++ b/app/src/main/java/com/cappielloantonio/tempo/util/MusicUtil.java @@ -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()); diff --git a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlaylistEditorViewModel.java b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlaylistEditorViewModel.java index aef75380..8f9181a0 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlaylistEditorViewModel.java +++ b/app/src/main/java/com/cappielloantonio/tempo/viewmodel/PlaylistEditorViewModel.java @@ -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 sharePlaylist() { + return sharingRepository.createShare(toEdit.getId(), toEdit.getName(), null); + } } diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 00000000..900774a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_playlist_editor.xml b/app/src/main/res/layout/dialog_playlist_editor.xml index 00150ae7..6a3d97d7 100644 --- a/app/src/main/res/layout/dialog_playlist_editor.xml +++ b/app/src/main/res/layout/dialog_playlist_editor.xml @@ -4,26 +4,47 @@ android:layout_height="wrap_content" android:orientation="vertical"> - + android:layout_marginStart="24dp" + android:layout_marginEnd="12dp"> - - + android:layout_weight="1" + android:textColorHint="?android:textColorHint" + app:endIconMode="clear_text" + app:endIconTint="?android:textColorSecondary" + app:errorEnabled="true"> + + + + + + + + +