mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Merge pull request #7194 from KalleStruik/add-to-playlist-in-share
Add a "add to playlist" option in the share menu
This commit is contained in:
		| @@ -9,8 +9,8 @@ import android.widget.PopupMenu; | ||||
|  | ||||
| import androidx.fragment.app.FragmentManager; | ||||
|  | ||||
| import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistCreationDialog; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistDialog; | ||||
| import org.schabi.newpipe.player.playqueue.PlayQueue; | ||||
| import org.schabi.newpipe.player.playqueue.PlayQueueItem; | ||||
| import org.schabi.newpipe.util.NavigationHelper; | ||||
| @@ -47,13 +47,15 @@ public final class QueueItemMenuUtil { | ||||
|                             false); | ||||
|                     return true; | ||||
|                 case R.id.menu_item_append_playlist: | ||||
|                     final PlaylistAppendDialog d = PlaylistAppendDialog.fromPlayQueueItems( | ||||
|                             Collections.singletonList(item) | ||||
|                     PlaylistDialog.createCorrespondingDialog( | ||||
|                             context, | ||||
|                             Collections.singletonList(new StreamEntity(item)), | ||||
|                             dialog -> dialog.show( | ||||
|                                     fragmentManager, | ||||
|                                     "QueueItemMenuUtil@append_playlist" | ||||
|                             ) | ||||
|                     ); | ||||
|                     PlaylistAppendDialog.onPlaylistFound(context, | ||||
|                             () -> d.show(fragmentManager, "QueueItemMenuUtil@append_playlist"), | ||||
|                             () -> PlaylistCreationDialog.newInstance(d) | ||||
|                                     .show(fragmentManager, "QueueItemMenuUtil@append_playlist")); | ||||
|  | ||||
|                     return true; | ||||
|                 case R.id.menu_item_share: | ||||
|                     shareText(context, item.getTitle(), item.getUrl(), | ||||
|   | ||||
| @@ -1,5 +1,8 @@ | ||||
| package org.schabi.newpipe; | ||||
|  | ||||
| import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.AUDIO; | ||||
| import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.VIDEO; | ||||
|  | ||||
| import android.annotation.SuppressLint; | ||||
| import android.app.IntentService; | ||||
| import android.content.Context; | ||||
| @@ -30,6 +33,7 @@ import androidx.core.widget.TextViewCompat; | ||||
| import androidx.fragment.app.FragmentManager; | ||||
| import androidx.preference.PreferenceManager; | ||||
|  | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.databinding.ListRadioIconItemBinding; | ||||
| import org.schabi.newpipe.databinding.SingleChoiceDialogViewBinding; | ||||
| import org.schabi.newpipe.download.DownloadDialog; | ||||
| @@ -56,6 +60,7 @@ import org.schabi.newpipe.extractor.playlist.PlaylistInfo; | ||||
| import org.schabi.newpipe.extractor.stream.StreamInfo; | ||||
| import org.schabi.newpipe.extractor.stream.VideoStream; | ||||
| import org.schabi.newpipe.ktx.ExceptionUtils; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistDialog; | ||||
| import org.schabi.newpipe.player.MainPlayer; | ||||
| import org.schabi.newpipe.player.helper.PlayerHelper; | ||||
| import org.schabi.newpipe.player.helper.PlayerHolder; | ||||
| @@ -69,14 +74,15 @@ import org.schabi.newpipe.util.ExtractorHelper; | ||||
| import org.schabi.newpipe.util.ListHelper; | ||||
| import org.schabi.newpipe.util.NavigationHelper; | ||||
| import org.schabi.newpipe.util.PermissionHelper; | ||||
| import org.schabi.newpipe.util.external_communication.ShareUtils; | ||||
| import org.schabi.newpipe.util.ThemeHelper; | ||||
| import org.schabi.newpipe.util.external_communication.ShareUtils; | ||||
| import org.schabi.newpipe.util.urlfinder.UrlFinder; | ||||
| import org.schabi.newpipe.views.FocusOverlayView; | ||||
|  | ||||
| import java.io.Serializable; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Arrays; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| import icepick.Icepick; | ||||
| @@ -89,9 +95,6 @@ import io.reactivex.rxjava3.disposables.Disposable; | ||||
| import io.reactivex.rxjava3.functions.Consumer; | ||||
| import io.reactivex.rxjava3.schedulers.Schedulers; | ||||
|  | ||||
| import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.AUDIO; | ||||
| import static org.schabi.newpipe.extractor.StreamingService.ServiceInfo.MediaCapability.VIDEO; | ||||
|  | ||||
| /** | ||||
|  * Get the url from the intent and open it in the chosen preferred player. | ||||
|  */ | ||||
| @@ -107,6 +110,7 @@ public class RouterActivity extends AppCompatActivity { | ||||
|     protected String currentUrl; | ||||
|     private StreamingService currentService; | ||||
|     private boolean selectionIsDownload = false; | ||||
|     private boolean selectionIsAddToPlaylist = false; | ||||
|     private AlertDialog alertDialogChoice = null; | ||||
|  | ||||
|     @Override | ||||
| @@ -350,7 +354,7 @@ public class RouterActivity extends AppCompatActivity { | ||||
|                 .setNegativeButton(R.string.just_once, dialogButtonsClickListener) | ||||
|                 .setPositiveButton(R.string.always, dialogButtonsClickListener) | ||||
|                 .setOnDismissListener((dialog) -> { | ||||
|                     if (!selectionIsDownload) { | ||||
|                     if (!selectionIsDownload && !selectionIsAddToPlaylist) { | ||||
|                         finish(); | ||||
|                     } | ||||
|                 }) | ||||
| @@ -446,6 +450,10 @@ public class RouterActivity extends AppCompatActivity { | ||||
|         final AdapterChoiceItem backgroundPlayer = new AdapterChoiceItem( | ||||
|                 getString(R.string.background_player_key), getString(R.string.background_player), | ||||
|                 R.drawable.ic_headset); | ||||
|         final AdapterChoiceItem addToPlaylist = new AdapterChoiceItem( | ||||
|                 getString(R.string.add_to_playlist_key), getString(R.string.add_to_playlist), | ||||
|                 R.drawable.ic_add); | ||||
|  | ||||
|  | ||||
|         if (linkType == LinkType.STREAM) { | ||||
|             if (isExtVideoEnabled) { | ||||
| @@ -482,6 +490,10 @@ public class RouterActivity extends AppCompatActivity { | ||||
|                     getString(R.string.download), | ||||
|                     R.drawable.ic_file_download)); | ||||
|  | ||||
|             // Add to playlist is not necessary for CHANNEL and PLAYLIST linkType since those can | ||||
|             // not be added to a playlist | ||||
|             returnList.add(addToPlaylist); | ||||
|  | ||||
|         } else { | ||||
|             returnList.add(showInfo); | ||||
|             if (capabilities.contains(VIDEO) && !isExtVideoEnabled) { | ||||
| @@ -547,6 +559,12 @@ public class RouterActivity extends AppCompatActivity { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if (selectedChoiceKey.equals(getString(R.string.add_to_playlist_key))) { | ||||
|             selectionIsAddToPlaylist = true; | ||||
|             openAddToPlaylistDialog(); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         // stop and bypass FetcherService if InfoScreen was selected since | ||||
|         // StreamDetailFragment can fetch data itself | ||||
|         if (selectedChoiceKey.equals(getString(R.string.show_info_key))) { | ||||
| @@ -572,6 +590,41 @@ public class RouterActivity extends AppCompatActivity { | ||||
|         finish(); | ||||
|     } | ||||
|  | ||||
|     private void openAddToPlaylistDialog() { | ||||
|         // Getting the stream info usually takes a moment | ||||
|         // Notifying the user here to ensure that no confusion arises | ||||
|         Toast.makeText( | ||||
|                 getApplicationContext(), | ||||
|                 getString(R.string.processing_may_take_a_moment), | ||||
|                 Toast.LENGTH_SHORT) | ||||
|                 .show(); | ||||
|  | ||||
|         disposables.add(ExtractorHelper.getStreamInfo(currentServiceId, currentUrl, false) | ||||
|                 .subscribeOn(Schedulers.io()) | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe( | ||||
|                         info -> PlaylistDialog.createCorrespondingDialog( | ||||
|                                 getThemeWrapperContext(), | ||||
|                                 Collections.singletonList(new StreamEntity(info)), | ||||
|                                 playlistDialog -> { | ||||
|                                     playlistDialog.setOnDismissListener(dialog -> finish()); | ||||
|  | ||||
|                                     playlistDialog.show( | ||||
|                                             this.getSupportFragmentManager(), | ||||
|                                             "addToPlaylistDialog" | ||||
|                                     ); | ||||
|                                 } | ||||
|                         ), | ||||
|                         throwable -> handleError(this, new ErrorInfo( | ||||
|                                 throwable, | ||||
|                                 UserAction.REQUESTED_STREAM, | ||||
|                                 "Tried to add " + currentUrl + " to a playlist", | ||||
|                                 currentService.getServiceId()) | ||||
|                         ) | ||||
|                 ) | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     @SuppressLint("CheckResult") | ||||
|     private void openDownloadDialog() { | ||||
|         disposables.add(ExtractorHelper.getStreamInfo(currentServiceId, currentUrl, true) | ||||
|   | ||||
| @@ -52,6 +52,7 @@ import com.squareup.picasso.Callback; | ||||
|  | ||||
| import org.schabi.newpipe.App; | ||||
| import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.databinding.FragmentVideoDetailBinding; | ||||
| import org.schabi.newpipe.download.DownloadDialog; | ||||
| import org.schabi.newpipe.error.ErrorActivity; | ||||
| @@ -73,8 +74,7 @@ import org.schabi.newpipe.fragments.EmptyFragment; | ||||
| import org.schabi.newpipe.fragments.list.comments.CommentsFragment; | ||||
| import org.schabi.newpipe.fragments.list.videos.RelatedItemsFragment; | ||||
| import org.schabi.newpipe.ktx.AnimationType; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistCreationDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistDialog; | ||||
| import org.schabi.newpipe.local.history.HistoryRecordManager; | ||||
| import org.schabi.newpipe.player.MainPlayer; | ||||
| import org.schabi.newpipe.player.MainPlayer.PlayerType; | ||||
| @@ -99,6 +99,7 @@ import org.schabi.newpipe.util.external_communication.KoreUtils; | ||||
| import org.schabi.newpipe.util.external_communication.ShareUtils; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.Iterator; | ||||
| import java.util.LinkedList; | ||||
| import java.util.List; | ||||
| @@ -444,12 +445,11 @@ public final class VideoDetailFragment | ||||
|                 break; | ||||
|             case R.id.detail_controls_playlist_append: | ||||
|                 if (getFM() != null && currentInfo != null) { | ||||
|  | ||||
|                     final PlaylistAppendDialog d = PlaylistAppendDialog.fromStreamInfo(currentInfo); | ||||
|                     disposables.add( | ||||
|                             PlaylistAppendDialog.onPlaylistFound(getContext(), | ||||
|                                     () -> d.show(getFM(), TAG), | ||||
|                                     () -> PlaylistCreationDialog.newInstance(d).show(getFM(), TAG) | ||||
|                             PlaylistDialog.createCorrespondingDialog( | ||||
|                                     getContext(), | ||||
|                                     Collections.singletonList(new StreamEntity(currentInfo)), | ||||
|                                     dialog -> dialog.show(getFM(), TAG) | ||||
|                             ) | ||||
|                     ); | ||||
|                 } | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| package org.schabi.newpipe.local.dialog; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.os.Bundle; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| @@ -17,20 +16,14 @@ import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.database.LocalItem; | ||||
| import org.schabi.newpipe.database.playlist.PlaylistMetadataEntry; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.extractor.stream.StreamInfo; | ||||
| import org.schabi.newpipe.extractor.stream.StreamInfoItem; | ||||
| import org.schabi.newpipe.local.LocalItemListAdapter; | ||||
| import org.schabi.newpipe.local.playlist.LocalPlaylistManager; | ||||
| import org.schabi.newpipe.player.playqueue.PlayQueueItem; | ||||
| import org.schabi.newpipe.util.OnClickGesture; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; | ||||
| import io.reactivex.rxjava3.disposables.CompositeDisposable; | ||||
| import io.reactivex.rxjava3.disposables.Disposable; | ||||
|  | ||||
| public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|     private static final String TAG = PlaylistAppendDialog.class.getCanonicalName(); | ||||
| @@ -40,47 +33,8 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|  | ||||
|     private final CompositeDisposable playlistDisposables = new CompositeDisposable(); | ||||
|  | ||||
|     public static Disposable onPlaylistFound( | ||||
|             final Context context, final Runnable onSuccess, final Runnable onFailed | ||||
|     ) { | ||||
|         final LocalPlaylistManager playlistManager = | ||||
|                 new LocalPlaylistManager(NewPipeDatabase.getInstance(context)); | ||||
|  | ||||
|         return playlistManager.hasPlaylists() | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe(hasPlaylists -> { | ||||
|                     if (hasPlaylists) { | ||||
|                         onSuccess.run(); | ||||
|                     } else { | ||||
|                         onFailed.run(); | ||||
|                     } | ||||
|                 }); | ||||
|     } | ||||
|  | ||||
|     public static PlaylistAppendDialog fromStreamInfo(final StreamInfo info) { | ||||
|         final PlaylistAppendDialog dialog = new PlaylistAppendDialog(); | ||||
|         dialog.setInfo(Collections.singletonList(new StreamEntity(info))); | ||||
|         return dialog; | ||||
|     } | ||||
|  | ||||
|     public static PlaylistAppendDialog fromStreamInfoItems(final List<StreamInfoItem> items) { | ||||
|         final PlaylistAppendDialog dialog = new PlaylistAppendDialog(); | ||||
|         final List<StreamEntity> entities = new ArrayList<>(items.size()); | ||||
|         for (final StreamInfoItem item : items) { | ||||
|             entities.add(new StreamEntity(item)); | ||||
|         } | ||||
|         dialog.setInfo(entities); | ||||
|         return dialog; | ||||
|     } | ||||
|  | ||||
|     public static PlaylistAppendDialog fromPlayQueueItems(final List<PlayQueueItem> items) { | ||||
|         final PlaylistAppendDialog dialog = new PlaylistAppendDialog(); | ||||
|         final List<StreamEntity> entities = new ArrayList<>(items.size()); | ||||
|         for (final PlayQueueItem item : items) { | ||||
|             entities.add(new StreamEntity(item)); | ||||
|         } | ||||
|         dialog.setInfo(entities); | ||||
|         return dialog; | ||||
|     public PlaylistAppendDialog(final List<StreamEntity> streamEntities) { | ||||
|         super(streamEntities); | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
| @@ -104,11 +58,15 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|         playlistAdapter.setSelectedListener(new OnClickGesture<LocalItem>() { | ||||
|             @Override | ||||
|             public void selected(final LocalItem selectedItem) { | ||||
|                 if (!(selectedItem instanceof PlaylistMetadataEntry) || getStreams() == null) { | ||||
|                 if (!(selectedItem instanceof PlaylistMetadataEntry) | ||||
|                         || getStreamEntities() == null) { | ||||
|                     return; | ||||
|                 } | ||||
|                 onPlaylistSelected(playlistManager, (PlaylistMetadataEntry) selectedItem, | ||||
|                         getStreams()); | ||||
|                 onPlaylistSelected( | ||||
|                         playlistManager, | ||||
|                         (PlaylistMetadataEntry) selectedItem, | ||||
|                         getStreamEntities() | ||||
|                 ); | ||||
|             } | ||||
|         }); | ||||
|  | ||||
| @@ -146,11 +104,17 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
|  | ||||
|     public void openCreatePlaylistDialog() { | ||||
|         if (getStreams() == null || !isAdded()) { | ||||
|         if (getStreamEntities() == null || !isAdded()) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         PlaylistCreationDialog.newInstance(getStreams()).show(getParentFragmentManager(), TAG); | ||||
|         final PlaylistCreationDialog playlistCreationDialog = | ||||
|                 new PlaylistCreationDialog(getStreamEntities()); | ||||
|         // Move the dismissListener to the new dialog. | ||||
|         playlistCreationDialog.setOnDismissListener(this.getOnDismissListener()); | ||||
|         this.setOnDismissListener(null); | ||||
|  | ||||
|         playlistCreationDialog.show(getParentFragmentManager(), TAG); | ||||
|         requireDialog().dismiss(); | ||||
|     } | ||||
|  | ||||
| @@ -165,7 +129,7 @@ public final class PlaylistAppendDialog extends PlaylistDialog { | ||||
|     private void onPlaylistSelected(@NonNull final LocalPlaylistManager manager, | ||||
|                                     @NonNull final PlaylistMetadataEntry playlist, | ||||
|                                     @NonNull final List<StreamEntity> streams) { | ||||
|         if (getStreams() == null) { | ||||
|         if (getStreamEntities() == null) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -7,29 +7,22 @@ import android.widget.Toast; | ||||
|  | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | ||||
| import androidx.appcompat.app.AlertDialog; | ||||
| import androidx.appcompat.app.AlertDialog.Builder; | ||||
|  | ||||
| import org.schabi.newpipe.NewPipeDatabase; | ||||
| import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.databinding.DialogEditTextBinding; | ||||
| import org.schabi.newpipe.local.playlist.LocalPlaylistManager; | ||||
| import org.schabi.newpipe.util.ThemeHelper; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; | ||||
|  | ||||
| public final class PlaylistCreationDialog extends PlaylistDialog { | ||||
|     public static PlaylistCreationDialog newInstance(final List<StreamEntity> streams) { | ||||
|         final PlaylistCreationDialog dialog = new PlaylistCreationDialog(); | ||||
|         dialog.setInfo(streams); | ||||
|         return dialog; | ||||
|     } | ||||
|  | ||||
|     public static PlaylistCreationDialog newInstance(final PlaylistAppendDialog appendDialog) { | ||||
|         final PlaylistCreationDialog dialog = new PlaylistCreationDialog(); | ||||
|         dialog.setInfo(appendDialog.getStreams()); | ||||
|         return dialog; | ||||
|     public PlaylistCreationDialog(final List<StreamEntity> streamEntities) { | ||||
|         super(streamEntities); | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
| @@ -39,16 +32,18 @@ public final class PlaylistCreationDialog extends PlaylistDialog { | ||||
|     @NonNull | ||||
|     @Override | ||||
|     public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) { | ||||
|         if (getStreams() == null) { | ||||
|         if (getStreamEntities() == null) { | ||||
|             return super.onCreateDialog(savedInstanceState); | ||||
|         } | ||||
|  | ||||
|         final DialogEditTextBinding dialogBinding | ||||
|                 = DialogEditTextBinding.inflate(getLayoutInflater()); | ||||
|         dialogBinding.getRoot().getContext().setTheme(ThemeHelper.getDialogTheme(requireContext())); | ||||
|         dialogBinding.dialogEditText.setHint(R.string.name); | ||||
|         dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT); | ||||
|  | ||||
|         final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(requireContext()) | ||||
|         final Builder dialogBuilder = new Builder(requireContext(), | ||||
|                 ThemeHelper.getDialogTheme(requireContext())) | ||||
|                 .setTitle(R.string.create_playlist) | ||||
|                 .setView(dialogBinding.getRoot()) | ||||
|                 .setCancelable(true) | ||||
| @@ -61,11 +56,10 @@ public final class PlaylistCreationDialog extends PlaylistDialog { | ||||
|                             R.string.playlist_creation_success, | ||||
|                             Toast.LENGTH_SHORT); | ||||
|  | ||||
|                     playlistManager.createPlaylist(name, getStreams()) | ||||
|                     playlistManager.createPlaylist(name, getStreamEntities()) | ||||
|                             .observeOn(AndroidSchedulers.mainThread()) | ||||
|                             .subscribe(longs -> successToast.show()); | ||||
|                 }); | ||||
|  | ||||
|         return dialogBuilder.create(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,6 +1,8 @@ | ||||
| package org.schabi.newpipe.local.dialog; | ||||
|  | ||||
| import android.app.Dialog; | ||||
| import android.content.Context; | ||||
| import android.content.DialogInterface; | ||||
| import android.os.Bundle; | ||||
| import android.view.Window; | ||||
|  | ||||
| @@ -8,23 +10,29 @@ import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | ||||
| import androidx.fragment.app.DialogFragment; | ||||
|  | ||||
| import org.schabi.newpipe.NewPipeDatabase; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.local.playlist.LocalPlaylistManager; | ||||
| import org.schabi.newpipe.util.StateSaver; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.Queue; | ||||
| import java.util.function.Consumer; | ||||
|  | ||||
| import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; | ||||
| import io.reactivex.rxjava3.disposables.Disposable; | ||||
|  | ||||
| public abstract class PlaylistDialog extends DialogFragment implements StateSaver.WriteRead { | ||||
|  | ||||
|     @Nullable | ||||
|     private DialogInterface.OnDismissListener onDismissListener = null; | ||||
|  | ||||
|     private List<StreamEntity> streamEntities; | ||||
|  | ||||
|     private org.schabi.newpipe.util.SavedState savedState; | ||||
|  | ||||
|     protected void setInfo(final List<StreamEntity> entities) { | ||||
|         this.streamEntities = entities; | ||||
|     } | ||||
|  | ||||
|     protected List<StreamEntity> getStreams() { | ||||
|         return streamEntities; | ||||
|     public PlaylistDialog(final List<StreamEntity> streamEntities) { | ||||
|         this.streamEntities = streamEntities; | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
| @@ -43,6 +51,10 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave | ||||
|         StateSaver.onDestroy(savedState); | ||||
|     } | ||||
|  | ||||
|     public List<StreamEntity> getStreamEntities() { | ||||
|         return streamEntities; | ||||
|     } | ||||
|  | ||||
|     @NonNull | ||||
|     @Override | ||||
|     public Dialog onCreateDialog(final Bundle savedInstanceState) { | ||||
| @@ -55,6 +67,14 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave | ||||
|         return dialog; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onDismiss(@NonNull final DialogInterface dialog) { | ||||
|         super.onDismiss(dialog); | ||||
|         if (onDismissListener != null) { | ||||
|             onDismissListener.onDismiss(dialog); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
|     // State Saving | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
| @@ -84,4 +104,47 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave | ||||
|                     savedState, outState, this); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
|     // Getter + Setter | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
|  | ||||
|     @Nullable | ||||
|     public DialogInterface.OnDismissListener getOnDismissListener() { | ||||
|         return onDismissListener; | ||||
|     } | ||||
|  | ||||
|     public void setOnDismissListener( | ||||
|             @Nullable final DialogInterface.OnDismissListener onDismissListener | ||||
|     ) { | ||||
|         this.onDismissListener = onDismissListener; | ||||
|     } | ||||
|  | ||||
|     /*////////////////////////////////////////////////////////////////////////// | ||||
|     // Dialog creation | ||||
|     //////////////////////////////////////////////////////////////////////////*/ | ||||
|  | ||||
|     /** | ||||
|      * Creates a {@link PlaylistAppendDialog} when playlists exists, | ||||
|      * otherwise a {@link PlaylistCreationDialog}. | ||||
|      * | ||||
|      * @param context        context used for accessing the database | ||||
|      * @param streamEntities used for crating the dialog | ||||
|      * @param onExec         execution that should occur after a dialog got created, e.g. showing it | ||||
|      * @return Disposable | ||||
|      */ | ||||
|     public static Disposable createCorrespondingDialog( | ||||
|             final Context context, | ||||
|             final List<StreamEntity> streamEntities, | ||||
|             final Consumer<PlaylistDialog> onExec | ||||
|     ) { | ||||
|         return new LocalPlaylistManager(NewPipeDatabase.getInstance(context)) | ||||
|                 .hasPlaylists() | ||||
|                 .observeOn(AndroidSchedulers.mainThread()) | ||||
|                 .subscribe(hasPlaylists -> | ||||
|                         onExec.accept(hasPlaylists | ||||
|                                 ? new PlaylistAppendDialog(streamEntities) | ||||
|                                 : new PlaylistCreationDialog(streamEntities)) | ||||
|                 ); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -23,11 +23,11 @@ import androidx.recyclerview.widget.RecyclerView; | ||||
| import com.google.android.exoplayer2.PlaybackParameters; | ||||
|  | ||||
| import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.databinding.ActivityPlayerQueueControlBinding; | ||||
| import org.schabi.newpipe.extractor.stream.StreamInfo; | ||||
| import org.schabi.newpipe.fragments.OnScrollBelowItemsListener; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistCreationDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistDialog; | ||||
| import org.schabi.newpipe.player.event.PlayerEventListener; | ||||
| import org.schabi.newpipe.player.helper.PlaybackParameterDialog; | ||||
| import org.schabi.newpipe.player.playqueue.PlayQueue; | ||||
| @@ -43,6 +43,7 @@ import org.schabi.newpipe.util.ServiceHelper; | ||||
| import org.schabi.newpipe.util.ThemeHelper; | ||||
|  | ||||
| import java.util.List; | ||||
| import java.util.stream.Collectors; | ||||
|  | ||||
| import static org.schabi.newpipe.QueueItemMenuUtil.openPopupMenu; | ||||
| import static org.schabi.newpipe.player.helper.PlayerHelper.formatSpeed; | ||||
| @@ -452,12 +453,12 @@ public final class PlayQueueActivity extends AppCompatActivity | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private void openPlaylistAppendDialog(final List<PlayQueueItem> playlist) { | ||||
|         final PlaylistAppendDialog d = PlaylistAppendDialog.fromPlayQueueItems(playlist); | ||||
|  | ||||
|         PlaylistAppendDialog.onPlaylistFound(getApplicationContext(), | ||||
|             () -> d.show(getSupportFragmentManager(), TAG), | ||||
|             () -> PlaylistCreationDialog.newInstance(d).show(getSupportFragmentManager(), TAG)); | ||||
|     private void openPlaylistAppendDialog(final List<PlayQueueItem> playQueueItems) { | ||||
|         PlaylistDialog.createCorrespondingDialog( | ||||
|                 getApplicationContext(), | ||||
|                 playQueueItems.stream().map(StreamEntity::new).collect(Collectors.toList()), | ||||
|                 dialog -> dialog.show(getSupportFragmentManager(), TAG) | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     //////////////////////////////////////////////////////////////////////////// | ||||
|   | ||||
| @@ -8,9 +8,10 @@ import androidx.fragment.app.Fragment; | ||||
|  | ||||
| import org.schabi.newpipe.NewPipeDatabase; | ||||
| import org.schabi.newpipe.R; | ||||
| import org.schabi.newpipe.database.stream.model.StreamEntity; | ||||
| import org.schabi.newpipe.extractor.stream.StreamInfoItem; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistAppendDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistCreationDialog; | ||||
| import org.schabi.newpipe.local.dialog.PlaylistDialog; | ||||
| import org.schabi.newpipe.local.history.HistoryRecordManager; | ||||
| import org.schabi.newpipe.player.playqueue.SinglePlayQueue; | ||||
| import org.schabi.newpipe.util.external_communication.KoreUtils; | ||||
| @@ -81,14 +82,16 @@ public enum StreamDialogEntry { | ||||
|     delete(R.string.delete, (fragment, item) -> { | ||||
|     }), // has to be set manually | ||||
|  | ||||
|     append_playlist(R.string.append_playlist, (fragment, item) -> { | ||||
|         final PlaylistAppendDialog d = PlaylistAppendDialog | ||||
|                 .fromStreamInfoItems(Collections.singletonList(item)); | ||||
|  | ||||
|         PlaylistAppendDialog.onPlaylistFound(fragment.getContext(), | ||||
|             () -> d.show(fragment.getParentFragmentManager(), "StreamDialogEntry@append_playlist"), | ||||
|             () -> PlaylistCreationDialog.newInstance(d) | ||||
|                     .show(fragment.getParentFragmentManager(), "StreamDialogEntry@create_playlist") | ||||
|     append_playlist(R.string.add_to_playlist, (fragment, item) -> { | ||||
|         PlaylistDialog.createCorrespondingDialog( | ||||
|                 fragment.getContext(), | ||||
|                 Collections.singletonList(new StreamEntity(item)), | ||||
|                 dialog -> dialog.show( | ||||
|                         fragment.getParentFragmentManager(), | ||||
|                         "StreamDialogEntry@" | ||||
|                                 + (dialog instanceof PlaylistAppendDialog ? "append" : "create") | ||||
|                                 + "_playlist" | ||||
|                 ) | ||||
|         ); | ||||
|     }), | ||||
|  | ||||
|   | ||||
| @@ -444,7 +444,7 @@ | ||||
|                                 android:layout_weight="1" | ||||
|                                 android:background="?attr/selectableItemBackgroundBorderless" | ||||
|                                 android:clickable="true" | ||||
|                                 android:contentDescription="@string/append_playlist" | ||||
|                                 android:contentDescription="@string/add_to_playlist" | ||||
|                                 android:focusable="true" | ||||
|                                 android:gravity="center" | ||||
|                                 android:paddingVertical="@dimen/detail_control_padding" | ||||
|   | ||||
| @@ -430,7 +430,7 @@ | ||||
|                             android:layout_weight="1" | ||||
|                             android:background="?attr/selectableItemBackgroundBorderless" | ||||
|                             android:clickable="true" | ||||
|                             android:contentDescription="@string/append_playlist" | ||||
|                             android:contentDescription="@string/add_to_playlist" | ||||
|                             android:focusable="true" | ||||
|                             android:gravity="center" | ||||
|                             android:paddingVertical="@dimen/detail_control_padding" | ||||
|   | ||||
| @@ -6,7 +6,7 @@ | ||||
|     <item | ||||
|         android:id="@+id/action_append_playlist" | ||||
|         android:icon="@drawable/ic_playlist_add" | ||||
|         android:title="@string/append_playlist" | ||||
|         android:title="@string/add_to_playlist" | ||||
|         android:visible="true" | ||||
|         app:showAsAction="ifRoom" /> | ||||
|  | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
|         android:title="@string/play_queue_stream_detail" /> | ||||
|     <item | ||||
|         android:id="@+id/menu_item_append_playlist" | ||||
|         android:title="@string/append_playlist" /> | ||||
|         android:title="@string/add_to_playlist" /> | ||||
|     <item | ||||
|         android:id="@+id/menu_item_share" | ||||
|         android:title="@string/share" /> | ||||
|   | ||||
| @@ -235,7 +235,7 @@ | ||||
|     <string name="create_playlist">إنشاء قائمة تشغيل جديدة</string> | ||||
|     <string name="rename_playlist">إعادة تسمية</string> | ||||
|     <string name="name">التسمية</string> | ||||
|     <string name="append_playlist">إضافة إلى قائمة التشغيل</string> | ||||
|     <string name="add_to_playlist">إضافة إلى قائمة التشغيل</string> | ||||
|     <string name="delete_playlist_prompt">هل تريد حذف قائمة التشغيل هذه؟</string> | ||||
|     <string name="playlist_creation_success">تم إنشاء قائمة التشغيل</string> | ||||
|     <string name="playlist_add_stream_success">تمت إضافتها إلى قائمة التشغيل</string> | ||||
|   | ||||
| @@ -132,7 +132,7 @@ | ||||
|     <string name="dismiss">Escartar</string> | ||||
|     <string name="create_playlist">Llista de reproducción nueva</string> | ||||
|     <string name="name">Nome</string> | ||||
|     <string name="append_playlist">Amestar a una llista de reproducción</string> | ||||
|     <string name="add_to_playlist">Amestar a una llista de reproducción</string> | ||||
|     <string name="delete_playlist_prompt">¿Desanicair esta llista de reproducción\?</string> | ||||
|     <string name="caption_none">Ensin sotítulos</string> | ||||
|     <string name="resize_fit">Axustar</string> | ||||
|   | ||||
| @@ -534,7 +534,7 @@ | ||||
|     <string name="set_as_playlist_thumbnail">Pleylist eskizi sifatida o\'rnating</string> | ||||
|     <string name="unmute">Unmute rejimi</string> | ||||
|     <string name="mute">Mute rejimi</string> | ||||
|     <string name="append_playlist">Playlist qo\'shish</string> | ||||
|     <string name="add_to_playlist">Playlist qo\'shish</string> | ||||
|     <string name="name">Nomi</string> | ||||
|     <string name="rename_playlist">Nomni o\'zgartirish</string> | ||||
|     <string name="create_playlist">Yangi Playlist</string> | ||||
|   | ||||
| @@ -259,7 +259,7 @@ | ||||
|     <string name="create_playlist">新建播放列表</string> | ||||
|     <string name="rename_playlist">重命名</string> | ||||
|     <string name="name">名称</string> | ||||
|     <string name="append_playlist">添加至播放列表</string> | ||||
|     <string name="add_to_playlist">添加至播放列表</string> | ||||
|     <string name="set_as_playlist_thumbnail">设为播放列表封面</string> | ||||
|     <string name="bookmark_playlist">收藏播放列表</string> | ||||
|     <string name="unbookmark_playlist">删除收藏</string> | ||||
|   | ||||
| @@ -274,7 +274,7 @@ | ||||
|     <string name="create_playlist">Стварыць плэйліст</string> | ||||
|     <string name="rename_playlist">Перайменаваць</string> | ||||
|     <string name="name">Імя</string> | ||||
|     <string name="append_playlist">Дадаць у плэйліст</string> | ||||
|     <string name="add_to_playlist">Дадаць у плэйліст</string> | ||||
|     <string name="set_as_playlist_thumbnail">На мініяцюру плэйліста</string> | ||||
|     <string name="bookmark_playlist">Дадаць плэйліст у закладкі</string> | ||||
|     <string name="unbookmark_playlist">Выдаліць закладку</string> | ||||
|   | ||||
| @@ -267,7 +267,7 @@ | ||||
|     <string name="create_playlist">Нов Плейлист</string> | ||||
|     <string name="rename_playlist">Преименувай</string> | ||||
|     <string name="name">Име</string> | ||||
|     <string name="append_playlist">Добави Към Плейлист</string> | ||||
|     <string name="add_to_playlist">Добави Към Плейлист</string> | ||||
|     <string name="set_as_playlist_thumbnail">Задай като миниатюра на плейлиста</string> | ||||
|     <string name="bookmark_playlist">Миниатюрата на плейлиста е сменена</string> | ||||
|     <string name="unbookmark_playlist">Премахни отметката</string> | ||||
|   | ||||
| @@ -188,7 +188,7 @@ | ||||
|     <string name="unbookmark_playlist">বুকমার্ক মুছুন</string> | ||||
|     <string name="unmute">আন মিউট</string> | ||||
|     <string name="mute">মিউট</string> | ||||
|     <string name="append_playlist">প্লে লিস্ট এ যুক্ত করুন</string> | ||||
|     <string name="add_to_playlist">প্লে লিস্ট এ যুক্ত করুন</string> | ||||
|     <string name="name">নাম</string> | ||||
|     <string name="create_playlist">নতুন প্লে লিস্ট</string> | ||||
|     <string name="always_ask_open_action">সবসময় জিজ্ঞেস করুন</string> | ||||
|   | ||||
| @@ -167,7 +167,7 @@ | ||||
|     <string name="delete_playlist_prompt">প্লে লিস্ট ডিলিট করতে চান\?</string> | ||||
|     <string name="unmute">আন মিউট</string> | ||||
|     <string name="mute">মিউট</string> | ||||
|     <string name="append_playlist">প্লে লিস্ট এ যুক্ত করুন</string> | ||||
|     <string name="add_to_playlist">প্লে লিস্ট এ যুক্ত করুন</string> | ||||
|     <string name="always_ask_open_action">সবসময় জিজ্ঞেস করুন</string> | ||||
|     <string name="video_player">ভিডিও প্লেয়ার</string> | ||||
|     <string name="drawer_close">ড্রয়ার বন্ধ করুন</string> | ||||
|   | ||||
| @@ -37,7 +37,7 @@ | ||||
|     <string name="unbookmark_playlist">বুকমার্ক মুছুন</string> | ||||
|     <string name="unmute">আন মিউট</string> | ||||
|     <string name="mute">মিউট</string> | ||||
|     <string name="append_playlist">প্লে লিস্ট এ যুক্ত করুন</string> | ||||
|     <string name="add_to_playlist">প্লে লিস্ট এ যুক্ত করুন</string> | ||||
|     <string name="name">নাম</string> | ||||
|     <string name="rename_playlist">নাম পাল্টাও</string> | ||||
|     <string name="create_playlist">নতুন প্লে লিস্ট</string> | ||||
|   | ||||
| @@ -86,7 +86,7 @@ | ||||
|     <string name="create_playlist">Crea una llista de reproducció</string> | ||||
|     <string name="rename_playlist">Canvia el nom</string> | ||||
|     <string name="name">Nom</string> | ||||
|     <string name="append_playlist">Afegeix a una llista de reproducció</string> | ||||
|     <string name="add_to_playlist">Afegeix a una llista de reproducció</string> | ||||
|     <string name="import_title">Importa</string> | ||||
|     <string name="import_from">Importa des de</string> | ||||
|     <string name="export_to">Exporta a</string> | ||||
|   | ||||
| @@ -403,7 +403,7 @@ | ||||
|     <string name="msg_name">ناوفایل</string> | ||||
|     <string name="set_as_playlist_thumbnail">دانان لەسەر وێنۆچکەی خشتەلێدان</string> | ||||
|     <string name="title_activity_about">دەربارەی نیوپایپ</string> | ||||
|     <string name="append_playlist">زیادکردن بۆ خشتەلێدان</string> | ||||
|     <string name="add_to_playlist">زیادکردن بۆ خشتەلێدان</string> | ||||
|     <string name="unknown_content">(نەزانراو)</string> | ||||
|     <string name="app_language_title">زمانی بهرنامه</string> | ||||
|     <string name="kiosk_page_summary">پەڕەی کیۆسک</string> | ||||
|   | ||||
| @@ -234,7 +234,7 @@ | ||||
|     <string name="create_playlist">Nový playlist</string> | ||||
|     <string name="rename_playlist">Přejmenovat</string> | ||||
|     <string name="name">Jméno</string> | ||||
|     <string name="append_playlist">Přidat do playlistu</string> | ||||
|     <string name="add_to_playlist">Přidat do playlistu</string> | ||||
|     <string name="set_as_playlist_thumbnail">Nastavit jako miniaturu playlistu</string> | ||||
|     <string name="bookmark_playlist">Přidat playlist do záložek</string> | ||||
|     <string name="unbookmark_playlist">Smazat záložku</string> | ||||
|   | ||||
| @@ -270,7 +270,7 @@ | ||||
|     <string name="create_playlist">Ny spilleliste</string> | ||||
|     <string name="rename_playlist">Omdøb</string> | ||||
|     <string name="name">Navn</string> | ||||
|     <string name="append_playlist">Føj til spilleliste</string> | ||||
|     <string name="add_to_playlist">Føj til spilleliste</string> | ||||
|     <string name="delete_playlist_prompt">Slet denne spilleliste\?</string> | ||||
|     <string name="playlist_creation_success">Spilleliste oprettet</string> | ||||
|     <string name="caption_none">Ingen undertekster</string> | ||||
|   | ||||
| @@ -228,7 +228,7 @@ | ||||
|     <string name="always_ask_open_action">Immer fragen</string> | ||||
|     <string name="create_playlist">Neue Wiedergabeliste</string> | ||||
|     <string name="rename_playlist">Umbenennen</string> | ||||
|     <string name="append_playlist">Zur Wiedergabeliste hinzufügen</string> | ||||
|     <string name="add_to_playlist">Zur Wiedergabeliste hinzufügen</string> | ||||
|     <string name="set_as_playlist_thumbnail">Als Vorschaubild der Wiedergabeliste festlegen</string> | ||||
|     <string name="unbookmark_playlist">Lesezeichen entfernen</string> | ||||
|     <string name="delete_playlist_prompt">Diese Wiedergabeliste löschen?</string> | ||||
|   | ||||
| @@ -270,7 +270,7 @@ | ||||
|     <string name="create_playlist">Νέα λίστα αναπαραγωγής</string> | ||||
|     <string name="rename_playlist">Μετονομασία</string> | ||||
|     <string name="name">Όνομα</string> | ||||
|     <string name="append_playlist">Προσθήκη σε λίστα αναπαραγωγής</string> | ||||
|     <string name="add_to_playlist">Προσθήκη σε λίστα αναπαραγωγής</string> | ||||
|     <string name="set_as_playlist_thumbnail">Ορισμός ως μικρογραφία λίστας αναπαραγωγής</string> | ||||
|     <string name="bookmark_playlist">Προσθήκη σελιδοδείκτη στη λίστα</string> | ||||
|     <string name="unbookmark_playlist">Διαγραφή σελιδοδείκτη</string> | ||||
|   | ||||
| @@ -153,7 +153,7 @@ | ||||
|     <string name="create_playlist">Nova ludlisto</string> | ||||
|     <string name="rename_playlist">Alinomi</string> | ||||
|     <string name="name">Nomo</string> | ||||
|     <string name="append_playlist">Aldoni al la ludlisto</string> | ||||
|     <string name="add_to_playlist">Aldoni al la ludlisto</string> | ||||
|     <string name="set_as_playlist_thumbnail">Meti kiel bildeto de ludlisto</string> | ||||
|     <string name="bookmark_playlist">Legosigno Ludlisto</string> | ||||
|     <string name="unbookmark_playlist">Forviŝi Legosignon</string> | ||||
|   | ||||
| @@ -231,7 +231,7 @@ | ||||
|     <string name="create_playlist">Lista de reproducción nueva</string> | ||||
|     <string name="rename_playlist">Cambiar nombre</string> | ||||
|     <string name="name">Nombre</string> | ||||
|     <string name="append_playlist">Añadir a la lista de reproducción</string> | ||||
|     <string name="add_to_playlist">Añadir a la lista de reproducción</string> | ||||
|     <string name="set_as_playlist_thumbnail">Definir como miniatura de lista de reproducción</string> | ||||
|     <string name="bookmark_playlist">Marcar lista de reproducción</string> | ||||
|     <string name="unbookmark_playlist">Quitar marcador</string> | ||||
|   | ||||
| @@ -256,7 +256,7 @@ | ||||
|     <string name="create_playlist">Uus esitusloend</string> | ||||
|     <string name="rename_playlist">Nimeta ümber</string> | ||||
|     <string name="name">Nimi</string> | ||||
|     <string name="append_playlist">Lisa esitusloendisse</string> | ||||
|     <string name="add_to_playlist">Lisa esitusloendisse</string> | ||||
|     <string name="set_as_playlist_thumbnail">Määra esitusloendi pisipildiks</string> | ||||
|     <string name="bookmark_playlist">Lisa esitusloend järjehoidjaks</string> | ||||
|     <string name="unbookmark_playlist">Eemalda järjehoidja</string> | ||||
|   | ||||
| @@ -259,7 +259,7 @@ | ||||
|     <string name="create_playlist">Erreprodukzio-zerrenda berria</string> | ||||
|     <string name="rename_playlist">Aldatu izena</string> | ||||
|     <string name="name">Izena</string> | ||||
|     <string name="append_playlist">Gehitu erreprodukzio-zerrendara</string> | ||||
|     <string name="add_to_playlist">Gehitu erreprodukzio-zerrendara</string> | ||||
|     <string name="set_as_playlist_thumbnail">Ezarri erreprodukzio-zerrendaren iruditxo gisa</string> | ||||
|     <string name="bookmark_playlist">Gogoko erreprodukzio-zerrenda</string> | ||||
|     <string name="unbookmark_playlist">Kendu gogokoa</string> | ||||
|   | ||||
| @@ -217,7 +217,7 @@ | ||||
|     <string name="create_playlist">فهرست پخش جدید</string> | ||||
|     <string name="rename_playlist">تغییر نام</string> | ||||
|     <string name="name">نام</string> | ||||
|     <string name="append_playlist">افزودن به سیاههٔ پخش</string> | ||||
|     <string name="add_to_playlist">افزودن به سیاههٔ پخش</string> | ||||
|     <string name="set_as_playlist_thumbnail">تنظیم برای تصویر سیاههٔ پخش</string> | ||||
|     <string name="delete_playlist_prompt">این فهرست پخش پاک شود؟</string> | ||||
|     <string name="playlist_creation_success">فهرست پخش ایجاد شد</string> | ||||
|   | ||||
| @@ -271,7 +271,7 @@ | ||||
|     <string name="create_playlist">Uusi soittolista</string> | ||||
|     <string name="rename_playlist">Uudelleennimeä</string> | ||||
|     <string name="name">Nimi</string> | ||||
|     <string name="append_playlist">Lisää soittolistaan</string> | ||||
|     <string name="add_to_playlist">Lisää soittolistaan</string> | ||||
|     <string name="set_as_playlist_thumbnail">Aseta soittolistan kuvakkeeksi</string> | ||||
|     <string name="bookmark_playlist">Tallenna soittolista kirjanmerkkeihin</string> | ||||
|     <string name="unbookmark_playlist">Poista kirjanmerkki</string> | ||||
|   | ||||
| @@ -230,7 +230,7 @@ | ||||
|     <string name="create_playlist">Nouvelle liste de lecture</string> | ||||
|     <string name="rename_playlist">Renommer</string> | ||||
|     <string name="name">Nom</string> | ||||
|     <string name="append_playlist">Ajouter à la liste de lecture</string> | ||||
|     <string name="add_to_playlist">Ajouter à la liste de lecture</string> | ||||
|     <string name="set_as_playlist_thumbnail">Définir comme miniature de la liste de lecture</string> | ||||
|     <string name="bookmark_playlist">Enregister la liste de lecture</string> | ||||
|     <string name="unbookmark_playlist">Supprimer le signet</string> | ||||
|   | ||||
| @@ -270,7 +270,7 @@ | ||||
|     <string name="create_playlist">Nova lista de reprodución</string> | ||||
|     <string name="rename_playlist">Renomear</string> | ||||
|     <string name="name">Nome</string> | ||||
|     <string name="append_playlist">Engadir á lista de reprodución</string> | ||||
|     <string name="add_to_playlist">Engadir á lista de reprodución</string> | ||||
|     <string name="set_as_playlist_thumbnail">Estabelecer como miniatura da lista de reprodución</string> | ||||
|     <string name="bookmark_playlist">Gardar a lista de reprodución nos marcadores</string> | ||||
|     <string name="unbookmark_playlist">Eliminar o marcador</string> | ||||
|   | ||||
| @@ -240,7 +240,7 @@ | ||||
|     <string name="create_playlist">רשימת נגינה חדשה</string> | ||||
|     <string name="rename_playlist">שינוי שם</string> | ||||
|     <string name="name">שם</string> | ||||
|     <string name="append_playlist">הוספה לרשימת נגינה</string> | ||||
|     <string name="add_to_playlist">הוספה לרשימת נגינה</string> | ||||
|     <string name="bookmark_playlist">הוספת רשימת נגינה לסימניות</string> | ||||
|     <string name="unbookmark_playlist">הסרת סימנייה</string> | ||||
|     <string name="delete_playlist_prompt">למחוק רשימת נגינה זו\?</string> | ||||
|   | ||||
| @@ -230,7 +230,7 @@ | ||||
|     <string name="create_playlist">नई प्लेलिस्ट</string> | ||||
|     <string name="rename_playlist">नाम बदलें</string> | ||||
|     <string name="name">नाम</string> | ||||
|     <string name="append_playlist">प्लेलिस्ट में जोड़ें</string> | ||||
|     <string name="add_to_playlist">प्लेलिस्ट में जोड़ें</string> | ||||
|     <string name="set_as_playlist_thumbnail">प्लेलिस्ट थंबनेल के रूप में सेट करें</string> | ||||
|     <string name="bookmark_playlist">प्लेलिस्ट बुकमार्क करें</string> | ||||
|     <string name="unbookmark_playlist">बुकमार्क हटायें</string> | ||||
|   | ||||
| @@ -202,7 +202,7 @@ | ||||
|     <string name="create_playlist">Nova playlista</string> | ||||
|     <string name="rename_playlist">Preimenuj</string> | ||||
|     <string name="name">Ime</string> | ||||
|     <string name="append_playlist">Dodaj u playlistu</string> | ||||
|     <string name="add_to_playlist">Dodaj u playlistu</string> | ||||
|     <string name="set_as_playlist_thumbnail">Postavi kao minijaturu playliste</string> | ||||
|     <string name="bookmark_playlist">Zabilježi playlistu</string> | ||||
|     <string name="unbookmark_playlist">Ukloni zabilješku</string> | ||||
|   | ||||
| @@ -254,7 +254,7 @@ | ||||
|     <string name="create_playlist">Új lejátszási lista</string> | ||||
|     <string name="rename_playlist">Átnevezés</string> | ||||
|     <string name="name">Név</string> | ||||
|     <string name="append_playlist">Lejátszási listához adás</string> | ||||
|     <string name="add_to_playlist">Lejátszási listához adás</string> | ||||
|     <string name="set_as_playlist_thumbnail">Beállítás lejátszási lista indexképeként</string> | ||||
|     <string name="unbookmark_playlist">Könyvjelző törlése</string> | ||||
|     <string name="delete_playlist_prompt">Törlődjön ez a lejátszási lista\?</string> | ||||
|   | ||||
| @@ -229,7 +229,7 @@ | ||||
|     <string name="create_playlist">Daftar Putar Baru</string> | ||||
|     <string name="rename_playlist">Ubah Nama</string> | ||||
|     <string name="name">Nama</string> | ||||
|     <string name="append_playlist">Tambah ke daftar putar</string> | ||||
|     <string name="add_to_playlist">Tambah ke daftar putar</string> | ||||
|     <string name="set_as_playlist_thumbnail">Atur sebagai thumbnail daftar putar</string> | ||||
|     <string name="bookmark_playlist">Markah Daftar Putar</string> | ||||
|     <string name="unbookmark_playlist">Hapus Markah</string> | ||||
|   | ||||
| @@ -231,7 +231,7 @@ | ||||
|     <string name="create_playlist">Nuova playlist</string> | ||||
|     <string name="rename_playlist">Rinomina</string> | ||||
|     <string name="name">Nome</string> | ||||
|     <string name="append_playlist">Aggiungi alla playlist</string> | ||||
|     <string name="add_to_playlist">Aggiungi alla playlist</string> | ||||
|     <string name="set_as_playlist_thumbnail">Imposta come copertina della playlist</string> | ||||
|     <string name="bookmark_playlist">Salva playlist</string> | ||||
|     <string name="unbookmark_playlist">Rimuovi playlist</string> | ||||
|   | ||||
| @@ -221,7 +221,7 @@ | ||||
|     <string name="create_playlist">新規プレイリスト</string> | ||||
|     <string name="rename_playlist">変更</string> | ||||
|     <string name="name">プレイリスト名</string> | ||||
|     <string name="append_playlist">プレイリストに追加</string> | ||||
|     <string name="add_to_playlist">プレイリストに追加</string> | ||||
|     <string name="set_as_playlist_thumbnail">プレイリストのサムネイルに設定</string> | ||||
|     <string name="bookmark_playlist">プレイリストをブックマーク</string> | ||||
|     <string name="unbookmark_playlist">ブックマークを削除</string> | ||||
|   | ||||
| @@ -498,7 +498,7 @@ | ||||
|     <string name="set_as_playlist_thumbnail">Wekî Thumbnailê Lîsteya Lîsteyê saz bikin</string> | ||||
|     <string name="unmute">Bê deng kirin</string> | ||||
|     <string name="mute">Bêdeng</string> | ||||
|     <string name="append_playlist">Li lîsteyê zêde bike</string> | ||||
|     <string name="add_to_playlist">Li lîsteyê zêde bike</string> | ||||
|     <string name="name">Nav</string> | ||||
|     <string name="rename_playlist">Navlêkirin</string> | ||||
|     <string name="create_playlist">Lîstinê ya nû</string> | ||||
|   | ||||
| @@ -230,7 +230,7 @@ | ||||
|     <string name="create_playlist">새로운 재생목록</string> | ||||
|     <string name="rename_playlist">이름 바꾸기</string> | ||||
|     <string name="name">이름</string> | ||||
|     <string name="append_playlist">재생목록에 추가</string> | ||||
|     <string name="add_to_playlist">재생목록에 추가</string> | ||||
|     <string name="set_as_playlist_thumbnail">재생목록 썸네일로 설정</string> | ||||
|     <string name="bookmark_playlist">재생목록 북마크하기</string> | ||||
|     <string name="unbookmark_playlist">북마크 제거하기</string> | ||||
|   | ||||
| @@ -212,7 +212,7 @@ | ||||
|     <string name="create_playlist">لیستەلێدانی نوێ</string> | ||||
|     <string name="rename_playlist">ناولێنانەوە</string> | ||||
|     <string name="name">ناو</string> | ||||
|     <string name="append_playlist">زیادکردن بۆ لیستەلێدان</string> | ||||
|     <string name="add_to_playlist">زیادکردن بۆ لیستەلێدان</string> | ||||
|     <string name="set_as_playlist_thumbnail">دانان لەسەر وێنۆچکەی لیستەلێدان</string> | ||||
|     <string name="bookmark_playlist">لیستەلێدانی نیشانەکراو</string> | ||||
|     <string name="unbookmark_playlist">لادانی نیشانەکراو</string> | ||||
|   | ||||
| @@ -235,7 +235,7 @@ | ||||
|     <string name="create_playlist">Naujas grojaraštį</string> | ||||
|     <string name="rename_playlist">Pervadinti</string> | ||||
|     <string name="name">Pavadinimas</string> | ||||
|     <string name="append_playlist">Pridėti į grojaraštį</string> | ||||
|     <string name="add_to_playlist">Pridėti į grojaraštį</string> | ||||
|     <string name="set_as_playlist_thumbnail">Nustatyti kaip grojaraščio miniatiūrą</string> | ||||
|     <string name="bookmark_playlist">Pridėti grojaraštį į žymes</string> | ||||
|     <string name="unbookmark_playlist">Pašalinti žymes</string> | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|     <string name="playlist_creation_success">Atskaņošanas saraksts radīts</string> | ||||
|     <string name="delete_playlist_prompt">Dzēst atskaņošanas sarakstu\?</string> | ||||
|     <string name="set_as_playlist_thumbnail">Iestatīt, kā atskaņošanas saraksta attēlu</string> | ||||
|     <string name="append_playlist">Pievienot atskaņošanas sarakstam</string> | ||||
|     <string name="add_to_playlist">Pievienot atskaņošanas sarakstam</string> | ||||
|     <string name="name">Vārds</string> | ||||
|     <string name="rename_playlist">Pārsaukt</string> | ||||
|     <string name="create_playlist">Jauns Atskaņošanas Saraksts</string> | ||||
|   | ||||
| @@ -248,7 +248,7 @@ | ||||
|     <string name="create_playlist">Создај нова плејлиста</string> | ||||
|     <string name="rename_playlist">Прекрсти плејлиста</string> | ||||
|     <string name="name">Име</string> | ||||
|     <string name="append_playlist">Додај во плејлиста</string> | ||||
|     <string name="add_to_playlist">Додај во плејлиста</string> | ||||
|     <string name="set_as_playlist_thumbnail">Постави како икона на плејлистата</string> | ||||
|     <string name="bookmark_playlist">Обележи ја плејлистата</string> | ||||
|     <string name="unbookmark_playlist">Избриши ја белешката</string> | ||||
|   | ||||
| @@ -54,7 +54,7 @@ | ||||
|     <string name="set_as_playlist_thumbnail">പ്ലേലിസ്റ്റ് ലഘുചിത്രമായി സജ്ജമാക്കുക</string> | ||||
|     <string name="unmute">അൺമ്യൂട്ട്</string> | ||||
|     <string name="mute">മ്യൂട്ട്</string> | ||||
|     <string name="append_playlist">പ്ലേലിസ്റ്റിലേക്ക് ചേർക്കുക</string> | ||||
|     <string name="add_to_playlist">പ്ലേലിസ്റ്റിലേക്ക് ചേർക്കുക</string> | ||||
|     <string name="name">പേര്</string> | ||||
|     <string name="rename_playlist">പേര് മാറ്റുക</string> | ||||
|     <string name="create_playlist">പുതിയ പ്ലേലിസ്റ്റ്</string> | ||||
|   | ||||
| @@ -284,7 +284,7 @@ | ||||
|     <string name="create_playlist">Senarai Main Baru</string> | ||||
|     <string name="rename_playlist">Namakan semula</string> | ||||
|     <string name="name">Nama</string> | ||||
|     <string name="append_playlist">Tambah ke Senarai Main</string> | ||||
|     <string name="add_to_playlist">Tambah ke Senarai Main</string> | ||||
|     <string name="set_as_playlist_thumbnail">Tetapkan sebagai Thumbnail Senarai Main</string> | ||||
|     <string name="bookmark_playlist">Menanda senarai main</string> | ||||
|     <string name="unbookmark_playlist">Hapuskan Penanda Halaman</string> | ||||
|   | ||||
| @@ -231,7 +231,7 @@ | ||||
|     <string name="create_playlist">Ny spilleliste</string> | ||||
|     <string name="rename_playlist">Gi nytt navn</string> | ||||
|     <string name="name">Navn</string> | ||||
|     <string name="append_playlist">Legg til i spilleliste</string> | ||||
|     <string name="add_to_playlist">Legg til i spilleliste</string> | ||||
|     <string name="set_as_playlist_thumbnail">Sett som miniatyrbilde for spilleliste</string> | ||||
|     <string name="bookmark_playlist">Bokmerk spilleliste</string> | ||||
|     <string name="unbookmark_playlist">Fjern bokmerke</string> | ||||
|   | ||||
| @@ -292,7 +292,7 @@ | ||||
|     <string name="create_playlist">नया प्लेलिस्ट</string> | ||||
|     <string name="rename_playlist">पुनः नामकरण</string> | ||||
|     <string name="name">नाम</string> | ||||
|     <string name="append_playlist">प्लेसूचीमा थप्नुहोस</string> | ||||
|     <string name="add_to_playlist">प्लेसूचीमा थप्नुहोस</string> | ||||
|     <string name="set_as_playlist_thumbnail">प्लेलिस्ट थम्बनेल रूपमा सेट</string> | ||||
|     <string name="bookmark_playlist">बुकमार्क प्लेलिस्ट</string> | ||||
|     <string name="unbookmark_playlist">बुकमार्क हटाउ</string> | ||||
|   | ||||
| @@ -252,7 +252,7 @@ | ||||
|     <string name="create_playlist">Nieuwe afspeellijst</string> | ||||
|     <string name="rename_playlist">Hernoemen</string> | ||||
|     <string name="name">Naam</string> | ||||
|     <string name="append_playlist">Toevoegen aan afspeellijst</string> | ||||
|     <string name="add_to_playlist">Toevoegen aan afspeellijst</string> | ||||
|     <string name="set_as_playlist_thumbnail">Instellen als miniatuur voor afspeellijst</string> | ||||
|     <string name="bookmark_playlist">Afspeellijst toevoegen aan bladwijzers</string> | ||||
|     <string name="unbookmark_playlist">Bladwijzer verwijderen</string> | ||||
|   | ||||
| @@ -231,7 +231,7 @@ | ||||
|     <string name="create_playlist">Nieuwe afspeellijst</string> | ||||
|     <string name="rename_playlist">Naam wijzigen</string> | ||||
|     <string name="name">Naam</string> | ||||
|     <string name="append_playlist">Toevoegen aan afspeellijst</string> | ||||
|     <string name="add_to_playlist">Toevoegen aan afspeellijst</string> | ||||
|     <string name="set_as_playlist_thumbnail">Instellen als miniatuur voor afspeellijst</string> | ||||
|     <string name="bookmark_playlist">Afspeellijst toevoegen aan bladwijzers</string> | ||||
|     <string name="unbookmark_playlist">Bladwijzer verwijderen</string> | ||||
|   | ||||
| @@ -259,7 +259,7 @@ | ||||
|     <string name="create_playlist">ਨਵੀਂ ਪਲੇ-ਲਿਸਟ</string> | ||||
|     <string name="rename_playlist">ਨਾਮ ਬਦਲੋ</string> | ||||
|     <string name="name">ਨਾਮ</string> | ||||
|     <string name="append_playlist">ਪਲੇ-ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ</string> | ||||
|     <string name="add_to_playlist">ਪਲੇ-ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ</string> | ||||
|     <string name="set_as_playlist_thumbnail">ਬਤੌਰ ਪਲੇ-ਸੂਚੀ ਥਮਨੇਲ ਸੈੱਟ ਕਰੋ</string> | ||||
|     <string name="bookmark_playlist">ਬੁੱਕਮਾਰਕ ਪਲੇ-ਲਿਸਟ</string> | ||||
|     <string name="unbookmark_playlist">ਬੁੱਕਮਾਰਕ ਹਟਾਓ</string> | ||||
|   | ||||
| @@ -238,7 +238,7 @@ | ||||
|     <string name="create_playlist">Nowa playlista</string> | ||||
|     <string name="rename_playlist">Zmień nazwę</string> | ||||
|     <string name="name">Nazwa</string> | ||||
|     <string name="append_playlist">Dodaj do playlisty</string> | ||||
|     <string name="add_to_playlist">Dodaj do playlisty</string> | ||||
|     <string name="set_as_playlist_thumbnail">Ustaw jako miniaturę playlisty</string> | ||||
|     <string name="bookmark_playlist">Dodaj do ulubionych</string> | ||||
|     <string name="unbookmark_playlist">Usuń z ulubionych</string> | ||||
|   | ||||
| @@ -229,7 +229,7 @@ | ||||
|     <string name="create_playlist">Nova playlist</string> | ||||
|     <string name="rename_playlist">Renomear</string> | ||||
|     <string name="name">Nome</string> | ||||
|     <string name="append_playlist">Adicionar à Playlist</string> | ||||
|     <string name="add_to_playlist">Adicionar à Playlist</string> | ||||
|     <string name="set_as_playlist_thumbnail">Definir Como Capa da Playlist</string> | ||||
|     <string name="bookmark_playlist">Favoritar playlist</string> | ||||
|     <string name="unbookmark_playlist">Desfavoritar</string> | ||||
|   | ||||
| @@ -504,7 +504,7 @@ | ||||
|     <string name="use_inexact_seek_title">Utilizar pesquisa rápida</string> | ||||
|     <string name="override_current_data">Está prestes a substituir a configuração atual.</string> | ||||
|     <string name="switch_to_popup">Mudar para popup</string> | ||||
|     <string name="append_playlist">Adicionar à lista de reprodução</string> | ||||
|     <string name="add_to_playlist">Adicionar à lista de reprodução</string> | ||||
|     <string name="popup_playing_toast">Reproduzir no modo poppup</string> | ||||
|     <string name="feed_use_dedicated_fetch_method_help_text">Acha que a fonte demora muito tempo a carregar\? Se sim, tente ativar o carregamento rápido (pode alterar a opção nas definições ou no botão abaixo). | ||||
| \n | ||||
|   | ||||
| @@ -242,7 +242,7 @@ | ||||
|     <string name="preferred_player_fetcher_notification_message">A carregar o conteúdo solicitado</string> | ||||
|     <string name="create_playlist">Nova lista de reprodução</string> | ||||
|     <string name="rename_playlist">Mudar nome</string> | ||||
|     <string name="append_playlist">Adicionar à lista de reprodução</string> | ||||
|     <string name="add_to_playlist">Adicionar à lista de reprodução</string> | ||||
|     <string name="bookmark_playlist">Guardar lista de reprodução como favorita</string> | ||||
|     <string name="unbookmark_playlist">Remover marcador</string> | ||||
|     <string name="delete_playlist_prompt">Eliminar esta lista de reprodução\?</string> | ||||
|   | ||||
| @@ -266,7 +266,7 @@ | ||||
|     <string name="delete_view_history_alert">Ștergeți întregul istoric al vizionărilor\?</string> | ||||
|     <string name="one_item_deleted">1 element șters.</string> | ||||
|     <string name="create_playlist">Playlist nou</string> | ||||
|     <string name="append_playlist">Adăugați la playlist</string> | ||||
|     <string name="add_to_playlist">Adăugați la playlist</string> | ||||
|     <string name="import_title">Importare</string> | ||||
|     <string name="import_from">Importați din</string> | ||||
|     <string name="export_to">Exportați în</string> | ||||
|   | ||||
| @@ -251,7 +251,7 @@ | ||||
|     <string name="create_playlist">Новый плейлист</string> | ||||
|     <string name="rename_playlist">Переименовать</string> | ||||
|     <string name="name">Имя</string> | ||||
|     <string name="append_playlist">В плейлист</string> | ||||
|     <string name="add_to_playlist">В плейлист</string> | ||||
|     <string name="set_as_playlist_thumbnail">На миниатюру плейлиста</string> | ||||
|     <string name="bookmark_playlist">Сохранить плейлист</string> | ||||
|     <string name="unbookmark_playlist">Удалить плейлист</string> | ||||
|   | ||||
| @@ -39,7 +39,7 @@ | ||||
|     <string name="set_as_playlist_thumbnail">Imposta che a miniadura de s\'iscalita</string> | ||||
|     <string name="unmute">Allughe su sonu</string> | ||||
|     <string name="mute">Pone a sa muda</string> | ||||
|     <string name="append_playlist">Annanghe a s\'iscalita</string> | ||||
|     <string name="add_to_playlist">Annanghe a s\'iscalita</string> | ||||
|     <string name="name">Nùmene</string> | ||||
|     <string name="rename_playlist">Càmbia de nùmene</string> | ||||
|     <string name="create_playlist">Iscalita noa</string> | ||||
|   | ||||
| @@ -234,7 +234,7 @@ | ||||
|     <string name="create_playlist">Nový zoznam skladieb</string> | ||||
|     <string name="rename_playlist">Premenovať</string> | ||||
|     <string name="name">Názov</string> | ||||
|     <string name="append_playlist">Pridať do zoznamu skladieb</string> | ||||
|     <string name="add_to_playlist">Pridať do zoznamu skladieb</string> | ||||
|     <string name="set_as_playlist_thumbnail">Nastaviť ako miniatúru zoznamu skladieb</string> | ||||
|     <string name="bookmark_playlist">Záložka zoznamu skladieb</string> | ||||
|     <string name="unbookmark_playlist">Odstrániť Záložku</string> | ||||
|   | ||||
| @@ -247,7 +247,7 @@ | ||||
|     <string name="resize_fill">Napolni</string> | ||||
|     <string name="playlist_creation_success">Seznam predvajanja je bil ustvarjen</string> | ||||
|     <string name="delete_playlist_prompt">Izbrišem seznam predvajanja\?</string> | ||||
|     <string name="append_playlist">Dodaj v seznam predvajanja</string> | ||||
|     <string name="add_to_playlist">Dodaj v seznam predvajanja</string> | ||||
|     <string name="rename_playlist">Preimenuj</string> | ||||
|     <string name="create_playlist">Nov seznam predvajanja</string> | ||||
|     <string name="preferred_player_fetcher_notification_message">Nalaganje zahtevano vsebino</string> | ||||
|   | ||||
| @@ -115,7 +115,7 @@ | ||||
|     <string name="bookmark_playlist">Calaamadso Xulka</string> | ||||
|     <string name="set_as_playlist_thumbnail">Ku fadhiisi galka xulka</string> | ||||
|     <string name="unmute">Ka hadalsii</string> | ||||
|     <string name="append_playlist">Ku dar xul</string> | ||||
|     <string name="add_to_playlist">Ku dar xul</string> | ||||
|     <string name="rename_playlist">Magaca ka baddal</string> | ||||
|     <string name="create_playlist">Xul Cusub</string> | ||||
|     <string name="preferred_player_fetcher_notification_message">Soo kicinaya shayga la codsaday</string> | ||||
|   | ||||
| @@ -183,7 +183,7 @@ | ||||
|     <string name="set_as_playlist_thumbnail">Vendose si pamjen statike të listës së luajtjes</string> | ||||
|     <string name="unmute">Me zë</string> | ||||
|     <string name="mute">Pa zë</string> | ||||
|     <string name="append_playlist">Shto në listën e luajtjes</string> | ||||
|     <string name="add_to_playlist">Shto në listën e luajtjes</string> | ||||
|     <string name="name">Emri</string> | ||||
|     <string name="rename_playlist">Riemërto</string> | ||||
|     <string name="create_playlist">Listë Luajtje e Re</string> | ||||
|   | ||||
| @@ -350,7 +350,7 @@ | ||||
|     <string name="set_as_playlist_thumbnail">Постави као сличицу листе</string> | ||||
|     <string name="unmute">Упали звук</string> | ||||
|     <string name="mute">Утишај</string> | ||||
|     <string name="append_playlist">Додај на листу</string> | ||||
|     <string name="add_to_playlist">Додај на листу</string> | ||||
|     <string name="name">Назив</string> | ||||
|     <string name="rename_playlist">Преименуј</string> | ||||
|     <string name="create_playlist">Нова листа</string> | ||||
|   | ||||
| @@ -271,7 +271,7 @@ | ||||
|     <string name="create_playlist">Ny spellista</string> | ||||
|     <string name="rename_playlist">Byt namn</string> | ||||
|     <string name="name">Namn</string> | ||||
|     <string name="append_playlist">Lägg till i spellista</string> | ||||
|     <string name="add_to_playlist">Lägg till i spellista</string> | ||||
|     <string name="set_as_playlist_thumbnail">Använd som spellistans miniatyrbild</string> | ||||
|     <string name="bookmark_playlist">Bokmärk spellistan</string> | ||||
|     <string name="unbookmark_playlist">Ta bort bokmärke</string> | ||||
|   | ||||
| @@ -270,7 +270,7 @@ | ||||
|     <string name="create_playlist">เพลย์ลิสต์ใหม่</string> | ||||
|     <string name="rename_playlist">เปลี่ยนชื่อ</string> | ||||
|     <string name="name">ชื่อ</string> | ||||
|     <string name="append_playlist">เพิ่มในเพลย์ลิสต์</string> | ||||
|     <string name="add_to_playlist">เพิ่มในเพลย์ลิสต์</string> | ||||
|     <string name="set_as_playlist_thumbnail">ตั้งเป็นรูปขนาดย่อของเพลย์ลิสต์</string> | ||||
|     <string name="bookmark_playlist">เก็บเพลย์ลิสต์</string> | ||||
|     <string name="unbookmark_playlist">เอาที่คั่นหน้าออก</string> | ||||
|   | ||||
| @@ -227,7 +227,7 @@ | ||||
|     <string name="create_playlist">Yeni Oynatma Listesi</string> | ||||
|     <string name="rename_playlist">Yeniden adlandır</string> | ||||
|     <string name="name">Ad</string> | ||||
|     <string name="append_playlist">Oynatma listesine ekle</string> | ||||
|     <string name="add_to_playlist">Oynatma listesine ekle</string> | ||||
|     <string name="set_as_playlist_thumbnail">Oynatma listesi küçük resmi olarak ayarla</string> | ||||
|     <string name="bookmark_playlist">Oynatma listesini yer imlerine ekle</string> | ||||
|     <string name="unbookmark_playlist">Yer imini kaldır</string> | ||||
|   | ||||
| @@ -240,7 +240,7 @@ | ||||
|     <string name="create_playlist">Нова добірка</string> | ||||
|     <string name="rename_playlist">Перейменувати</string> | ||||
|     <string name="name">Назва</string> | ||||
|     <string name="append_playlist">Додати в добірку</string> | ||||
|     <string name="add_to_playlist">Додати в добірку</string> | ||||
|     <string name="set_as_playlist_thumbnail">Призначити ескізом добірки</string> | ||||
|     <string name="bookmark_playlist">Додати добірку до закладок</string> | ||||
|     <string name="unbookmark_playlist">Видалити закладку</string> | ||||
|   | ||||
| @@ -248,7 +248,7 @@ | ||||
|     <string name="create_playlist">نئی پلے لسٹ</string> | ||||
|     <string name="rename_playlist">نام تبدیل کریں</string> | ||||
|     <string name="name">نام</string> | ||||
|     <string name="append_playlist">پلے لسٹ میں شامل</string> | ||||
|     <string name="add_to_playlist">پلے لسٹ میں شامل</string> | ||||
|     <string name="set_as_playlist_thumbnail">بطور پلے لسٹ انگشتی طے کریں</string> | ||||
|     <string name="bookmark_playlist">پلے لسٹ کو نشان زد کریں</string> | ||||
|     <string name="unbookmark_playlist">نشان زد حدف کریں</string> | ||||
|   | ||||
| @@ -267,7 +267,7 @@ | ||||
|     <string name="create_playlist">Tạo playlist mới</string> | ||||
|     <string name="rename_playlist">Đổi tên playlist</string> | ||||
|     <string name="name">Tên</string> | ||||
|     <string name="append_playlist">Thêm vào danh sách phát</string> | ||||
|     <string name="add_to_playlist">Thêm vào danh sách phát</string> | ||||
|     <string name="set_as_playlist_thumbnail">Đặt làm hình thu nhỏ của danh sách phát</string> | ||||
|     <string name="bookmark_playlist">Đánh dấu playlist này</string> | ||||
|     <string name="unbookmark_playlist">Xóa dấu trang</string> | ||||
|   | ||||
| @@ -259,7 +259,7 @@ | ||||
|     <string name="create_playlist">新建播放列表</string> | ||||
|     <string name="rename_playlist">重 命名</string> | ||||
|     <string name="name">名称</string> | ||||
|     <string name="append_playlist">添加到播放列表</string> | ||||
|     <string name="add_to_playlist">添加到播放列表</string> | ||||
|     <string name="set_as_playlist_thumbnail">设为播放列表缩略图</string> | ||||
|     <string name="bookmark_playlist">收藏播放列表</string> | ||||
|     <string name="unbookmark_playlist">删除收藏</string> | ||||
|   | ||||
| @@ -225,7 +225,7 @@ | ||||
|     <string name="create_playlist">新的播放清單</string> | ||||
|     <string name="rename_playlist">重新命名</string> | ||||
|     <string name="name">名稱</string> | ||||
|     <string name="append_playlist">新增至播放清單</string> | ||||
|     <string name="add_to_playlist">新增至播放清單</string> | ||||
|     <string name="set_as_playlist_thumbnail">設為播放清單縮圖</string> | ||||
|     <string name="bookmark_playlist">將播放清單加入書籤</string> | ||||
|     <string name="unbookmark_playlist">移除書籤</string> | ||||
|   | ||||
| @@ -359,6 +359,7 @@ | ||||
|     <string name="background_player_key" translatable="false">background_player</string> | ||||
|     <string name="popup_player_key" translatable="false">popup_player</string> | ||||
|     <string name="download_key" translatable="false">download</string> | ||||
|     <string name="add_to_playlist_key" translatable="false">add_to_playlist</string> | ||||
|     <string name="always_ask_open_action_key" translatable="false">always_ask_player</string> | ||||
|  | ||||
|     <string-array name="preferred_open_action_description_list" translatable="false"> | ||||
| @@ -367,6 +368,7 @@ | ||||
|         <item>@string/background_player</item> | ||||
|         <item>@string/popup_player</item> | ||||
|         <item>@string/download</item> | ||||
|         <item>@string/add_to_playlist</item> | ||||
|         <item>@string/always_ask_open_action</item> | ||||
|     </string-array> | ||||
|     <string-array name="preferred_open_action_values_list" translatable="false"> | ||||
| @@ -375,6 +377,7 @@ | ||||
|         <item>@string/background_player_key</item> | ||||
|         <item>@string/popup_player_key</item> | ||||
|         <item>@string/download_key</item> | ||||
|         <item>@string/add_to_playlist_key</item> | ||||
|         <item>@string/always_ask_open_action_key</item> | ||||
|     </string-array> | ||||
|  | ||||
|   | ||||
| @@ -439,7 +439,8 @@ | ||||
|     <string name="create_playlist">New Playlist</string> | ||||
|     <string name="rename_playlist">Rename</string> | ||||
|     <string name="name">Name</string> | ||||
|     <string name="append_playlist">Add to playlist</string> | ||||
|     <string name="add_to_playlist">Add to playlist</string> | ||||
|     <string name="processing_may_take_a_moment">Processing... May take a moment</string> | ||||
|     <string name="mute">Mute</string> | ||||
|     <string name="unmute">Unmute</string> | ||||
|     <string name="set_as_playlist_thumbnail">Set as playlist thumbnail</string> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 litetex
					litetex