From f7ff5db4b522d5a74f5fde6c54441cffe85c50ca Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 20 Dec 2025 18:06:19 +0100 Subject: [PATCH 01/59] [PlayQueue] Fix incorrect UI states of PlayQueue items onNext() is called after onSubscribe() when creating a PlayQueueAdapter. For that reason the last broadcasted event is applied to the UI state although it is already reflected in the PlayQueue that was used to initialize the adapter. This is the intended behavior of the previously used event broadcaster of the type BehaviorSubject<>. The broadcaster's type was changed to PublishSubject<> which does not emit the last event after onSubscribe(). Ref: https://github.com/TeamNewPipe/NewPipe/issues/9669 --- .../java/org/schabi/newpipe/player/playqueue/PlayQueue.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java index 97196805d..2a1b9d281 100644 --- a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java +++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueue.java @@ -23,7 +23,7 @@ import java.util.concurrent.atomic.AtomicInteger; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.core.BackpressureStrategy; import io.reactivex.rxjava3.core.Flowable; -import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.PublishSubject; /** * PlayQueue is responsible for keeping track of a list of streams and the index of @@ -46,7 +46,7 @@ public abstract class PlayQueue implements Serializable { private List backup; private List streams; - private transient BehaviorSubject eventBroadcast; + private transient PublishSubject eventBroadcast; private transient Flowable broadcastReceiver; private transient boolean disposed = false; @@ -71,7 +71,7 @@ public abstract class PlayQueue implements Serializable { *

*/ public void init() { - eventBroadcast = BehaviorSubject.create(); + eventBroadcast = PublishSubject.create(); broadcastReceiver = eventBroadcast.toFlowable(BackpressureStrategy.BUFFER) .observeOn(AndroidSchedulers.mainThread()) From a7b226c35439d10d9e1f9b8555b86d3b0adf9087 Mon Sep 17 00:00:00 2001 From: tobigr Date: Mon, 22 Dec 2025 10:15:18 +0100 Subject: [PATCH 02/59] [Player] Use original audio language by default --- app/src/main/java/org/schabi/newpipe/util/ListHelper.java | 2 +- app/src/main/res/xml/video_audio_settings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java index ea41f3e81..409fcb30c 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ListHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ListHelper.java @@ -806,7 +806,7 @@ public final class ListHelper { final Locale preferredLanguage = Localization.getPreferredLocale(context); final boolean preferOriginalAudio = preferences.getBoolean(context.getString(R.string.prefer_original_audio_key), - false); + true); final boolean preferDescriptiveAudio = preferences.getBoolean(context.getString(R.string.prefer_descriptive_audio_key), false); diff --git a/app/src/main/res/xml/video_audio_settings.xml b/app/src/main/res/xml/video_audio_settings.xml index 727ce4df4..6e8e2979b 100644 --- a/app/src/main/res/xml/video_audio_settings.xml +++ b/app/src/main/res/xml/video_audio_settings.xml @@ -62,7 +62,7 @@ app:useSimpleSummaryProvider="true" /> Date: Sat, 3 Jan 2026 11:54:07 +0100 Subject: [PATCH 03/59] Feat: opus metadata encoding (#12974) Feat: Downloading: Add opus audio metadata tags for title, author, date, and a comment tag with the originating URL This removes the DownloadManagerService.EXTRA_SOURCE field, which is always inferred from the StreamInfo. --- .../newpipe/download/DownloadDialog.java | 2 +- .../newpipe/streams/OggFromWebMWriter.java | 97 +++++++++++++++++-- .../postprocessing/OggFromWebmDemuxer.java | 2 +- .../giga/postprocessing/Postprocessing.java | 7 +- .../giga/service/DownloadManagerService.java | 17 ++-- 5 files changed, 107 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index 0857fa339..741bda246 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -1133,7 +1133,7 @@ public class DownloadDialog extends DialogFragment } DownloadManagerService.startMission(context, urls, storage, kind, threads, - currentInfo.getUrl(), psName, psArgs, nearLength, new ArrayList<>(recoveryInfo)); + currentInfo, psName, psArgs, nearLength, new ArrayList<>(recoveryInfo)); Toast.makeText(context, getString(R.string.download_has_started), Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java b/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java index 266cec24a..7cdc84e22 100644 --- a/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java +++ b/app/src/main/java/org/schabi/newpipe/streams/OggFromWebMWriter.java @@ -1,8 +1,14 @@ package org.schabi.newpipe.streams; +import static org.schabi.newpipe.MainActivity.DEBUG; + +import android.util.Log; +import android.util.Pair; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.streams.WebMReader.Cluster; import org.schabi.newpipe.streams.WebMReader.Segment; import org.schabi.newpipe.streams.WebMReader.SimpleBlock; @@ -13,6 +19,10 @@ import java.io.Closeable; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * @author kapodamy @@ -52,8 +62,10 @@ public class OggFromWebMWriter implements Closeable { private long segmentTableNextTimestamp = TIME_SCALE_NS; private final int[] crc32Table = new int[256]; + private final StreamInfo streamInfo; - public OggFromWebMWriter(@NonNull final SharpStream source, @NonNull final SharpStream target) { + public OggFromWebMWriter(@NonNull final SharpStream source, @NonNull final SharpStream target, + @Nullable final StreamInfo streamInfo) { if (!source.canRead() || !source.canRewind()) { throw new IllegalArgumentException("source stream must be readable and allows seeking"); } @@ -63,6 +75,7 @@ public class OggFromWebMWriter implements Closeable { this.source = source; this.output = target; + this.streamInfo = streamInfo; this.streamId = (int) System.currentTimeMillis(); @@ -271,12 +284,31 @@ public class OggFromWebMWriter implements Closeable { @Nullable private byte[] makeMetadata() { + if (DEBUG) { + Log.d("OggFromWebMWriter", "Downloading media with codec ID " + webmTrack.codecId); + } + if ("A_OPUS".equals(webmTrack.codecId)) { - return new byte[]{ - 0x4F, 0x70, 0x75, 0x73, 0x54, 0x61, 0x67, 0x73, // "OpusTags" binary string - 0x00, 0x00, 0x00, 0x00, // writing application string size (not present) - 0x00, 0x00, 0x00, 0x00 // additional tags count (zero means no tags) - }; + final var metadata = new ArrayList>(); + if (streamInfo != null) { + metadata.add(Pair.create("COMMENT", streamInfo.getUrl())); + metadata.add(Pair.create("GENRE", streamInfo.getCategory())); + metadata.add(Pair.create("ARTIST", streamInfo.getUploaderName())); + metadata.add(Pair.create("TITLE", streamInfo.getName())); + metadata.add(Pair.create("DATE", streamInfo + .getUploadDate() + .getLocalDateTime() + .format(DateTimeFormatter.ISO_DATE))); + } + + if (DEBUG) { + Log.d("OggFromWebMWriter", "Creating metadata header with this data:"); + metadata.forEach(p -> { + Log.d("OggFromWebMWriter", p.first + "=" + p.second); + }); + } + + return makeOpusTagsHeader(metadata); } else if ("A_VORBIS".equals(webmTrack.codecId)) { return new byte[]{ 0x03, // ¿¿¿??? @@ -290,6 +322,59 @@ public class OggFromWebMWriter implements Closeable { return null; } + /** + * This creates a single metadata tag for use in opus metadata headers. It contains the four + * byte string length field and includes the string as-is. This cannot be used independently, + * but must follow a proper "OpusTags" header. + * + * @param pair A key-value pair in the format "KEY=some value" + * @return The binary data of the encoded metadata tag + */ + private static byte[] makeOpusMetadataTag(final Pair pair) { + final var keyValue = pair.first.toUpperCase() + "=" + pair.second.trim(); + + final var bytes = keyValue.getBytes(); + final var buf = ByteBuffer.allocate(4 + bytes.length); + buf.order(ByteOrder.LITTLE_ENDIAN); + buf.putInt(bytes.length); + buf.put(bytes); + return buf.array(); + } + + /** + * This returns a complete "OpusTags" header, created from the provided metadata tags. + *

+ * You probably want to use makeOpusMetadata(), which uses this function to create + * a header with sensible metadata filled in. + * + * @param keyValueLines A list of pairs of the tags. This can also be though of as a mapping + * from one key to multiple values. + * @return The binary header + */ + private static byte[] makeOpusTagsHeader(final List> keyValueLines) { + final var tags = keyValueLines + .stream() + .filter(p -> !p.second.isBlank()) + .map(OggFromWebMWriter::makeOpusMetadataTag) + .collect(Collectors.toUnmodifiableList()); + + final var tagsBytes = tags.stream().collect(Collectors.summingInt(arr -> arr.length)); + + // Fixed header fields + dynamic fields + final var byteCount = 16 + tagsBytes; + + final var head = ByteBuffer.allocate(byteCount); + head.order(ByteOrder.LITTLE_ENDIAN); + head.put(new byte[]{ + 0x4F, 0x70, 0x75, 0x73, 0x54, 0x61, 0x67, 0x73, // "OpusTags" binary string + 0x00, 0x00, 0x00, 0x00, // vendor (aka. Encoder) string of length 0 + }); + head.putInt(tags.size()); // 4 bytes for tag count + tags.forEach(head::put); // dynamic amount of tag bytes + + return head.array(); + } + private void write(final ByteBuffer buffer) throws IOException { output.write(buffer.array(), 0, buffer.position()); buffer.position(0); diff --git a/app/src/main/java/us/shandian/giga/postprocessing/OggFromWebmDemuxer.java b/app/src/main/java/us/shandian/giga/postprocessing/OggFromWebmDemuxer.java index dc46ced5d..badb5f7ed 100644 --- a/app/src/main/java/us/shandian/giga/postprocessing/OggFromWebmDemuxer.java +++ b/app/src/main/java/us/shandian/giga/postprocessing/OggFromWebmDemuxer.java @@ -34,7 +34,7 @@ class OggFromWebmDemuxer extends Postprocessing { @Override int process(SharpStream out, @NonNull SharpStream... sources) throws IOException { - OggFromWebMWriter demuxer = new OggFromWebMWriter(sources[0], out); + OggFromWebMWriter demuxer = new OggFromWebMWriter(sources[0], out, streamInfo); demuxer.parseSource(); demuxer.selectTrack(0); demuxer.build(); diff --git a/app/src/main/java/us/shandian/giga/postprocessing/Postprocessing.java b/app/src/main/java/us/shandian/giga/postprocessing/Postprocessing.java index 7f5c85d27..1c9143252 100644 --- a/app/src/main/java/us/shandian/giga/postprocessing/Postprocessing.java +++ b/app/src/main/java/us/shandian/giga/postprocessing/Postprocessing.java @@ -4,6 +4,7 @@ import android.util.Log; import androidx.annotation.NonNull; +import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.streams.io.SharpStream; import java.io.File; @@ -30,7 +31,8 @@ public abstract class Postprocessing implements Serializable { public transient static final String ALGORITHM_M4A_NO_DASH = "mp4D-m4a"; public transient static final String ALGORITHM_OGG_FROM_WEBM_DEMUXER = "webm-ogg-d"; - public static Postprocessing getAlgorithm(@NonNull String algorithmName, String[] args) { + public static Postprocessing getAlgorithm(@NonNull String algorithmName, String[] args, + StreamInfo streamInfo) { Postprocessing instance; switch (algorithmName) { @@ -56,6 +58,7 @@ public abstract class Postprocessing implements Serializable { } instance.args = args; + instance.streamInfo = streamInfo; return instance; } @@ -75,8 +78,8 @@ public abstract class Postprocessing implements Serializable { */ private final String name; - private String[] args; + protected StreamInfo streamInfo; private transient DownloadMission mission; diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java b/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java index 45211211f..76da18b2d 100755 --- a/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java +++ b/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java @@ -40,6 +40,7 @@ import androidx.preference.PreferenceManager; import org.schabi.newpipe.R; import org.schabi.newpipe.download.DownloadActivity; +import org.schabi.newpipe.extractor.stream.StreamInfo; import org.schabi.newpipe.player.helper.LockManager; import org.schabi.newpipe.streams.io.StoredDirectoryHelper; import org.schabi.newpipe.streams.io.StoredFileHelper; @@ -74,12 +75,12 @@ public class DownloadManagerService extends Service { private static final String EXTRA_THREADS = "DownloadManagerService.extra.threads"; private static final String EXTRA_POSTPROCESSING_NAME = "DownloadManagerService.extra.postprocessingName"; private static final String EXTRA_POSTPROCESSING_ARGS = "DownloadManagerService.extra.postprocessingArgs"; - private static final String EXTRA_SOURCE = "DownloadManagerService.extra.source"; private static final String EXTRA_NEAR_LENGTH = "DownloadManagerService.extra.nearLength"; private static final String EXTRA_PATH = "DownloadManagerService.extra.storagePath"; private static final String EXTRA_PARENT_PATH = "DownloadManagerService.extra.storageParentPath"; private static final String EXTRA_STORAGE_TAG = "DownloadManagerService.extra.storageTag"; private static final String EXTRA_RECOVERY_INFO = "DownloadManagerService.extra.recoveryInfo"; + private static final String EXTRA_STREAM_INFO = "DownloadManagerService.extra.streamInfo"; private static final String ACTION_RESET_DOWNLOAD_FINISHED = APPLICATION_ID + ".reset_download_finished"; private static final String ACTION_OPEN_DOWNLOADS_FINISHED = APPLICATION_ID + ".open_downloads_finished"; @@ -353,13 +354,13 @@ public class DownloadManagerService extends Service { * @param kind type of file (a: audio v: video s: subtitle ?: file-extension defined) * @param threads the number of threads maximal used to download chunks of the file. * @param psName the name of the required post-processing algorithm, or {@code null} to ignore. - * @param source source url of the resource + * @param streamInfo stream metadata that may be written into the downloaded file. * @param psArgs the arguments for the post-processing algorithm. * @param nearLength the approximated final length of the file * @param recoveryInfo array of MissionRecoveryInfo, in case is required recover the download */ public static void startMission(Context context, String[] urls, StoredFileHelper storage, - char kind, int threads, String source, String psName, + char kind, int threads, StreamInfo streamInfo, String psName, String[] psArgs, long nearLength, ArrayList recoveryInfo) { final Intent intent = new Intent(context, DownloadManagerService.class) @@ -367,14 +368,14 @@ public class DownloadManagerService extends Service { .putExtra(EXTRA_URLS, urls) .putExtra(EXTRA_KIND, kind) .putExtra(EXTRA_THREADS, threads) - .putExtra(EXTRA_SOURCE, source) .putExtra(EXTRA_POSTPROCESSING_NAME, psName) .putExtra(EXTRA_POSTPROCESSING_ARGS, psArgs) .putExtra(EXTRA_NEAR_LENGTH, nearLength) .putExtra(EXTRA_RECOVERY_INFO, recoveryInfo) .putExtra(EXTRA_PARENT_PATH, storage.getParentUri()) .putExtra(EXTRA_PATH, storage.getUri()) - .putExtra(EXTRA_STORAGE_TAG, storage.getTag()); + .putExtra(EXTRA_STORAGE_TAG, storage.getTag()) + .putExtra(EXTRA_STREAM_INFO, streamInfo); context.startService(intent); } @@ -387,9 +388,9 @@ public class DownloadManagerService extends Service { char kind = intent.getCharExtra(EXTRA_KIND, '?'); String psName = intent.getStringExtra(EXTRA_POSTPROCESSING_NAME); String[] psArgs = intent.getStringArrayExtra(EXTRA_POSTPROCESSING_ARGS); - String source = intent.getStringExtra(EXTRA_SOURCE); long nearLength = intent.getLongExtra(EXTRA_NEAR_LENGTH, 0); String tag = intent.getStringExtra(EXTRA_STORAGE_TAG); + StreamInfo streamInfo = (StreamInfo)intent.getSerializableExtra(EXTRA_STREAM_INFO); final var recovery = IntentCompat.getParcelableArrayListExtra(intent, EXTRA_RECOVERY_INFO, MissionRecoveryInfo.class); Objects.requireNonNull(recovery); @@ -405,11 +406,11 @@ public class DownloadManagerService extends Service { if (psName == null) ps = null; else - ps = Postprocessing.getAlgorithm(psName, psArgs); + ps = Postprocessing.getAlgorithm(psName, psArgs, streamInfo); final DownloadMission mission = new DownloadMission(urls, storage, kind, ps); mission.threadCount = threads; - mission.source = source; + mission.source = streamInfo.getUrl(); mission.nearLength = nearLength; mission.recoveryInfo = recovery.toArray(new MissionRecoveryInfo[0]); From 5cefafa1459112b064fcea2f62c8a87966abd83c Mon Sep 17 00:00:00 2001 From: tobigr Date: Sun, 21 Dec 2025 10:58:01 +0100 Subject: [PATCH 04/59] Prepare for version 0.28.1 (1006) --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index df8c278c1..1aa5297c5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -42,9 +42,9 @@ android { minSdk = 21 targetSdk = 35 - versionCode = System.getProperty("versionCodeOverride")?.toInt() ?: 1005 + versionCode = System.getProperty("versionCodeOverride")?.toInt() ?: 1006 - versionName = "0.28.0" + versionName = "0.28.1" System.getProperty("versionNameSuffix")?.let { versionNameSuffix = it } testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" From 23b7f21d7c6582fb82793f06cd94b371e6a1b38a Mon Sep 17 00:00:00 2001 From: Siddhesh Dhainje Date: Sun, 4 Jan 2026 01:06:18 +0530 Subject: [PATCH 05/59] Fix crash on screen rotation while entering SoundCloud import URL --- .../subscription/ImportConfirmationDialog.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java index 03dd4a1cd..aa15b26d8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java @@ -18,18 +18,17 @@ import org.schabi.newpipe.R; public class ImportConfirmationDialog extends DialogFragment { @State protected Intent resultServiceIntent; + static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; public static void show(@NonNull final Fragment fragment, @NonNull final Intent resultServiceIntent) { final ImportConfirmationDialog confirmationDialog = new ImportConfirmationDialog(); - confirmationDialog.setResultServiceIntent(resultServiceIntent); + final Bundle args = new Bundle(); + args.putParcelable(EXTRA_RESULT_SERVICE_INTENT, resultServiceIntent); + confirmationDialog.setArguments(args); confirmationDialog.show(fragment.getParentFragmentManager(), null); } - public void setResultServiceIntent(final Intent resultServiceIntent) { - this.resultServiceIntent = resultServiceIntent; - } - @NonNull @Override public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) { @@ -50,6 +49,10 @@ public class ImportConfirmationDialog extends DialogFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (getArguments() != null) { + resultServiceIntent = getArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); + } + if (resultServiceIntent == null) { throw new IllegalStateException("Result intent is null"); } From a3673f8c3b3152c5fdef7313693ef16654ea3931 Mon Sep 17 00:00:00 2001 From: Siddhesh Dhainje Date: Sun, 4 Jan 2026 21:40:40 +0530 Subject: [PATCH 06/59] Used requireArguments instead of getArguments --- .../local/subscription/ImportConfirmationDialog.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java index aa15b26d8..b586ad3e1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java @@ -18,7 +18,7 @@ import org.schabi.newpipe.R; public class ImportConfirmationDialog extends DialogFragment { @State protected Intent resultServiceIntent; - static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; + private static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; public static void show(@NonNull final Fragment fragment, @NonNull final Intent resultServiceIntent) { @@ -49,13 +49,7 @@ public class ImportConfirmationDialog extends DialogFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null) { - resultServiceIntent = getArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); - } - - if (resultServiceIntent == null) { - throw new IllegalStateException("Result intent is null"); - } + resultServiceIntent = requireArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); Bridge.restoreInstanceState(this, savedInstanceState); } From 9998d99a04ecdd2012790b0fce144140feb2eacd Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Tue, 6 Jan 2026 09:01:47 +0200 Subject: [PATCH 07/59] Allow dragging boorkmarked playlist in both directions Ctrl+C/Ctrl+V from newpipe/local/playlist/LocalPlaylistFragment --- .../newpipe/local/bookmark/BookmarkFragment.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/bookmark/BookmarkFragment.java b/app/src/main/java/org/schabi/newpipe/local/bookmark/BookmarkFragment.java index d15db84c7..1f3772dd5 100644 --- a/app/src/main/java/org/schabi/newpipe/local/bookmark/BookmarkFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/bookmark/BookmarkFragment.java @@ -1,6 +1,7 @@ package org.schabi.newpipe.local.bookmark; import static org.schabi.newpipe.local.bookmark.MergedPlaylistManager.getMergedOrderedPlaylists; +import static org.schabi.newpipe.util.ThemeHelper.shouldUseGridLayout; import android.content.DialogInterface; import android.os.Bundle; @@ -417,10 +418,11 @@ public final class BookmarkFragment extends BaseLocalListFragment Date: Mon, 5 Jan 2026 22:56:03 +0200 Subject: [PATCH 08/59] Commit all the playlist changes to db immediately + some additional minor code cleanup in the file --- .../local/playlist/LocalPlaylistFragment.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java index f5562549c..1efc0a84c 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java @@ -111,7 +111,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment() { @Override public void selected(final LocalItem selectedItem) { - if (selectedItem instanceof PlaylistStreamEntry) { - final StreamEntity item = - ((PlaylistStreamEntry) selectedItem).getStreamEntity(); + if (selectedItem instanceof PlaylistStreamEntry entry) { + final StreamEntity item = entry.getStreamEntity(); NavigationHelper.openVideoDetailFragment(requireContext(), getFM(), item.getServiceId(), item.getUrl(), item.getTitle(), null, false); } @@ -496,6 +495,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment items = itemListAdapter.getItemsList(); final List streamIds = new ArrayList<>(items.size()); for (final LocalItem item : items) { - if (item instanceof PlaylistStreamEntry) { - streamIds.add(((PlaylistStreamEntry) item).getStreamId()); + if (item instanceof PlaylistStreamEntry entry) { + streamIds.add(entry.getStreamId()); } } @@ -767,6 +768,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment Date: Tue, 6 Jan 2026 12:41:12 +0100 Subject: [PATCH 09/59] Update extractor to latest version fixes media.ccc.de kiosks --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 02c89fcef..ee0fe535e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ teamnewpipe-nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996" # the corresponding commit hash, since JitPack sometimes deletes artifacts. # If there’s already a git hash, just add more of it to the end (or remove a letter) # to cause jitpack to regenerate the artifact. -teamnewpipe-newpipe-extractor = "05e0e4ced7b6ff05f3d68d831efed8bdf588f9ac" +teamnewpipe-newpipe-extractor = "f3e143035f8c2b94e43c6bef0608d2a519914e8f" viewpager2 = "1.1.0" webkit = "1.14.0" work = "2.10.5" # Newer versions require minSdk >= 23 From 952a1269c1e204756c88d7eeec15b4a34764c7f0 Mon Sep 17 00:00:00 2001 From: AbsurdlyLongUsername <22662897+absurdlylongusername@users.noreply.github.com> Date: Wed, 7 Jan 2026 07:48:32 +0000 Subject: [PATCH 10/59] Revert Google Material Components to 1.11.0 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ee0fe535e..35dd808d0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ leakcanary = "2.14" lifecycle = "2.9.4" # Newer versions require minSdk >= 23 localbroadcastmanager = "1.1.0" markwon = "4.6.2" -material = "1.13.0" +material = "1.11.0" media = "1.7.1" mockitoCore = "5.21.0" okhttp = "5.3.2" From 1eeba8daa7079deb09573261ab69e31437e6b6f3 Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Wed, 7 Jan 2026 20:33:35 +0200 Subject: [PATCH 11/59] Remove file orphaned for long time It was not deleted by mistake, delete it now Was orphaned at 1d69bd48beb9df0e5761c80f0ab4e7bae38900a4 --- .../schabi/newpipe/views/CollapsibleView.java | 249 ------------------ 1 file changed, 249 deletions(-) delete mode 100644 app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java diff --git a/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java b/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java deleted file mode 100644 index 91b5ebd07..000000000 --- a/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright 2018 Mauricio Colli - * CollapsibleView.java is part of NewPipe - * - * License: GPL-3.0+ - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.schabi.newpipe.views; - -import static org.schabi.newpipe.MainActivity.DEBUG; -import static java.lang.annotation.RetentionPolicy.SOURCE; - -import android.animation.ValueAnimator; -import android.content.Context; -import android.os.Parcelable; -import android.util.AttributeSet; -import android.util.Log; -import android.widget.LinearLayout; - -import androidx.annotation.IntDef; -import androidx.annotation.Nullable; - -import com.evernote.android.state.State; -import com.livefront.bridge.Bridge; - -import org.schabi.newpipe.ktx.ViewUtils; - -import java.lang.annotation.Retention; -import java.util.ArrayList; -import java.util.List; - -/** - * A view that can be fully collapsed and expanded. - */ -public class CollapsibleView extends LinearLayout { - private static final String TAG = CollapsibleView.class.getSimpleName(); - - private static final int ANIMATION_DURATION = 420; - - public static final int COLLAPSED = 0; - public static final int EXPANDED = 1; - - @State - @ViewMode - int currentState = COLLAPSED; - private boolean readyToChangeState; - - private int targetHeight = -1; - private ValueAnimator currentAnimator; - private final List listeners = new ArrayList<>(); - - public CollapsibleView(final Context context) { - super(context); - } - - public CollapsibleView(final Context context, @Nullable final AttributeSet attrs) { - super(context, attrs); - } - - public CollapsibleView(final Context context, @Nullable final AttributeSet attrs, - final int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public CollapsibleView(final Context context, final AttributeSet attrs, final int defStyleAttr, - final int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - /*////////////////////////////////////////////////////////////////////////// - // Collapse/expand logic - //////////////////////////////////////////////////////////////////////////*/ - - /** - * This method recalculates the height of this view so it must be called when - * some child changes (e.g. add new views, change text). - */ - public void ready() { - if (DEBUG) { - Log.d(TAG, getDebugLogString("ready() called")); - } - - measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST), - MeasureSpec.UNSPECIFIED); - targetHeight = getMeasuredHeight(); - - getLayoutParams().height = currentState == COLLAPSED ? 0 : targetHeight; - requestLayout(); - broadcastState(); - - readyToChangeState = true; - - if (DEBUG) { - Log.d(TAG, getDebugLogString("ready() *after* measuring")); - } - } - - public void collapse() { - if (DEBUG) { - Log.d(TAG, getDebugLogString("collapse() called")); - } - - if (!readyToChangeState) { - return; - } - - final int height = getHeight(); - if (height == 0) { - setCurrentState(COLLAPSED); - return; - } - - if (currentAnimator != null && currentAnimator.isRunning()) { - currentAnimator.cancel(); - } - currentAnimator = ViewUtils.animateHeight(this, ANIMATION_DURATION, 0); - - setCurrentState(COLLAPSED); - } - - public void expand() { - if (DEBUG) { - Log.d(TAG, getDebugLogString("expand() called")); - } - - if (!readyToChangeState) { - return; - } - - final int height = getHeight(); - if (height == this.targetHeight) { - setCurrentState(EXPANDED); - return; - } - - if (currentAnimator != null && currentAnimator.isRunning()) { - currentAnimator.cancel(); - } - currentAnimator = ViewUtils.animateHeight(this, ANIMATION_DURATION, this.targetHeight); - setCurrentState(EXPANDED); - } - - public void switchState() { - if (!readyToChangeState) { - return; - } - - if (currentState == COLLAPSED) { - expand(); - } else { - collapse(); - } - } - - @ViewMode - public int getCurrentState() { - return currentState; - } - - public void setCurrentState(@ViewMode final int currentState) { - this.currentState = currentState; - broadcastState(); - } - - public void broadcastState() { - for (final StateListener listener : listeners) { - listener.onStateChanged(currentState); - } - } - - /** - * Add a listener which will be listening for changes in this view (i.e. collapsed or expanded). - * @param listener {@link StateListener} to be added - */ - public void addListener(final StateListener listener) { - if (listeners.contains(listener)) { - throw new IllegalStateException("Trying to add the same listener multiple times"); - } - - listeners.add(listener); - } - - /** - * Remove a listener so it doesn't receive more state changes. - * @param listener {@link StateListener} to be removed - */ - public void removeListener(final StateListener listener) { - listeners.remove(listener); - } - - /*////////////////////////////////////////////////////////////////////////// - // State Saving - //////////////////////////////////////////////////////////////////////////*/ - - @Nullable - @Override - public Parcelable onSaveInstanceState() { - return Bridge.saveInstanceState(this, super.onSaveInstanceState()); - } - - @Override - public void onRestoreInstanceState(final Parcelable state) { - super.onRestoreInstanceState(Bridge.restoreInstanceState(this, state)); - - ready(); - } - - /*////////////////////////////////////////////////////////////////////////// - // Internal - //////////////////////////////////////////////////////////////////////////*/ - - public String getDebugLogString(final String description) { - return String.format("%-100s → %s", - description, "readyToChangeState = [" + readyToChangeState + "], " - + "currentState = [" + currentState + "], " - + "targetHeight = [" + targetHeight + "], " - + "mW x mH = [" + getMeasuredWidth() + "x" + getMeasuredHeight() + "], " - + "W x H = [" + getWidth() + "x" + getHeight() + "]"); - } - - @Retention(SOURCE) - @IntDef({COLLAPSED, EXPANDED}) - public @interface ViewMode { } - - /** - * Simple interface used for listening state changes of the {@link CollapsibleView}. - */ - public interface StateListener { - /** - * Called when the state changes. - * - * @param newState the state that the {@link CollapsibleView} transitioned to,
- * it's an integer being either {@link #COLLAPSED} or {@link #EXPANDED} - */ - void onStateChanged(@ViewMode int newState); - } -} From 418e34172a8528437c9cd1c6097503dbb053b61f Mon Sep 17 00:00:00 2001 From: Siddhesh Dhainje Date: Thu, 8 Jan 2026 21:31:31 +0530 Subject: [PATCH 12/59] Removed restoreInstanceState and resultServiceIntent condition --- .../local/subscription/ImportConfirmationDialog.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java index b586ad3e1..0067e1154 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java @@ -10,13 +10,11 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; -import com.evernote.android.state.State; import com.livefront.bridge.Bridge; import org.schabi.newpipe.R; public class ImportConfirmationDialog extends DialogFragment { - @State protected Intent resultServiceIntent; private static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; @@ -37,9 +35,7 @@ public class ImportConfirmationDialog extends DialogFragment { .setCancelable(true) .setNegativeButton(R.string.cancel, null) .setPositiveButton(R.string.ok, (dialogInterface, i) -> { - if (resultServiceIntent != null && getContext() != null) { - getContext().startService(resultServiceIntent); - } + requireContext().startService(resultServiceIntent); dismiss(); }) .create(); @@ -50,8 +46,6 @@ public class ImportConfirmationDialog extends DialogFragment { super.onCreate(savedInstanceState); resultServiceIntent = requireArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); - - Bridge.restoreInstanceState(this, savedInstanceState); } @Override From dc5c5b6604c582093c1b7b85e28ea6e0c6c49f4d Mon Sep 17 00:00:00 2001 From: Justin L Date: Tue, 6 Jan 2026 09:03:44 -0500 Subject: [PATCH 13/59] Fix download resume corruption when server returns HTTP 200 When resuming a download after interruption, if the server returns HTTP 200 (full resource) instead of HTTP 206 (partial content), the code correctly resets mMission.done but fails to reset the 'start' variable. This causes the subsequent file seek to use a stale offset, writing new data at incorrect positions. This bug causes file corruption for large downloads (>5GB) that are interrupted and resumed, particularly when: - Switching between WiFi networks - Server CDN returning different responses - Connection drops during long downloads The corruption manifests as duplicate data regions in the file, which for MP4 downloads results in multiple MOOV atoms and broken seek functionality. Fix: Reset start=0 when HTTP 200 is received, ensuring the file write position correctly restarts from the beginning of the current resource. (cherry picked from commit 08008ca6f958fe9f2768447047b3225292f10ca7) --- .../main/java/us/shandian/giga/get/DownloadRunnableFallback.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/us/shandian/giga/get/DownloadRunnableFallback.java b/app/src/main/java/us/shandian/giga/get/DownloadRunnableFallback.java index eed5db463..1d2483e79 100644 --- a/app/src/main/java/us/shandian/giga/get/DownloadRunnableFallback.java +++ b/app/src/main/java/us/shandian/giga/get/DownloadRunnableFallback.java @@ -85,6 +85,7 @@ public class DownloadRunnableFallback extends Thread { if (mMission.unknownLength || mConn.getResponseCode() == 200) { // restart amount of bytes downloaded mMission.done = mMission.offsets[mMission.current] - mMission.offsets[0]; + start = 0; // reset position to avoid writing at wrong offset } mF = mMission.storage.getStream(); From d5d92e83405139f19f5c1fe065558782121779c2 Mon Sep 17 00:00:00 2001 From: Siddhesh Dhainje Date: Sun, 4 Jan 2026 01:06:18 +0530 Subject: [PATCH 14/59] Fix crash on screen rotation while entering SoundCloud import URL (cherry picked from commit 23b7f21d7c6582fb82793f06cd94b371e6a1b38a) --- .../subscription/ImportConfirmationDialog.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java index 03dd4a1cd..aa15b26d8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java @@ -18,18 +18,17 @@ import org.schabi.newpipe.R; public class ImportConfirmationDialog extends DialogFragment { @State protected Intent resultServiceIntent; + static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; public static void show(@NonNull final Fragment fragment, @NonNull final Intent resultServiceIntent) { final ImportConfirmationDialog confirmationDialog = new ImportConfirmationDialog(); - confirmationDialog.setResultServiceIntent(resultServiceIntent); + final Bundle args = new Bundle(); + args.putParcelable(EXTRA_RESULT_SERVICE_INTENT, resultServiceIntent); + confirmationDialog.setArguments(args); confirmationDialog.show(fragment.getParentFragmentManager(), null); } - public void setResultServiceIntent(final Intent resultServiceIntent) { - this.resultServiceIntent = resultServiceIntent; - } - @NonNull @Override public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) { @@ -50,6 +49,10 @@ public class ImportConfirmationDialog extends DialogFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (getArguments() != null) { + resultServiceIntent = getArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); + } + if (resultServiceIntent == null) { throw new IllegalStateException("Result intent is null"); } From 381b383a432a2ca46995bd5e9643634480a72a07 Mon Sep 17 00:00:00 2001 From: Siddhesh Dhainje Date: Sun, 4 Jan 2026 21:40:40 +0530 Subject: [PATCH 15/59] Used requireArguments instead of getArguments (cherry picked from commit a3673f8c3b3152c5fdef7313693ef16654ea3931) --- .../local/subscription/ImportConfirmationDialog.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java index aa15b26d8..b586ad3e1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java @@ -18,7 +18,7 @@ import org.schabi.newpipe.R; public class ImportConfirmationDialog extends DialogFragment { @State protected Intent resultServiceIntent; - static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; + private static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; public static void show(@NonNull final Fragment fragment, @NonNull final Intent resultServiceIntent) { @@ -49,13 +49,7 @@ public class ImportConfirmationDialog extends DialogFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (getArguments() != null) { - resultServiceIntent = getArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); - } - - if (resultServiceIntent == null) { - throw new IllegalStateException("Result intent is null"); - } + resultServiceIntent = requireArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); Bridge.restoreInstanceState(this, savedInstanceState); } From a83762c4d7ef5b7e2432fe76eb6f1cf47c6be6bf Mon Sep 17 00:00:00 2001 From: Siddhesh Dhainje Date: Thu, 8 Jan 2026 21:31:31 +0530 Subject: [PATCH 16/59] Removed restoreInstanceState and resultServiceIntent condition (cherry picked from commit 418e34172a8528437c9cd1c6097503dbb053b61f) --- .../local/subscription/ImportConfirmationDialog.java | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java index b586ad3e1..0067e1154 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/ImportConfirmationDialog.java @@ -10,13 +10,11 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; -import com.evernote.android.state.State; import com.livefront.bridge.Bridge; import org.schabi.newpipe.R; public class ImportConfirmationDialog extends DialogFragment { - @State protected Intent resultServiceIntent; private static final String EXTRA_RESULT_SERVICE_INTENT = "extra_result_service_intent"; @@ -37,9 +35,7 @@ public class ImportConfirmationDialog extends DialogFragment { .setCancelable(true) .setNegativeButton(R.string.cancel, null) .setPositiveButton(R.string.ok, (dialogInterface, i) -> { - if (resultServiceIntent != null && getContext() != null) { - getContext().startService(resultServiceIntent); - } + requireContext().startService(resultServiceIntent); dismiss(); }) .create(); @@ -50,8 +46,6 @@ public class ImportConfirmationDialog extends DialogFragment { super.onCreate(savedInstanceState); resultServiceIntent = requireArguments().getParcelable(EXTRA_RESULT_SERVICE_INTENT); - - Bridge.restoreInstanceState(this, savedInstanceState); } @Override From df92431ee3b1ea3f80069a04f43f62e56a935aa2 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Fri, 9 Jan 2026 15:15:58 +0100 Subject: [PATCH 17/59] Translated using Weblate (Bengali (India)) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 39.2% (300 of 764 strings) Translated using Weblate (Lombard) Currently translated at 0.3% (3 of 764 strings) Translated using Weblate (French) Currently translated at 75.8% (66 of 87 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Tigrinya) Currently translated at 21.8% (167 of 764 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Belarusian) Currently translated at 99.0% (757 of 764 strings) Translated using Weblate (Slovak) Currently translated at 77.0% (67 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Bulgarian) Currently translated at 3.4% (3 of 87 strings) Translated using Weblate (Santali) Currently translated at 1.1% (1 of 87 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (German) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (Turkish) Currently translated at 33.3% (29 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 78.1% (68 of 87 strings) Translated using Weblate (German) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (French) Currently translated at 74.7% (65 of 87 strings) Translated using Weblate (French) Currently translated at 74.7% (65 of 87 strings) Translated using Weblate (Czech) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (Slovak) Currently translated at 74.7% (65 of 87 strings) Translated using Weblate (Hindi) Currently translated at 77.0% (67 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 68.9% (60 of 87 strings) Co-authored-by: 135 <135135@users.noreply.hosted.weblate.org> Co-authored-by: Balázs Meskó Co-authored-by: Ding User Co-authored-by: Dizro Co-authored-by: Erenay Co-authored-by: Femini Co-authored-by: Fjuro Co-authored-by: Hosted Weblate Co-authored-by: Kuko Co-authored-by: MatthieuPh Co-authored-by: Mickaël Binos Co-authored-by: Milan Co-authored-by: Prasanta-Hembram Co-authored-by: STV Co-authored-by: ShareASmile Co-authored-by: Sumon Kayal Co-authored-by: Trunars Co-authored-by: VfBFan Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sat/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/ Translation: NewPipe/Metadata --- app/src/main/res/values-az/strings.xml | 2 +- app/src/main/res/values-be/strings.xml | 1 + app/src/main/res/values-bn-rIN/strings.xml | 4 ++ app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-hi/strings.xml | 34 +++++++++-- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-lmo/strings.xml | 1 + app/src/main/res/values-pa/strings.xml | 57 +++++++++---------- app/src/main/res/values-sk/strings.xml | 16 +++--- app/src/main/res/values-ti/strings.xml | 15 +++++ .../metadata/android/bg/changelogs/63.txt | 8 --- .../metadata/android/cs/changelogs/1005.txt | 22 +++---- .../metadata/android/de/changelogs/986.txt | 17 +++--- .../metadata/android/de/changelogs/987.txt | 18 +++--- .../metadata/android/de/changelogs/997.txt | 15 +++-- .../metadata/android/de/changelogs/999.txt | 4 +- .../metadata/android/fr/changelogs/1000.txt | 24 ++++---- .../metadata/android/fr/changelogs/1003.txt | 12 ++-- .../metadata/android/fr/changelogs/1005.txt | 18 +++--- .../metadata/android/fr/changelogs/65.txt | 2 +- .../metadata/android/fr/changelogs/70.txt | 2 +- .../metadata/android/hi/changelogs/1000.txt | 4 -- .../metadata/android/hi/changelogs/1002.txt | 1 - .../metadata/android/hi/changelogs/1004.txt | 4 +- .../metadata/android/hi/changelogs/1005.txt | 22 ++++--- .../metadata/android/hi/changelogs/1006.txt | 15 +++++ .../metadata/android/hi/changelogs/65.txt | 29 +++------- .../metadata/android/hi/changelogs/66.txt | 42 +++++--------- .../metadata/android/hi/changelogs/68.txt | 40 +++++-------- .../metadata/android/hi/changelogs/69.txt | 28 ++++----- .../metadata/android/hi/changelogs/70.txt | 34 ++++------- .../metadata/android/hi/changelogs/71.txt | 15 ++--- .../metadata/android/hi/changelogs/740.txt | 29 +++------- .../metadata/android/hi/changelogs/750.txt | 31 ++++------ .../metadata/android/hi/changelogs/760.txt | 50 ++++------------ .../metadata/android/hi/changelogs/790.txt | 21 +++---- .../metadata/android/hi/changelogs/800.txt | 31 +++------- .../metadata/android/hi/changelogs/810.txt | 26 +++------ .../metadata/android/hi/changelogs/840.txt | 28 +++------ .../metadata/android/hi/changelogs/930.txt | 26 ++++----- .../metadata/android/hi/changelogs/940.txt | 24 ++++---- .../metadata/android/hi/changelogs/951.txt | 24 ++++---- .../metadata/android/hi/changelogs/995.txt | 4 +- .../metadata/android/hi/changelogs/997.txt | 3 - .../metadata/android/pa/changelogs/1000.txt | 8 +-- .../metadata/android/pa/changelogs/1004.txt | 4 +- .../metadata/android/pa/changelogs/1005.txt | 21 +++---- .../metadata/android/pa/changelogs/1006.txt | 15 +++++ .../metadata/android/pa/changelogs/65.txt | 14 ++++- .../metadata/android/pa/changelogs/66.txt | 22 ++++++- .../metadata/android/pa/changelogs/68.txt | 20 ++++++- .../metadata/android/pa/changelogs/69.txt | 16 +++++- .../metadata/android/pa/changelogs/70.txt | 11 +++- .../metadata/android/pa/changelogs/71.txt | 9 ++- .../metadata/android/pa/changelogs/740.txt | 9 ++- .../metadata/android/pa/changelogs/750.txt | 10 +++- .../metadata/android/pa/changelogs/760.txt | 11 +++- .../metadata/android/pa/changelogs/780.txt | 12 +++- .../metadata/android/pa/changelogs/790.txt | 12 +++- .../metadata/android/pa/changelogs/800.txt | 11 +++- .../metadata/android/pa/changelogs/810.txt | 12 +++- .../metadata/android/pa/changelogs/840.txt | 11 +++- .../metadata/android/pa/changelogs/920.txt | 10 +++- .../metadata/android/pa/changelogs/930.txt | 15 ++++- .../metadata/android/pa/changelogs/940.txt | 15 ++++- .../metadata/android/pa/changelogs/951.txt | 24 ++++---- .../metadata/android/pa/changelogs/954.txt | 15 ++--- .../metadata/android/pa/changelogs/957.txt | 17 +++--- .../metadata/android/pa/changelogs/964.txt | 7 ++- .../metadata/android/pa/changelogs/975.txt | 5 +- .../metadata/android/pa/changelogs/976.txt | 11 +--- .../metadata/android/pa/changelogs/986.txt | 18 +++--- .../metadata/android/pa/changelogs/987.txt | 4 +- .../metadata/android/pa/changelogs/990.txt | 21 +++---- .../metadata/android/pa/changelogs/995.txt | 8 +-- .../metadata/android/pa/changelogs/997.txt | 2 - .../android/sat/short_description.txt | 1 + .../metadata/android/sk/changelogs/1005.txt | 31 +++++----- .../metadata/android/sk/changelogs/1006.txt | 28 ++++----- .../metadata/android/sk/changelogs/65.txt | 46 +++++++-------- .../metadata/android/sk/changelogs/66.txt | 54 +++++++++--------- .../metadata/android/tr/changelogs/1005.txt | 16 +++--- 82 files changed, 717 insertions(+), 666 deletions(-) delete mode 100644 fastlane/metadata/android/bg/changelogs/63.txt create mode 100644 fastlane/metadata/android/hi/changelogs/1006.txt create mode 100644 fastlane/metadata/android/pa/changelogs/1006.txt create mode 100644 fastlane/metadata/android/sat/short_description.txt diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 6f14202e1..689cf4937 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -585,7 +585,7 @@ Serveri təsdiqləmək mümkün olmadı %s-də bəyəndiyiniz serverləri tapın Video \"Təfsilatlar\" səhifəsində fon və ya ani görüntü düyməsin basarkən ipucu göstər - Oynadıcı titr mətn miqyasını və arxa fon üslublarını dəyişdir. Effektiv olması üçün tətbiqi yenidən başlatmaq tələb olunur + Oynadıcı titr mətn miqyasını və arxa plan üslublarını dəyişdir. Effektiv olması üçün tətbiqi yenidən başlatmaq tələb olunur Xəta baş verdi: %1$s Fayl mövcud deyil, yaxud oxumaq və ya yazmaq icazəsi yoxdur Veb saytı təhlil etmək alınmadı diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 8732e45d9..ef7ef98c3 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -831,4 +831,5 @@ Трэнды – фільмы і перадачы Гэты кантэнт недаступны для цяперашняй краіны кантэнту.\n\nЯе можна змяніць праз «Налады > Кантэнт > Прадвызначаная краіна кантэнту». 21 ліпеня 2025 года YouTube спыніў падтрымку аб\'яднанай старонкі трэндаў. NewPipe замяніў старонку трэндаў на трэнды трансляцый.\n\nТаксама можна выбраць іншыя старонкі трэндаў праз «Налады > Кантэнт > Змесціва галоўнай старонкі». + Аб\'яднаныя трэнды YouTube выдалены diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index e6269b5b9..a79319ee3 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -307,4 +307,8 @@ বিজ্ঞপ্তিতে প্রদর্শিত ভিডিও থাম্বনেল 16:9 থেকে 1:1 অনুপাতের করুন (বিকৃতি দেখা যেতে পারে) অদলবদল কিছু না + হ্যাঁ + না + সার্চ + খুঁজুন diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 627e755f6..b36b8555b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -837,7 +837,7 @@ Beliebte Filme und Shows Beliebte Musik Beliebte Podcasts - YouTube hat den geteilten Feed entfernt + YouTube hat die kombinierten „beliebten Seiten“ entfernt YouTube hat die kombinierte Trending-Seite ab dem 21. Juli 2025 eingestellt. NewPipe hat die Standard-Trending-Seite durch die Trending-Livestreams ersetzt.\n\nDu kannst auch verschiedene Trendseiten unter „Einstellungen > Inhalt > Inhalt der Hauptseite“ auswählen. Um den Pop-up-Player zu verwenden, bitte in den folgenden Android-Einstellungen %1$s auswählen und %2$s aktivieren. „Über anderen Apps einblenden“ diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index dd23cfc08..d2e6a422e 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -74,7 +74,7 @@ देखे गए वीडियोज़ की सूची रखें प्लेबैक फिर से शुरू करें रुकावटें (जैसे कि फ़ोन कॉल) खत्म होने के बाद वीडियो प्ले जारी रखें - \'अगले\' और \'सबंधित\' वीडियो दिखाएं + \'अगला\' और \'संबंधित\' वीडियो दिखाएं \"कतार में जोड़ने के लिए स्पर्श बनाये रखें\" दिखाएं जब बैकग्राउंड और पॉपअप बटन वीडियो के विवरण पन्ने में दबाई जाए तो सलाह दिखाएं असमर्थित URL @@ -93,7 +93,7 @@ बंद किया साफ करें उत्तम रिजॉल्युशन - वापिस + अन-डू करें सभी प्ले करें न्यूपाइप की नोटीफिकेशन न्यूपाइप के प्लेयर के लिए नोटीफिकेशन @@ -104,7 +104,7 @@ वैबसाइट parse नहीं हो सकी विषय वस्तु उपलब्ध नहीं है डाउनलोड मेनू स्थापित नहीं किया जा सका - APP/UI करैश हो गई + ऐप/UI करैश हो गई इस वीडियो को चलाने में असफल हुए अनचाही वीडियो प्लेयर त्रुटी आयी है वीडियो प्लेयर त्रुटी से ठीक हो रहा है @@ -391,7 +391,7 @@ प्लेबैक स्थानों को मिटाएं सारे प्लेबैक स्थानों को मिटाता है सारे प्लेबैक स्थानों को मिटाएं\? - निपटान के बाद खंड या गतिविधि जीवन चक्र के बाहर अविभाज्य आरएक्स अपवादों की रिपोर्टिंग को बलपूर्वक लागू करें + हैंडलिंग के बाद फ्रैगमेंट या एक्टिविटी लूप के बाहर अनहैंडल्ड Rx एक्सेप्शन की रिपोर्टिंग को बलपूर्वक लागू करें साउंडक्लाउड प्रोफाइल निर्यात करने के लिए आईडी या युआरएल दीजिये: \n \n1. अपने वेब ब्राउज़र में \"डेस्कटॉप मोड\" चालू करें (वेबसाइट मोबाइल उपकरणों के लिए उपलब्ध नहीं है) @@ -406,7 +406,7 @@ ग्रिड ऑटो त्रुटि दिखाएं - सर्वर मल्टी थ्रेडेड डाउनलोड स्वीकार नहीं करता, पुनः कोशिश करे @string/msg_threads = 1 के साथ + सर्वर मल्टी थ्रेडेड डाउनलोड स्वीकार नहीं करता, @string/msg_threads = 1 के साथ पुनः कोशिश करें \'स्टोरेज एक्सेस फ्रेमवर्क\' आपको बाहरी एसडी कार्ड पर डाउनलोड करने देता है सेवा चुनें, वर्तमान चुनाव : डिफ़ॉल्ट कियोस्क @@ -502,7 +502,7 @@ अनगिनत विडीओज़ 100+ विडीओज़ विवरण - संबंधित स्ट्रीमस + संबंधित आइटम्स टिप्पणियाँ कृपया जांचें लें कि क्या आपके क्रैश पर चर्चा करने वाला मुद्दा पहले से मौजूद है। डुप्लिकेट टिकट बनाते समय, आप हमसे समय लेते हैं जो हम वास्तविक बग को ठीक करने के लिए खर्च कर सकते हैं। गिटहब पर रिपोर्ट करें @@ -828,4 +828,26 @@ चैनल समूह पेज पसंद यूट्यूब अस्थायी प्लेलिस्ट के रूप में साझा करें + एंटरी मिटा दी गई + फाईल डिलीट करें + एंटरी मिटाऐं + %sहज़ार + पॉपअप प्लेयर इस्तेमाल करने के लिए, कृपया नीचे दिए गए Android सेटिंग्स मेनू में %1$s चुनें और %2$s चालू करें। + “अन्य ऐप्स पर डिस्प्ले की अनुमति दें” + %sमिलीअन + %sअरब + अकाउंट बंद कर दिया गया\n\n%1$s यह कारण बताता है: %2$s + साउंडक्लाउड टॉप 50 पेज हटा दिया गया + साउंडक्लाउड ने ओरिजिनल टॉप 50 चार्ट बंद कर दिए हैं। इससे जुड़ा टैब आपके मेन पेज से हटा दिया गया है। + YouTube कंबाइंड ट्रेंडिंग हटा दी गई + YouTube ने 21 जुलाई 2025 से कंबाइंड ट्रेंडिंग पेज बंद कर दिया है। NewPipe ने डिफ़ॉल्ट ट्रेंडिंग पेज को ट्रेंडिंग लाइवस्ट्रीम से बदल दिया है।\n\nआप \"सेटिंग्स > कंटेंट > मेन पेज कंटेंट\" में अलग-अलग ट्रेंडिंग पेज भी चुन सकते हैं। + गेमिंग ट्रेंडस + ट्रेंडिंग पॉडकास्ट + ट्रेंडिंग फिल्में और शो + ट्रेंडिंग संगीत + पले करते समय सर्वर से HTTP error 403 मिला, शायद स्ट्रीमिंग URL एक्सपायर होने या IP बैन की वजह से हुआ + पले करते समय सर्वर से HTTP error %1$s मिला + पले करते समय सर्वर से HTTP error 403 मिला, जो शायद IP बैन या स्ट्रीमिंग URL डीओबफस्केशन की दिक्कतों की वजह से हुआ है + %1$s ने डेटा देने से मना कर दिया, और यह कन्फर्म करने के लिए लॉगिन मांगा कि रिक्वेस्ट करने वाला बोट नहीं है।\n\nहो सकता है कि %1$s ने आपके IP को कुछ समय के लिए बैन कर दिया हो, आप कुछ समय इंतज़ार कर सकते हैं या किसी दूसरे IP पर स्विच कर सकते हैं (जैसे VPN ऑन/ऑफ करके, या WiFi से मोबाइल डेटा पर स्विच करके)। + यह कंटेंट अभी चुने गए देश के कंटेंट के लिए उपलब्ध नहीं है।\n\n\"सेटिंग्स > कंटेंट > डिफ़ॉल्ट कंटेंट देश\" से अपना चुनाव बदलें। diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index d114a2d33..12778fd32 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -817,7 +817,7 @@ Bejegyzés törölve Fiók megszüntetve\n\n%1$s az alábbi ok miatt: %2$s A lejátszás közben a kiszolgáló 403-as HTTP-hibát adott vissza, valószínűleg a közvetítési hivatkozás érvényessége lejárt vagy a IP-tiltás miatt - HTTP-hiba %1$s érkezett a kiszolgáltól a lejátszás közben + HTTP-hiba (%1$s) érkezett a kiszolgálótól a lejátszás során HTTP 403-as hiba érkezett a kiszolgálótól a lejátszás közben, valószínűleg IP-tiltás vagy a közvetítési hivatkozás feloldási problémák miatt %1$s visszautasította az adatok szolgáltatását, és bejelentkezést kér annak megerősítésére, hogy a kérés nem robot által érkezik.\n\nElőfordulhat, hogy az IP-címét ideiglenesen letiltotta %1$s, várhat egy keveset, vagy váltson egy másik IP-címre (például VPN be-/kikapcsolásával, vagy Wi-Fi-ről mobiladat-forgalomra váltva). Ez a tartalom a jelenleg kiválasztott tartalom országában nem elérhető.\n\nVáltoztassa meg a „Beállítások > Tartalom >Tartalom alapértelmezett országa” menüpontban. diff --git a/app/src/main/res/values-lmo/strings.xml b/app/src/main/res/values-lmo/strings.xml index 6f681ac08..80f3dd9c6 100644 --- a/app/src/main/res/values-lmo/strings.xml +++ b/app/src/main/res/values-lmo/strings.xml @@ -1,4 +1,5 @@ Pigia la lente per inziaa. + Canai diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index eb6ee58a2..a937fbf86 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -29,7 +29,7 @@ ਨਵਾਂ ਕੀ ਹੈ ਬੈਕਗ੍ਰਾਊਂਡ ਪੌਪ-ਅਪ - ਵਿੱਚ ਸ਼ਾਮਿਲ ਕਰੋ + ਦੇ ਵਿੱਚ ਜੋੜ੍ਹੋ ਵੀਡੀਓ ਲਈ ਡਾਊਨਲੋਡ ਫ਼ੋਲਡਰ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਇੱਥੇ ਜਮ੍ਹਾਂ ਹੁੰਦੀਆਂ ਹਨ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਲਈ ਡਾਊਨਲੋਡ ਫ਼ੋਲਡਰ ਚੁਣੋ @@ -93,7 +93,7 @@ ਬੰਦ ਕੀਤਾ ਸਾਫ ਕਰੋ ਵਧੀਆ ਰੈਜ਼ੋਲਿਊਸ਼ਨ - ਵਾਪਿਸ + ਅਣ-ਕੀਤਾ ਕਰੋ ਸਾਰੇ ਚਲਾਓ ਹਮੇਸ਼ਾਂ ਸਿਰਫ਼ ਇਸ ਬਾਰ @@ -184,8 +184,7 @@ ਕ੍ਰਿਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ… ਕਲਿਪ-ਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਹੋ ਗਿਆ ਹੈ ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਵਿਚੋਂ ਇੱਕ ਡਾਊਨਲੋਡ ਫੋਲਡਰ ਨੂੰ ਚੁਣੋ - ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ -\nਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ + ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ\nਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ 1 ਆਈਟਮ ਮਿਟਾਈ ਗਈ। ReCaptcha ਚੁਣੌਤੀ ReCaptcha ਚੁਣੌਤੀ ਲਈ ਬੇਨਤੀ @@ -278,36 +277,19 @@ ਪਿੱਛਲਾ ਐਕਸਪੋਰਟ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਐਕਸਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ - ਗੂਗਲ ਟੇਕਅਊਟ ਤੋਂ ਯੂਟਿਊਬ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਐਕਸਪੋਰਟ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ: -\n -\n1. ਇਸ URL ਤੇ ਜਾਓ: %1$s -\n2. ਮੰਗਣ ਤੇ ਆਪਣੇ ਖਾਤੇ \'ਚ ਲਾਗ-ਇਨ ਕਰੋ -\n3. ਕਲਿੱਕ ਕਰੋ \" All data incuded\" ਤੇ, ਫੇਰ \"Deselect all\" ਤੇ ਫੇਰ ਸਿਰਫ \"subscriprion\" ਚੁਣੋ ਅਤੇ \"OK\" ਕਰੋ -\n4. \"Next step\" ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਫੇਰ \"create export\" ਤੇ -\n5. ਡਾਊਨਲੋਡ ਬਟਨ ਦਿਖਾਈ ਦੇਣ ਤੇ ਇਸ ਤੇ ਕਲਿੱਕ ਕਰੋ।ਇੱਕ ਡਾਉਨਲੋਡ ਸ਼ੁਰੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਇਹੀ ਐਕਸਪੋਰਟ ਫਾਈਲ ਹੈ) -\n6. ਥੱਲੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਡਾਊਨਲੋਡ ਕੀਤੀ .zip ਫਾਈਲ ਚੁਣੋ -\n7. [ਜੇ .zip ਤੋਂ ਐਕਸਪੋਰਟ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ] ਤਾਂ .csv ਫਾਈਲ ਐਕਸਟਰੈਕਟ ਕਰੋ (ਆਮ ਤੌਰ ਤੇ \"YouTube and YouTube Music/subscriptions/subscriptions.csv\"), ਥੱਲੇ ਦਿੱਤੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਐਕਸਟਰੈਕਟ ਕੀਤੀ csv ਫਾਈਲ ਚੁਣੋ - URL ਜਾਂ ਆਪਣੀ ID ਟਾਈਪ ਕਰਕੇ ਸਾਉੰਡ ਕਲਾਉਡ ਪ੍ਰੋਫਾਈਲ ਇੰਪੋਰਟ ਕਰੋ: -\n -\n1. ਇੱਕ ਵੈਬ-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ \"ਡੈਸਕਟਾਪ ਮੋਡ\" ਨੂੰ ਚਾਲੂ ਕਰੋ (ਸਾਈਟ ਮੋਬਾਈਲ ਉਪਕਰਣਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ) -\n2. ਇਸ URL ਤੇ ਜਾਓ: %1$s -\n3. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ -\n4. ਨਿਰਦੇਸ਼ਤ ਕੀਤੇ ਗਏ ਪ੍ਰੋਫਾਈਲ URL ਨੂੰ ਕਾਪੀ ਕਰੋ. + ਗੂਗਲ ਟੇਕਆਊਟ ਤੋਂ ਯੂਟਿਊਬ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਐਕਸਪੋਰਟ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ:\n\n1. ਇਸ URL ਤੇ ਜਾਓ: %1$s\n2. ਮੰਗਣ ਤੇ ਆਪਣੇ ਖਾਤੇ \'ਚ ਲਾਗ-ਇਨ ਕਰੋ\n3. ਕਲਿੱਕ ਕਰੋ \" All data incuded\" ਤੇ, ਫੇਰ \"Deselect all\" ਤੇ ਫੇਰ ਸਿਰਫ \"subscriprion\" ਚੁਣੋ ਅਤੇ \"OK\" ਕਰੋ\n4. \"Next step\" ਤੇ ਕਲਿੱਕ ਕਰੋ ਅਤੇ ਫੇਰ \"create export\" ਤੇ\n5. ਡਾਊਨਲੋਡ ਬਟਨ ਦਿਖਾਈ ਦੇਣ ਤੇ ਇਸ ਤੇ ਕਲਿੱਕ ਕਰੋ। ਇੱਕ ਡਾਉਨਲੋਡ ਸ਼ੁਰੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਇਹੀ ਐਕਸਪੋਰਟ ਫਾਈਲ ਹੈ)\n6. ਥੱਲੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਡਾਊਨਲੋਡ ਕੀਤੀ .zip ਫਾਈਲ ਚੁਣੋ\n7. [ਜੇ .zip ਤੋਂ ਐਕਸਪੋਰਟ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ] ਤਾਂ .csv ਫਾਈਲ ਐਕਸਟਰੈਕਟ ਕਰੋ (ਆਮ ਤੌਰ ਤੇ \"YouTube and YouTube Music/subscriptions/subscriptions.csv\"), ਥੱਲੇ ਦਿੱਤੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਐਕਸਟਰੈਕਟ ਕੀਤੀ csv ਫਾਈਲ ਚੁਣੋ + URL ਜਾਂ ਆਪਣੀ ID ਟਾਈਪ ਕਰਕੇ ਸਾਉੰਡ ਕਲਾਉਡ ਪ੍ਰੋਫਾਈਲ ਇੰਪੋਰਟ ਕਰੋ: \n \n1. ਇੱਕ ਵੈਬ-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ \"ਡੈਸਕਟਾਪ ਮੋਡ\" ਨੂੰ ਚਾਲੂ ਕਰੋ (ਸਾਈਟ ਮੋਬਾਈਲ ਉਪਕਰਣਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ) \n2. ਇਸ URL ਤੇ ਜਾਓ: %1$s \n3. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ \n4. ਨਿਰਦੇਸ਼ਤ ਕੀਤੇ ਗਏ ਪ੍ਰੋਫਾਈਲ URL ਨੂੰ ਕਾਪੀ ਕਰੋ। ਤੁਹਾਡੀ ਆਈਡੀ, soundcloud.com/ਤੁਹਾਡੀ ਆਈਡੀ - ਯਾਦ ਰੱਖੋ ਕਿ ਇਸ ਕਾਰਜ ਨਾਲ ਡਾਟਾ ਖਪਤ ਹੋ ਸਕਦਾ ਹੈ। -\n -\nਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ\? + ਯਾਦ ਰੱਖੋ ਕਿ ਇਸ ਕਾਰਜ ਨਾਲ ਡਾਟਾ ਖਪਤ ਹੋ ਸਕਦਾ ਹੈ।\n\nਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਪਲੇਅਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ ਤਾਲ ਪਿੱਚ ਅਲਹਿਦਾ ਕਰੋ (ਵਿਗਾੜ ਪੈ ਸਕਦਾ ਹੈ) ਕੀ ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੀ ਇੰਪੋਰਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ\? ਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ - ਨਿਊਪਾਈਪ ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਹੁਤ ਗੰਭੀਰਤਾ ਨਾਲ ਲੈਂਦਾ ਹੈ। ਇਸ ਲਈ ਐਪ ਤੁਹਾਡੀ ਸਹਿਮਤੀ ਤੋਂ ਬਿਨਾਂ ਕੋਈ ਵੀ ਡਾਟਾ ਇੱਕਠਾ ਨਹੀਂ ਕਰਦਾ। -\nਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਦੀ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਕਰੈਸ਼ ਰਿਪੋਰਟ ਭੇਜਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਡਾਟਾ ਭੇਜਿਆ ਜਾਂ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। + ਨਿਊਪਾਈਪ ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਹੁਤ ਗੰਭੀਰਤਾ ਨਾਲ ਲੈਂਦਾ ਹੈ। ਇਸ ਲਈ ਐਪ ਤੁਹਾਡੀ ਸਹਿਮਤੀ ਤੋਂ ਬਿਨਾਂ ਕੋਈ ਵੀ ਡਾਟਾ ਇੱਕਠਾ ਨਹੀਂ ਕਰਦਾ।\nਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਦੀ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਕਰੈਸ਼ ਰਿਪੋਰਟ ਭੇਜਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਡਾਟਾ ਭੇਜਿਆ ਜਾਂ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਪੜ੍ਹੋ - ਯੂਰਪੀਅਨ ਜਨਰਲ ਡੇਟਾ ਪ੍ਰੋਟੈਕਸ਼ਨ ਰੈਗੂਲੇਸ਼ਨ (ਜੀਡੀਪੀਆਰ) ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਤੁਹਾਡਾ ਧਿਆਨ ਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵੱਲ ਖਿੱਚਦੇ ਹਾਂ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ। -\nਸਾਨੂੰ ਨੁਕਸ ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਹੋਵੇਗਾ। + ਯੂਰਪੀਅਨ ਜਨਰਲ ਡੇਟਾ ਪ੍ਰੋਟੈਕਸ਼ਨ ਰੈਗੂਲੇਸ਼ਨ (ਜੀਡੀਪੀਆਰ) ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਤੁਹਾਡਾ ਧਿਆਨ ਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵੱਲ ਖਿੱਚਦੇ ਹਾਂ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ।\nਸਾਨੂੰ ਨੁਕਸ ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਹੋਵੇਗਾ। ਸਵੀਕਾਰ ਕਰੋ ਅਸਵੀਕਾਰ ਕੋਈ ਸੀਮਾ ਨਹੀਂ @@ -512,8 +494,7 @@ %d ਸਕਿੰਟ ਹਾਂ, ਅਤੇ ਅੱਧ-ਪਚੱਧੀਆਂ ਵੇਖੀਆਂ ਹੋਈਆਂ ਵੀ - ਪਲੇਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ, ਪਹਿਲਾਂ ਚਾਹੇ ਬਾਅਦ ਵਿੱਚ ਵੇਖੇ ਜਾ ਚੁੱਕੇ ਵੀਡੀਓ ਹਟਾ ਦਿੱਤੇ ਜਾਣਗੇ। -\nਕੀ ਵਾਕਿਆ ਹੀ ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਵਾਪਸ ਨਹੀਂ ਮੋੜਿਆ ਜਾ ਸਕਣਾ! + ਪਲੇਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ ਪਹਿਲਾਂ ਤੇ ਬਾਅਦ ਵਿੱਚ ਵੇਖੇ ਜਾ ਚੁੱਕੇ ਵੀਡੀਓ ਹਟਾ ਦਿੱਤੇ ਜਾਣਗੇ। \nਕੀ ਵਾਕਿਆ ਹੀ ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਵਾਪਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਣਾ! ਵੇਖੇ ਹੋਏ ਵੀਡੀਓ ਹਟਾ ਦੇਈਏ\? ਵੇਖੇ ਹੋਏ ਨੂੰ ਹਟਾਓ ਸਿਸਟਮ ਡਿਫ਼ਾਲਟ @@ -554,7 +535,7 @@ ਕੋਈ ਸਰੋਤਾ ਨਹੀਂ ਸੁਣ ਰਿਹਾ ਕੋਈ ਦਰਸ਼ਕ ਨਹੀਂ ਵੇਖ ਰਿਹਾ ਵੇਰਵਾ - ਸਬੰਧਤ ਨਗ + ਸਬੰਧਤ ਆਈਟਮਾਂ ਟਿੱਪਣੀਆਂ ਗਿਟਹੱਬ \'ਤੇ ਜਾ ਕੇ ਇਤਲਾਹ ਦਿਓ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਤੇ ਵਿਖਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ @@ -832,4 +813,22 @@ ਐਂਟਰੀ ਮਿਟਾਓ ਖ਼ਾਤਾ ਬੰਦ ਕੀਤਾ ਗਿਆ\n\n%1$s ਇਹ ਕਾਰਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ: %2$s ਐਂਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਗਈ + ਪੌਪਅੱਪ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤੇ Android ਸੈਟਿੰਗ ਮੀਨੂ ਵਿੱਚ %1$s ਚੁਣੋ ਅਤੇ %2$s ਨੂੰ ਇਨੇਬਲ ਕਰੋ। + \"ਹੋਰ ਐਪਾਂ ਉੱਤੇ ਡਿਸਪਲੇ ਦੀ ਆਗਿਆ ਦਿਓ\" + %sਹਜ਼ਾਰ + %sਮਿਲੀਅਨ + %sਅਰਬ + SoundCloud ਟੌਪ 50 ਪੰਨਾ ਹਟਾ ਦਿੱਤਾ ਗਿਆ + SoundCloud ਨੇ ਮੂਲ ਟੌਪ 50 ਚਾਰਟਾਂ ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ। ਸੰਬੰਧਿਤ ਟੈਬ ਨੂੰ ਤੁਹਾਡੇ ਮੁੱਖ ਪੰਨੇ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ। + YouTube ਸੰਯੁਕਤ ਰੁਝਾਨ ਹਟਾਇਆ ਗਿਆ + YouTube ਨੇ 21 ਜੁਲਾਈ 2025 ਤੋਂ ਸੰਯੁਕਤ \"ਰੁਝਾਨ ਵਿੱਚ\" ਪੰਨੇ ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ। NewPipe ਨੇ ਡਿਫ਼ਾਲਟ \"ਰੁਝਾਨ ਵਿੱਚ\" ਪੰਨੇ ਨੂੰ ਟ੍ਰੈਂਡਿੰਗ ਲਾਈਵਸਟ੍ਰੀਮਾਂ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਹੈ।\n\nਤੁਸੀਂ \"ਸੈਟਿੰਗਾਂ > ਸਮੱਗਰੀ > ਮੁੱਖ ਪੰਨੇ ਦੀ ਸਮੱਗਰੀ\" ਵਿੱਚ ਵੱਖ-ਵੱਖ ਟ੍ਰੈਂਡਿੰਗ ਪੰਨਿਆਂ ਨੂੰ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ। + ਗੇਮਿੰਗ ਟ੍ਰੈਂਡਸ + ਟ੍ਰੈਂਡਿੰਗ ਪੌਡਕਾਸਟ + ਟਰੈਂਡਿੰਗ ਫ਼ਿਲਮਾਂ ਅਤੇ ਸ਼ੋਅ + ਟਰੈਂਡਿੰਗ ਸੰਗੀਤ + ਪਲੇਅ ਕਰਦੇ ਸਮੇਂ ਸਰਵਰ ਤੋਂ HTTP error 403 ਪ੍ਰਾਪਤ ਹੋਇਆ, ਜੋ ਸ਼ਾਇਦ ਸਟ੍ਰੀਮਿੰਗ URL ਦੀ ਮਿਆਦ ਪੁੱਗਣ ਜਾਂ IP ਦੀ ਪਾਬੰਦੀ ਕਾਰਨ ਹੋਈ ਹੈ + ਚਲਾਉਣ ਦੌਰਾਨ ਸਰਵਰ ਤੋਂ HTTP error %1$s ਪ੍ਰਾਪਤ ਹੋਇਆ + ਪਲੇਅ ਕਰਦੇ ਸਮੇਂ ਸਰਵਰ ਤੋਂ HTTP error 403 ਪ੍ਰਾਪਤ ਹੋਇਆ, ਜੋ ਸ਼ਾਇਦ IP ਬੈਨ ਜਾਂ ਸਟ੍ਰੀਮਿੰਗ URL ਡੀਔਬਫਸਕੇਸ਼ਨ ਸਮੱਸਿਆਵਾਂ ਕਾਰਨ ਹੋਈ ਹੈ + %1$s ਨੇ ਡੇਟਾ ਪ੍ਰਦਾਨ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰ ਦਿੱਤਾ, ਅਤੇ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਲੌਗਇਨ ਕਰਨ ਲਈ ਕਿਹਾ ਕਿ ਬੇਨਤੀਕਰਤਾ ਬੋਟ ਨਹੀਂ ਹੈ।\n\nਹੋ ਸਕਦਾ ਹੈ ਕਿ %1$s ਨੇ ਤੁਹਾਡੇ IP ਨੂੰ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਈ ਹੋਵੇ, ਤੁਸੀਂ ਕੁਝ ਸਮਾਂ ਉਡੀਕ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਕਿਸੇ ਵੱਖਰੇ IP \'ਤੇ ਸਵਿੱਚ ਕਰ ਸਕਦੇ ਹੋ (ਉਦਾਹਰਣ ਵਜੋਂ VPN ਨੂੰ ਚਾਲੂ/ਬੰਦ ਕਰਕੇ, ਜਾਂ WiFi ਤੋਂ ਮੋਬਾਈਲ ਡੇਟਾ \'ਤੇ ਸਵਿੱਚ ਕਰਕੇ)। + ਇਹ ਸਮੱਗਰੀ ਵਰਤਮਾਨ ਵਿੱਚ ਚੁਣੇ ਗਏ ਦੇਸ਼ ਦੀ ਸਮੱਗਰੀ ਲਈ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ।\n\n\"ਸੈਟਿੰਗਾਂ > ਸਮੱਗਰੀ > ਡਿਫ਼ਾਲਟ ਸਮੱਗਰੀ ਦੇਸ਼\" ਤੋਂ ਆਪਣੀ ਚੋਣ ਬਦਲੋ। diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index b41d9fff9..601623cb1 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -45,7 +45,7 @@ Náhľad avataru uploadera Lajky Dislajky - Začnite klepnutím na lupu. + Začnite ťuknutím na lupu. Obsah Zobraziť vekovo obmedzený obsah Naživo @@ -74,7 +74,7 @@ Čakajte prosím… Skopírované do schránky Priečinok na sťahovanie zadefinujte prosím neskôr v nastaveniach - Sťahované súbory + Stiahnuté súbory Stiahnuté Hlásenie o chybe Aplikácia/UP zlyhalo @@ -208,7 +208,7 @@ Neplatný ZIP súbor Upozornenie: Nemožno importovať všetky súbory. Toto prepíše vaše aktuálne nastavenie. - Trendy + Populárne Top 50 Nové a horúce Odstrániť @@ -473,7 +473,7 @@ %d dní Skupiny kanálov - Zdroj naposledy aktualizovaný: %s + Zdroj aktualizovaný: %s Nenačítané: %d Načítavanie zdroja… Spracovávanie zdroja… @@ -845,10 +845,10 @@ SoundCloud prestal používať pôvodnú Top 50. Daná stránka bola odstránená z hlavnej stránky. Odstránené kombinované trendy na YouTube YouTube ukončil prevádzku kombinovanej stránky s trendmi k 21. júlu 2025. NewPipe nahradil predvolenú stránku s trendmi stránkou s trendovými živými prenosmi.\n\nV nastaveniach „Nastavenia > Obsah > Obsah hlavnej stránky“ môžete vybrať aj iné stránky s trendmi. - Ttendy v hrách - Trendové podcasty - Trendové filmy a seriály - Trendová hudba + Populárne hry + Populárne podcasty + Populárne filmy a seriály + Populárna hudba %stis. %smil. %smld. diff --git a/app/src/main/res/values-ti/strings.xml b/app/src/main/res/values-ti/strings.xml index 50a20f494..ccce73524 100644 --- a/app/src/main/res/values-ti/strings.xml +++ b/app/src/main/res/values-ti/strings.xml @@ -170,4 +170,19 @@ ሰሩዞ ስም ቀያር ስሕተት + መፍለዪ + ህዝባዊ + ብሕትነት + ፍቓድታት + ፍቓድ ኣንብብ + ምድብ + ፍቓድ + እዋናዊታት + ኣቫታራት + ባነራት + ዘይተዘርዘረ + ብሕታዊ + ውሽጣዊ + ተኸታተልቲ + መርበብ-ቦታ ክፈት diff --git a/fastlane/metadata/android/bg/changelogs/63.txt b/fastlane/metadata/android/bg/changelogs/63.txt deleted file mode 100644 index be8865e6d..000000000 --- a/fastlane/metadata/android/bg/changelogs/63.txt +++ /dev/null @@ -1,8 +0,0 @@ -### Подобрения -- Импорт/ Експорт на настройки #1333 -- Редуциране на надхвърляне (подобрение на производителността) #1371 -- Малки подобрения в кода #1375 -- Добавяне на всичко за GDPR #1420 - -### Поправени -- Изтегляния: Поправен срив при зареждане на неприключени изтегляния от .giga файлове #1407 diff --git a/fastlane/metadata/android/cs/changelogs/1005.txt b/fastlane/metadata/android/cs/changelogs/1005.txt index 2059e43de..e8efaffad 100644 --- a/fastlane/metadata/android/cs/changelogs/1005.txt +++ b/fastlane/metadata/android/cs/changelogs/1005.txt @@ -1,17 +1,17 @@ -Novinky -• Přidána podpora pro Android Auto. -• Možnost nastavit skupiny kanálů jako záložky na hlavní obrazovce. -• [YouTube] Sdílení jako dočasný seznam skladeb. -• [SoundCloud] Záložka Oblíbené kanály +Nově +• Podpora pro Android Auto +• Možnost nastavit skupiny zdrojů jako záložky +• [YouTube] Sdílení jako dočasný playlist +• [SoundCloud] Záložka Oblíbené u kanálů Vylepšeno -• Lepší nápověda pro vyhledávací lištu -• Zobrazení data stažení v sekci Stažené soubory -• Použití jazyka Android 13 pro jednotlivé aplikace +• Lepší našeptávač vyhledávače +• Zobrazení data stažení ve Stažených +• Použití individuálního jazyka Opraveno • Oprava chybných barev textu v tmavém režimu -• [YouTube] Oprava seznamů skladeb, které nenačtou více než 100 položek +• [YouTube] Oprava nenačtení více než 100 položek v playlistech • [YouTube] Oprava chybějících doporučených videí -• Oprava pádů v zobrazení seznamu historie -• Oprava časových značek v odpovědích na komentáře +• Oprava pádů v Historii +• Oprava časů v odpovědích diff --git a/fastlane/metadata/android/de/changelogs/986.txt b/fastlane/metadata/android/de/changelogs/986.txt index 044365eb8..a1bc3217a 100644 --- a/fastlane/metadata/android/de/changelogs/986.txt +++ b/fastlane/metadata/android/de/changelogs/986.txt @@ -1,16 +1,15 @@ -Neu: +Neu • Benachrichtigungen für neue Streams • Nahtloser Übergang zwischen Hintergrund- und Videoplayer -• Änderung der Tonhöhe um Halbtöne +• Ändern der Tonhöhe um Halbtöne • Warteschlange des Hauptplayers an Wiedergabeliste anfügen -Verbessert: -• Geschwindigkeit/Tonhöhenschrittgröße speichern +Verbessert +• Speichern der Geschwindigkeit/Tonhöhenschrittweite • Anfängliche lange Videoplayer-Pufferung verringert • Player-UI für Android TV -• Löschbestätigung für alle heruntergeladenen Dateien +• Löschbestätigung aller heruntergeladenen Dateien -Behoben: -• Medienschaltfläche blendet die Steuerelemente des Players nicht aus -• Rücksetzung der Wiedergabe bei Änderung des Playertyps -• Drehung des Wiedergabelisten-Dialogs +Behoben +• Medienschaltfläche blendet Player-Steuerelemente nicht aus +• … diff --git a/fastlane/metadata/android/de/changelogs/987.txt b/fastlane/metadata/android/de/changelogs/987.txt index f7bc9bd80..a03048973 100644 --- a/fastlane/metadata/android/de/changelogs/987.txt +++ b/fastlane/metadata/android/de/changelogs/987.txt @@ -1,12 +1,12 @@ -Neu: -• Unterstützung anderer Übertragungsmethoden als progressives HTTP: schnellere Ladezeit der Wiedergabe, Korrekturen für PeerTube und SoundCloud, Wiedergabe von kürzlich beendeten YouTube-Livestreams -• Schaltfläche um entfernte Wiedergabeliste einer lokalen Wiedergabeliste hinzuzufügen -• Bildvorschau im Android 10+ Teilen-Dialog +Neu +• Unterstützung anderer Übertragungsmethoden als progressives HTTP: schnellere Ladezeit bei Wiedergabe, Fehlerbehebungen für PeerTube/SoundCloud, Wiedergabe kürzlich beendeter YouTube-Livestreams +• Schaltfläche, um Remote-Wiedergabeliste einer Lokalen hinzuzufügen +• Bildvorschau im Teilen-Dialog von Android 10+ -Verbessert: +Verbessert • Wiedergabewerte-Dialog -• Import/Export-Schaltflächen für Abonnements in das Drei-Punkte-Menü verschoben +• Import/Export-Schaltflächen für Abos in Drei-Punkte-Menü verschoben -Behoben: -• Entfernung von vollständig angesehenen Videos aus der Wiedergabeliste -• Freigabemenü-Design und „Zur Wiedergabeliste hinzufügen“-Eintrag +Behoben +• Entfernen vollständig angesehener Videos aus Wiedergabeliste +• … diff --git a/fastlane/metadata/android/de/changelogs/997.txt b/fastlane/metadata/android/de/changelogs/997.txt index f55e72b05..fbb5727d8 100644 --- a/fastlane/metadata/android/de/changelogs/997.txt +++ b/fastlane/metadata/android/de/changelogs/997.txt @@ -1,17 +1,16 @@ Neu • Antwort auf Kommentar • Wiedergabelisten umordnen -• Wiedergabelisten-Beschreibung und -Dauer +• Wiedergabelisten-Beschreibung/-Dauer • Rücksetzen der Einstellungen Verbessert -• [Android 13+] Wiederherstellen benutzerdef. Benachrichtigungsaktionen -• Zustimmung zur Update-Prüfung -• Während Pufferung Abspielen/Pause über Benachrichtigung -• Neuordnung einiger Einstellungen +• [Android 13+] Wiederherstellen benutzerd. Benachrichtigungsaktionen +• Zustimmung zur Updateprüfung +• Wiedergabe/Pause von Benachrichtigungen während Pufferung +• Neuanordnung einiger Einstellungen Behoben -• [YouTube] Kommentare wurden nicht geladen, weitere Korrekturen und Verbesserungen +• [YouTube] Kommentare wurden nicht geladen, weitere Fehlerbehebungen/Verbesserungen • Sicherheitslücke beim Einstellungsimport und Umstellung auf JSON -• Verschiedene Download-Korrekturen -• Suchtext gekürzt +• … diff --git a/fastlane/metadata/android/de/changelogs/999.txt b/fastlane/metadata/android/de/changelogs/999.txt index 51cf80d3e..059b4e081 100644 --- a/fastlane/metadata/android/de/changelogs/999.txt +++ b/fastlane/metadata/android/de/changelogs/999.txt @@ -4,9 +4,9 @@ Neu • [SoundCloud] Unterstützung für on.soundcloud.com-URLs hinzugefügt Verbessert -• [Bandcamp]Anzeige zusätzlicher Informationen im Radio-Kiosk +• [Bandcamp] Anzeige zusätzlicher Informationen im Radio-Kiosk Behoben -• [YouTube] Behebung gelegentlicher HTTP 403-Fehler am Anfang oder in der Mitte von Videos +• [YouTube] Behebung gelegentlicher HTTP-403-Fehler am Anfang oder in der Mitte von Videos • [YouTube] Extrahieren von Avataren und Banner aus mehr Kanal-Header-Typen • [Bandcamp] Verschiedene Fehler behoben und HTTPS wird stets verwendet diff --git a/fastlane/metadata/android/fr/changelogs/1000.txt b/fastlane/metadata/android/fr/changelogs/1000.txt index d4e706e2e..994b6061d 100644 --- a/fastlane/metadata/android/fr/changelogs/1000.txt +++ b/fastlane/metadata/android/fr/changelogs/1000.txt @@ -1,13 +1,13 @@ -Amélioré -• Rendre la description de la playlist cliquable pour afficher plus / moins de contenu -• [PeerTube] Gérer automatiquement les liens d'instance `subscribeto.me` -• Ne commencer à lire qu'un seul élément dans l'écran d'historique +Améliorations +• La description de la playlist est désormais cliquable pour afficher plus ou moins de contenu. +• [PeerTube] Gestion automatique des liens d'instance `subscribeto.me` +• Lecture d'un seul élément à la fois depuis l'historique -Corrigé -• Correction de la visibilité du bouton RSS -• Correction des plantages de l'aperçu de la barre de recherche -• Correction de la mise en playlist d'un élément sans vignette -• Correction de la sortie de la boîte de dialogue de téléchargement avant qu'elle n'apparaisse -• Correction de la fenêtre contextuelle de mise en file d'attente de la liste des éléments associés -• Correction de l'ordre dans la boîte de dialogue d'ajout à la playlist -• Ajuster la disposition des éléments de signet de la playlist +Corrections +• Amélioration de la visibilité du bouton RSS +• Correction des plantages liés à l'aperçu de la barre de progression +• Correction de l'ajout d'un élément sans vignette à la playlist +• Correction de la fermeture prématurée de la boîte de dialogue de téléchargement +• Correction de la fenêtre contextuelle d'ajout à la file d'attente de la liste des éléments associés +• Amélioration de l'ordre d'affichage dans la boîte de dialogue « Ajouter à la playlist » +• Ajustement de la mise en page des signets de playlist diff --git a/fastlane/metadata/android/fr/changelogs/1003.txt b/fastlane/metadata/android/fr/changelogs/1003.txt index 161ee7fbb..917714bae 100644 --- a/fastlane/metadata/android/fr/changelogs/1003.txt +++ b/fastlane/metadata/android/fr/changelogs/1003.txt @@ -1,6 +1,6 @@ -Ceci est une version de correction qui résout les erreurs de YouTube : -• [YouTube] Correction du non-chargement des informations des vidéos, correction des erreurs HTTP 403 lors de la lecture des vidéos et restauration de la lecture de certaines vidéos à âge restreint -• Correction des tailles de sous-titres qui ne changent pas -• Correction du téléchargement des informations deux fois lors de l'ouverture d'un stream -• [Soundcloud] Suppression des streams protégés par DRM non lisibles -• Traductions mises à jour +Cette m.à.j corrective résout les problèmes suivants sur YouTube : +• [YouTube] Correction du problème de chargement des informations vidéo, des erreurs HTTP 403 lors de la lecture et restauration de la lecture de certaines vidéos à contenu restreint. +• Correction du problème d'affichage de la taille des sous-titres. +• Correction du double téléchargement des informations lors de l'ouverture d'un flux. +• [SoundCloud] Suppression des flux protégés par DRM et illisibles. +• Traductions mises à jour. diff --git a/fastlane/metadata/android/fr/changelogs/1005.txt b/fastlane/metadata/android/fr/changelogs/1005.txt index b7e5ff49f..269ba2105 100644 --- a/fastlane/metadata/android/fr/changelogs/1005.txt +++ b/fastlane/metadata/android/fr/changelogs/1005.txt @@ -1,17 +1,17 @@ -Nouveau -• Prise en charge d'Android Auto +Nouveautés +• Ajout de la compatibilité avec Android Auto • Possibilité de définir des groupes de flux comme onglets de l'écran principal • [YouTube] Partager comme playlist temporaire -• [SoundCloud] Onglet « J'aime » +• [SoundCloud] Onglet « J'aime » sur les chaînes -Amélioration -• Amélioration des astuces de la barre de recherche +Améliorations +• Amélioration des suggestions de la barre de recherche • Affichage de la date de téléchargement dans Téléchargements • Utilisation de la langue par application d'Android 13 -Corrigé +Corrections • Correction des couleurs de texte défectueuses en mode sombre -• [YouTube] Correction des playlists ne chargeant pas plus de 100 éléments -• [YouTube] Correction des vidéos recommandées manquantes -• Correction des plantages dans la vue Historique +• [YouTube] Correction du chargement des playlists de plus de 100 éléments +• [YouTube] Correction de l'affichage des vidéos recommandées manquantes +• Correction des plantages dans l'historique • Correction des horodatages dans les réponses aux commentaires diff --git a/fastlane/metadata/android/fr/changelogs/65.txt b/fastlane/metadata/android/fr/changelogs/65.txt index bb664a3cb..c5d6d852a 100644 --- a/fastlane/metadata/android/fr/changelogs/65.txt +++ b/fastlane/metadata/android/fr/changelogs/65.txt @@ -11,7 +11,7 @@ - Ajout d'une option d'avance rapide pendant les silences dans le contrôle de la vitesse de lecture. Cela devrait être utile pour les livres audio et certains genres musicaux, et peut apporter une véritable expérience transparente (et peut casser une chanson avec beaucoup de silences =\\). - Refonte de la résolution des sources de médias pour permettre le passage des métadonnées avec les médias en interne dans le lecteur, plutôt que de le faire manuellement. Maintenant, nous avons une seule source de métadonnées et elles sont directement disponibles lorsque la lecture commence. - Correction des métadonnées des listes de lecture distantes qui ne sont pas mises à jour lorsque de nouvelles métadonnées sont disponibles lors de l'ouverture du fragment de liste de lecture. - - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. + - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. - Utilisation d'un nouvel extracteur avec une architecture remaniée pour le multiservice. ### Corrections diff --git a/fastlane/metadata/android/fr/changelogs/70.txt b/fastlane/metadata/android/fr/changelogs/70.txt index fccfccd2b..185f98f69 100644 --- a/fastlane/metadata/android/fr/changelogs/70.txt +++ b/fastlane/metadata/android/fr/changelogs/70.txt @@ -1,4 +1,4 @@ -ATTENTION : Cette version est probablement un festival de bugs, tout comme la dernière. Cependant, en raison de la fermeture complète depuis la 17. une version cassée est mieux que pas de version. N'est-ce pas ? ¯\_(ツ)_/¯ +ATTENTION : Cette version est probablement un festival de bugs, tout comme la dernière. Cependant, en raison de la fermeture complète depuis la 17. une version cassée est mieux que pas de version. N'est-ce pas ? ¯\_(ツ)_/¯ ### Améliorations * Les fichiers téléchargés peuvent maintenant être ouverts en un seul clic. diff --git a/fastlane/metadata/android/hi/changelogs/1000.txt b/fastlane/metadata/android/hi/changelogs/1000.txt index 67a819e0f..201a8a970 100644 --- a/fastlane/metadata/android/hi/changelogs/1000.txt +++ b/fastlane/metadata/android/hi/changelogs/1000.txt @@ -7,7 +7,3 @@ • RSS बटन दृश्यता को ठीक करें • सीकबार पूर्वावलोकन क्रैश को ठीक करें • थंबनेल-रहित आइटम को प्लेलिस्ट में डालना ठीक करें -• डाउनलोड डायलॉग के दिखाई देने से पहले बाहर निकलने को ठीक करें -• संबंधित आइटम सूची एनक्यू पॉपअप को ठीक करें -• प्लेलिस्ट में जोड़ें डायलॉग में क्रम को ठीक करें -• प्लेलिस्ट बुकमार्क आइटम लेआउट को समायोजित करें diff --git a/fastlane/metadata/android/hi/changelogs/1002.txt b/fastlane/metadata/android/hi/changelogs/1002.txt index d780f47a6..a0bc033fe 100644 --- a/fastlane/metadata/android/hi/changelogs/1002.txt +++ b/fastlane/metadata/android/hi/changelogs/1002.txt @@ -1,5 +1,4 @@ YouTube द्वारा कोई भी स्ट्रीम न चलाए जाने की समस्या को ठीक किया गया। यह रिलीज़ केवल सबसे ज़्यादा दबाव वाली त्रुटि को संबोधित करती है जो YouTube वीडियो विवरण को लोड होने से रोकती है। - हम जानते हैं कि अन्य समस्याएँ भी हैं, और हम जल्द ही उन्हें हल करने के लिए एक अलग रिलीज़ जारी करेंगे। diff --git a/fastlane/metadata/android/hi/changelogs/1004.txt b/fastlane/metadata/android/hi/changelogs/1004.txt index 071ab64e3..faf98d116 100644 --- a/fastlane/metadata/android/hi/changelogs/1004.txt +++ b/fastlane/metadata/android/hi/changelogs/1004.txt @@ -1 +1,3 @@ -फिक्स्ड YouTube कोई स्ट्रीम नहीं चला रहा है +इस रिलीज़ में YouTube सिर्फ़ 360p स्ट्रीम दे रहा था, इसे ठीक किया गया है। + +ध्यान दें कि इस वर्शन में इस्तेमाल किया गया सॉल्यूशन शायद टेम्पररी है, और लंबे समय में SABR वीडियो प्रोटोकॉल को लागू करने की ज़रूरत है, लेकिन TeamNewPipe के सदस्य अभी बिज़ी हैं, इसलिए किसी भी मदद की बहुत तारीफ़ होगी! https://github.com/TeamNewPipe/NewPipe/issues/12248 diff --git a/fastlane/metadata/android/hi/changelogs/1005.txt b/fastlane/metadata/android/hi/changelogs/1005.txt index 495894e76..4d72dc68f 100644 --- a/fastlane/metadata/android/hi/changelogs/1005.txt +++ b/fastlane/metadata/android/hi/changelogs/1005.txt @@ -1,17 +1,15 @@ नया -+ • Android Auto के लिए समर्थन जोड़ें -+ • फ़ीड समूहों को मुख्य स्क्रीन टैब के रूप में सेट करने की अनुमति दें -+ • [YouTube] अस्थायी प्लेलिस्ट के रूप में साझा करें -+ • [SoundCloud] "पसंद" चैनल टैब जोङी गई +• Android Auto के लिए समर्थन जोड़ें +• फ़ीड समूहों को मुख्य स्क्रीन टैब के रूप में सेट करने की अनुमति दें +• [YouTube] अस्थायी प्लेलिस्ट के रूप में साझा करें +• [SoundCloud] "पसंद" चैनल टैब जोङी गई बेहतर किए -+ • खोज बार संकेत -+ • डाउनलोडस स्क्रीन में डाउनलोड की तारीख दिखाएं -+ • Android 13+ पर प्रति-ऐप भाषा का उपयोग करें +• खोज बार संकेत +• डाउनलोडस स्क्रीन में डाउनलोड की तारीख दिखाएं +• Android 13+ पर प्रति-ऐप भाषा का उपयोग करें फिक्स किए -+ • डार्क मोड में पाठ के रंग ठीक करें -+ • [YouTube] 100 से अधिक आइटम लोड नहीं करने वाली प्लेलिस्ट को ठीक करें -+ • [YouTube] अनुपलब्ध अनुशंसित वीडियो को ठीक करें -+ • इतिहास सूची दृश्य में क्रैश ठीक करें -+ • टिप्पणी के उत्तरों में टाइमस्टैम्प को ठीक करें +• डार्क मोड में पाठ के रंग ठीक करें +• [YouTube] 100 से अधिक आइटम लोड नहीं करने वाली प्लेलिस्ट को ठीक करें +• टिप्पणी के उत्तरों में टाइमस्टैम्प को ठीक करें diff --git a/fastlane/metadata/android/hi/changelogs/1006.txt b/fastlane/metadata/android/hi/changelogs/1006.txt new file mode 100644 index 000000000..f9656149b --- /dev/null +++ b/fastlane/metadata/android/hi/changelogs/1006.txt @@ -0,0 +1,15 @@ +# बेहतर किए +टाइमस्टैम्प पर क्लिक करते समय मौजूदा प्लेयर पर ही दिखाएं +जब हो सके तो पेंडिंग डाउनलोड मिशन को रिकवर करने की कोशिश करें +फ़ाइल डिलीट किए बिना डाउनलोड डिलीट करने का ऑप्शन जोड़ें +.soundcloud लिंक खोलने में सपोर्ट करें +कई छोटे सुधार और ऑप्टिमाइज़ेशन + +# ठीक किया गया +7 से कम Android वर्शन के लिए छोटे नंबर फ़ॉर्मेटिंग को ठीक किया गया +खाली नोटिफ़िकेशन को ठीक किया गया +SRT सबटाइटल फ़ाइलों के लिए ठीक किया गया +कई क्रैश ठीक किए गए + +# डेवलपमेंट +इंटरनल कोड मॉडर्नाइज़ेशन diff --git a/fastlane/metadata/android/hi/changelogs/65.txt b/fastlane/metadata/android/hi/changelogs/65.txt index d2c2b8c71..d870f8d03 100644 --- a/fastlane/metadata/android/hi/changelogs/65.txt +++ b/fastlane/metadata/android/hi/changelogs/65.txt @@ -1,26 +1,13 @@ ### सुधार -- बर्गरमेनू आइकन एनीमेशन को अक्षम करें #1486 -- डाउनलोड को पूर्ववत करें #1472 -- शेयर मेनू में डाउनलोड विकल्प #1498 -- लॉन्ग टैप मेनू में शेयर विकल्प जोड़ा गया #1454 -- बाहर निकलने पर मुख्य प्लेयर को छोटा करें #1354 -- लाइब्रेरी संस्करण अपडेट और डेटाबेस बैकअप फिक्स #1510 -- एक्सोप्लेयर 2.8.2 अपडेट #1392 -- तेज गति परिवर्तन के लिए विभिन्न चरण आकारों का समर्थन करने के लिए प्लेबैक गति नियंत्रण संवाद को फिर से तैयार किया गया। -- प्लेबैक गति नियंत्रण में मौन के दौरान तेजी से आगे बढ़ने के लिए एक टॉगल जोड़ा गया। यह ऑडियोबुक और कुछ संगीत शैलियों के लिए मददगार होना चाहिए, और एक सच्चा सहज अनुभव ला सकता है (और बहुत सारे मौन वाले गीत को तोड़ सकता है =\\)। -- मीडिया स्रोत रिज़ॉल्यूशन को फिर से तैयार किया गया ताकि प्लेयर में आंतरिक रूप से मीडिया के साथ मेटाडेटा को पास किया जा सके, बजाय मैन्युअल रूप से ऐसा करने के। अब हमारे पास मेटाडेटा का एक ही स्रोत है और प्लेबैक शुरू होने पर सीधे उपलब्ध है। -- जब प्लेलिस्ट का टुकड़ा खोला जाता है तो नया मेटाडेटा उपलब्ध होने पर रिमोट प्लेलिस्ट मेटाडेटा अपडेट नहीं होता है। -- विभिन्न UI फ़िक्सेस: #1383, बैकग्राउंड प्लेयर नोटिफिकेशन कंट्रोल अब हमेशा सफ़ेद रहता है, फ़्लिंगिंग के ज़रिए पॉपअप प्लेयर को बंद करना आसान है -- मल्टीसर्विस के लिए रीफ़ैक्टर्ड आर्किटेक्चर के साथ नए एक्सट्रैक्टर का उपयोग करें +- बर्गरमेनू आइकन एनिमेशन को डिसेबल करें #1486 +- डाउनलोड को अनडू करें #1472 +- शेयर मेनू में डाउनलोड ऑप्शन #1498 +- लॉन्ग टैप मेनू में शेयर ऑप्शन जोड़ा गया #1454 +- ExoPlayer 2.8.2 अपडेट #1392 +- कई UI फ़िक्स: #1383 -### फ़िक्सेस +### फ़िक्स -- फ़िक्स #1440 टूटी हुई वीडियो जानकारी लेआउट #1491 - व्यू हिस्ट्री फ़िक्स #1497 -- #1495, जैसे ही उपयोगकर्ता प्लेलिस्ट एक्सेस करता है मेटाडेटा (थंबनेल, शीर्षक और वीडियो काउंट) को अपडेट करके। -- #1475, जब उपयोगकर्ता डिटेल फ़्रैगमेंट पर बाहरी प्लेयर पर वीडियो शुरू करता है तो डेटाबेस में व्यू रजिस्टर करके। -- पॉपअप मोड के मामले में स्क्रीन टाइमआउट को ठीक करें। #1463 (फ़िक्स #640) -- मुख्य वीडियो प्लेयर फ़िक्स #1509 -- [#1412] प्लेयर गतिविधि के बैकग्राउंड में होने पर नया इंटेंट प्राप्त होने पर प्लेयर NPE का कारण बनने वाले रिपीट मोड को ठीक किया गया। -- पॉपअप के लिए प्लेयर को छोटा करने की सुविधा को ठीक किया गया, जब पॉपअप की अनुमति नहीं दी जाती है तो प्लेयर नष्ट नहीं होता है। +- #1495, जैसे ही यूज़र प्लेलिस्ट एक्सेस करता है, मेटाडेटा (थंबनेल, टाइटल और वीडियो काउंट) को अपडेट करके। diff --git a/fastlane/metadata/android/hi/changelogs/66.txt b/fastlane/metadata/android/hi/changelogs/66.txt index 30c20b0e8..e9ec1e3fa 100644 --- a/fastlane/metadata/android/hi/changelogs/66.txt +++ b/fastlane/metadata/android/hi/changelogs/66.txt @@ -1,33 +1,21 @@ -# Changelog of v0.13.7 +# v0.13.7 का चेंजलॉग -### Fixed -- Fix sort filter issues of v0.13.6 +### ठीक किया गया +- v0.13.6 के सॉर्ट फ़िल्टर की दिक्कतें ठीक की गईं -# Changelog of v0.13.6 +# v0.13.6 का चेंजलॉग -### Improvements +### सुधार -- Disable burgermenu icon animation #1486 -- undo delete of downloads #1472 -- Download option in share menu #1498 -- Added share option to long tap menu #1454 -- Minimize main player on exit #1354 -- Library version update and database backup fix #1510 -- ExoPlayer 2.8.2 Update #1392 - - Reworked the playback speed control dialog to support different step sizes for faster speed change. - - Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\\). - - Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts. - - Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened. - - Various UI fixes: #1383, background player notification controls now always white, easier to shutdown popup player through flinging -- Use new extractor with refactored architecture for multiservice +- बर्गरमेनू आइकन एनिमेशन डिसेबल करें #1486 +- डाउनलोड को अनडू डिलीट करें #1472 +- शेयर मेनू में डाउनलोड ऑप्शन #1498 +- लॉन्ग टैप मेनू में शेयर ऑप्शन जोड़ा गया #1454 +- ExoPlayer 2.8.2 अपडेट #1392 +कई UI फ़िक्स: #1383 -### Fixes +### फ़िक्स -- Fix #1440 Broken Video Info Layout #1491 -- View history fix #1497 - - #1495, by updating the metadata (thumbnail, title and video count) as soon as the user access the playlist. - - #1475, by registering a view in the database when the user starts a video on external player on detail fragment. -- Fix creen timeout in case of popup mode. #1463 (Fixed #640) -- Main video player fix #1509 - - [#1412] Fixed repeat mode causing player NPE when new intent is received while player activity is in background. - - Fixed minimizing player to popup does not destroy player when popup permission is not granted. +- फ़िक्स #1440 टूटा हुआ वीडियो इन्फ़ो लेआउट #1491 +- व्यू हिस्ट्री फ़िक्स #1497 +- मेन वीडियो प्लेयर फिक्स #1509। diff --git a/fastlane/metadata/android/hi/changelogs/68.txt b/fastlane/metadata/android/hi/changelogs/68.txt index 238b1e0b1..f0cc5bddb 100644 --- a/fastlane/metadata/android/hi/changelogs/68.txt +++ b/fastlane/metadata/android/hi/changelogs/68.txt @@ -1,31 +1,19 @@ -# changes of v0.14.1 +# v0.14.1 में बदलाव -### Fixed -- Fixed failed to decrypt video url #1659 -- Fixed description link not extract well #1657 +### ठीक किया गया +- वीडियो URL डिक्रिप्ट करने में फेल होना ठीक किया गया #1659 +- डिस्क्रिप्शन लिंक ठीक से एक्सट्रेक्ट नहीं हो रहा था, इसे ठीक किया गया #1657 -# changes of v0.14.0 +# v0.14.0 में बदलाव -### New -- New Drawer design #1461 -- New customizable front page #1461 +### नया +- नया ड्रॉअर डिज़ाइन #1461 +- नया कस्टमाइज़ेबल फ्रंट पेज #1461 -### Improvements -- Reworked Gesture controls #1604 -- New way to close the popup player #1597 +### सुधार +- पॉपअप प्लेयर बंद करने का नया तरीका #1597 -### Fixed -- Fix error when subscription count is not available. Closes #1649. - - Show "Subscriber count not available" in those cases -- Fix NPE when a YouTube playlist is empty -- Quick fix for the kiosks in SoundCloud -- Refactor and bugfix #1623 - - Fix Cyclic search result #1562 - - Fix Seek bar not statically lay outed - - Fix YT Premium video are not blocked correctly - - Fix Videos sometimes not loading (due to DASH parsing) - - Fix links in video description - - Show warning when someone tries to download to external sdcard - - fix nothing shown exception triggers report - - thumbnail not shown in background player for android 8.1 [see here](https://github.com/TeamNewPipe/NewPipe/issues/943) -- Fix registering of broadcast receiver. Closes #1641. +### ठीक किया गया +- जब YouTube प्लेलिस्ट खाली हो तो NPE को ठीक करें +- SoundCloud में कियोस्क के लिए क्विक फिक्स +- रीफैक्टर और बगफिक्स #1623। diff --git a/fastlane/metadata/android/hi/changelogs/69.txt b/fastlane/metadata/android/hi/changelogs/69.txt index c8262d1b0..8bdf96c8f 100644 --- a/fastlane/metadata/android/hi/changelogs/69.txt +++ b/fastlane/metadata/android/hi/changelogs/69.txt @@ -1,19 +1,15 @@ -### New -- Long-tap delete and share in subscriptions #1516 -- Tablet UI and grid list layout #1617 +### नया +- सब्सक्रिप्शन में लंबे समय तक टैप करके डिलीट और शेयर करें #1516 +- टैबलेट UI और ग्रिड लिस्ट लेआउट #1617 -### Improvements -- store and reload the last used aspect ratio #1748 -- Enable linear layout in Downloads activity with full video names #1771 -- Delete and share subscriptions directly from within the subscriptions tab #1516 -- Enqueuing now triggers video playing if the play queue has already ended #1783 -- Separate settings for volume and brightness gestures #1644 -- Add support for Localization #1792 +### सुधार +- वॉल्यूम और ब्राइटनेस जेस्चर के लिए अलग सेटिंग्स #1644 +- लोकलाइज़ेशन के लिए सपोर्ट जोड़ें #1792 -### Fixes -- Fix time parsing for . format, so NewPipe can be used in Finland -- Fix subscription count -- Add foreground service permission for API 28+ devices #1830 +### सुधार +- . फ़ॉर्मेट के लिए टाइम पार्सिंग ठीक करें, ताकि फ़िनलैंड में NewPipe का इस्तेमाल किया जा सके +- सब्सक्रिप्शन काउंट ठीक करें +- API 28+ डिवाइस के लिए फ़ोरग्राउंड सर्विस परमिशन जोड़ें #1830 -### Known Bugs -- Playback state can not be saved on Android P +### जाने-पहचाने बग +- Android P पर प्लेबैक स्टेट सेव नहीं किया जा सकता diff --git a/fastlane/metadata/android/hi/changelogs/70.txt b/fastlane/metadata/android/hi/changelogs/70.txt index ad87a4409..cfa334bdb 100644 --- a/fastlane/metadata/android/hi/changelogs/70.txt +++ b/fastlane/metadata/android/hi/changelogs/70.txt @@ -1,25 +1,11 @@ -ATTENTION: This version probably is a bugfest, just like the last one. However due to the full shutdown since the 17. a broken version is better then no version. Right? ¯\_(ツ)_/¯ +### सुधार +* डाउनलोड की गई फ़ाइलें अब एक क्लिक से खोली जा सकती हैं #1879 +* एंड्रॉयड 4.1 - 4.3 के लिए सपोर्ट हटा दिया गया #1884 +* पुराना प्लेयर हटाएँ #1884 +* मौजूदा प्ले क्यू से स्ट्रीम को दाईं ओर स्वाइप करके हटाएँ #1915 +* बहुत सारी डाउनलोड गड़बड़ियाँ ठीक करके सुधार किया गए -### Improvements -* downloaded files can now be opened with one click #1879 -* drop support for android 4.1 - 4.3 #1884 -* remove old player #1884 -* remove streams from current play queue by swiping them to the right #1915 -* remove auto queued stream when a new stream is enqueued manually #1878 -* Postprocessing for downloads and implement missing features #1759 by @kapodamy - * Post-processing infrastructure - * Proper error handling "infrastructure" (for downloader) - * Queue instead of multiple downloads - * Move serialized pending downloads (`.giga` files) to app data - * Implement max download retry - * Proper multi-thread download pausing - * Stop downloads when swicthing to mobile network (never works, see 2nd point) - * Save the thread count for next downloads - * A lot of incoherences fixed - -### Fixed -* Fix crash with default resolution set to best and limited mobile data resolution #1835 -* pop-up player crash fixed #1874 -* NPE when trying to open background player #1901 -* Fix for inserting new streams when auto queuing is enabled #1878 -* Fixed the decypering shuttown issue +### ठीक किया गया +* डिफ़ॉल्ट रिज़ॉल्यूशन को बेस्ट और लिमिटेड मोबाइल डेटा रिज़ॉल्यूशन पर सेट करने पर क्रैश को ठीक किया गया #1835 +* पॉप-अप प्लेयर क्रैश को ठीक किया गया #1874 +* बैकग्राउंड प्लेयर खोलने की कोशिश करते समय NPE #1901 diff --git a/fastlane/metadata/android/hi/changelogs/71.txt b/fastlane/metadata/android/hi/changelogs/71.txt index 5facfc05f..c9b9675b0 100644 --- a/fastlane/metadata/android/hi/changelogs/71.txt +++ b/fastlane/metadata/android/hi/changelogs/71.txt @@ -1,10 +1,7 @@ -### Improvements -* Add app update notification for GitHub build (#1608 by @krtkush) -* Various improvements to the downloader (#1944 by @kapodamy): - * add missing white icons and use hardcored way for change the icon colors - * check if the iterator is initialized (fixes #2031) - * allow retry downloads with "post-processing failed" error in the new muxer - * new MPEG-4 muxer fixing non-synchronous video and audio streams (#2039) +### सुधार +* GitHub बिल्ड के लिए ऐप अपडेट नोटिफ़िकेशन जोड़ें (#1608 @krtkush द्वारा) +* डाउनलोडर में कई सुधार #1944 +* नया MPEG-4 म्यूक्सर नॉन-सिंक्रोनस वीडियो और ऑडियो स्ट्रीम को ठीक करता है (#2039) -### Fixed -* YouTube live streams stop playing after a short time (#1996 by @yausername) +### फिकसड +* YouTube लाइव स्ट्रीम थोड़े समय बाद चलना बंद हो जाती हैं (#1996 @yausername द्वारा) diff --git a/fastlane/metadata/android/hi/changelogs/740.txt b/fastlane/metadata/android/hi/changelogs/740.txt index c795978a8..9380af1b0 100644 --- a/fastlane/metadata/android/hi/changelogs/740.txt +++ b/fastlane/metadata/android/hi/changelogs/740.txt @@ -1,23 +1,12 @@ -

Improvements

+

सुधार

    -
  • make links in comments clickable, increase text size
  • -
  • seek on clicking timestamp links in comments
  • -
  • show preferred tab based on recently selected state
  • -
  • add playlist to queue when long clicking on 'Background' in playlist window
  • -
  • search for shared text when it is not an URL
  • -
  • add "share at current time" button to the main video player
  • -
  • add close button to main player when video queue is finished
  • -
  • add "Play directly in Background" to longpress menu for video list items
  • -
  • improve English translations for Play/Enqueue commands
  • -
  • small performance improvements
  • -
  • remove unused files
  • -
  • update ExoPlayer to 2.9.6
  • -
  • add support for Invidious links
  • -
-

Fixed

+
  • कमेंट्स में लिंक को क्लिक करने लायक बनाएं, टेक्स्ट का साइज़ बढ़ाएं
  • +
  • कमेंट्स में टाइमस्टैम्प लिंक पर क्लिक करने पर खोजें
  • +
  • जब शेयर किया गया टेक्स्ट URL न हो तो उसे खोजें
  • +
  • मेन वीडियो प्लेयर में "अभी के समय शेयर करें" बटन जोड़ें
  • +
  • ExoPlayer को 2.9.6 पर अपडेट करना
  • +

    फिकसड

    +
      -
    • fixed scroll w/ comments and related streams disabled
    • -
    • fixed CheckForNewAppVersionTask being executed when it shouldn't
    • -
    • fixed youtube subscription import: ignore ones with invalid url and keep ones with empty title
    • -
    • fix invalid YouTube url: signature tag name is not always "signature" preventing streams from loading
    • +
    • गलत YouTube URL ठीक करें: सिग्नेचर टैग का नाम हमेशा "सिग्नेचर" नहीं होता, जिससे स्ट्रीम लोड नहीं हो पातीं
    diff --git a/fastlane/metadata/android/hi/changelogs/750.txt b/fastlane/metadata/android/hi/changelogs/750.txt index 39b77f7c3..13e965311 100644 --- a/fastlane/metadata/android/hi/changelogs/750.txt +++ b/fastlane/metadata/android/hi/changelogs/750.txt @@ -1,22 +1,13 @@ -New -Playback resume #2288 -• Resume streams where you stopped last time -Downloader Enhancements #2149 -• Use Storage Access Framework to store downloads on external SD-cards -• New mp4 muxer -• Optionally change the download directory before starting a download -• Respect metered networks +नया +प्लेबैक फिर से शुरू करें #2288 +• स्ट्रीम वहीं से फिर से शुरू करें जहाँ आपने पिछली बार रोका था +डाउनलोडर एन्हांसमेंट #2149 +• एक्सटर्नल SD-कार्ड पर डाउनलोड स्टोर करने के लिए स्टोरेज एक्सेस फ्रेमवर्क का इस्तेमाल करें +बेहतर +• एक्टिविटी लाइफसाइकल के दौरान (ऑटो) रोटेशन में बदलाव को हैंडल करें #2444 +• लॉन्ग-प्रेस मेनू को एक जैसा बनाएं #2368 -Improved -• Removed gema strings #2295 -• Handle (auto)rotation changes during activity lifecycle #2444 -• Make long-press menus consistent #2368 - -Fixed -• Fixed selected subtitle track name not being shown #2394 -• Do not crash when check for app update fails (GitHub version) #2423 -• Fixed downloads stuck at 99.9% #2440 -• Update play queue metadata #2453 -• [SoundCloud] Fixed crash when loading playlists TeamNewPipe/NewPipeExtractor#170 -• [YouTube] Fixed duration can not be paresd TeamNewPipe/NewPipeExtractor#177 +ठीक किया गया +• चुने हुए सबटाइटल ट्रैक का नाम नहीं दिखना ठीक किया गया #2394 +• 99.9% पर अटके डाउनलोड को ठीक किया गया #2440 diff --git a/fastlane/metadata/android/hi/changelogs/760.txt b/fastlane/metadata/android/hi/changelogs/760.txt index 6e000f6d9..c4b6d951f 100644 --- a/fastlane/metadata/android/hi/changelogs/760.txt +++ b/fastlane/metadata/android/hi/changelogs/760.txt @@ -1,43 +1,13 @@ -Changes in 0.17.1 +0.17.1 में बदलाव -New -• Thai localization +नया +• थाई लोकलाइज़ेशन +बेहतर +• प्लेलिस्ट के लिए लॉन्ग-प्रेस मेनू में फिर से 'यहाँ से प्ले करना शुरू करें' एक्शन जोड़ें #2518 +• SAF / लेगेसी फ़ाइल पिकर के लिए स्विच जोड़ें #2521 -Improved -• Add start playing here action in long-press menus for playlists again #2518 -• Add switch for SAF / legacy file picker #2521 - -Fixed -• Fix disappearing buttons in downloads view when switching apps #2487 -• Fix playback position is stored although watch history is disabled -• Fix reduced performance caused by playback position in list views #2517 -• [Extractor] Fix ReCaptchaActivity #2527, TeamNewPipe/NewPipeExtractor#186 -• [Extractor] [YouTube] Fix casual search error when playlists are in results TeamNewPipe/NewPipeExtractor#185 - - - -Changes in 0.17.0 - -New -Playback resume #2288 -• Resume streams where you stopped last time -Downloader Enhancements #2149 -• Use Storage Access Framework to store downloads on external SD-cards -• New mp4 muxer -• Optionally change the download directory before starting a download -• Respect metered networks - - -Improved -• Removed gema strings #2295 -• Handle (auto)rotation changes during activity lifecycle #2444 -• Make long-press menus consistent #2368 - -Fixed -• Fixed selected subtitle track name not being shown #2394 -• Do not crash when check for app update fails (GitHub version) #2423 -• Fixed downloads stuck at 99.9% #2440 -• Update play queue metadata #2453 -• [SoundCloud] Fixed crash when loading playlists TeamNewPipe/NewPipeExtractor#170 -• [YouTube] Fixed duration can not be paresd TeamNewPipe/NewPipeExtractor#177 +ठीक किया गया +• ऐप बदलते समय डाउनलोड व्यू में बटन गायब होने की समस्या ठीक करें #2487 +• लिस्ट व्यू में प्लेबैक पोज़िशन की वजह से परफॉर्मेंस में आई कमी को ठीक करें #2517 +• [एक्सट्रैक्टर] [YouTube] जब प्लेलिस्ट रिज़ल्ट में हों तो कैज़ुअल सर्च एरर को ठीक करें TeamNewPipe/NewPipeExtractor#185 diff --git a/fastlane/metadata/android/hi/changelogs/790.txt b/fastlane/metadata/android/hi/changelogs/790.txt index ec77b2acb..3b322f0af 100644 --- a/fastlane/metadata/android/hi/changelogs/790.txt +++ b/fastlane/metadata/android/hi/changelogs/790.txt @@ -1,14 +1,9 @@ -Improved -• Add more titles to improve accessibility for blind people #2655 -• Make language of download folder setting more consistent and less ambiguous #2637 +ठीक किया गया +• चेक करें कि ब्लॉक में आखिरी बाइट डाउनलोड हुआ है या नहीं #2646 +• वीडियो डिटेल फ़्रैगमेंट में स्क्रॉलिंग को ठीक किया गया #2672 +• [साउंडक्लाउड] client_id एक्सट्रैक्शन को ठीक करें #2745 -Fixed -• Check if last byte in the block is downloaded #2646 -• Fixed scrolling in video detail fragment #2672 -• Remove double search clear box animations to one #2695 -• [SoundCloud] Fix client_id extraction #2745 - -Development -• Add missing dependencies inherited from NewPipeExtractor into NewPipe #2535 -• Migrate to AndroidX #2685 -• Update to ExoPlayer 2.10.6 #2697, #2736 +डेवलपमेंट +• NewPipeExtractor से मिली गायब डिपेंडेंसी को NewPipe में जोड़ें #2535 +• AndroidX पर माइग्रेट करें #2685 +• ExoPlayer 2.10.6 पर अपडेट करें #2697, #2736 diff --git a/fastlane/metadata/android/hi/changelogs/800.txt b/fastlane/metadata/android/hi/changelogs/800.txt index 332b5c994..4df518086 100644 --- a/fastlane/metadata/android/hi/changelogs/800.txt +++ b/fastlane/metadata/android/hi/changelogs/800.txt @@ -1,27 +1,10 @@ -New -• PeerTube support without P2P (#2201) [Beta]: - ◦ Watch and download videos from PeerTube instances - ◦ Add instances in the settings to access the complete PeerTube world - ◦ There might be problems with SSL handshakes on Android 4.4 and 7.1 when accessing certain instances resulting in a network error. +नया +• P2P के बिना PeerTube सपोर्ट (#2201) [बीटा]: -• Downloader (#2679): - ◦ Calculate download ETA - ◦ Download opus (webm files) as ogg - ◦ Recover expired download links to resume downloads after a long pause +◦ लंबे समय तक रुकने के बाद डाउनलोड फिर से शुरू करने के लिए एक्सपायर हो चुके डाउनलोड लिंक रिकवर करें -Improved -• Make the KioskFragment aware of changes in the preferred content country and improve performance of all main tabs #2742 -• Use new Localization and Downloader implementations from extractor #2713 -• Make "Default kiosk" string translatable -• Black navigation bar for black theme #2569 +बेहतर +• KioskFragment को पसंदीदा कंटेंट देश में होने वाले बदलावों के बारे में बताएं और सभी मेन टैब की परफॉर्मेंस को बेहतर बनाएं #2742 -Fixed -• Fixed a bug that could not move the popup player if another finger was placed while moving the popup player #2772 -• Allow playlists missing an uploader and fix crashes related to this problem #2724, TeamNewPipe/NewPipeExtractor#219 -• Enabling TLS1.1/1.2 on Android 4.4 devices (API 19/KitKat) to fix TLS handshake with MediaCCC and some PeerTube instances #2792 -• [SoundCloud] Fixed client_id extraction TeamNewPipe/NewPipeExtractor#217 -• [SoundCloud] Fix audio stream extraction - -Development -• Update ExoPlayer to 2.10.8 #2791, #2816 -• Update Gradle to 3.5.1 and add Kotlin support #2714 +फिक्स किया गया +• Android 4.4 डिवाइस (API 19/KitKat) पर TLS1.1/1.2 इनेबल करें diff --git a/fastlane/metadata/android/hi/changelogs/810.txt b/fastlane/metadata/android/hi/changelogs/810.txt index c75855fd1..b3d4c7bd6 100644 --- a/fastlane/metadata/android/hi/changelogs/810.txt +++ b/fastlane/metadata/android/hi/changelogs/810.txt @@ -1,19 +1,11 @@ -New -• Show video thumbnail on the lock screen when playing in the background +नया +• बैकग्राउंड में चलने पर लॉक स्क्रीन पर वीडियो थंमनेल दिखाएं -Improved -• Add local playlist to queue when long pressing on background / popup button -• Make main page tabs scrollable and hide when there is only a single tab -• Limit amount of notification thumbnail updates in background player -• Add dummy thumbnail for empty local playlists -• Use *.opus file extension instead of *.webm and show "opus" in format label instead of "WebM Opus" in the download dropdown -• Add button to delete downloaded files or download history in "Downloads" -• [YouTube] Add support to /c/shortened_url channel links +बेहतर +• बैकग्राउंड / पॉपअप बटन पर देर तक दबाने पर लोकल प्लेलिस्ट को क्यू में जोड़ें +• [YouTube] /c/shortened_url चैनल लिंक के लिए सपोर्ट जोड़ें -Fixed -• Fixed multiple issues when sharing a video to NewPipe and downloading its streams directly -• Fixed player access out of its creation thread -• Fixed search result paging -• [YouTube] Fixed switching on null causing NPE -• [YouTube] Fixed viewing comments when opening an invidio.us url -• [SoundCloud] Updated client_id +फिकसड +• NewPipe पर वीडियो शेयर करते समय और सीधे उसकी स्ट्रीम डाउनलोड करते समय कई दिक्कतें ठीक की गईं +• सर्च रिज़ल्ट पेजिंग ठीक की गई +• [SoundCloud] client_id अपडेट किया गया diff --git a/fastlane/metadata/android/hi/changelogs/840.txt b/fastlane/metadata/android/hi/changelogs/840.txt index 95dc80844..5be8a8660 100644 --- a/fastlane/metadata/android/hi/changelogs/840.txt +++ b/fastlane/metadata/android/hi/changelogs/840.txt @@ -1,22 +1,10 @@ -New -• Added language selector to change the app language -• Added send to Kodi button to player collapsible menu -• Added ability to copy comments on long press +नया +• ऐप की भाषा बदलने के लिए भाशा सिलेक्टर जोड़ा गया +• प्लेयर कोलैप्सिबल मेनू में कोडी को भेजें बटन जोड़ा गया +• देर तक दबाने पर कमेंट्स कॉपी करने की सुविधा जोड़ी गई -Improved -• Fix ReCaptcha activity and correctly save obtained cookies -• Removed dot-menu in favour of drawer and hide history button when watch history is not enabled in settings -• Ask for display over other apps permission in settings correctly on Android 6 and later -• Rename local playlist by long-clicking in BookmarkFragment -• Various PeerTube improvements -• Improved several English source strings +बेहतर +• ReCaptcha एक्टिविटी को ठीक किया गया और मिली हुई कुकीज़ को सही ढंग से सेव किया गया -Fixed -• Fixed player starting again although it is paused when option "minimize on app switch" enabled and NewPipe is minimized -• Fix initial brightness value for gesture -• Fixed .srt subtitle downloads containing not all line breaks -• Fixed download to SD card failing because some Android 5 devices are not CTF compliant -• Fixed downloading on Android KitKat -• Fixed corrupt video .mp4 file being recognized as audio file -• Fixed multiple localization problems, including wrong Chinese language codes -• [YouTube] Timestamps in description are clickable again +ठीक किया गया +• Android KitKat पर डाउनलोडिंग ठीक की गई diff --git a/fastlane/metadata/android/hi/changelogs/930.txt b/fastlane/metadata/android/hi/changelogs/930.txt index b23b01ea8..457d1745b 100644 --- a/fastlane/metadata/android/hi/changelogs/930.txt +++ b/fastlane/metadata/android/hi/changelogs/930.txt @@ -1,19 +1,13 @@ -New -• Search on YouTube Music -• Basic Android TV support +नया +• YouTube Music पर सर्च करें +• बेसिक Android TV सपोर्ट -Improved -• Added the ability to remove all watched videos from a local playlist -• Show message when content isn't supported yet instead of crashing -• Improved popup player resize with pinch gestures -• Enqueue streams on long press on background and popup buttons in channel -• Improved size handling of the drawer header title +बेहतर +• लोकल प्लेलिस्ट से सभी देखे गए वीडियो हटाने की सुविधा जोड़ी गई +• जब कंटेंट अभी सपोर्टेड न हो, तो क्रैश होने के बजाय मैसेज दिखाएं -Fixed -• Fixed age restricted content setting not working -• Fixed certain kinds of reCAPTCHAs -• Fixed crash when opening bookmarks while playlist is `null` -• Fixed detection of network related exceptions -• Fixed visibility of group sort button in the subscriptions fragment +फिकसड +• उम्र पर रोक वाली कंटेंट सेटिंग काम नहीं कर रही थी, इसे ठीक किया गया +• कुछ तरह के reCAPTCHA को ठीक किया गया -and more +और भी बहुत कुछ diff --git a/fastlane/metadata/android/hi/changelogs/940.txt b/fastlane/metadata/android/hi/changelogs/940.txt index f9530bc68..6f9253a2f 100644 --- a/fastlane/metadata/android/hi/changelogs/940.txt +++ b/fastlane/metadata/android/hi/changelogs/940.txt @@ -1,16 +1,14 @@ -New -• Add support for SoundCloud comments -• Add YouTube restricted mode setting -• Show PeerTube parent channel details +नया +• SoundCloud कमेंट्स के लिए सपोर्ट जोड़ें +• YouTube रेस्ट्रिक्टेड मोड सेटिंग जोड़ें +• PeerTube पेरेंट चैनल की डिटेल्स दिखाएँ -Improved -• Show Kore button only for supported services -• Block player gestures that begin at the NavigationBar or StatusBar -• Change retry & subscribe buttons background color based on service color +बेहतर +• सिर्फ़ सपोर्टेड सर्विसेज़ के लिए Kore बटन दिखाएँ -Fixed -• Fix download dialog freeze -• Open in browser button now really opens in browser -• Fix crash on opening videos and "Could not play this stream" +फिक्स किया गया +• डाउनलोड डायलॉग फ़्रीज़ होने की समस्या को ठीक करें +• ब्राउज़र में खोलें बटन अब सच में ब्राउज़र में खुलता है +• वीडियो खोलने पर क्रैश और "यह स्ट्रीम नहीं चला सका" -and more +और भी बहुत कुछ diff --git a/fastlane/metadata/android/hi/changelogs/951.txt b/fastlane/metadata/android/hi/changelogs/951.txt index e933e5cbd..ffc1f8891 100644 --- a/fastlane/metadata/android/hi/changelogs/951.txt +++ b/fastlane/metadata/android/hi/changelogs/951.txt @@ -1,17 +1,13 @@ -New -• Add search for subscription picker in the feed group dialog -• Add filter to the feed group dialog to show only ungrouped subscriptions -• Add playlist tab to main page -• Fast forward/rewind in background/pop-up player queue -• Display search suggestion: did you mean & showing result for +नया +• फ़ीड ग्रुप डायलॉग में सब्सक्रिप्शन पिकर के लिए सर्च जोड़ें +• फ़ीड ग्रुप डायलॉग में फ़िल्टर जोड़ें ताकि सिर्फ़ अनग्रुप्ड सब्सक्रिप्शन दिखें +• मेन पेज पर प्लेलिस्ट टैब जोड़ें -Improved -• Drop writing application metadata in muxed files -• Do not remove failed streams from the queue -• Update status bar color to match toolbar color +बेहतर +• म्यूक्स की गई फ़ाइलों में एप्लीकेशन मेटाडेटा लिखना बंद करें +• फ़ेल स्ट्रीम को क्यू से न हटाएं -Fixed -• Fixed audio/video desync caused by floating point cumulative errors -• [PeerTube] Handle deleted comments +फिकसड +• फ़्लोटिंग पॉइंट क्यूमुलेटिव एरर के कारण होने वाले ऑडियो/वीडियो डीसिंक को ठीक किया गया -and more +और भी बहुत कुछ diff --git a/fastlane/metadata/android/hi/changelogs/995.txt b/fastlane/metadata/android/hi/changelogs/995.txt index 63ed335a4..7bd7341c2 100644 --- a/fastlane/metadata/android/hi/changelogs/995.txt +++ b/fastlane/metadata/android/hi/changelogs/995.txt @@ -1,16 +1,14 @@ नया • चैनल टैब्स का समर्थन करें • छवि गुणवत्ता का चयन करें -• सभी छवियों के यूआरएल प्राप्त करें सुधार किए • प्लेयर इंटरफ़ेस की पहुंच • केवल-वीडियो डाउनलोड के लिए बेहतर ऑडियो चयन -• साझा प्लेलिस्ट सामग्री में प्लेलिस्ट और वीडियो नाम शामिल करने का विकल्प ठीक किए • [यूट्यूब] लाइक पाने की संख्या ठीक करें • पॉपअप और क्रैश पर प्रतिक्रिया नहीं देने वाले प्लेयर को ठीक करें • भाषा चयनकर्ता में गलत भाषाओं का चयन ठीक करें • प्लेयर ऑडियो फोकस म्यूट का सम्मान नहीं कर रहा था -• प्लेलिस्ट में आइटम जोड़ना कभी-कभी काम नहीं कर रहा था +• प्लेलिस्ट में आइटम ना जुड़ना ठीक किया diff --git a/fastlane/metadata/android/hi/changelogs/997.txt b/fastlane/metadata/android/hi/changelogs/997.txt index 652935884..b47816231 100644 --- a/fastlane/metadata/android/hi/changelogs/997.txt +++ b/fastlane/metadata/android/hi/changelogs/997.txt @@ -6,12 +6,9 @@ सुधार • [एंड्रॉइड 13+] कस्टम अधिसूचना क्रियाएं पुनर्स्थापित करें -• अपडेटस की जांच के लिए सहमति का अनुरोध करें -• बफ़रिंग के दौरान नोटीफिकेशन से चलाने/रोकने की अनुमति दें • कुछ सेटिंग्स पुनः व्यवस्थित करें ठीक किए • [यूट्यूब] लोड न होने वाली टिप्पणियों को ठीक करें, साथ ही अन्य फिक्स और सुधार भी -• सेटिंग्स आयात में भेद्यता को हल करें और JSON पर स्विच करें • विभिन्न डाउनलोड सुधार • खोज पाठ को ट्रिम करें diff --git a/fastlane/metadata/android/pa/changelogs/1000.txt b/fastlane/metadata/android/pa/changelogs/1000.txt index 90d70c151..ddc239f32 100644 --- a/fastlane/metadata/android/pa/changelogs/1000.txt +++ b/fastlane/metadata/android/pa/changelogs/1000.txt @@ -3,11 +3,9 @@ • [PeerTube] `subscribeto.me` ਇੰਸਟੈਂਸ ਲਿੰਕਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕ ਹੀ ਹੈਂਡਲ ਕਰੋ • ਇਤਿਹਾਸ ਸਕਰੀਨ ਵਿੱਚ ਸਿਰਫ਼ ਸਿੰਗਲ ਆਈਟਮ ਨੂੰ ਚਲਾਉਣਾ ਸ਼ੁਰੂ ਕਰੋ -ਠੀਕ ਕਰਿਆ +ਫਿਕਸਡ • RSS ਬਟਨ ਦੀ ਦਿੱਖ ਨੂੰ ਠੀਕ ਕਰੋ • ਸੀਕਬਾਰ ਪੂਰਵਦਰਸ਼ਨ ਕ੍ਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ • ਥੰਮਨੇਲ-ਰਹਿਤ ਆਈਟਮ ਦੀ ਪਲੇਲਿਸਟਿੰਗ ਨੂੰ ਠੀਕ ਕਰੋ -• ਡਾਉਨਲੋਡ ਡਾਇਲਾਗ ਦੇ ਦਿਸਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਬਾਹਰ ਕੱਢਣਾ ਠੀਕ ਕਰੋ -• ਸੰਬੰਧਿਤ ਆਈਟਮਾਂ ਦੀ ਸੂਚੀ ਐਨਕਿਊ ਪੌਪਅੱਪ ਨੂੰ ਠੀਕ ਕਰੋ -• ਪਲੇਲਿਸਟ ਡਾਇਲਾਗ ਵਿੱਚ ਜੋੜਨ ਦਾ ਕ੍ਰਮ ਠੀਕ ਕਰੋ -• ਪਲੇਲਿਸਟ ਬੁੱਕਮਾਰਕ ਆਈਟਮ ਖਾਕਾ ਵਿਵਸਥਿਤ ਕਰੋ +• ਸੰਬੰਧਿਤ ਆਈਟਮਾਂ ਦੀ ਸੂਚੀ ਐਨਕਿਊ ਪੌਪ-ਅਪ ਨੂੰ ਠੀਕ ਕਰੋ +• ਅਤੇ ਹੋਰ ਪਲੇਲਿਸਟ ਤੇ ਡਾਊਨਲੋਡ ਸਬੰਧਤ ਫਿਕਸ diff --git a/fastlane/metadata/android/pa/changelogs/1004.txt b/fastlane/metadata/android/pa/changelogs/1004.txt index fe62a1330..6d3d23b2e 100644 --- a/fastlane/metadata/android/pa/changelogs/1004.txt +++ b/fastlane/metadata/android/pa/changelogs/1004.txt @@ -1 +1,3 @@ -ਸਥਿਰ YouTube ਕੋਈ ਸਟ੍ਰੀਮ ਨਹੀਂ ਚਲਾ ਰਿਹਾ +ਇਹ ਰੀਲੀਜ਼ ਸਿਰਫ਼ 360p ਸਟ੍ਰੀਮ ਪ੍ਰਦਾਨ ਕਰਨ ਵਾਲੇ YouTube ਨੂੰ ਠੀਕ ਕਰਦੀ ਹੈ। + +ਧਿਆਨ ਦਿਓ ਕਿ ਇਸ ਸੰਸਕਰਣ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ ਹੱਲ ਸੰਭਾਵਤ ਤੌਰ 'ਤੇ ਅਸਥਾਈ ਹੈ, ਅਤੇ ਲੰਬੇ ਸਮੇਂ ਵਿੱਚ SABR ਵੀਡੀਓ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ, ਪਰ TeamNewPipe ਮੈਂਬਰ ਇਸ ਸਮੇਂ ਰੁੱਝੇ ਹੋਏ ਹਨ ਇਸ ਲਈ ਕਿਸੇ ਵੀ ਮਦਦ ਦੀ ਬਹੁਤ ਪ੍ਰਸ਼ੰਸਾ ਕੀਤੀ ਜਾਵੇਗੀ! https://github.com/TeamNewPipe/NewPipe/issues/12248 diff --git a/fastlane/metadata/android/pa/changelogs/1005.txt b/fastlane/metadata/android/pa/changelogs/1005.txt index f1492a1ac..982b092a4 100644 --- a/fastlane/metadata/android/pa/changelogs/1005.txt +++ b/fastlane/metadata/android/pa/changelogs/1005.txt @@ -1,17 +1,10 @@ ਨਵਾਂ -+ • Android Auto ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਿਲ ਕਰੋ -+ • ਫੀਡ ਗਰੁੱਪਾਂ ਨੂੰ ਮੁੱਖ ਸਕ੍ਰੀਨ ਟੈਬਾਂ ਵਜੋਂ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ -+ • [YouTube] ਅਸਥਾਈ ਪਲੇਲਿਸਟ ਦੇ ਵਜੋਂ ਸਾਂਝਾ ਕਰੋ -+ • [SoundCloud] "ਪਸੰਦ" ਚੈਨਲ ਟੈਬ ਜੋੜੀ ਗਈ - -ਬਿਹਤਰ ਕੀਤੇ -+ • ਖੋਜ ਬਾਰ ਸੰਕੇਤ -+ • ਡਾਊਨਲੋਡਸ ਸੂਚੀ ਵਿੱਚ ਡਾਊਨਲੋਡ ਤਾਰੀਖ ਦਿਖਾਓ -+ • ਐਂਡਰਾਇਡ 13+ 'ਤੇ ਪ੍ਰਤੀ ਐਪ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਕਰੋ +• Android Auto ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਿਲ ਕਰਨ ਸਮੇਤ YouTube ਲਈ ਅਸਥਾਈ ਪਲੇਲਿਸਟ ਵਜੋਂ ਸ਼ੇਅਰ ਫੰਕਸ਼ਨ ਤੇ SoundCloud ਲਈ ਲਾਈਕਸ ਚੈਨਲ ਟੈਬ ਨਵੀਂ ਐਡ ਕੀਤੀ +• ਫੀਡ ਗਰੁੱਪਾਂ ਨੂੰ ਮੁੱਖ ਸਕ੍ਰੀਨ ਟੈਬਾਂ ਵਜੋਂ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ ਦਰੁਸਤ ਕੀਤੇ -+ • ਡਾਰਕ ਥੀਮਾਂ 'ਤੇ ਟੈਕਸਟ ਰੰਗਾਂ ਨੂੰ ਠੀਕ ਕਰੋ -+ • [YouTube] ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ ਜੋ 100 ਤੋਂ ਵੱਧ ਆਈਟਮਾਂ ਲੋਡ ਨਹੀਂ ਕਰਦੀਆਂ -+ • [YouTube] ਸਿਫਾਰਸ਼ ਕੀਤੀਆਂ ਵੀਡੀਓਜ਼ ਦੀ ਅਣਉਪਲੱਬਧਤਾ ਨੂੰ ਠੀਕ ਕਰੋ -+ • ਇਤਿਹਾਸ ਸੂਚੀ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਕ੍ਰੈਸ਼ ਨੂੰ ਠੀਕ ਕਰੋ -+ • ਟਿੱਪਣੀਆਂ ਦੇ ਜਵਾਬ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਠੀਕ ਕਰੋ +• ਡਾਰਕ ਥੀਮਾਂ 'ਤੇ ਟੈਕਸਟ ਰੰਗਾਂ ਨੂੰ ਠੀਕ ਕਰੋ +• [YouTube] ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ ਜੋ 100 ਤੋਂ ਵੱਧ ਆਈਟਮਾਂ ਲੋਡ ਨਹੀਂ ਕਰਦੀਆਂ +• [YouTube] ਸਿਫਾਰਸ਼ ਕੀਤੀਆਂ ਵੀਡੀਓਜ਼ ਦੀ ਅਣਉਪਲੱਬਧਤਾ ਨੂੰ ਠੀਕ ਕਰੋ +• ਟਿੱਪਣੀਆਂ ਦੇ ਜਵਾਬ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਠੀਕ ਕਰੋ +ਪੂਰੇ ਬਦਲਾਵਾਂ ਵਾਸਤੇ ਗਿਟਹੱਬ ਤੇ dev ਸ਼ਾਖਾ ਟੈਗ ਅਨੁਸਾਰ ਬਦਲਾਅ ਵੇਖੋ diff --git a/fastlane/metadata/android/pa/changelogs/1006.txt b/fastlane/metadata/android/pa/changelogs/1006.txt new file mode 100644 index 000000000..2539da187 --- /dev/null +++ b/fastlane/metadata/android/pa/changelogs/1006.txt @@ -0,0 +1,15 @@ +# ਸੁਧਾਰਿਆ ਗਿਆ +ਟਾਈਮਸਟੈਂਪਾਂ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਸਮੇਂ ਮੌਜੂਦਾ ਪਲੇਅਰ ਰੱਖੋ +ਜਦੋਂ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਬਕਾਇਆ ਡਾਊਨਲੋਡ ਮਿਸ਼ਨਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ +ਫਾਈਲ ਨੂੰ ਮਿਟਾਏ ਬਿਨਾਂ ਡਾਊਨਲੋਡ ਨੂੰ ਮਿਟਾਉਣ ਦਾ ਵਿਕਲਪ ਸ਼ਾਮਿਲ ਕਰੋ +on.soundcloud ਲਿੰਕ ਖੋਲ੍ਹਣ ਦਾ ਸਮਰਥਨ ਕਰੋ +ਬਹੁਤ ਸਾਰੇ ਛੋਟੇ ਸੁਧਾਰ ਅਤੇ ਅਨੁਕੂਲਤਾ + +# ਫਿਕਸਡ +7 ਤੋਂ ਘੱਟ ਐਂਡਰਾਇਡ ਸੰਸਕਰਣਾਂ ਲਈ ਛੋਟੀ ਗਿਣਤੀ ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +ਖਾਲੀ ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +SRT ਉਪਸਿਰਲੇਖ ਫਾਈਲਾਂ ਲਈ ਠੀਕ ਕੀਤਾ ਗਿਆ +ਬਹੁਤ ਸਾਰੇ ਕਰੈਸ਼ ਠੀਕ ਕੀਤੇ ਗਏ + +# ਵਿਕਾਸ +ਅੰਦਰੂਨੀ ਕੋਡ ਆਧੁਨਿਕੀਕਰਨ diff --git a/fastlane/metadata/android/pa/changelogs/65.txt b/fastlane/metadata/android/pa/changelogs/65.txt index 0fbf1147e..0f7f8fe7d 100644 --- a/fastlane/metadata/android/pa/changelogs/65.txt +++ b/fastlane/metadata/android/pa/changelogs/65.txt @@ -1 +1,13 @@ -### ਸੁਧਾਰ - ਬਰਗਰਮੇਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ #1486 ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ - ਡਾਉਨਲੋਡਸ #1472 ਨੂੰ ਮਿਟਾਉਣ ਨੂੰ ਅਨਡੂ ਕਰੋ - ਸ਼ੇਅਰ ਮੀਨੂ #1498 ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ - ਲੰਬੇ ਟੈਪ ਮੀਨੂ #1454 ਵਿੱਚ ਸ਼ੇਅਰ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ - ਨਿਕਾਸ #1354 'ਤੇ ਮੁੱਖ ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰੋ - ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ ਅਪਡੇਟ ਅਤੇ ਡੇਟਾਬੇਸ ਬੈਕਅਪ ਫਿਕਸ #1510 - ExoPlayer 2.8.2 ਅੱਪਡੇਟ #1392 - ਤੇਜ਼ ਗਤੀ ਤਬਦੀਲੀ ਲਈ ਵੱਖ-ਵੱਖ ਸਟੈਪ ਸਾਈਜ਼ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਲੇਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ ਡਾਇਲਾਗ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ। - ਪਲੇਬੈਕ ਸਪੀਡ ਨਿਯੰਤਰਣ ਵਿੱਚ ਚੁੱਪ ਦੌਰਾਨ ਫਾਸਟ-ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਇੱਕ ਟੌਗਲ ਜੋੜਿਆ ਗਿਆ। ਇਹ ਆਡੀਓਬੁੱਕਾਂ ਅਤੇ ਕੁਝ ਸੰਗੀਤ ਸ਼ੈਲੀਆਂ ਲਈ ਮਦਦਗਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਸੱਚਾ ਸਹਿਜ ਅਨੁਭਵ ਲਿਆ ਸਕਦਾ ਹੈ (ਅਤੇ ਬਹੁਤ ਸਾਰੀਆਂ ਚੁੱਪ =\\ ਨਾਲ ਗੀਤ ਤੋੜ ਸਕਦਾ ਹੈ)। - ਹੱਥੀਂ ਅਜਿਹਾ ਕਰਨ ਦੀ ਬਜਾਏ, ਪਲੇਅਰ ਵਿੱਚ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਮੀਡੀਆ ਦੇ ਨਾਲ-ਨਾਲ ਮੈਟਾਡੇਟਾ ਪਾਸ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਰੀਫੈਕਟਰਡ ਮੀਡੀਆ ਸਰੋਤ ਰੈਜ਼ੋਲਿਊਸ਼ਨ। ਹੁਣ ਸਾਡੇ ਕੋਲ ਮੈਟਾਡੇਟਾ ਦਾ ਇੱਕ ਸਿੰਗਲ ਸਰੋਤ ਹੈ ਅਤੇ ਪਲੇਬੈਕ ਸ਼ੁਰੂ ਹੋਣ 'ਤੇ ਸਿੱਧਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਸਥਿਰ ਰਿਮੋਟ ਪਲੇਲਿਸਟ ਮੈਟਾਡੇਟਾ ਅੱਪਡੇਟ ਨਹੀਂ ਹੋ ਰਿਹਾ ਹੈ ਜਦੋਂ ਪਲੇਲਿਸਟ ਫਰੈਗਮੈਂਟ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਨਵਾਂ ਮੈਟਾਡੇਟਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਕਈ UI ਫਿਕਸ: #1383, ਬੈਕਗਰਾਊਂਡ ਪਲੇਅਰ ਨੋਟੀਫਿਕੇਸ਼ਨ ਕੰਟਰੋਲ ਹੁਣ ਹਮੇਸ਼ਾ ਸਫੈਦ, ਫਲਿੰਗਿੰਗ ਰਾਹੀਂ ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨਾ ਆਸਾਨ - ਮਲਟੀਸਰਵਿਸ ਲਈ ਰੀਫੈਕਟਰਡ ਆਰਕੀਟੈਕਚਰ ਦੇ ਨਾਲ ਨਵੇਂ ਐਕਸਟਰੈਕਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ ### ਫਿਕਸ - #1440 ਟੁੱਟੇ ਹੋਏ ਵੀਡੀਓ ਜਾਣਕਾਰੀ ਲੇਆਉਟ #1491 ਨੂੰ ਠੀਕ ਕਰੋ - ਇਤਿਹਾਸ ਫਿਕਸ #1497 ਦੇਖੋ - #1495, ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਪਲੇਲਿਸਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ, ਮੈਟਾਡੇਟਾ (ਥੰਬਨੇਲ, ਸਿਰਲੇਖ ਅਤੇ ਵੀਡੀਓ ਗਿਣਤੀ) ਨੂੰ ਅਪਡੇਟ ਕਰਕੇ। - #1475, ਜਦੋਂ ਉਪਭੋਗਤਾ ਵੇਰਵੇ ਦੇ ਟੁਕੜੇ 'ਤੇ ਬਾਹਰੀ ਪਲੇਅਰ 'ਤੇ ਵੀਡੀਓ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਤਾਂ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਦ੍ਰਿਸ਼ ਨੂੰ ਰਜਿਸਟਰ ਕਰਕੇ। - ਪੌਪਅੱਪ ਮੋਡ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਕ੍ਰੀਨ ਟਾਈਮਆਊਟ ਫਿਕਸ ਕਰੋ। #1463 (ਸਥਿਰ #640) - ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਫਿਕਸ #1509 - [#1412] ਫਿਕਸਡ ਰੀਪੀਟ ਮੋਡ ਜਿਸ ਨਾਲ ਪਲੇਅਰ ਐਨਪੀਈ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ ਜਦੋਂ ਪਲੇਅਰ ਦੀ ਗਤੀਵਿਧੀ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਹੁੰਦੀ ਹੈ ਤਾਂ ਨਵਾਂ ਇਰਾਦਾ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ। - ਪੌਪਅੱਪ ਲਈ ਫਿਕਸਡ ਮਿਨੀਮਾਈਜ਼ਿੰਗ ਪਲੇਅਰ ਪਲੇਅਰ ਨੂੰ ਨਸ਼ਟ ਨਹੀਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਪੌਪਅੱਪ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। +### ਸੁਧਾਰ + +- ਬਰਗਰ ਮੀਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਕਰੋ #1486 +- ਡਾਊਨਲੋਡਸ ਨੂੰ ਅਨਡੂ ਕਰੋ #1472 +- ਸ਼ੇਅਰ ਮੀਨੂ ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ #1498 +- ਲੰਬੇ ਟੈਪ ਮੀਨੂ ਵਿੱਚ ਸਾਂਝਾ ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ #1454 +- ਐਕਸੋਪਲੇਅਰ 2.8.2 ਅਪਡੇਟ #1392 +- ਕਈ UI ਫਿਕਸ: #1383 + +### ਫਿਕਸ + +- ਵਿਊ ਹਿਸਟਰੀ ਫਿਕਸ #1497 +- #1495, ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਪਲੇਲਿਸਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ, ਮੈਟਾਡੇਟਾ (ਥੰਬਨੇਲ, ਸਿਰਲੇਖ ਅਤੇ ਵੀਡੀਓ ਗਿਣਤੀ) ਨੂੰ ਅਪਡੇਟ ਕਰਕੇ। diff --git a/fastlane/metadata/android/pa/changelogs/66.txt b/fastlane/metadata/android/pa/changelogs/66.txt index aecf80cbc..f400eb137 100644 --- a/fastlane/metadata/android/pa/changelogs/66.txt +++ b/fastlane/metadata/android/pa/changelogs/66.txt @@ -1 +1,21 @@ -# v0.13.7 ਦਾ ਚੇਂਜਲਾਗ ### ਸਥਿਰ - v0.13.6 ਦੇ ਕ੍ਰਮਬੱਧ ਫਿਲਟਰ ਮੁੱਦਿਆਂ ਨੂੰ ਠੀਕ ਕਰੋ # v0.13.6 ਦਾ ਚੇਂਜਲਾਗ ### ਸੁਧਾਰ - ਬਰਗਰਮੇਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ #1486 ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ - ਡਾਉਨਲੋਡਸ #1472 ਨੂੰ ਮਿਟਾਉਣ ਨੂੰ ਅਨਡੂ ਕਰੋ - ਸ਼ੇਅਰ ਮੀਨੂ #1498 ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ - ਲੰਬੇ ਟੈਪ ਮੀਨੂ #1454 ਵਿੱਚ ਸ਼ੇਅਰ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ - ਨਿਕਾਸ #1354 'ਤੇ ਮੁੱਖ ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰੋ - ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ ਅਪਡੇਟ ਅਤੇ ਡੇਟਾਬੇਸ ਬੈਕਅਪ ਫਿਕਸ #1510 - ExoPlayer 2.8.2 ਅੱਪਡੇਟ #1392 - ਤੇਜ਼ ਗਤੀ ਤਬਦੀਲੀ ਲਈ ਵੱਖ-ਵੱਖ ਸਟੈਪ ਸਾਈਜ਼ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਲੇਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ ਡਾਇਲਾਗ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ। - ਪਲੇਬੈਕ ਸਪੀਡ ਨਿਯੰਤਰਣ ਵਿੱਚ ਚੁੱਪ ਦੌਰਾਨ ਫਾਸਟ-ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਇੱਕ ਟੌਗਲ ਜੋੜਿਆ ਗਿਆ। ਇਹ ਆਡੀਓਬੁੱਕਾਂ ਅਤੇ ਕੁਝ ਸੰਗੀਤ ਸ਼ੈਲੀਆਂ ਲਈ ਮਦਦਗਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਸੱਚਾ ਸਹਿਜ ਅਨੁਭਵ ਲਿਆ ਸਕਦਾ ਹੈ (ਅਤੇ ਬਹੁਤ ਸਾਰੀਆਂ ਚੁੱਪ =\\ ਨਾਲ ਗੀਤ ਤੋੜ ਸਕਦਾ ਹੈ)। - ਹੱਥੀਂ ਅਜਿਹਾ ਕਰਨ ਦੀ ਬਜਾਏ, ਪਲੇਅਰ ਵਿੱਚ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਮੀਡੀਆ ਦੇ ਨਾਲ-ਨਾਲ ਮੈਟਾਡੇਟਾ ਪਾਸ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਰੀਫੈਕਟਰਡ ਮੀਡੀਆ ਸਰੋਤ ਰੈਜ਼ੋਲਿਊਸ਼ਨ। ਹੁਣ ਸਾਡੇ ਕੋਲ ਮੈਟਾਡੇਟਾ ਦਾ ਇੱਕ ਸਿੰਗਲ ਸਰੋਤ ਹੈ ਅਤੇ ਪਲੇਬੈਕ ਸ਼ੁਰੂ ਹੋਣ 'ਤੇ ਸਿੱਧਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਸਥਿਰ ਰਿਮੋਟ ਪਲੇਲਿਸਟ ਮੈਟਾਡੇਟਾ ਅੱਪਡੇਟ ਨਹੀਂ ਹੋ ਰਿਹਾ ਹੈ ਜਦੋਂ ਪਲੇਲਿਸਟ ਫਰੈਗਮੈਂਟ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਨਵਾਂ ਮੈਟਾਡੇਟਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਕਈ UI ਫਿਕਸ: #1383, ਬੈਕਗਰਾਊਂਡ ਪਲੇਅਰ ਨੋਟੀਫਿਕੇਸ਼ਨ ਕੰਟਰੋਲ ਹੁਣ ਹਮੇਸ਼ਾ ਸਫੈਦ, ਫਲਿੰਗਿੰਗ ਰਾਹੀਂ ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨਾ ਆਸਾਨ - ਮਲਟੀਸਰਵਿਸ ਲਈ ਰੀਫੈਕਟਰਡ ਆਰਕੀਟੈਕਚਰ ਦੇ ਨਾਲ ਨਵੇਂ ਐਕਸਟਰੈਕਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ ### ਫਿਕਸ - #1440 ਟੁੱਟੇ ਹੋਏ ਵੀਡੀਓ ਜਾਣਕਾਰੀ ਲੇਆਉਟ #1491 ਨੂੰ ਠੀਕ ਕਰੋ - ਇਤਿਹਾਸ ਫਿਕਸ #1497 ਦੇਖੋ - #1495, ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਪਲੇਲਿਸਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ, ਮੈਟਾਡੇਟਾ (ਥੰਬਨੇਲ, ਸਿਰਲੇਖ ਅਤੇ ਵੀਡੀਓ ਗਿਣਤੀ) ਨੂੰ ਅਪਡੇਟ ਕਰਕੇ। - #1475, ਜਦੋਂ ਉਪਭੋਗਤਾ ਵੇਰਵੇ ਦੇ ਟੁਕੜੇ 'ਤੇ ਬਾਹਰੀ ਪਲੇਅਰ 'ਤੇ ਵੀਡੀਓ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਤਾਂ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਦ੍ਰਿਸ਼ ਨੂੰ ਰਜਿਸਟਰ ਕਰਕੇ। - ਪੌਪਅੱਪ ਮੋਡ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਕ੍ਰੀਨ ਟਾਈਮਆਊਟ ਫਿਕਸ ਕਰੋ। #1463 (ਸਥਿਰ #640) - ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਫਿਕਸ #1509 - [#1412] ਫਿਕਸਡ ਰੀਪੀਟ ਮੋਡ ਜਿਸ ਨਾਲ ਪਲੇਅਰ ਐਨਪੀਈ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ ਜਦੋਂ ਪਲੇਅਰ ਦੀ ਗਤੀਵਿਧੀ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਹੁੰਦੀ ਹੈ ਤਾਂ ਨਵਾਂ ਇਰਾਦਾ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ। - ਪੌਪਅੱਪ ਲਈ ਫਿਕਸਡ ਮਿਨੀਮਾਈਜ਼ਿੰਗ ਪਲੇਅਰ ਪਲੇਅਰ ਨੂੰ ਨਸ਼ਟ ਨਹੀਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਪੌਪਅੱਪ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। +# v0.13.7 ਲਈ ਚੇਂਜਲੌਗ + +### ਫਿਕਸ +- v0.13.6 ਤੋਂ ਸੌਰਟ ਫਿਲਟਰ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕੀਤੀਆਂ ਗਈਆਂ। + +# v0.13.6 ਲਈ ਚੇਂਜਲੌਗ + +### ਸੁਧਾਰ + +- ਬਰਗਰ ਮੀਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ #1486 ਨੂੰ ਅਯੋਗ ਕਰੋ +- ਡਾਊਨਲੋਡਸ ਨੂੰ ਮਿਟਾਓ ਨੂੰ ਅਣਡੂ ਕਰੋ #1472 +- ਸ਼ੇਅਰ ਮੀਨੂ ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ #1498 +- ਲੰਬੇ ਟੈਪ ਮੀਨੂ ਵਿੱਚ ਸ਼ੇਅਰ ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ #1454 +- ਐਕਸੋਪਲੇਅਰ 2.8.2 ਅਪਡੇਟ #1392 +ਕਈ UI ਫਿਕਸ: #1383 + +### ਫਿਕਸ + +- ਫਿਕਸ ਕੀਤਾ ਗਿਆ #1440 ਟੁੱਟਿਆ ਹੋਇਆ ਵੀਡੀਓ ਜਾਣਕਾਰੀ ਲੇਆਉਟ #1491 +- ਇਤਿਹਾਸ ਦੇਖੋ ਫਿਕਸ #1497 +- ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਫਿਕਸ #1509. diff --git a/fastlane/metadata/android/pa/changelogs/68.txt b/fastlane/metadata/android/pa/changelogs/68.txt index e8e54ea4f..7b98078df 100644 --- a/fastlane/metadata/android/pa/changelogs/68.txt +++ b/fastlane/metadata/android/pa/changelogs/68.txt @@ -1 +1,19 @@ -v0.14.1 ਦੇ # ਬਦਲਾਅ ### ਸਥਿਰ - ਵੀਡੀਓ url #1659 ਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ - ਸਥਿਰ ਵਰਣਨ ਲਿੰਕ #1657 ਨੂੰ ਚੰਗੀ ਤਰ੍ਹਾਂ ਐਕਸਟਰੈਕਟ ਨਹੀਂ ਕਰਦਾ ਹੈ v0.14.0 ਦੀਆਂ # ਤਬਦੀਲੀਆਂ ### ਨਵਾਂ - ਨਵਾਂ ਦਰਾਜ਼ ਡਿਜ਼ਾਈਨ #1461 - ਨਵਾਂ ਅਨੁਕੂਲਿਤ ਫਰੰਟ ਪੇਜ #1461 ### ਸੁਧਾਰ - ਮੁੜ ਕੰਮ ਕੀਤਾ ਸੰਕੇਤ ਨਿਯੰਤਰਣ #1604 - ਪੌਪਅੱਪ ਪਲੇਅਰ #1597 ਨੂੰ ਬੰਦ ਕਰਨ ਦਾ ਨਵਾਂ ਤਰੀਕਾ ### ਸਥਿਰ - ਗਾਹਕੀ ਦੀ ਗਿਣਤੀ ਉਪਲਬਧ ਨਾ ਹੋਣ 'ਤੇ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰੋ। #1649 ਬੰਦ ਹੁੰਦਾ ਹੈ। - ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ "ਗਾਹਕ ਗਿਣਤੀ ਉਪਲਬਧ ਨਹੀਂ" ਦਿਖਾਓ - YouTube ਪਲੇਲਿਸਟ ਖਾਲੀ ਹੋਣ 'ਤੇ NPE ਨੂੰ ਠੀਕ ਕਰੋ - SoundCloud ਵਿੱਚ ਕਿਓਸਕ ਲਈ ਤੁਰੰਤ ਫਿਕਸ - ਰਿਫੈਕਟਰ ਅਤੇ ਬੱਗਫਿਕਸ #1623 - ਚੱਕਰੀ ਖੋਜ ਨਤੀਜੇ #1562 ਨੂੰ ਠੀਕ ਕਰੋ - ਸੀਕ ਬਾਰ ਨੂੰ ਸਥਿਰ ਤੌਰ 'ਤੇ ਬਾਹਰ ਨਾ ਕੱਢੋ - ਫਿਕਸ YT ਪ੍ਰੀਮੀਅਮ ਵੀਡੀਓ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਬਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ - ਕਈ ਵਾਰ ਲੋਡ ਨਾ ਹੋਣ ਵਾਲੇ ਵੀਡੀਓ ਨੂੰ ਠੀਕ ਕਰੋ (DASH ਪਾਰਸਿੰਗ ਦੇ ਕਾਰਨ) - ਵੀਡੀਓ ਵਰਣਨ ਵਿੱਚ ਲਿੰਕ ਫਿਕਸ ਕਰੋ - ਜਦੋਂ ਕੋਈ ਬਾਹਰੀ sdcard 'ਤੇ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਤਾਂ ਚੇਤਾਵਨੀ ਦਿਖਾਓ - ਅਪਵਾਦ ਟਰਿੱਗਰ ਰਿਪੋਰਟ ਦਿਖਾਈ ਗਈ ਕੁਝ ਵੀ ਠੀਕ ਨਾ ਕਰੋ - ਐਂਡਰਾਇਡ 8.1 ਲਈ ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ ਥੰਬਨੇਲ ਨਹੀਂ ਦਿਖਾਇਆ ਗਿਆ [ਇੱਥੇ ਦੇਖੋ](https://github.com/TeamNewPipe/NewPipe/issues/943) - ਪ੍ਰਸਾਰਣ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਦੀ ਰਜਿਸਟਰੇਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰੋ। #1641 ਬੰਦ ਹੁੰਦਾ ਹੈ। +# v0.14.1 ਵਿੱਚ ਬਦਲਾਅ + +### ਠੀਕ ਕੀਤਾ ਗਿਆ +- ਵੀਡੀਓ URL ਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲਤਾ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ #1659 +- ਵਰਣਨ ਲਿੰਕ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਐਕਸਟਰੈਕਟ ਨਾ ਕਰਨ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ #1657 + +# v0.14.0 ਵਿੱਚ ਬਦਲਾਅ + +### ਨਵਾਂ +- ਨਵਾਂ ਦਰਾਜ਼ ਡਿਜ਼ਾਈਨ #1461 +- ਨਵਾਂ ਅਨੁਕੂਲਿਤ ਫਰੰਟ ਪੇਜ #1461 + +### ਸੁਧਾਰ +- ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨ ਦਾ ਨਵਾਂ ਤਰੀਕਾ #1597 + +### ਠੀਕ ਕੀਤਾ ਗਿਆ +- YouTube ਪਲੇਲਿਸਟਾਂ ਖਾਲੀ ਹੋਣ 'ਤੇ NPE ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +- SoundCloud ਵਿੱਚ ਕਿਓਸਕ ਲਈ ਤੁਰੰਤ ਠੀਕ ਕੀਤਾ ਗਿਆ +- ਰੀਫੈਕਟਰ ਅਤੇ ਬੱਗਫਿਕਸ #1623. diff --git a/fastlane/metadata/android/pa/changelogs/69.txt b/fastlane/metadata/android/pa/changelogs/69.txt index b6358991b..8956afb54 100644 --- a/fastlane/metadata/android/pa/changelogs/69.txt +++ b/fastlane/metadata/android/pa/changelogs/69.txt @@ -1 +1,15 @@ -### ਨਵਾਂ - ਮਿਟਾਓ ਅਤੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨ #1516 ਵਿੱਚ ਸਾਂਝਾ ਕਰੋ - ਟੈਬਲੇਟ UI ਅਤੇ ਗਰਿੱਡ ਸੂਚੀ ਖਾਕਾ #1617 ### ਸੁਧਾਰ - ਆਖਰੀ ਵਰਤੇ ਗਏ ਆਸਪੈਕਟ ਰੇਸ਼ੋ #1748 ਨੂੰ ਸਟੋਰ ਅਤੇ ਰੀਲੋਡ ਕਰੋ - ਪੂਰੇ ਵੀਡੀਓ ਨਾਮ #1771 ਦੇ ਨਾਲ ਡਾਊਨਲੋਡ ਗਤੀਵਿਧੀ ਵਿੱਚ ਲੀਨੀਅਰ ਲੇਆਉਟ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ - ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਟੈਬ #1516 ਦੇ ਅੰਦਰੋਂ ਸਿੱਧਾ ਗਾਹਕੀਆਂ ਨੂੰ ਮਿਟਾਓ ਅਤੇ ਸਾਂਝਾ ਕਰੋ - ਜੇਕਰ ਪਲੇ ਕਤਾਰ ਪਹਿਲਾਂ ਹੀ #1783 ਖਤਮ ਹੋ ਗਈ ਹੈ ਤਾਂ ਹੁਣ ਏਨਕਿਊ ਕਰਨਾ ਵੀਡੀਓ ਚਲਾਉਣ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ - ਵਾਲੀਅਮ ਅਤੇ ਚਮਕ ਸੰਕੇਤ #1644 ਲਈ ਵੱਖਰੀ ਸੈਟਿੰਗ - ਸਥਾਨਕਕਰਨ #1792 ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ ### ਫਿਕਸ - ਲਈ ਪਾਰਸਿੰਗ ਸਮਾਂ ਫਿਕਸ ਕਰੋ। ਫਾਰਮੈਟ, ਇਸ ਲਈ ਨਿਊ ਪਾਈਪ ਨੂੰ ਫਿਨਲੈਂਡ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ - ਗਾਹਕੀ ਦੀ ਗਿਣਤੀ ਨੂੰ ਠੀਕ ਕਰੋ - API 28+ ਡਿਵਾਈਸਾਂ #1830 ਲਈ ਫੋਰਗਰਾਉਂਡ ਸੇਵਾ ਅਨੁਮਤੀ ਸ਼ਾਮਲ ਕਰੋ ### ਜਾਣੇ-ਪਛਾਣੇ ਬੱਗ - ਐਂਡ੍ਰਾਇਡ ਪੀ 'ਤੇ ਪਲੇਬੈਕ ਸਟੇਟ ਨੂੰ ਸੇਵ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ +### ਨਵਾਂ +- ਗਾਹਕੀਆਂ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਟੈਪ ਕਰਕੇ ਮਿਟਾਓ ਅਤੇ ਸਾਂਝਾ ਕਰੋ #1516 +- ਟੈਬਲੇਟ UI ਅਤੇ ਗਰਿੱਡ ਸੂਚੀ ਲੇਆਉਟ #1617 + +### ਸੁਧਾਰ +- ਵਾਲੀਅਮ ਅਤੇ ਚਮਕ ਸੰਕੇਤਾਂ ਲਈ ਵੱਖਰੀਆਂ ਸੈਟਿੰਗਾਂ #1644 +- ਸਥਾਨਕਕਰਨ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ #1792 + +### ਸੁਧਾਰ +- . ਫਾਰਮੈਟ ਲਈ ਸਮਾਂ ਪਾਰਸਿੰਗ ਠੀਕ ਕਰੋ ਤਾਂ ਜੋ ਫਿਨਲੈਂਡ ਵਿੱਚ ਨਿਊਪਾਈਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕੇ +- ਗਾਹਕੀ ਗਿਣਤੀ ਠੀਕ ਕਰੋ +- API 28+ ਡਿਵਾਈਸਾਂ ਲਈ ਫੋਰਗਰਾਉਂਡ ਸੇਵਾ ਅਨੁਮਤੀ ਸ਼ਾਮਲ ਕਰੋ #1830 + +### ਜਾਣੇ-ਪਛਾਣੇ ਬੱਗ +- ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਐਂਡਰਾਇਡ ਪੀ 'ਤੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ diff --git a/fastlane/metadata/android/pa/changelogs/70.txt b/fastlane/metadata/android/pa/changelogs/70.txt index 97d781d4a..bedc91496 100644 --- a/fastlane/metadata/android/pa/changelogs/70.txt +++ b/fastlane/metadata/android/pa/changelogs/70.txt @@ -1 +1,10 @@ -ਧਿਆਨ ਦਿਓ: ਇਹ ਸੰਸਕਰਣ ਸ਼ਾਇਦ ਇੱਕ ਬੱਗਫੈਸਟ ਹੈ, ਬਿਲਕੁਲ ਪਿਛਲੇ ਇੱਕ ਵਾਂਗ। ਹਾਲਾਂਕਿ 17 ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬੰਦ ਹੋਣ ਦੇ ਕਾਰਨ. ਇੱਕ ਟੁੱਟਿਆ ਹੋਇਆ ਸੰਸਕਰਣ ਕੋਈ ਸੰਸਕਰਣ ਨਾਲੋਂ ਬਿਹਤਰ ਹੈ. ਸਹੀ? ¯\_(ツ)_/¯ ### ਸੁਧਾਰ * ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਹੁਣ ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ #1879 * ਐਂਡਰਾਇਡ 4.1 - 4.3 #1884 ਲਈ ਸਹਾਇਤਾ ਛੱਡੋ * ਪੁਰਾਣੇ ਪਲੇਅਰ #1884 ਨੂੰ ਹਟਾਓ * ਮੌਜੂਦਾ ਪਲੇ ਕਤਾਰ ਤੋਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੱਜੇ #1915 'ਤੇ ਸਵਾਈਪ ਕਰਕੇ ਹਟਾਓ * ਆਟੋ ਕਤਾਰਬੱਧ ਸਟ੍ਰੀਮ ਨੂੰ ਹਟਾਓ ਜਦੋਂ ਇੱਕ ਨਵੀਂ ਸਟ੍ਰੀਮ ਹੱਥੀਂ ਕਤਾਰਬੱਧ ਹੁੰਦੀ ਹੈ #1878 * @kapodamy ਦੁਆਰਾ ਡਾਉਨਲੋਡ ਕਰਨ ਅਤੇ ਗੁੰਮ ਹੋਈਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ #1759 ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਪੋਸਟ ਪ੍ਰੋਸੈਸਿੰਗ * ਪੋਸਟ-ਪ੍ਰੋਸੈਸਿੰਗ ਬੁਨਿਆਦੀ ਢਾਂਚਾ * "ਬੁਨਿਆਦੀ ਢਾਂਚੇ" ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਸਹੀ ਤਰੁੱਟੀ (ਡਾਊਨਲੋਡਰ ਲਈ) * ਮਲਟੀਪਲ ਡਾਉਨਲੋਡਸ ਦੀ ਬਜਾਏ ਕਤਾਰ * ਲੜੀਬੱਧ ਲੰਬਿਤ ਡਾਉਨਲੋਡਸ (`ਗੀਗਾ` ਫਾਈਲਾਂ) ਨੂੰ ਐਪ ਡੇਟਾ ਵਿੱਚ ਮੂਵ ਕਰੋ * ਅਧਿਕਤਮ ਡਾਊਨਲੋਡ ਦੀ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਨੂੰ ਲਾਗੂ ਕਰੋ * ਉਚਿਤ ਮਲਟੀ-ਥ੍ਰੈਡ ਡਾਊਨਲੋਡ ਵਿਰਾਮ * ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ 'ਤੇ ਜਾਣ ਵੇਲੇ ਡਾਊਨਲੋਡ ਬੰਦ ਕਰੋ (ਕਦੇ ਕੰਮ ਨਹੀਂ ਕਰਦਾ, ਦੂਜਾ ਪੁਆਇੰਟ ਦੇਖੋ) * ਅਗਲੇ ਡਾਉਨਲੋਡਸ ਲਈ ਥਰਿੱਡ ਗਿਣਤੀ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ * ਬਹੁਤ ਸਾਰੀਆਂ ਅਸੰਗਤੀਆਂ ਹੱਲ ਕੀਤੀਆਂ ਗਈਆਂ ### ਸਥਿਰ * ਪੂਰਵ-ਨਿਰਧਾਰਤ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਨਾਲ ਕਰੈਸ਼ ਨੂੰ ਬਿਹਤਰ ਅਤੇ ਸੀਮਤ ਮੋਬਾਈਲ ਡਾਟਾ ਰੈਜ਼ੋਲਿਊਸ਼ਨ #1835 'ਤੇ ਸੈੱਟ ਕਰੋ * ਪੌਪ-ਅੱਪ ਪਲੇਅਰ ਕਰੈਸ਼ ਫਿਕਸਡ #1874 * ਬੈਕਗਰਾਊਂਡ ਪਲੇਅਰ #1901 ਨੂੰ ਖੋਲ੍ਹਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ NPE * ਜਦੋਂ ਆਟੋ ਕਤਾਰ ਯੋਗ ਹੁੰਦੀ ਹੈ ਤਾਂ ਨਵੀਆਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੰਮਿਲਿਤ ਕਰਨ ਲਈ ਠੀਕ ਕਰੋ #1878 * ਡੀਸਾਈਪਰਿੰਗ ਸ਼ੱਟਟਾਊਨ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ +ਸੁਧਾਰ +* ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਹੁਣ ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਖੋਲ੍ਹੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ #1879 +* ਐਂਡਰਾਇਡ 4.1 - 4.3 ਲਈ ਡ੍ਰੌਪ ਸਪੋਰਟ #1884 +* ਪੁਰਾਣੇ ਪਲੇਅਰ ਨੂੰ ਹਟਾਓ #1884 +* ਮੌਜੂਦਾ ਪਲੇ ਕਤਾਰ ਤੋਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਸਵਾਈਪ ਕਰਕੇ ਹਟਾਓ #1915 +* ਜਦੋਂ ਇੱਕ ਨਵੀਂ ਸਟ੍ਰੀਮ ਨੂੰ ਹੱਥੀਂ ਕਤਾਰਬੱਧ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਆਟੋ ਕਤਾਰਬੱਧ ਸਟ੍ਰੀਮ ਨੂੰ ਹਟਾਓ #1878 +* ਬਹੁਤ ਸਾਰੀਆਂ ਡਾਊਨਲੋਡ ਅਸੰਗਤੀਆਂ ਠੀਕ ਕੀਤੀਆਂ ਗਈਆਂ + +ਫਿਕਸਡ +* ਬਹੁਤ ਸਾਰੀਆਂ ਅਸੰਗਤੀਆਂ ਠੀਕ ਕੀਤੀਆਂ ਗਈਆਂ diff --git a/fastlane/metadata/android/pa/changelogs/71.txt b/fastlane/metadata/android/pa/changelogs/71.txt index bafa26f8c..2f11dea82 100644 --- a/fastlane/metadata/android/pa/changelogs/71.txt +++ b/fastlane/metadata/android/pa/changelogs/71.txt @@ -1 +1,8 @@ -### ਸੁਧਾਰ * GitHub ਬਿਲਡ ਲਈ ਐਪ ਅਪਡੇਟ ਨੋਟੀਫਿਕੇਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ (@krtkush ਦੁਆਰਾ #1608) * ਡਾਊਨਲੋਡਰ ਵਿੱਚ ਕਈ ਸੁਧਾਰ (@kapodamy ਦੁਆਰਾ #1944): * ਗੁੰਮ ਹੋਏ ਚਿੱਟੇ ਆਈਕਨ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਆਈਕਨ ਦੇ ਰੰਗਾਂ ਨੂੰ ਬਦਲਣ ਲਈ ਹਾਰਡਕੋਰਡ ਤਰੀਕੇ ਦੀ ਵਰਤੋਂ ਕਰੋ * ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਇਟਰੇਟਰ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ ਹੈ (ਫਿਕਸ #2031) * ਨਵੇਂ ਮੁਕਸਰ ਵਿੱਚ "ਪੋਸਟ-ਪ੍ਰੋਸੈਸਿੰਗ ਫੇਲ੍ਹ" ਗਲਤੀ ਦੇ ਨਾਲ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ * ਨਵਾਂ MPEG-4 ਮੁਕਸਰ ਫਿਕਸਿੰਗ ਗੈਰ-ਸਿੰਕਰੋਨਸ ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ ਸਟ੍ਰੀਮਜ਼ (#2039) ### ਸਥਿਰ * YouTube ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਥੋੜ੍ਹੇ ਸਮੇਂ ਬਾਅਦ ਚੱਲਣੀਆਂ ਬੰਦ ਹੋ ਜਾਂਦੀਆਂ ਹਨ (@yausername ਦੁਆਰਾ #1996) +ਸੁਧਾਰ +* GitHub ਬਿਲਡ ਲਈ ਐਪ ਅੱਪਡੇਟ ਸੂਚਨਾ ਸ਼ਾਮਲ ਕਰੋ (#1608 @krtkush ਦੁਆਰਾ) +* ਡਾਊਨਲੋਡਰ ਵਿੱਚ ਕਈ ਸੁਧਾਰ (#1944 @kapodamy ਦੁਆਰਾ) +* ਨਵੇਂ ਮਕਸਰ ਵਿੱਚ "ਪੋਸਟ-ਪ੍ਰੋਸੈਸਿੰਗ ਅਸਫਲ" ਗਲਤੀ ਨਾਲ ਡਾਊਨਲੋਡਾਂ ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ +* ਨਵਾਂ MPEG-4 ਮਕਸਰ ਗੈਰ-ਸਮਕਾਲੀ ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ (#2039) + +ਫਿਕਸਡ +* YouTube ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਥੋੜ੍ਹੇ ਸਮੇਂ ਬਾਅਦ ਚੱਲਣਾ ਬੰਦ ਕਰ ਦਿੰਦੀਆਂ ਹਨ (#1996 @yausername ਦੁਆਰਾ) diff --git a/fastlane/metadata/android/pa/changelogs/740.txt b/fastlane/metadata/android/pa/changelogs/740.txt index 6a2dbdc86..62da0f9c3 100644 --- a/fastlane/metadata/android/pa/changelogs/740.txt +++ b/fastlane/metadata/android/pa/changelogs/740.txt @@ -1 +1,8 @@ -ਬਦਲਾਅ ਸੂਚੀ ਅਨੁਵਾਦ ਕਰਣਯੋਗ ਨਹੀਂ। ਬਿਲਕੁਲ ਬਕਵਾਸ +

    ਸੁਧਾਰ

    +
      +
    • ਟਿੱਪਣੀਆਂ ਵਿੱਚ ਲਿੰਕਾਂ ਨੂੰ ਕਲਿੱਕ ਕਰਨ ਯੋਗ ਬਣਾਓ, ਟੈਕਸਟ ਦਾ ਆਕਾਰ ਵਧਾਓ
    • +
    • ਟਿੱਪਣੀਆਂ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪ ਕੀਤੇ ਲਿੰਕਾਂ 'ਤੇ ਕਲਿੱਕ ਕੀਤੇ ਜਾਣ 'ਤੇ ਖੋਜ ਕਰੋ
    • +
    • ਜਦੋਂ ਸਾਂਝਾ ਕੀਤਾ ਟੈਕਸਟ URL ਨਾ ਹੋਵੇ ਤਾਂ ਖੋਜ ਕਰੋ
    • +
    • ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਵਿੱਚ "ਹੁਣੇ ਸਾਂਝਾ ਕਰੋ" ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ
    • +
    • ExoPlayer ਨੂੰ 2.9.6 'ਤੇ ਅੱਪਡੇਟ ਕਰਨਾ
    • +
    diff --git a/fastlane/metadata/android/pa/changelogs/750.txt b/fastlane/metadata/android/pa/changelogs/750.txt index 0b875b705..c24183ddb 100644 --- a/fastlane/metadata/android/pa/changelogs/750.txt +++ b/fastlane/metadata/android/pa/changelogs/750.txt @@ -1 +1,9 @@ -ਨਵਾਂ ਪਲੇਬੈਕ ਰੈਜ਼ਿਊਮੇ #2288 • ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜਿੱਥੇ ਤੁਸੀਂ ਪਿਛਲੀ ਵਾਰ ਰੁਕੇ ਸੀ ਡਾਊਨਲੋਡਰ ਸੁਧਾਰ #2149 • ਬਾਹਰੀ SD-ਕਾਰਡਾਂ 'ਤੇ ਡਾਊਨਲੋਡ ਸਟੋਰ ਕਰਨ ਲਈ ਸਟੋਰੇਜ਼ ਐਕਸੈਸ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰੋ • ਨਵਾਂ mp4 muxer • ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਡਾਉਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਬਦਲੋ • ਮੀਟਰਡ ਨੈੱਟਵਰਕਾਂ ਦਾ ਆਦਰ ਕਰੋ ਸੁਧਾਰ • gema ਸਤਰ #2295 ਨੂੰ ਹਟਾਇਆ • ਗਤੀਵਿਧੀ ਜੀਵਨ ਚੱਕਰ #2444 ਦੌਰਾਨ ਹੈਂਡਲ (ਆਟੋ) ਰੋਟੇਸ਼ਨ ਤਬਦੀਲੀਆਂ • ਲੰਬੇ-ਦਬਾਓ ਮੀਨੂ ਨੂੰ ਇਕਸਾਰ #2368 ਬਣਾਓ ਸਥਿਰ • ਫਿਕਸਡ ਚੁਣਿਆ ਹੋਇਆ ਉਪਸਿਰਲੇਖ ਟਰੈਕ ਨਾਮ #2394 ਨਹੀਂ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ • ਐਪ ਅੱਪਡੇਟ ਦੀ ਜਾਂਚ ਅਸਫਲ ਹੋਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਨਾ ਹੋਵੋ (GitHub ਸੰਸਕਰਣ) #2423 • ਸਥਿਰ ਡਾਊਨਲੋਡ 99.9% #2440 'ਤੇ ਅਟਕ ਗਏ • ਪਲੇ ਕਤਾਰ ਮੈਟਾਡੇਟਾ #2453 ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ • [SoundCloud] ਪਲੇਲਿਸਟਸ ਲੋਡ ਕਰਨ ਵੇਲੇ ਸਥਿਰ ਕਰੈਸ਼ TeamNewPipe/NewPipeExtractor#170 • [YouTube] ਸਥਿਰ ਅਵਧੀ ਨੂੰ ਪਾਰਸਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ TeamNewPipe/NewPipeExtractor#177 +ਨਵਾਂ +ਪਲੇਬੈਕ ਰੈਜ਼ਿਊਮੇ #2288 +ਡਾਊਨਲੋਡਰ ਸੁਧਾਰ #2149 +• ਬਾਹਰੀ SD-ਕਾਰਡਾਂ 'ਤੇ ਡਾਊਨਲੋਡ ਸਟੋਰ ਕਰਨ ਲਈ ਸਟੋਰੇਜ ਐਕਸੈਸ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰੋ +• ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਬਦਲੋ +• ਮੀਟਰ ਕੀਤੇ ਨੈੱਟਵਰਕਾਂ ਦਾ ਸਤਿਕਾਰ ਕਰੋ + +ਸਥਿਰ +• [YouTube] ਸਥਿਰ ਮਿਆਦ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ TeamNewPipe/NewPipeExtractor#177 diff --git a/fastlane/metadata/android/pa/changelogs/760.txt b/fastlane/metadata/android/pa/changelogs/760.txt index fd4b8f2a4..6279139d0 100644 --- a/fastlane/metadata/android/pa/changelogs/760.txt +++ b/fastlane/metadata/android/pa/changelogs/760.txt @@ -1 +1,10 @@ -0.17.1 ਵਿੱਚ ਬਦਲਾਅ ਨਵਾਂ • ਥਾਈ ਸਥਾਨਕਕਰਨ ਸੁਧਾਰ • ਦੁਬਾਰਾ #2518 ਪਲੇਲਿਸਟਾਂ ਲਈ ਲੰਬੇ-ਦਬਾਓ ਮੀਨੂ ਵਿੱਚ ਇੱਥੇ ਪਲੇ ਸ਼ੁਰੂ ਕਰੋ ਐਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ • SAF / ਪੁਰਾਤਨ ਫਾਈਲ ਪਿਕਰ #2521 ਲਈ ਸਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ ਸਥਿਰ • ਐਪਸ #2487 ਨੂੰ ਬਦਲਦੇ ਸਮੇਂ ਡਾਊਨਲੋਡ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਗਾਇਬ ਹੋਣ ਵਾਲੇ ਬਟਨਾਂ ਨੂੰ ਠੀਕ ਕਰੋ • ਫਿਕਸ ਪਲੇਬੈਕ ਸਥਿਤੀ ਸਟੋਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਹਾਲਾਂਕਿ ਦੇਖਣ ਦਾ ਇਤਿਹਾਸ ਅਯੋਗ ਹੈ • ਸੂਚੀ ਦ੍ਰਿਸ਼ #2517 ਵਿੱਚ ਪਲੇਬੈਕ ਸਥਿਤੀ ਦੇ ਕਾਰਨ ਘਟੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰੋ • [ਐਕਸਟ੍ਰੈਕਟਰ] ReCaptchaActivity #2527, TeamNewPipe/NewPipeExtractor#186 ਫਿਕਸ • [ਐਕਸਟ੍ਰੈਕਟਰ] [YouTube] ਜਦੋਂ ਪਲੇਲਿਸਟਾਂ ਨਤੀਜੇ ਵਿੱਚ ਹੋਣ ਤਾਂ ਆਮ ਖੋਜ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰੋ TeamNewPipe/NewPipeExtractor#185 0.17.0 ਵਿੱਚ ਬਦਲਾਅ ਨਵਾਂ ਪਲੇਬੈਕ ਰੈਜ਼ਿਊਮੇ #2288 • ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜਿੱਥੇ ਤੁਸੀਂ ਪਿਛਲੀ ਵਾਰ ਰੁਕੇ ਸੀ ਡਾਊਨਲੋਡਰ ਸੁਧਾਰ #2149 • ਬਾਹਰੀ SD-ਕਾਰਡਾਂ 'ਤੇ ਡਾਊਨਲੋਡ ਸਟੋਰ ਕਰਨ ਲਈ ਸਟੋਰੇਜ਼ ਐਕਸੈਸ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰੋ • ਨਵਾਂ mp4 muxer • ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਡਾਉਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਬਦਲੋ • ਮੀਟਰਡ ਨੈੱਟਵਰਕਾਂ ਦਾ ਆਦਰ ਕਰੋ ਸੁਧਾਰ • gema ਸਤਰ #2295 ਨੂੰ ਹਟਾਇਆ • ਗਤੀਵਿਧੀ ਜੀਵਨ ਚੱਕਰ #2444 ਦੌਰਾਨ ਹੈਂਡਲ (ਆਟੋ) ਰੋਟੇਸ਼ਨ ਤਬਦੀਲੀਆਂ • ਲੰਬੇ-ਦਬਾਓ ਮੀਨੂ ਨੂੰ ਇਕਸਾਰ #2368 ਬਣਾਓ ਸਥਿਰ • ਫਿਕਸਡ ਚੁਣਿਆ ਹੋਇਆ ਉਪਸਿਰਲੇਖ ਟਰੈਕ ਨਾਮ #2394 ਨਹੀਂ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ • ਐਪ ਅੱਪਡੇਟ ਦੀ ਜਾਂਚ ਅਸਫਲ ਹੋਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਨਾ ਹੋਵੋ (GitHub ਸੰਸਕਰਣ) #2423 • ਸਥਿਰ ਡਾਊਨਲੋਡ 99.9% #2440 'ਤੇ ਅਟਕ ਗਏ • ਪਲੇ ਕਤਾਰ ਮੈਟਾਡੇਟਾ #2453 ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ • [SoundCloud] ਪਲੇਲਿਸਟਸ ਲੋਡ ਕਰਨ ਵੇਲੇ ਸਥਿਰ ਕਰੈਸ਼ TeamNewPipe/NewPipeExtractor#170 • [YouTube] ਸਥਿਰ ਅਵਧੀ ਨੂੰ ਪਾਰਸਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ TeamNewPipe/NewPipeExtractor#177 +0.17.1 ਵਿੱਚ ਬਦਲਾਅ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਪਲੇਲਿਸਟਾਂ ਲਈ ਦੁਬਾਰਾ ਲੰਬੇ-ਦਬਾਓ ਵਾਲੇ ਮੀਨੂ ਵਿੱਚ ਇੱਥੇ ਚਲਾਉਣਾ ਸ਼ੁਰੂ ਕਰੋ ਐਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ +• SAF / ਲੀਗੇਸੀ ਫਾਈਲ ਪਿਕਰ #2521 ਲਈ ਸਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ +ਫਿਕਸਡ +• ਐਪਸ ਨੂੰ ਸਵਿੱਚ ਕਰਦੇ ਸਮੇਂ ਡਾਊਨਲੋਡ ਵਿਊ ਵਿੱਚ ਗਾਇਬ ਹੋਣ ਵਾਲੇ ਬਟਨਾਂ ਨੂੰ ਠੀਕ ਕਰੋ #2487 +• ਦੇਖਣ ਦੇ ਇਤਿਹਾਸ ਨੂੰ ਅਯੋਗ ਹੋਣ ਦੇ ਬਾਵਜੂਦ ਸਟੋਰ ਕੀਤੀ ਗਈ ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਠੀਕ ਕਰੋ +• ਸੂਚੀ ਵਿਊ ਵਿੱਚ ਪਲੇਬੈਕ ਸਥਿਤੀ ਕਾਰਨ ਘਟੀ ਹੋਈ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰੋ +• [ਐਕਸਟ੍ਰੈਕਟਰ] [YouTube] ਜਦੋਂ ਪਲੇਲਿਸਟਾਂ ਨਤੀਜਿਆਂ ਵਿੱਚ ਹੋਣ ਤਾਂ ਆਮ ਖੋਜ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/780.txt b/fastlane/metadata/android/pa/changelogs/780.txt index 999a24468..923a0410a 100644 --- a/fastlane/metadata/android/pa/changelogs/780.txt +++ b/fastlane/metadata/android/pa/changelogs/780.txt @@ -1 +1,11 @@ -0.17.3 ਵਿੱਚ ਬਦਲਾਅ ਸੁਧਾਰ • ਪਲੇਬੈਕ ਸਥਿਤੀਆਂ #2550 ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਫਾਈਲ ਪਿਕਰ #2591 ਵਿੱਚ ਲੁਕੀਆਂ ਹੋਈਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਦਿਖਾਓ • NewPipe #2488 ਨਾਲ ਖੋਲ੍ਹੇ ਜਾਣ ਵਾਲੇ `invidio.us` ਉਦਾਹਰਨਾਂ ਤੋਂ ਸਮਰਥਨ URL • `music.youtube.com` URLs TeamNewPipe/NewPipeExtractor#194 ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ ਸਥਿਰ • [YouTube] ਸਥਿਰ 'java.lang.IllegalArgumentException #192 • [YouTube] ਸਥਿਰ ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀਆਂ TeamNewPipe/NewPipeExtractor#195 • ਇੱਕ ਸਟ੍ਰੀਮ #2592 ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਵੇਲੇ ਐਂਡਰੌਇਡ ਪਾਈ ਵਿੱਚ ਸਥਿਰ ਪ੍ਰਦਰਸ਼ਨ ਸਮੱਸਿਆ +0.17.3 ਵਿੱਚ ਬਦਲਾਅ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਪਲੇਬੈਕ ਸਥਿਤੀਆਂ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ #2550 +• ਫਾਈਲ ਚੋਣਕਾਰ #2591 ਵਿੱਚ ਲੁਕੀਆਂ ਹੋਈਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਦਿਖਾਓ +• NewPipe #2488 ਨਾਲ ਖੋਲ੍ਹੇ ਜਾਣ ਵਾਲੇ `invidio.us` ਉਦਾਹਰਣਾਂ ਤੋਂ URL ਦਾ ਸਮਰਥਨ ਕਰੋ +• `music.youtube.com` URL ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ + +ਸਥਿਰ +• [YouTube] ਫਿਕਸਡ ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀਆਂ +• ਸਟ੍ਰੀਮ ਡਾਊਨਲੋਡ ਕਰਦੇ ਸਮੇਂ ਐਂਡਰਾਇਡ ਪਾਈ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਨ ਸਮੱਸਿਆ ਹੱਲ ਕੀਤੀ ਗਈ #2592 diff --git a/fastlane/metadata/android/pa/changelogs/790.txt b/fastlane/metadata/android/pa/changelogs/790.txt index f841801eb..28627c7ec 100644 --- a/fastlane/metadata/android/pa/changelogs/790.txt +++ b/fastlane/metadata/android/pa/changelogs/790.txt @@ -1 +1,11 @@ -ਸੁਧਾਰ • ਅੰਨ੍ਹੇ ਲੋਕਾਂ #2655 ਲਈ ਪਹੁੰਚਯੋਗਤਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਹੋਰ ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕਰੋ • ਡਾਉਨਲੋਡ ਫੋਲਡਰ ਸੈਟਿੰਗ ਦੀ ਭਾਸ਼ਾ ਨੂੰ ਵਧੇਰੇ ਇਕਸਾਰ ਅਤੇ ਘੱਟ ਅਸਪਸ਼ਟ #2637 ਬਣਾਓ ਸਥਿਰ • ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਬਲਾਕ ਵਿੱਚ ਆਖਰੀ ਬਾਈਟ #2646 ਡਾਊਨਲੋਡ ਕੀਤੀ ਗਈ ਹੈ • ਵੀਡੀਓ ਡਿਟੇਲ ਫਰੈਗਮੈਂਟ #2672 ਵਿੱਚ ਸਥਿਰ ਸਕ੍ਰੋਲਿੰਗ • ਡਬਲ ਸਰਚ ਕਲੀਅਰ ਬਾਕਸ ਐਨੀਮੇਸ਼ਨ ਨੂੰ ਇੱਕ #2695 ਵਿੱਚ ਹਟਾਓ • [SoundCloud] ਕਲਾਇਟ_ਆਈਡੀ ਐਕਸਟਰੈਕਸ਼ਨ #2745 ਨੂੰ ਠੀਕ ਕਰੋ ਵਿਕਾਸ • NewPipeExtractor ਤੋਂ ਵਿਰਾਸਤ ਵਿੱਚ ਮਿਲੀ ਗੁੰਮ ਨਿਰਭਰਤਾ ਨੂੰ NewPipe #2535 ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ • AndroidX #2685 'ਤੇ ਮਾਈਗ੍ਰੇਟ ਕਰੋ • ExoPlayer 2.10.6 #2697, #2736 ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ +ਸੁਧਾਰਿਆ ਗਿਆ +• ਹੋਰ ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕਰੋ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਬਲਾਕ ਵਿੱਚ ਆਖਰੀ ਬਾਈਟ ਡਾਊਨਲੋਡ ਕੀਤਾ ਗਿਆ ਹੈ #2646 +• ਵੀਡੀਓ ਵੇਰਵੇ ਵਾਲੇ ਟੁਕੜੇ #2672 ਵਿੱਚ ਸਕ੍ਰੌਲਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +• [SoundCloud] client_id ਐਕਸਟਰੈਕਸ਼ਨ #2745 ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ + +ਵਿਕਾਸ +• AndroidX 'ਤੇ ਮਾਈਗ੍ਰੇਟ ਕਰੋ +• ExoPlayer 2.10.6 'ਤੇ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/800.txt b/fastlane/metadata/android/pa/changelogs/800.txt index 53868c894..08940d095 100644 --- a/fastlane/metadata/android/pa/changelogs/800.txt +++ b/fastlane/metadata/android/pa/changelogs/800.txt @@ -1 +1,10 @@ -ਨਵਾਂ • P2P (#2201) [ਬੀਟਾ] ਤੋਂ ਬਿਨਾਂ PeerTube ਸਮਰਥਨ: ◦ PeerTube ਉਦਾਹਰਨਾਂ ਤੋਂ ਵੀਡੀਓ ਦੇਖੋ ਅਤੇ ਡਾਊਨਲੋਡ ਕਰੋ ◦ ਪੂਰੀ PeerTube ਸੰਸਾਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਉਦਾਹਰਨਾਂ ਸ਼ਾਮਲ ਕਰੋ ◦ Android 4.4 ਅਤੇ 7.1 'ਤੇ SSL ਹੈਂਡਸ਼ੇਕ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ ਜਦੋਂ ਕੁਝ ਖਾਸ ਮੌਕਿਆਂ 'ਤੇ ਪਹੁੰਚ ਕਰਦੇ ਸਮੇਂ ਨੈੱਟਵਰਕ ਗੜਬੜ ਹੋ ਜਾਂਦੀ ਹੈ। • ਡਾਊਨਲੋਡਰ (#2679): ◦ ਡਾਊਨਲੋਡ ETA ਦੀ ਗਣਨਾ ਕਰੋ ◦ ਓਪਸ (ਵੈਬ ਫਾਈਲਾਂ) ਨੂੰ ogg ਵਜੋਂ ਡਾਊਨਲੋਡ ਕਰੋ ◦ ਲੰਬੇ ਵਿਰਾਮ ਤੋਂ ਬਾਅਦ ਡਾਊਨਲੋਡ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਮਿਆਦ ਪੁੱਗ ਚੁੱਕੇ ਡਾਊਨਲੋਡ ਲਿੰਕਾਂ ਨੂੰ ਮੁੜ-ਹਾਸਲ ਕਰੋ ਸੁਧਾਰ • ਕਿਓਸਕਫ੍ਰੈਗਮੈਂਟ ਨੂੰ ਤਰਜੀਹੀ ਸਮਗਰੀ ਵਾਲੇ ਦੇਸ਼ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਤੋਂ ਜਾਣੂ ਕਰਵਾਓ ਅਤੇ ਸਾਰੀਆਂ ਮੁੱਖ ਟੈਬਾਂ #2742 ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ। • ਐਕਸਟਰੈਕਟਰ #2713 ਤੋਂ ਨਵੇਂ ਸਥਾਨਕਕਰਨ ਅਤੇ ਡਾਉਨਲੋਡਰ ਲਾਗੂਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰੋ • "ਡਿਫੌਲਟ ਕਿਓਸਕ" ਸਤਰ ਨੂੰ ਅਨੁਵਾਦਯੋਗ ਬਣਾਓ • ਬਲੈਕ ਥੀਮ #2569 ਲਈ ਬਲੈਕ ਨੈਵੀਗੇਸ਼ਨ ਪੱਟੀ ਸਥਿਰ • ਇੱਕ ਬੱਗ ਫਿਕਸ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਹਿਲਾ ਨਹੀਂ ਸਕਦਾ ਸੀ ਜੇਕਰ ਪੌਪਅੱਪ ਪਲੇਅਰ #2772 ਨੂੰ ਹਿਲਾਉਂਦੇ ਸਮੇਂ ਕੋਈ ਹੋਰ ਉਂਗਲ ਰੱਖੀ ਜਾਂਦੀ ਹੈ • ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਅਪਲੋਡਰ ਦੀ ਗੁੰਮਸ਼ੁਦਗੀ ਦੀ ਆਗਿਆ ਦਿਓ ਅਤੇ ਇਸ ਸਮੱਸਿਆ ਨਾਲ ਸਬੰਧਤ ਕ੍ਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ #2724, TeamNewPipe/NewPipeExtractor#219 • MediaCCC ਅਤੇ ਕੁਝ PeerTube ਉਦਾਹਰਨਾਂ #2792 ਨਾਲ TLS ਹੈਂਡਸ਼ੇਕ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ Android 4.4 ਡਿਵਾਈਸਾਂ (API 19/KitKat) 'ਤੇ TLS1.1/1.2 ਨੂੰ ਸਮਰੱਥ ਕਰਨਾ • [SoundCloud] ਫਿਕਸਡ ਕਲਾਈਂਟ_ਆਈਡੀ ਐਕਸਟ੍ਰੈਕਸ਼ਨ TeamNewPipe/NewPipeExtractor#217 • [SoundCloud] ਆਡੀਓ ਸਟ੍ਰੀਮ ਕੱਢਣ ਨੂੰ ਠੀਕ ਕਰੋ ਵਿਕਾਸ • ExoPlayer ਨੂੰ 2.10.8 #2791, #2816 'ਤੇ ਅੱਪਡੇਟ ਕਰੋ • Gradle ਨੂੰ 3.5.1 ਵਿੱਚ ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ Kotlin ਸਹਿਯੋਗ #2714 ਸ਼ਾਮਲ ਕਰੋ +ਨਵਾਂ +• P2P ਤੋਂ ਬਿਨਾਂ PeerTube ਸਹਾਇਤਾ (#2201) [ਬੀਟਾ]: + +◦ ਲੰਬੇ ਵਿਰਾਮ ਤੋਂ ਬਾਅਦ ਡਾਊਨਲੋਡ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਮਿਆਦ ਪੁੱਗ ਚੁੱਕੇ ਡਾਊਨਲੋਡ ਲਿੰਕਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰੋ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਪਸੰਦੀਦਾ ਸਮੱਗਰੀ ਦੇਸ਼ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਬਾਰੇ KioskFragment ਨੂੰ ਸੂਚਿਤ ਕਰੋ ਅਤੇ ਸਾਰੇ ਮੁੱਖ ਟੈਬਾਂ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ #2742 + +ਸਥਿਰ +• Android 4.4 ਡਿਵਾਈਸਾਂ (API 19/KitKat) 'ਤੇ TLS1.1/1.2 ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ diff --git a/fastlane/metadata/android/pa/changelogs/810.txt b/fastlane/metadata/android/pa/changelogs/810.txt index 96a2b9da5..d10bc6913 100644 --- a/fastlane/metadata/android/pa/changelogs/810.txt +++ b/fastlane/metadata/android/pa/changelogs/810.txt @@ -1 +1,11 @@ -ਨਵਾਂ • ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਦੇ ਸਮੇਂ ਲੌਕ ਸਕ੍ਰੀਨ 'ਤੇ ਵੀਡੀਓ ਥੰਬਨੇਲ ਦਿਖਾਓ ਸੁਧਾਰ • ਬੈਕਗ੍ਰਾਉਂਡ / ਪੌਪਅੱਪ ਬਟਨ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ 'ਤੇ ਕਤਾਰ ਵਿੱਚ ਸਥਾਨਕ ਪਲੇਲਿਸਟ ਸ਼ਾਮਲ ਕਰੋ • ਮੁੱਖ ਪੰਨਾ ਟੈਬਾਂ ਨੂੰ ਸਕ੍ਰੋਲ ਕਰਨ ਯੋਗ ਬਣਾਓ ਅਤੇ ਸਿਰਫ਼ ਇੱਕ ਟੈਬ ਹੋਣ 'ਤੇ ਲੁਕਾਓ • ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ ਸੂਚਨਾ ਥੰਬਨੇਲ ਅੱਪਡੇਟ ਦੀ ਸੀਮਾ ਮਾਤਰਾ • ਖਾਲੀ ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਲਈ ਡਮੀ ਥੰਬਨੇਲ ਸ਼ਾਮਲ ਕਰੋ • *.webm ਦੀ ਬਜਾਏ *.opus ਫਾਈਲ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ ਡਾਊਨਲੋਡ ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ "WebM Opus" ਦੀ ਬਜਾਏ ਫਾਰਮੈਟ ਲੇਬਲ ਵਿੱਚ "opus" ਦਿਖਾਓ • "ਡਾਊਨਲੋਡ" ਵਿੱਚ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਜਾਂ ਡਾਊਨਲੋਡ ਇਤਿਹਾਸ ਨੂੰ ਮਿਟਾਉਣ ਲਈ ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ • [YouTube] /c/shortened_url ਚੈਨਲ ਲਿੰਕਾਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ ਸਥਿਰ • NewPipe ਨਾਲ ਵੀਡੀਓ ਸਾਂਝਾ ਕਰਨ ਅਤੇ ਇਸ ਦੀਆਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸਿੱਧੇ ਡਾਊਨਲੋਡ ਕਰਨ ਵੇਲੇ ਕਈ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ • ਇਸ ਦੇ ਸਿਰਜਣ ਥ੍ਰੈਡ ਤੋਂ ਬਾਹਰ ਸਥਿਰ ਪਲੇਅਰ ਪਹੁੰਚ • ਸਥਿਰ ਖੋਜ ਨਤੀਜੇ ਪੇਜਿੰਗ • [YouTube] ਨਿਸ਼ਚਤ ਸਵਿਚਿੰਗ ਚਾਲੂ ਕਰਨ ਨਾਲ NPE ਹੁੰਦਾ ਹੈ • [YouTube] ਇੱਕ invidio.us url ਖੋਲ੍ਹਣ ਵੇਲੇ ਟਿੱਪਣੀਆਂ ਦੇਖਣ ਲਈ ਸਥਿਰ • [SoundCloud] ਅੱਪਡੇਟ ਕੀਤਾ client_id +ਨਵਾਂ +• ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਦੇ ਸਮੇਂ ਲਾਕ ਸਕ੍ਰੀਨ 'ਤੇ ਵੀਡੀਓ ਥੰਬਨੇਲ ਦਿਖਾਓ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਬੈਕਗ੍ਰਾਊਂਡ/ਪੌਪਅੱਪ ਬਟਨ ਨੂੰ ਦੇਰ ਤੱਕ ਦਬਾਉਣ 'ਤੇ ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ +• [YouTube] /c/shortened_url ਚੈਨਲ ਲਿੰਕਾਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• NewPipe 'ਤੇ ਵੀਡੀਓ ਸਾਂਝੇ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦੀਆਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸਿੱਧਾ ਡਾਊਨਲੋਡ ਕਰਨ ਵੇਲੇ ਕਈ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ +• ਖੋਜ ਨਤੀਜਿਆਂ ਦੀ ਪੇਜਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +• [SoundCloud] client_id ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/840.txt b/fastlane/metadata/android/pa/changelogs/840.txt index 745098496..d05907bd6 100644 --- a/fastlane/metadata/android/pa/changelogs/840.txt +++ b/fastlane/metadata/android/pa/changelogs/840.txt @@ -1 +1,10 @@ -ਨਵਾਂ • ਐਪ ਦੀ ਭਾਸ਼ਾ ਬਦਲਣ ਲਈ ਭਾਸ਼ਾ ਚੋਣਕਾਰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਪਲੇਅਰ ਸਮੇਟਣਯੋਗ ਮੀਨੂ ਵਿੱਚ ਕੋਡੀ ਬਟਨ 'ਤੇ ਭੇਜੋ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਲੰਬੀ ਪ੍ਰੈਸ 'ਤੇ ਟਿੱਪਣੀਆਂ ਨੂੰ ਕਾਪੀ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ ਹੈ ਸੁਧਾਰ • ਰੀਕੈਪਚਾ ਗਤੀਵਿਧੀ ਨੂੰ ਠੀਕ ਕਰੋ ਅਤੇ ਪ੍ਰਾਪਤ ਕੀਤੀਆਂ ਕੂਕੀਜ਼ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕਰੋ • ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਦੇਖਣ ਦਾ ਇਤਿਹਾਸ ਚਾਲੂ ਨਾ ਹੋਣ 'ਤੇ ਦਰਾਜ਼ ਦੇ ਹੱਕ ਵਿੱਚ ਡਾਟ-ਮੀਨੂ ਨੂੰ ਹਟਾਇਆ ਗਿਆ ਅਤੇ ਇਤਿਹਾਸ ਨੂੰ ਲੁਕਾਓ ਬਟਨ • Android 6 ਅਤੇ ਬਾਅਦ ਵਾਲੇ 'ਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਹੋਰ ਐਪਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਉੱਪਰ ਡਿਸਪਲੇ ਲਈ ਪੁੱਛੋ • BookmarkFragment ਵਿੱਚ ਲੰਮਾ-ਕਲਿੱਕ ਕਰਕੇ ਸਥਾਨਕ ਪਲੇਲਿਸਟ ਦਾ ਨਾਮ ਬਦਲੋ • ਕਈ PeerTube ਸੁਧਾਰ • ਕਈ ਅੰਗਰੇਜ਼ੀ ਸਰੋਤ ਸਤਰਾਂ ਨੂੰ ਸੁਧਾਰਿਆ ਗਿਆ ਹੈ ਸਥਿਰ • ਫਿਕਸਡ ਪਲੇਅਰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ ਹਾਲਾਂਕਿ ਇਹ ਉਦੋਂ ਰੋਕਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਵਿਕਲਪ "ਐਪ ਸਵਿੱਚ 'ਤੇ ਛੋਟਾ ਕਰੋ" ਯੋਗ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਨਿਊ ਪਾਈਪ ਨੂੰ ਛੋਟਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ • ਸੰਕੇਤ ਲਈ ਸ਼ੁਰੂਆਤੀ ਚਮਕ ਮੁੱਲ ਨੂੰ ਠੀਕ ਕਰੋ • ਸਥਿਰ .srt ਉਪਸਿਰਲੇਖ ਡਾਉਨਲੋਡ ਜਿਸ ਵਿੱਚ ਸਾਰੇ ਲਾਈਨ ਬ੍ਰੇਕ ਨਹੀਂ ਹਨ • SD ਕਾਰਡ 'ਤੇ ਸਥਿਰ ਡਾਊਨਲੋਡ ਅਸਫਲ ਹੋ ਰਿਹਾ ਹੈ ਕਿਉਂਕਿ ਕੁਝ Android 5 ਡਿਵਾਈਸਾਂ CTF ਅਨੁਕੂਲ ਨਹੀਂ ਹਨ • Android KitKat 'ਤੇ ਸਥਿਰ ਡਾਊਨਲੋਡਿੰਗ • ਸਥਿਰ ਭ੍ਰਿਸ਼ਟ ਵੀਡੀਓ .mp4 ਫਾਈਲ ਨੂੰ ਆਡੀਓ ਫਾਈਲ ਵਜੋਂ ਮਾਨਤਾ ਦਿੱਤੀ ਜਾ ਰਹੀ ਹੈ • ਗਲਤ ਚੀਨੀ ਭਾਸ਼ਾ ਕੋਡ ਸਮੇਤ, ਮਲਟੀਪਲ ਸਥਾਨੀਕਰਨ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ • [YouTube] ਵਰਣਨ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕਰਨ ਯੋਗ ਹਨ +ਨਵਾਂ +• ਐਪ ਦੀ ਭਾਸ਼ਾ ਬਦਲਣ ਲਈ ਇੱਕ ਭਾਸ਼ਾ ਚੋਣਕਾਰ ਜੋੜਿਆ ਗਿਆ +• ਪਲੇਅਰ ਦੇ ਕੋਲੈਪਸੀਬਲ ਮੀਨੂ ਵਿੱਚ ਕੋਡੀ ਨੂੰ ਭੇਜੋ ਬਟਨ ਜੋੜਿਆ ਗਿਆ +• ਟਿੱਪਣੀਆਂ ਦੀ ਕਾਪੀ ਕਰਨ ਲਈ ਇੱਕ ਲੰਮਾ-ਦਬਾਓ ਵਿਸ਼ੇਸ਼ਤਾ ਜੋੜਿਆ ਗਿਆ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਰੀਕੈਪਚਾ ਗਤੀਵਿਧੀ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਅਤੇ ਪ੍ਰਾਪਤ ਕੂਕੀਜ਼ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਐਂਡਰਾਇਡ ਕਿਟਕੈਟ 'ਤੇ ਡਾਊਨਲੋਡਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/920.txt b/fastlane/metadata/android/pa/changelogs/920.txt index 04fc07937..94b1e74a0 100644 --- a/fastlane/metadata/android/pa/changelogs/920.txt +++ b/fastlane/metadata/android/pa/changelogs/920.txt @@ -1 +1,9 @@ -ਸੁਧਾਰ • ਸਟ੍ਰੀਮ ਗਰਿੱਡ ਆਈਟਮਾਂ 'ਤੇ ਅੱਪਲੋਡ ਦੀ ਮਿਤੀ ਅਤੇ ਦੇਖਣ ਦੀ ਗਿਣਤੀ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ • ਦਰਾਜ਼ ਹੈਡਰ ਲੇਆਉਟ ਲਈ ਸੁਧਾਰ ਸਥਿਰ • ਏਪੀਆਈ 19 'ਤੇ ਕ੍ਰੈਸ਼ ਹੋਣ ਕਾਰਨ ਫਿਕਸਡ ਮਿਊਟ ਬਟਨ • ਲੰਬੇ 1080p 60fps ਵੀਡੀਓ ਦੀ ਸਥਿਰ ਡਾਊਨਲੋਡਿੰਗ +ਸੁਧਾਰਿਆ ਗਿਆ + +• ਸਟ੍ਰੀਮ ਗਰਿੱਡ ਆਈਟਮਾਂ 'ਤੇ ਅਪਲੋਡ ਮਿਤੀ ਅਤੇ ਵਿਯੂ ਗਿਣਤੀ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਦਰਾਜ਼ ਹੈਡਰ ਲੇਆਉਟ ਲਈ ਸੁਧਾਰ + +ਠੀਕ ਕੀਤਾ ਗਿਆ + +• API 19 'ਤੇ ਕਰੈਸ਼ ਹੋਣ ਵਾਲੇ ਮਿਊਟ ਬਟਨ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਲੰਬੇ 1080p 60fps ਵੀਡੀਓਜ਼ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨਾ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/930.txt b/fastlane/metadata/android/pa/changelogs/930.txt index a067bfb58..96fc7d0b5 100644 --- a/fastlane/metadata/android/pa/changelogs/930.txt +++ b/fastlane/metadata/android/pa/changelogs/930.txt @@ -1 +1,14 @@ -ਨਵਾਂ • YouTube ਸੰਗੀਤ 'ਤੇ ਖੋਜੋ • ਬੁਨਿਆਦੀ Android TV ਸਮਰਥਨ ਸੁਧਾਰ • ਇੱਕ ਸਥਾਨਕ ਪਲੇਲਿਸਟ ਤੋਂ ਸਾਰੇ ਦੇਖੇ ਗਏ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ ਹੈ • ਕ੍ਰੈਸ਼ ਹੋਣ ਦੀ ਬਜਾਏ ਜਦੋਂ ਸਮੱਗਰੀ ਅਜੇ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ ਤਾਂ ਸੁਨੇਹਾ ਦਿਖਾਓ • ਚੁਟਕੀ ਇਸ਼ਾਰਿਆਂ ਨਾਲ ਪੌਪਅੱਪ ਪਲੇਅਰ ਦਾ ਆਕਾਰ ਬਦਲਿਆ ਗਿਆ ਹੈ • ਬੈਕਗ੍ਰਾਊਂਡ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ ਅਤੇ ਚੈਨਲ ਵਿੱਚ ਪੌਪਅੱਪ ਬਟਨਾਂ 'ਤੇ ਸਟ੍ਰੀਮ ਨੂੰ ਐਨਕਿਊ ਕਰੋ • ਦਰਾਜ਼ ਸਿਰਲੇਖ ਦੇ ਸਿਰਲੇਖ ਦੇ ਆਕਾਰ ਨੂੰ ਸੰਭਾਲਣ ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ ਗਿਆ ਹੈ ਸਥਿਰ • ਨਿਸ਼ਚਿਤ ਉਮਰ ਪ੍ਰਤਿਬੰਧਿਤ ਸਮੱਗਰੀ ਸੈਟਿੰਗ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀ • ਕੁਝ ਖਾਸ ਕਿਸਮ ਦੇ reCAPTCHA ਫਿਕਸ ਕੀਤੇ ਗਏ ਹਨ • ਪਲੇਲਿਸਟ `ਨੱਲ` ਹੋਣ 'ਤੇ ਬੁੱਕਮਾਰਕ ਖੋਲ੍ਹਣ ਵੇਲੇ ਸਥਿਰ ਕਰੈਸ਼ • ਨੈੱਟਵਰਕ ਸੰਬੰਧੀ ਅਪਵਾਦਾਂ ਦੀ ਸਥਿਰ ਖੋਜ • ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਫਰੈਗਮੈਂਟ ਵਿੱਚ ਗਰੁੱਪ ਸੌਰਟ ਬਟਨ ਦੀ ਸਥਿਰ ਦਿੱਖ ਅਤੇ ਹੋਰ +ਨਵਾਂ +• YouTube ਸੰਗੀਤ ਖੋਜੋ +• ਮੁੱਢਲਾ Android TV ਸਮਰਥਨ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਤੋਂ ਸਾਰੇ ਦੇਖੇ ਗਏ ਵੀਡੀਓ ਹਟਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਜਦੋਂ ਸਮੱਗਰੀ ਵਰਤਮਾਨ ਵਿੱਚ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ ਤਾਂ ਕ੍ਰੈਸ਼ ਹੋਣ ਦੀ ਬਜਾਏ ਇੱਕ ਸੁਨੇਹਾ ਦਿਖਾਓ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਉਮਰ-ਪ੍ਰਤੀਬੰਧਿਤ ਸਮੱਗਰੀ ਸੈਟਿੰਗਾਂ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ। + +ਕੁਝ reCAPTCHA ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ। + +ਅਤੇ ਹੋਰ ਵੀ diff --git a/fastlane/metadata/android/pa/changelogs/940.txt b/fastlane/metadata/android/pa/changelogs/940.txt index b9d9b3fdf..3ea03ad03 100644 --- a/fastlane/metadata/android/pa/changelogs/940.txt +++ b/fastlane/metadata/android/pa/changelogs/940.txt @@ -1 +1,14 @@ -ਨਵਾਂ • SoundCloud ਟਿੱਪਣੀਆਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ • YouTube ਪ੍ਰਤਿਬੰਧਿਤ ਮੋਡ ਸੈਟਿੰਗ ਸ਼ਾਮਲ ਕਰੋ • PeerTube ਮੂਲ ਚੈਨਲ ਦੇ ਵੇਰਵੇ ਦਿਖਾਓ ਸੁਧਾਰ • ਸਿਰਫ਼ ਸਮਰਥਿਤ ਸੇਵਾਵਾਂ ਲਈ ਕੋਰ ਬਟਨ ਦਿਖਾਓ • ਨੈਵੀਗੇਸ਼ਨਬਾਰ ਜਾਂ ਸਟੇਟਸਬਾਰ ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਪਲੇਅਰ ਸੰਕੇਤਾਂ ਨੂੰ ਬਲਾਕ ਕਰੋ • ਸੇਵਾ ਦੇ ਰੰਗ ਦੇ ਆਧਾਰ 'ਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਗਾਹਕ ਬਣੋ ਬਟਨਾਂ ਦਾ ਪਿਛੋਕੜ ਰੰਗ ਬਦਲੋ ਸਥਿਰ • ਡਾਉਨਲੋਡ ਡਾਇਲਾਗ ਫ੍ਰੀਜ਼ ਨੂੰ ਠੀਕ ਕਰੋ • ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ ਬਟਨ ਹੁਣ ਅਸਲ ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਦਾ ਹੈ • ਵੀਡੀਓ ਖੋਲ੍ਹਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਨੂੰ ਠੀਕ ਕਰੋ ਅਤੇ "ਇਸ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" ਅਤੇ ਹੋਰ +ਨਵਾਂ +• SoundCloud ਟਿੱਪਣੀਆਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ +• YouTube ਪ੍ਰਤਿਬੰਧਿਤ ਮੋਡ ਸੈਟਿੰਗ ਸ਼ਾਮਲ ਕਰੋ +• PeerTube ਪੇਰੈਂਟ ਚੈਨਲ ਵੇਰਵੇ ਦਿਖਾਓ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਸਿਰਫ਼ ਸਮਰਥਿਤ ਸੇਵਾਵਾਂ ਲਈ Kore ਬਟਨ ਦਿਖਾਓ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਇੱਕ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ ਜਿੱਥੇ ਡਾਊਨਲੋਡ ਡਾਇਲਾਗ ਫ੍ਰੀਜ਼ ਹੋ ਰਿਹਾ ਸੀ +• ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ ਬਟਨ ਹੁਣ ਅਸਲ ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਦਾ ਹੈ +• ਵੀਡੀਓ ਖੋਲ੍ਹਣ ਵੇਲੇ ਕਰੈਸ਼ ਅਤੇ "ਇਸ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +ਅਤੇ ਹੋਰ diff --git a/fastlane/metadata/android/pa/changelogs/951.txt b/fastlane/metadata/android/pa/changelogs/951.txt index 2b1cd7933..f4dd14071 100644 --- a/fastlane/metadata/android/pa/changelogs/951.txt +++ b/fastlane/metadata/android/pa/changelogs/951.txt @@ -1,13 +1,13 @@ -ਨਵਾਂ -• ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਗਾਹਕੀ ਚੋਣਕਾਰ ਲਈ ਖੋਜ ਸ਼ਾਮਲ ਕਰੋ -• ਸਿਰਫ਼ ਗੈਰ-ਗਰੁੱਪ ਕੀਤੀਆਂ ਗਾਹਕੀਆਂ ਨੂੰ ਦਿਖਾਉਣ ਲਈ ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਫਿਲਟਰ ਸ਼ਾਮਲ ਕਰੋ -• ਪਲੇਲਿਸਟ ਟੈਬ ਨੂੰ ਮੁੱਖ ਪੰਨੇ 'ਤੇ ਸ਼ਾਮਲ ਕਰੋ -• ਬੈਕਗ੍ਰਾਊਂਡ/ਪੌਪ-ਅੱਪ ਪਲੇਅਰ ਕਤਾਰ ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ/ਰਿਵਾਈਂਡ ਕਰੋ -• ਖੋਜ ਸੁਝਾਅ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ: ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਹੈ ਅਤੇ ਇਸ ਲਈ ਨਤੀਜਾ ਦਿਖਾ ਰਿਹਾ ਹੈ -ਸੁਧਾਰ -• ਮਿਕਸਡ ਫਾਈਲਾਂ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਮੈਟਾਡੇਟਾ ਲਿਖਣਾ ਛੱਡੋ • ਕਤਾਰ ਤੋਂ ਅਸਫਲ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਨਾ ਹਟਾਓ -• ਟੂਲਬਾਰ ਦੇ ਰੰਗ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਸਥਿਤੀ ਪੱਟੀ ਦਾ ਰੰਗ ਅੱਪਡੇਟ ਕਰੋ +ਨਵਾਂ +• ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਚੋਣਕਾਰ ਲਈ ਖੋਜ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਸਿਰਫ਼ ਅਣ-ਗਰੁੱਪ ਕੀਤੀਆਂ ਗਾਹਕੀਆਂ ਦਿਖਾਉਣ ਲਈ ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਇੱਕ ਫਿਲਟਰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ +• ਮੁੱਖ ਪੰਨੇ 'ਤੇ ਇੱਕ ਪਲੇਲਿਸਟ ਟੈਬ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ -ਠੀਕ ਕੀਤਾ -• ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਸੰਚਤ ਤਰੁੱਟੀਆਂ ਦੇ ਕਾਰਨ ਫਿਕਸਡ ਆਡੀਓ/ਵੀਡੀਓ ਡੀਸਿੰਕ -• [PeerTube] ਮਿਟਾਈਆਂ ਗਈਆਂ ਟਿੱਪਣੀਆਂ ਨੂੰ ਸੰਭਾਲੋ ਅਤੇ ਹੋਰ +ਸੁਧਾਰਿਆ ਗਿਆ +• ਮਕਸਡ ਫਾਈਲਾਂ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਮੈਟਾਡੇਟਾ ਲਿਖਣਾ ਬੰਦ ਕੀਤਾ ਗਿਆ +• ਕਤਾਰ ਤੋਂ ਅਸਫਲ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਨਾ ਹਟਾਓ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਸੰਚਤ ਗਲਤੀਆਂ ਕਾਰਨ ਆਡੀਓ/ਵੀਡੀਓ ਡੀਸਿੰਕ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ + +ਅਤੇ ਹੋਰ diff --git a/fastlane/metadata/android/pa/changelogs/954.txt b/fastlane/metadata/android/pa/changelogs/954.txt index 3eb8dd68b..b5b0e78d8 100644 --- a/fastlane/metadata/android/pa/changelogs/954.txt +++ b/fastlane/metadata/android/pa/changelogs/954.txt @@ -1,8 +1,9 @@ -• ਨਵਾਂ ਐਪਲੀਕੇਸ਼ਨ ਵਰਕਫਲੋ: ਵੇਰਵੇ ਵਾਲੇ ਪੰਨੇ 'ਤੇ ਵੀਡੀਓ ਚਲਾਓ, ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰਨ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ -• ਮੀਡੀਆ ਸਟਾਈਲ ਸੂਚਨਾਵਾਂ: ਸੂਚਨਾਵਾਂ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਕਾਰਵਾਈਆਂ, ਪ੍ਰਦਰਸ਼ਨ ਸੁਧਾਰ -• ਡੈਸਕਟੌਪ ਐਪ ਦੇ ਤੌਰ 'ਤੇ NewPipe ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਮੂਲ ਰੀਸਾਈਜ਼ ਕਰਨਾ +• ਨਵਾਂ ਐਪ ਵਰਕਫਲੋ: ਵੇਰਵੇ ਵਾਲੇ ਪੰਨੇ 'ਤੇ ਵੀਡੀਓ ਚਲਾਓ, ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰਨ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ +• ਮੀਡੀਆਸਟਾਈਲ ਸੂਚਨਾਵਾਂ: ਸੂਚਨਾਵਾਂ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਕਾਰਵਾਈਆਂ, ਪ੍ਰਦਰਸ਼ਨ ਸੁਧਾਰ +• ਡੈਸਕਟੌਪ ਐਪ ਦੇ ਤੌਰ 'ਤੇ NewPipe ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਮੂਲ ਆਕਾਰ ਬਦਲਣਾ -• ਇੱਕ ਅਸਮਰਥਿਤ URL ਟੋਸਟ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਖੁੱਲੇ ਵਿਕਲਪਾਂ ਨਾਲ ਡਾਇਲਾਗ ਦਿਖਾਓ -• ਜਦੋਂ ਰਿਮੋਟ ਨੂੰ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਤਾਂ ਖੋਜ ਸੁਝਾਅ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ -• ਡਿਫ਼ਾਲਟ ਵੀਡੀਓ ਗੁਣਵੱਤਾ ਨੂੰ 720p60 (ਇਨ-ਐਪ ਪਲੇਅਰ) ਅਤੇ 480p (ਪੌਪ-ਅੱਪ ਪਲੇਅਰ) ਤੱਕ ਵਧਾ ਦਿੱਤਾ ਗਿਆ ਹੈ -• ਬਹੁਤ ਸਾਰੇ ਬੱਗ ਫਿਕਸ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ +• ਇੱਕ ਅਸਮਰਥਿਤ URL ਟੋਸਟ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਖੁੱਲ੍ਹੇ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਇੱਕ ਡਾਇਲਾਗ ਦਿਖਾਓ +• ਰਿਮੋਟ ਸੁਝਾਅ ਉਪਲਬਧ ਨਾ ਹੋਣ 'ਤੇ ਸੁਧਾਰਾਂ ਦਾ ਅਨੁਭਵ ਕਰੋ +• ਡਿਫੌਲਟ ਵੀਡੀਓ ਗੁਣਵੱਤਾ 720p60 (ਇਨ-ਐਪ ਪਲੇਅਰ) ਅਤੇ 480p (ਪੌਪ-ਅੱਪ ਪਲੇਅਰ) ਤੱਕ ਵਧਾ ਦਿੱਤੀ ਗਈ + +• ਬੱਗ ਫਿਕਸ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ diff --git a/fastlane/metadata/android/pa/changelogs/957.txt b/fastlane/metadata/android/pa/changelogs/957.txt index eb66dacbc..2cf56525d 100644 --- a/fastlane/metadata/android/pa/changelogs/957.txt +++ b/fastlane/metadata/android/pa/changelogs/957.txt @@ -1,10 +1,7 @@ -• ਖਾਸ ਐਨਕਿਊ ਕਿਰਿਆਵਾਂ ਨੂੰ ਇੱਕ ਵਿੱਚ ਜੋੜੋ -• ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਦੇ ਸੰਕੇਤ -• reCAPTCHA ਕੂਕੀਜ਼ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਦਿਓ -• ਨੋਟੀਫਿਕੇਸ਼ਨ ਨੂੰ ਰੰਗ ਨਾ ਕਰਨ ਦਾ ਵਿਕਲਪ -• ਅਨੰਤ ਬਫਰਿੰਗ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਵਿਡੀਓ ਵੇਰਵਿਆਂ ਨੂੰ ਕਿਵੇਂ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਇਸ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ, ਨਿਊਪਾਈਪ ਨਾਲ ਸਾਂਝਾ ਕਰਨ ਵੇਲੇ ਬੱਗੀ ਵਿਵਹਾਰ ਅਤੇ ਹੋਰ ਅਸੰਗਤਤਾਵਾਂ -• YouTube ਵੀਡੀਓਜ਼ ਦੀ ਗਤੀ ਵਧਾਓ ਅਤੇ ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਨੂੰ ਠੀਕ ਕਰੋ -• ਫਾਸਟ ਫਾਰਵਰਡ/ਰਿਵਾਇੰਡ 'ਤੇ ਕਰੈਸ਼ ਨੂੰ ਠੀਕ ਕਰੋ -• ਥੰਬਨੇਲ ਖਿੱਚ ਕੇ ਸੂਚੀਆਂ ਨੂੰ ਮੁੜ ਵਿਵਸਥਿਤ ਨਾ ਕਰੋ -• ਪੌਪਅੱਪ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਹਮੇਸ਼ਾ ਯਾਦ ਰੱਖੋ -• ਸੰਤਾਲੀ ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰੋ +• ਖਾਸ NQE ਕਿਰਿਆਵਾਂ ਨੂੰ ਇੱਕ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ। +• ਦੋ-ਉਂਗਲਾਂ ਵਾਲੇ ਇਸ਼ਾਰੇ ਨਾਲ ਵੀਡੀਓ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨਾ। +• reCOPTCHA ਕੂਕੀਜ਼ ਨੂੰ ਹਟਾਉਣ ਦੀ ਆਗਿਆ ਦੇਣਾ। +• ਸੂਚਨਾਵਾਂ ਨੂੰ ਰੰਗੀਨ ਨਾ ਕਰਨ ਦਾ ਵਿਕਲਪ। +• NewPipe 'ਤੇ ਸਾਂਝਾ ਕਰਦੇ ਸਮੇਂ ਅਨੰਤ ਬਫਰਿੰਗ, ਗਲਤੀਆਂ ਅਤੇ ਹੋਰ ਅਸੰਗਤੀਆਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ। +• YouTube ਵੀਡੀਓ ਨੂੰ ਤੇਜ਼ ਕੀਤਾ ਗਿਆ ਅਤੇ ਉਮਰ-ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਨੂੰ ਬਿਹਤਰ ਬਣਾਇਆ ਗਿਆ। +• ਫਾਸਟ ਫਾਰਵਰਡ/ਰਿਵਾਈਂਡ 'ਤੇ ਕਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/964.txt b/fastlane/metadata/android/pa/changelogs/964.txt index 85dc2c151..e94595673 100644 --- a/fastlane/metadata/android/pa/changelogs/964.txt +++ b/fastlane/metadata/android/pa/changelogs/964.txt @@ -1 +1,6 @@ -• ਪਲੇਅਰ ਨਿਯੰਤਰਣ ਵਿੱਚ ਅਧਿਆਵਾਂ ਲਈ ਸਮਰਥਨ ਜੋੜਿਆ ਗਿਆ • [PeerTube] ਸੇਪੀਆ ਖੋਜ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ • ਵੀਡੀਓ ਵੇਰਵੇ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਸ਼ੇਅਰ ਬਟਨ ਨੂੰ ਮੁੜ-ਜੋੜਿਆ ਗਿਆ ਅਤੇ ਟੈਬ ਲੇਆਉਟ ਵਿੱਚ ਸਟ੍ਰੀਮ ਵਰਣਨ ਨੂੰ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ • ਜੇਕਰ ਚਮਕ ਦਾ ਸੰਕੇਤ ਅਸਮਰੱਥ ਹੈ ਤਾਂ ਚਮਕ ਨੂੰ ਬਹਾਲ ਕਰਨਾ ਬੰਦ ਕਰੋ • ਕੋਡੀ 'ਤੇ ਵੀਡੀਓ ਚਲਾਉਣ ਲਈ ਸੂਚੀ ਆਈਟਮ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ • ਕੁਝ ਡਿਵਾਈਸਾਂ 'ਤੇ ਕੋਈ ਡਿਫੌਲਟ ਬ੍ਰਾਊਜ਼ਰ ਸੈੱਟ ਨਾ ਹੋਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਦਾ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਸ਼ੇਅਰ ਡਾਇਲਾਗਸ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ • ਫੁੱਲਸਕ੍ਰੀਨ ਪਲੇਅਰ ਵਿੱਚ ਹਾਰਡਵੇਅਰ ਸਪੇਸ ਬਟਨ ਨਾਲ ਪਲੇ/ਪੌਜ਼ ਨੂੰ ਟੌਗਲ ਕਰੋ • [media.ccc.de] ਕਈ ਫਿਕਸ ਅਤੇ ਸੁਧਾਰ +• ਪਲੇਅਰ ਕੰਟਰੋਲਾਂ ਵਿੱਚ ਚੈਪਟਰਾਂ ਲਈ ਸਮਰਥਨ ਜੋੜਿਆ ਗਿਆ +• [PeerTube] ਸੇਪੀਆ ਖੋਜ ਜੋੜਿਆ ਗਿਆ +• ਵੀਡੀਓ ਵੇਰਵੇ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਸ਼ੇਅਰ ਬਟਨ ਨੂੰ ਦੁਬਾਰਾ ਜੋੜਿਆ ਗਿਆ ਅਤੇ ਸਟ੍ਰੀਮ ਵਰਣਨ ਨੂੰ ਟੈਬ ਲੇਆਉਟ ਵਿੱਚ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ +• ਜੇਕਰ ਚਮਕ ਸੰਕੇਤ ਅਯੋਗ ਹੈ ਤਾਂ ਚਮਕ ਨੂੰ ਬਹਾਲ ਕਰਨਾ ਅਯੋਗ ਕਰੋ +• ਕੋਡੀ 'ਤੇ ਵੀਡੀਓ ਚਲਾਉਣ ਲਈ ਸੂਚੀ ਆਈਟਮ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਕੁਝ ਡਿਵਾਈਸਾਂ 'ਤੇ ਕੋਈ ਡਿਫੌਲਟ ਬ੍ਰਾਊਜ਼ਰ ਸੈੱਟ ਨਾ ਹੋਣ 'ਤੇ ਕਰੈਸ਼ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/975.txt b/fastlane/metadata/android/pa/changelogs/975.txt index c866df1e2..fe23991c7 100644 --- a/fastlane/metadata/android/pa/changelogs/975.txt +++ b/fastlane/metadata/android/pa/changelogs/975.txt @@ -3,14 +3,11 @@ • ਅਯੋਗ ਟਿੱਪਣੀਆਂ ਦਾ ਪਤਾ ਲਗਾਓ • ਫੀਡ ਆਈਟਮ ਨੂੰ ਦੇਖੇ ਗਏ ਵਜੋਂ ਨਿਸ਼ਾਨਬੱਧ ਕਰਨ ਦਿਓ • ਟਿੱਪਣੀ ਦਿਲ ਦਿਖਾਓ - ਸੁਧਾਰ • ਮੈਟਾਡੇਟਾ ਅਤੇ ਟੈਗਸ ਲੇਆਉਟ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ • UI ਭਾਗਾਂ 'ਤੇ ਸੇਵਾ ਰੰਗ ਲਾਗੂ ਕਰੋ ਠੀਕ ਕੀਤਾ • ਮਿੰਨੀ ਪਲੇਅਰ ਵਿੱਚ ਥੰਬਨੇਲ ਠੀਕ ਕਰੋ • ਡੁਪਲੀਕੇਟ ਕਤਾਰ ਆਈਟਮਾਂ 'ਤੇ ਬੇਅੰਤ ਬਫਰਿੰਗ ਨੂੰ ਠੀਕ ਕਰੋ -• ਕੁਝ ਪਲੇਅਰ ਫਿਕਸ ਜਿਵੇਂ ਰੋਟੇਸ਼ਨ ਅਤੇ ਤੇਜ਼ੀ ਨਾਲ ਬੰਦ ਹੋਣਾ -• ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਲੋਡ ਕੀਤੇ ਬਾਕੀ ਬਚੇ ReCAPTCHA ਨੂੰ ਠੀਕ ਕਰੋ -• ਫੀਡ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਵੇਲੇ ਕਲਿੱਕਾਂ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ +• ਕੁਝ ਪਲੇਅਰ ਫਿਕਸ • ਕੁਝ ਡਾਊਨਲੋਡਰ ਕਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/976.txt b/fastlane/metadata/android/pa/changelogs/976.txt index a1a1354ca..1f2a70887 100644 --- a/fastlane/metadata/android/pa/changelogs/976.txt +++ b/fastlane/metadata/android/pa/changelogs/976.txt @@ -1,10 +1 @@ -• ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਿੱਚ ਪਲੇਅਰ ਨੂੰ ਸਿੱਧਾ ਖੋਲ੍ਹਣ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ -• ਇਹ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਕਿ ਕਿਸ ਕਿਸਮ ਦੇ ਖੋਜ ਸੁਝਾਅ ਦਿਖਾਉਣੇ ਹਨ -• ਗੂੜ੍ਹਾ ਥੀਮ ਹੁਣ ਗਹਿਰਾ ਗੂੜ੍ਹਾ + ਗੂੜ੍ਹਾ ਸਪਲੈਸ਼ ਸਕ੍ਰੀਨ ਜੋੜਿਆ ਗਿਆ ਹੈ -• ਅਣਚਾਹੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਲੇਟੀ ਕਰਨ ਲਈ ਬਿਹਤਰ ਫ਼ਾਈਲ ਚੋਣਕਾਰ -• ਸਥਿਰ YouTube ਗਾਹਕੀ ਆਯਾਤ - -• ਇੱਕ ਸਟ੍ਰੀਮ ਨੂੰ ਮੁੜ ਚਲਾਉਣ ਲਈ ਮੁੜ-ਪਲੇਅ ਬਟਨ 'ਤੇ ਟੈਪ ਕਰਨ ਦੀ ਲੋੜ ਹੈ -• ਸਥਿਰ ਸਮਾਪਤੀ ਆਡੀਓ ਸੈਸ਼ਨ -• [Android TV] DPad ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਸਥਿਰ ਲੰਬੀ ਸੀਕਬਾਰ ਜੰਪ -ਹੋਰ ਤਬਦੀਲੀਆਂ ਦੇਖਣ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ਟੈਬ ਤੋਂ ਚੇਂਜਲੌਗ (ਅਤੇ ਬਲੌਗ ਪੋਸਟ) ਦੇਖੋ। +• ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਿੱਚ ਪਲੇਅਰ ਨੂੰ ਸਿੱਧਾ ਖੋਲ੍ਹਣ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਇਹ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਕਿ ਕਿਸ ਕਿਸਮ ਦੇ ਖੋਜ ਸੁਝਾਅ ਦਿਖਾਉਣੇ ਹਨ • ਗੂੜ੍ਹਾ ਥੀਮ ਹੁਣ ਗੂੜ੍ਹਾ + ਗੂੜ੍ਹਾ ਸਪਲੈਸ਼ ਸਕ੍ਰੀਨ ਜੋੜਿਆ ਗਿਆ ਹੈ • ਅਣਚਾਹੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਲੇਟੀ ਕਰਨ ਲਈ ਬਿਹਤਰ ਫ਼ਾਈਲ ਚੋਣਕਾਰ • ਸਥਿਰ YouTube ਗਾਹਕੀ ਆਯਾਤ • ਇੱਕ ਸਟ੍ਰੀਮ ਨੂੰ ਮੁੜ ਚਲਾਉਣ ਲਈ ਮੁੜ-ਪਲੇਅ ਬਟਨ 'ਤੇ ਟੈਪ ਕਰਨ ਦੀ ਲੋੜ ਹੈ • ਸਥਿਰ ਸਮਾਪਤੀ ਆਡੀਓ ਸੈਸ਼ਨ • [Android TV] DPad ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਸਥਿਰ ਲੰਬੀ ਸੀਕਬਾਰ ਜੰਪ ਹੋਰ ਤਬਦੀਲੀਆਂ ਦੇਖਣ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ਟੈਬ ਤੋਂ ਚੇਂਜਲੌਗ (ਅਤੇ ਬਲੌਗ ਪੋਸਟ) ਦੇਖੋ। diff --git a/fastlane/metadata/android/pa/changelogs/986.txt b/fastlane/metadata/android/pa/changelogs/986.txt index b072d6cb9..3766ca8d1 100644 --- a/fastlane/metadata/android/pa/changelogs/986.txt +++ b/fastlane/metadata/android/pa/changelogs/986.txt @@ -1,15 +1,15 @@ ਨਵਾਂ -• ਨਵੀਆਂ ਸਟ੍ਰੀਮਾਂ ਲਈ ਸੂਚਨਾਵਾਂ -• ਬੈਕਗ੍ਰਾਊਂਡ ਅਤੇ ਵੀਡੀਓ ਪਲੇਅਰਾਂ ਵਿਚਕਾਰ ਅਰਾਮ ਨਾਲ ਤਬਦੀਲੀ -• ਸੈਮੀਟੋਨਸ ਦੁਆਰਾ ਪਿੱਚ ਬਦਲੋ -• ਇੱਕ ਪਲੇਲਿਸਟ ਵਿੱਚ ਮੁੱਖ ਪਲੇਅਰ ਕਤਾਰ ਜੋੜੋ +• ਨਵੀਆਂ ਸਟ੍ਰੀਮਾਂ ਲਈ ਸੂਚਨਾਵਾਂ +• ਬੈਕਗ੍ਰਾਊਂਡ ਅਤੇ ਵੀਡੀਓ ਪਲੇਅਰਾਂ ਵਿਚਕਾਰ ਅਰਾਮ ਨਾਲ ਤਬਦੀਲੀ +• ਸੈਮੀਟੋਨਸ ਦੁਆਰਾ ਪਿੱਚ ਬਦਲੋ +• ਇੱਕ ਪਲੇਲਿਸਟ ਵਿੱਚ ਮੁੱਖ ਪਲੇਅਰ ਕਤਾਰ ਜੋੜੋ ਸੁਧਾਰ -• ਸਪੀਡ/ਪਿਚ ਸਟੈਪ ਦਾ ਆਕਾਰ ਯਾਦ ਰੱਖੋ -• ਵੀਡੀਓ ਪਲੇਅਰ ਵਿੱਚ ਸ਼ੁਰੂਆਤੀ ਲੰਬੇ ਬਫਰਿੰਗ ਨੂੰ ਘੱਟ ਕਰੋ • Android TV ਲਈ ਪਲੇਅਰ UI ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ +• ਸਪੀਡ/ਪਿਚ ਸਟੈਪ ਦਾ ਆਕਾਰ ਯਾਦ ਰੱਖੋ +• ਵੀਡੀਓ ਪਲੇਅਰ ਵਿੱਚ ਸ਼ੁਰੂਆਤੀ ਲੰਬੇ ਬਫਰਿੰਗ ਨੂੰ ਘੱਟ ਕਰੋ +• Android TV ਲਈ ਪਲੇਅਰ UI ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ • ਸਾਰੀਆਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਮਿਟਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ -ਠੀਕ ਕੀਤਾ -• ਮੀਡੀਆ ਬਟਨ ਨੂੰ ਫਿਕਸ ਕਰੋ ਜੋ ਪਲੇਅਰ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਨਹੀਂ ਲੁਕਾਉਂਦਾ ਹੈ +ਫਿਕਸਡ +• ਮੀਡੀਆ ਬਟਨ ਨੂੰ ਫਿਕਸ ਕਰੋ ਜੋ ਪਲੇਅਰ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਨਹੀਂ ਲੁਕਾਉਂਦਾ ਹੈ • ਪਲੇਅਰ ਦੀ ਕਿਸਮ ਬਦਲਣ 'ਤੇ ਪਲੇਬੈਕ ਰੀਸੈਟ ਨੂੰ ਠੀਕ ਕਰੋ -• ਪਲੇਲਿਸਟ ਡਾਇਲਾਗ ਨੂੰ ਘੁੰਮਾਉਣ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/987.txt b/fastlane/metadata/android/pa/changelogs/987.txt index 93fc77a77..52d0bb828 100644 --- a/fastlane/metadata/android/pa/changelogs/987.txt +++ b/fastlane/metadata/android/pa/changelogs/987.txt @@ -6,6 +6,4 @@ ਸੁਧਾਰ • ਪਲੇਬੈਕ ਪੈਰਾਮੀਟਰ ਡਾਇਲਾਗ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ • ਗਾਹਕੀ ਆਯਾਤ/ਨਿਰਯਾਤ ਬਟਨਾਂ ਨੂੰ ਤਿੰਨ-ਬਿੰਦੀਆਂ ਵਾਲੇ ਮੀਨੂ ਵਿੱਚ ਲੈ ਜਾਓ - -ਠੀਕ ਕੀਤਾ -• ਪਲੇਲਿਸਟ ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦੇਖੇ ਗਏ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਣਾ ਠੀਕ ਕਰੋ • ਸ਼ੇਅਰ ਮੀਨੂ ਥੀਮ ਅਤੇ "ਪਲੇਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ" ਐਂਟਰੀ ਨੂੰ ਠੀਕ ਕਰੋ +ਠੀਕ ਕੀਤਾ diff --git a/fastlane/metadata/android/pa/changelogs/990.txt b/fastlane/metadata/android/pa/changelogs/990.txt index bd532ecb0..90cd8b35c 100644 --- a/fastlane/metadata/android/pa/changelogs/990.txt +++ b/fastlane/metadata/android/pa/changelogs/990.txt @@ -1,13 +1,10 @@ -ਇਹ ਰੀਲੀਜ਼ Android 4.4 ਕਿਟਕੈਟ ਲਈ ਸਮਰਥਨ ਛੱਡਦੀ ਹੈ, ਹੁਣ ਘੱਟੋ-ਘੱਟ ਸੰਸਕਰਣ Android 5 Lollipop ਹੈ! -ਨਵਾਂ -• ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ ਵਾਲੇ ਮੀਨੂ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰੋ -• ਫੀਡ ਵਿੱਚ ਭਵਿੱਖ ਦੇ ਵੀਡੀਓ ਲੁਕਾਓ -• ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ -ਸੁਧਾਰ -• ਪਲੇਅਰ ਕੋਡ ਨੂੰ ਛੋਟੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਰੀਫੈਕਟਰ ਕਰੋ: ਘੱਟ RAM ਵਰਤੀ ਗਈ, ਘੱਟ ਬੱਗ -• ਥੰਮਨੇਲ ਦੇ ਸਕੇਲ ਮੋਡ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ -• ਚਿੱਤਰ ਪਲੇਸਹੋਲਡਰ ਨੂੰ ਵੈਕਟਰਾਈਜ਼ ਕਰੋ - -ਠੀਕ ਕੀਤਾ -• ਪਲੇਅਰ ਨੋਟੀਫਿਕੇਸ਼ਨ ਨਾਲ ਵੱਖ-ਵੱਖ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰੋ: ਪੁਰਾਣੀ/ਗੁੰਮ ਮੀਡੀਆ ਜਾਣਕਾਰੀ, ਵਿਗੜਿਆ ਥੰਮਨੇਲ +ਇਹ ਰਿਲੀਜ਼ Android 4.4 ਕਿਟਕੈਟ ਲਈ ਸਮਰਥਨ ਛੱਡਦੀ ਹੈ, ਹੁਣ ਘੱਟੋ-ਘੱਟ ਸੰਸਕਰਣ Android 5 Lollipop ਹੈ! +ਨਵਾਂ +• ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ ਵਾਲੇ ਮੀਨੂ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰੋ +• ਫੀਡ ਵਿੱਚ ਭਵਿੱਖ ਦੇ ਵੀਡੀਓ ਲੁਕਾਓ +• ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ +ਸੁਧਾਰ +• ਪਲੇਅਰ ਕੋਡ ਨੂੰ ਛੋਟੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਰੀਫੈਕਟਰ ਕਰੋ: ਘੱਟ RAM ਵਰਤੇਗੀ, ਘੱਟ ਬੱਗ ਹੋਣਗੇ + +ਠੀਕ ਕੀਤਾ • ਪੂਰੀ ਸਕ੍ਰੀਨ ਦੀ ਥਾਂ ਉਸਦੇ 1/4 ਹਿੱਸੇ ਦੀ ਵਰਤੋਂ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/995.txt b/fastlane/metadata/android/pa/changelogs/995.txt index 0da0a4261..dc9c576c9 100644 --- a/fastlane/metadata/android/pa/changelogs/995.txt +++ b/fastlane/metadata/android/pa/changelogs/995.txt @@ -5,12 +5,10 @@ ਸੁਧਾਰ • ਪਲੇਅਰ ਇੰਟਰਫੇਸ ਦੀ ਪਹੁੰਚਯੋਗਤਾ -• ਸਿਰਫ਼-ਵੀਡੀਓ ਡਾਊਨਲੋਡਾਂ ਲਈ ਬਿਹਤਰ ਆਡੀਓ ਚੋਣ -• ਸਾਂਝੀ ਕੀਤੀ ਪਲੇਲਿਸਟ ਸਮੱਗਰੀ ਵਿੱਚ ਪਲੇਲਿਸਟ ਅਤੇ ਵੀਡੀਓ ਨਾਮ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਵਿਕਲਪ +• ਪਲੇਲਿਸਟ ਸ਼ੇਅਰਿੰਗ ਸਮੱਗਰੀ ਵਿੱਚ ਪਲੇਲਿਸਟ ਨਾਮ ਅਤੇ ਵੀਡੀਓ ਨਾਮ ਜੋੜਨ ਲਈ ਵਿਕਲਪ +• ਅੰਦਰੂਨੀ ਸੁਧਾਰ ਅਤੇ ਨਿਰਭਰਤਾ ਅੱਪਡੇਟ ਠੀਕ ਕੀਤੇ -• [ਯੂਟਿਊਬ] ਲਾਈਕ ਗਿਣਤੀ ਨੂੰ ਠੀਕ ਕਰੋ -• ਪਲੇਅਰ ਰਿਸਪੌੰਡ ਨਹੀਂ ਕਰ ਰਿਹਾ ਦੇ ਸੁਨੇਹੇ ਦੇਣ ਵਾਲੇ ਪੌਪਅੱਪ ਅਤੇ ਕਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ • ਭਾਸ਼ਾ ਚੋਣਕਾਰ ਵਿੱਚ ਗਲਤ ਭਾਸ਼ਾਵਾਂ ਦੀ ਚੋਣ • ਪਲੇਅਰ ਆਡੀਓ ਫੋਕਸ ਮਿਊਟ ਦਾ ਆਦਰ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ -• ਪਲੇਲਿਸਟਾਂ ਵਿੱਚ ਆਈਟਮਾਂ ਨੂੰ ਜੋੜਨਾ ਕਦੇ-ਕਦਾਈਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ +• ਖਾਸ ਮਾਮਲਿਆਂ ਵਿੱਚ ਪਲੇਲਿਸਟਾਂ ਵਿੱਚ ਆਈਟਮਾਂ ਨੂੰ ਜੋੜਨਾ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ diff --git a/fastlane/metadata/android/pa/changelogs/997.txt b/fastlane/metadata/android/pa/changelogs/997.txt index 8e0cb85f2..a33ff32af 100644 --- a/fastlane/metadata/android/pa/changelogs/997.txt +++ b/fastlane/metadata/android/pa/changelogs/997.txt @@ -12,6 +12,4 @@ ਠੀਕ ਕੀਤਾ • [ਯੂਟਿਊਬ] ਲੋਡ ਨਾ ਹੋਣ ਵਾਲੀਆਂ ਟਿੱਪਣੀਆਂ ਨੂੰ ਠੀਕ ਕਰੋ, ਨਾਲ ਹੀ ਹੋਰ ਫਿਕਸ ਅਤੇ ਸੁਧਾਰ -• ਸੈਟਿੰਗਾਂ ਆਯਾਤ ਕਰਨ ਵਿੱਚ ਕਮਜ਼ੋਰੀ ਨੂੰ ਹੱਲ ਕਰੋ ਅਤੇ JSON 'ਤੇ ਸਵਿੱਚ ਕਰੋ • ਕਈ ਡਾਊਨਲੋਡ ਫਿਕਸ -• ਖੋਜ ਟੈਕਸਟ ਨੂੰ ਟਰਿੱਮ ਕਰੋ diff --git a/fastlane/metadata/android/sat/short_description.txt b/fastlane/metadata/android/sat/short_description.txt new file mode 100644 index 000000000..9e7874738 --- /dev/null +++ b/fastlane/metadata/android/sat/short_description.txt @@ -0,0 +1 @@ +ᱮᱱᱰᱨᱳᱭᱮᱰ ᱞᱟᱹᱜᱤᱫ ᱢᱤᱫ ᱯᱷᱨᱤ ᱦᱟᱞᱠᱟ ᱚᱡᱚᱱ ᱭᱩᱴᱭᱩᱵᱽ ᱯᱷᱨᱚᱱᱴᱮᱱᱰ ᱾ diff --git a/fastlane/metadata/android/sk/changelogs/1005.txt b/fastlane/metadata/android/sk/changelogs/1005.txt index 8f2bfbfab..2bfdfca0e 100644 --- a/fastlane/metadata/android/sk/changelogs/1005.txt +++ b/fastlane/metadata/android/sk/changelogs/1005.txt @@ -1,18 +1,17 @@ -Novinky -• Pridaná podpora pre Android Auto -• Možnosť nastaviť skupiny kanálov ako hlavné karty na obrazovke -• [YouTube] Zdieľanie ako dočasný playlist +New +• Add support for Android Auto +• Allow setting feed groups as main screen tabs +• [YouTube] Share as temporary playlist +• [SoundCloud] Likes channel tab -• [SoundCloud] Karta „Páči sa“ kanál. +Improved +• Better search bar hints +• Show download date in Downloads +• Use Android 13 per-app language -Vylepšenia -• Lepšia nápoveda v paneli vyhľadávania -• Zobrazenie dátumu stiahnutia v sekcii „Stiahnuté” -• Použitie jazyka Android 13 pre jednotlivé aplikácie - -Opravy -• Oprava chybných farieb textu v tmavom režime -• [YouTube] Oprava playlistov, ktoré nenačítavajú viac ako 100 položiek -• [YouTube] Oprava chýbajúcich odporúčaných videí -• Oprava pádov v zobrazení zoznamu histórie -• Oprava časových značiek v odpovediach na komentáre. +Fixed +• Fix broken text colors in dark mode +• [YouTube] Fix playlists not loading more than 100 items +• [YouTube] Fix missing recommended videos +• Fix crashes in History list view +• Fix timestamps in comment replies diff --git a/fastlane/metadata/android/sk/changelogs/1006.txt b/fastlane/metadata/android/sk/changelogs/1006.txt index 943b4ff5c..6bc6f9a2b 100644 --- a/fastlane/metadata/android/sk/changelogs/1006.txt +++ b/fastlane/metadata/android/sk/changelogs/1006.txt @@ -1,16 +1,16 @@ -# Vylepšené -Aktuálny prehrávač zostane zachovaný pri kliknutí na časové značky -Ak je to možné, pokúsi sa obnoviť čakajúce úlohy sťahovania -Pridaná možnosť odstrániť sťahovanie bez odstránenia súboru -Oprávnenie zobrazenia cez ostatné aplikácie: zobrazí vysvetlenie pre Android > R -Podpora otvárania odkazov on.soundcloud -Množstvo malých vylepšení a optimalizácií +# Improved +Keep current player when clicking on timestamps +Try to recover pending download missions when possible +Add option to delete a download without also deleting file +Overlay Permission: display explanatory dialog for Android > R +Support on.soundcloud link opening +A lot of small improvements and optimizations -# Opravené -Oprava formátovania krátkeho počítania pre verzie Androidu nižšie ako 7 -Oprava klamných oznámení -Oprava súborov titulkov SRT -Oprava množstva zlyhaní +# Fixed +Fix short count formatting for Android versions below 7 +Fix ghost notifications +Fixes for SRT subtitle files +Fixed tons of crashes -# Vývoj -Modernizácia interného kódu +# Development +Internal code modernization diff --git a/fastlane/metadata/android/sk/changelogs/65.txt b/fastlane/metadata/android/sk/changelogs/65.txt index c7cac2626..8570a056a 100644 --- a/fastlane/metadata/android/sk/changelogs/65.txt +++ b/fastlane/metadata/android/sk/changelogs/65.txt @@ -1,26 +1,26 @@ -### Zlepšenia +### Improvements -- Zakázanie animácie ikony burgermenu #1486 -- Zrušenie odstránenia stiahnutých súborov #1472 -- Možnosť sťahovania v ponuke zdieľania #1498 -- Pridaná možnosť zdieľania do ponuky dlhého ťuknutia #1454 -- Minimalizácia hlavného prehrávača pri ukončení #1354 -- Aktualizácia verzie knižnice a oprava zálohovania databázy #1510 -- Aktualizácia ExoPlayer 2.8.2 #1392 - - Prepracované dialógové okno na ovládanie rýchlosti prehrávania tak, aby podporovalo rôzne veľkosti krokov pre rýchlejšiu zmenu rýchlosti. - - Pridaný prepínač na rýchle prevíjanie dopredu počas ticha v ovládaní rýchlosti prehrávania. Toto by malo byť užitočné pre audioknihy a niektoré hudobné žánre a môže priniesť skutočne plynulý zážitok (a môže prerušiť skladbu s množstvom ticha =\). - - Prepracované rozlíšenie zdrojov médií, aby bolo možné odovzdávať metadáta spolu s médiami interne v prehrávači, namiesto toho, aby sa to robilo ručne. Teraz máme jediný zdroj metadát a je priamo k dispozícii pri spustení prehrávania. - - Opravené neaktualizovanie metadát vzdialeného zoznamu skladieb, keď sú k dispozícii nové metadáta pri otvorení fragmentu zoznamu skladieb. - - Rôzne opravy používateľského rozhrania: #1383, ovládacie prvky oznámenia prehrávača na pozadí sú teraz vždy biele, jednoduchšie vypnutie vyskakovacieho prehrávača prostredníctvom hodenia -- Použitie nového extraktora s preformulovanou architektúrou pre multiservis +- Disable burgermenu icon animation #1486 +- undo delete of downloads #1472 +- Download option in share menu #1498 +- Added share option to long tap menu #1454 +- Minimize main player on exit #1354 +- Library version update and database backup fix #1510 +- ExoPlayer 2.8.2 Update #1392 + - Reworked the playback speed control dialog to support different step sizes for faster speed change. + - Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\\). + - Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts. + - Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened. + - Various UI fixes: #1383, background player notification controls now always white, easier to shutdown popup player through flinging +- Use new extractor with refactored architecture for multiservice -### Opravy +### Fixes -- Oprava #1440 Nefunkčné rozloženie informácií o videu #1491 -- Oprava histórie zobrazenia #1497 - - #1495 aktualizáciou metadát (miniatúry, názov a počet videí) hneď, ako používateľ vstúpi do zoznamu skladieb. - - #1475, zaregistrovaním zobrazenia v databáze, keď používateľ spustí video v externom prehrávači na detailnom fragmente. -- Oprava časového limitu creen v prípade popup režimu. #1463 (Opravené #640) -- Oprava hlavného prehrávača videa č. 1509 - - #1412] Opravený režim opakovania spôsobujúci NPE prehrávača, keď je prijatý nový zámer, zatiaľ čo je činnosť prehrávača na pozadí. - - Opravené minimalizovanie prehrávača na vyskakovacie okno nezničí prehrávač, keď nie je udelené povolenie na vyskakovanie. +- Fix #1440 Broken Video Info Layout #1491 +- View history fix #1497 + - #1495, by updating the metadata (thumbnail, title and video count) as soon as the user access the playlist. + - #1475, by registering a view in the database when the user starts a video on external player on detail fragment. +- Fix creen timeout in case of popup mode. #1463 (Fixed #640) +- Main video player fix #1509 + - [#1412] Fixed repeat mode causing player NPE when new intent is received while player activity is in background. + - Fixed minimizing player to popup does not destroy player when popup permission is not granted. diff --git a/fastlane/metadata/android/sk/changelogs/66.txt b/fastlane/metadata/android/sk/changelogs/66.txt index ba9808cba..30c20b0e8 100644 --- a/fastlane/metadata/android/sk/changelogs/66.txt +++ b/fastlane/metadata/android/sk/changelogs/66.txt @@ -1,33 +1,33 @@ -# Zoznam zmien verzie v0.13.7 +# Changelog of v0.13.7 -### Opravené -- Oprava problémov s triediacim filtrom vo verzii v0.13.6 +### Fixed +- Fix sort filter issues of v0.13.6 -# Zoznam zmien verzie v0.13.6 +# Changelog of v0.13.6 -### Vylepšenia +### Improvements -- Zakázanie animácie ikony burgermenu #1486 -- Zrušenie odstránenia stiahnutých súborov #1472 -- Možnosť sťahovania v ponuke zdieľania #1498 -- Pridaná možnosť zdieľania do ponuky dlhého ťuknutia #1454 -- Minimalizácia hlavného prehrávača pri ukončení #1354 -- Aktualizácia verzie knižnice a oprava zálohovania databázy #1510 -- Aktualizácia ExoPlayer 2.8.2 #1392 - - Prepracované dialógové okno na ovládanie rýchlosti prehrávania tak, aby podporovalo rôzne veľkosti krokov pre rýchlejšiu zmenu rýchlosti. - - Pridaný prepínač na rýchle prevíjanie dopredu počas ticha v ovládaní rýchlosti prehrávania. Toto by malo byť užitočné pre audioknihy a niektoré hudobné žánre a môže priniesť skutočne plynulý zážitok (a môže prerušiť skladbu s množstvom ticha =\). - - Prepracované rozlíšenie zdrojov médií, aby bolo možné odovzdávať metadáta spolu s médiami interne v prehrávači, namiesto toho, aby sa to robilo ručne. Teraz máme jediný zdroj metadát a je priamo k dispozícii pri spustení prehrávania. - - Opravené neaktualizovanie metadát vzdialeného zoznamu skladieb, keď sú k dispozícii nové metadáta pri otvorení fragmentu zoznamu skladieb. - - Rôzne opravy používateľského rozhrania: #1383, ovládacie prvky oznámenia prehrávača na pozadí sú teraz vždy biele, jednoduchšie vypnutie vyskakovacieho prehrávača prostredníctvom hodenia -- Použitie nového extraktora s preformulovanou architektúrou pre multiservis +- Disable burgermenu icon animation #1486 +- undo delete of downloads #1472 +- Download option in share menu #1498 +- Added share option to long tap menu #1454 +- Minimize main player on exit #1354 +- Library version update and database backup fix #1510 +- ExoPlayer 2.8.2 Update #1392 + - Reworked the playback speed control dialog to support different step sizes for faster speed change. + - Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\\). + - Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts. + - Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened. + - Various UI fixes: #1383, background player notification controls now always white, easier to shutdown popup player through flinging +- Use new extractor with refactored architecture for multiservice -### Opravy +### Fixes -- Oprava #1440 Nefunkčné rozloženie informácií o videu #1491 -- Oprava histórie zobrazenia #1497 - - #1495 aktualizáciou metadát (miniatúry, názov a počet videí) hneď, ako používateľ vstúpi do zoznamu skladieb. - - #1475, zaregistrovaním zobrazenia v databáze, keď používateľ spustí video v externom prehrávači na detailnom fragmente. -- Oprava časového limitu creen v prípade popup režimu. #1463 (Opravené #640) -- Oprava hlavného prehrávača videa č. 1509 - - #1412] Opravený režim opakovania spôsobujúci NPE prehrávača, keď je prijatý nový zámer, zatiaľ čo je činnosť prehrávača na pozadí. - - Opravené minimalizovanie prehrávača na vyskakovacie okno nezničí prehrávač, keď nie je udelené povolenie na vyskakovanie. +- Fix #1440 Broken Video Info Layout #1491 +- View history fix #1497 + - #1495, by updating the metadata (thumbnail, title and video count) as soon as the user access the playlist. + - #1475, by registering a view in the database when the user starts a video on external player on detail fragment. +- Fix creen timeout in case of popup mode. #1463 (Fixed #640) +- Main video player fix #1509 + - [#1412] Fixed repeat mode causing player NPE when new intent is received while player activity is in background. + - Fixed minimizing player to popup does not destroy player when popup permission is not granted. diff --git a/fastlane/metadata/android/tr/changelogs/1005.txt b/fastlane/metadata/android/tr/changelogs/1005.txt index 82b3e2e9c..46b3142f7 100644 --- a/fastlane/metadata/android/tr/changelogs/1005.txt +++ b/fastlane/metadata/android/tr/changelogs/1005.txt @@ -1,17 +1,17 @@ Yeni • Android Auto desteği eklendi -• Akış gruplarını ana ekran sekmeleri olarak ayarlama özelliği eklendi -• [YouTube] Geçici oynatma listesi olarak paylaşma özelliği eklendi -• [SoundCloud] Beğeniler kanalı sekmesi eklendi +• Akış gruplarının ana ekran sekmeleri olarak ayarlanmasına izin verme +• [YouTube] Geçici oynatma listesi olarak paylaşma +• [SoundCloud] Beğenilen kanal sekmesi Geliştirildi -• Arama çubuğu ipuçları iyileştirildi -• İndirilenler bölümünde indirme tarihi gösteriliyor -• Android 13 uygulama başına dil ayarı desteği eklendi +• Daha iyi arama çubuğu önerileri +• İndirilenler'de indirme tarihini gösterimi +• Android 13 uygulama başı dil kullanma Düzeltildi • Karanlık modda bozuk metin renkleri düzeltildi -• [YouTube] 100’den fazla öğe yüklenmeyen oynatma listeleri sorunu giderildi +• [YouTube] 100'den fazla öğeyi yüklemeyen oynatma listeleri düzeltildi • [YouTube] Eksik önerilen videolar düzeltildi -• Geçmiş liste görünümünde oluşan çökme sorunu giderildi +• Geçmiş listesi görünümündeki çökmeler düzeltildi • Yorum yanıtlarındaki zaman damgaları düzeltildi From 27b8a72f19de6510e280a7df76b597071d83dc66 Mon Sep 17 00:00:00 2001 From: tobigr Date: Fri, 9 Jan 2026 21:13:57 +0100 Subject: [PATCH 18/59] Fixed length of changelogs --- .../metadata/android/cs/changelogs/1006.txt | 4 ---- .../metadata/android/de/changelogs/1006.txt | 3 --- .../metadata/android/fr/changelogs/1006.txt | 9 --------- .../metadata/android/hi/changelogs/1006.txt | 5 ----- .../metadata/android/hu/changelogs/1006.txt | 3 --- .../metadata/android/pa/changelogs/1006.txt | 6 ------ .../metadata/android/pl/changelogs/1006.txt | 3 --- .../metadata/android/sv/changelogs/1006.txt | 7 ------- .../metadata/android/uk/changelogs/1006.txt | 4 ---- fastlane_check.sh | 19 +++++++++++++++++++ 10 files changed, 19 insertions(+), 44 deletions(-) create mode 100755 fastlane_check.sh diff --git a/fastlane/metadata/android/cs/changelogs/1006.txt b/fastlane/metadata/android/cs/changelogs/1006.txt index 11a6f4cca..88c312e14 100644 --- a/fastlane/metadata/android/cs/changelogs/1006.txt +++ b/fastlane/metadata/android/cs/changelogs/1006.txt @@ -4,13 +4,9 @@ Pokus o obnovení čekajících stahování, pokud to jde Možnost odstranění stahování bez smazání souboru Oprávnění Zobrazení přes ostatní aplikace: zobrazení vysvětlení pro Android > R Podpora odkazů on.soundcloud -Spousta malých vylepšení a optimalizací # Opravy Oprava formátování pro verze Androidu nižší než 7 Oprava falešných oznámení Opravy souborů titulků SRT Oprava spousty pádů - -# Vývoj -Interní modernizace kódu diff --git a/fastlane/metadata/android/de/changelogs/1006.txt b/fastlane/metadata/android/de/changelogs/1006.txt index 811138c07..1a76b6f0e 100644 --- a/fastlane/metadata/android/de/changelogs/1006.txt +++ b/fastlane/metadata/android/de/changelogs/1006.txt @@ -11,6 +11,3 @@ Kurzformatierung für Android-Versionen unter 7 Geisterbenachrichtigungen SRT-Untertiteldateien Zahlreiche Abstürze - -# Entwicklung -Modernisierung des internen Codes diff --git a/fastlane/metadata/android/fr/changelogs/1006.txt b/fastlane/metadata/android/fr/changelogs/1006.txt index a9ed2c642..65fbccfd5 100644 --- a/fastlane/metadata/android/fr/changelogs/1006.txt +++ b/fastlane/metadata/android/fr/changelogs/1006.txt @@ -1,17 +1,8 @@ -# Améliorations Conservation du lecteur en cours lors du clic sur les horodatages Tentative de récupération des téléchargements en attente Ajout d'une option pour supprimer un téléchargement sans supprimer le fichier Autorisation de superposition : affichage d'une boîte de dialogue explicative pour Android > R -Prise en charge de l'ouverture des liens .soundcloud -Nombreuses améliorations et optimisations mineures - -# Corrections Correction du formatage du nombre court pour les versions Android inférieures à 7 Correction des notifications fantômes Corrections pour les fichiers de sous-titres SRT -Correction de nombreux plantages - -# Développement -Modernisation du code interne diff --git a/fastlane/metadata/android/hi/changelogs/1006.txt b/fastlane/metadata/android/hi/changelogs/1006.txt index f9656149b..4545d60ed 100644 --- a/fastlane/metadata/android/hi/changelogs/1006.txt +++ b/fastlane/metadata/android/hi/changelogs/1006.txt @@ -3,13 +3,8 @@ जब हो सके तो पेंडिंग डाउनलोड मिशन को रिकवर करने की कोशिश करें फ़ाइल डिलीट किए बिना डाउनलोड डिलीट करने का ऑप्शन जोड़ें .soundcloud लिंक खोलने में सपोर्ट करें -कई छोटे सुधार और ऑप्टिमाइज़ेशन -# ठीक किया गया 7 से कम Android वर्शन के लिए छोटे नंबर फ़ॉर्मेटिंग को ठीक किया गया खाली नोटिफ़िकेशन को ठीक किया गया SRT सबटाइटल फ़ाइलों के लिए ठीक किया गया कई क्रैश ठीक किए गए - -# डेवलपमेंट -इंटरनल कोड मॉडर्नाइज़ेशन diff --git a/fastlane/metadata/android/hu/changelogs/1006.txt b/fastlane/metadata/android/hu/changelogs/1006.txt index 3d0cba88f..a5cbf76eb 100644 --- a/fastlane/metadata/android/hu/changelogs/1006.txt +++ b/fastlane/metadata/android/hu/changelogs/1006.txt @@ -11,6 +11,3 @@ Számozás javítása Android 7 alatt Szellem értesítések javítása SRT felirat javítások Sok összeomlás javítva - -# Fejlesztés -Belső kód modernizálása diff --git a/fastlane/metadata/android/pa/changelogs/1006.txt b/fastlane/metadata/android/pa/changelogs/1006.txt index 2539da187..5046eaaa0 100644 --- a/fastlane/metadata/android/pa/changelogs/1006.txt +++ b/fastlane/metadata/android/pa/changelogs/1006.txt @@ -3,13 +3,7 @@ ਜਦੋਂ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਬਕਾਇਆ ਡਾਊਨਲੋਡ ਮਿਸ਼ਨਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਫਾਈਲ ਨੂੰ ਮਿਟਾਏ ਬਿਨਾਂ ਡਾਊਨਲੋਡ ਨੂੰ ਮਿਟਾਉਣ ਦਾ ਵਿਕਲਪ ਸ਼ਾਮਿਲ ਕਰੋ on.soundcloud ਲਿੰਕ ਖੋਲ੍ਹਣ ਦਾ ਸਮਰਥਨ ਕਰੋ -ਬਹੁਤ ਸਾਰੇ ਛੋਟੇ ਸੁਧਾਰ ਅਤੇ ਅਨੁਕੂਲਤਾ - -# ਫਿਕਸਡ 7 ਤੋਂ ਘੱਟ ਐਂਡਰਾਇਡ ਸੰਸਕਰਣਾਂ ਲਈ ਛੋਟੀ ਗਿਣਤੀ ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਖਾਲੀ ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ SRT ਉਪਸਿਰਲੇਖ ਫਾਈਲਾਂ ਲਈ ਠੀਕ ਕੀਤਾ ਗਿਆ ਬਹੁਤ ਸਾਰੇ ਕਰੈਸ਼ ਠੀਕ ਕੀਤੇ ਗਏ - -# ਵਿਕਾਸ -ਅੰਦਰੂਨੀ ਕੋਡ ਆਧੁਨਿਕੀਕਰਨ diff --git a/fastlane/metadata/android/pl/changelogs/1006.txt b/fastlane/metadata/android/pl/changelogs/1006.txt index a537d7c18..137f996b9 100644 --- a/fastlane/metadata/android/pl/changelogs/1006.txt +++ b/fastlane/metadata/android/pl/changelogs/1006.txt @@ -11,6 +11,3 @@ Naprawione - Puste powiadomienia - Pliki napisów SRT - Mnóstwo awarii - -Rozwój -- Modernizacja wewnętrznego kodu diff --git a/fastlane/metadata/android/sv/changelogs/1006.txt b/fastlane/metadata/android/sv/changelogs/1006.txt index 90825e8a8..5fae37d22 100644 --- a/fastlane/metadata/android/sv/changelogs/1006.txt +++ b/fastlane/metadata/android/sv/changelogs/1006.txt @@ -4,13 +4,6 @@ Försök att återställa väntande nedladdningsuppdrag när det är möjligt Lägg till alternativ för att ta bort en nedladdning utan att också ta bort filen Överläggsbehörighet: visa förklarande dialogruta för Android > R Stöd för att öppna on.soundcloud-länkar -Många små förbättringar och optimeringar - -# Åtgärdat Åtgärdade formatering av korta antal för Android-versioner under 7 Åtgärdade Ghost Notifications Åtgärdade för SRT-undertextfiler -Åtgärdade massor av krascher - -# Utveckling -Intern kodmodernisering diff --git a/fastlane/metadata/android/uk/changelogs/1006.txt b/fastlane/metadata/android/uk/changelogs/1006.txt index 6534e9145..fd79de93a 100644 --- a/fastlane/metadata/android/uk/changelogs/1006.txt +++ b/fastlane/metadata/android/uk/changelogs/1006.txt @@ -4,13 +4,9 @@ Додано опцію видалення завантаження без одночасного видалення файлу Дозвіл на накладання: відображення пояснювального діалогового вікна для Android > R Підтримка відкриття посилання на .soundcloud -Багато дрібних покращень та оптимізацій # Виправлено Виправлено форматування короткого лічильника для версій Android нижче 7 Виправлено сповіщення-примари Виправлення для файлів субтитрів SRT Виправлено безліч збоїв - -# Розробка -Модернізація внутрішнього коду diff --git a/fastlane_check.sh b/fastlane_check.sh new file mode 100755 index 000000000..71bc5b6f7 --- /dev/null +++ b/fastlane_check.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +dir="fastlane" +size="500" +name_filter="${1:-}" + +find_cmd=(find "$dir" -type f -size +"${size}c") +if [[ -n $name_filter ]]; then + find_cmd+=(-name "$name_filter") +fi +find_cmd+=(-print0) + +# find: -type f (files), -size +Nc (N bytes, + means strictly greater) +# print0/xargs -0 to safely handle filenames with spaces/newlines + + # macOS stat: "%z %N" => size and filename +"${find_cmd[@]}"| xargs -0 stat -f "%z %N" + + From 3323868042538d31ba7e14fca518b1e7504bb43d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Fri, 9 Jan 2026 15:15:58 +0100 Subject: [PATCH 19/59] Translated using Weblate (Bengali (India)) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 39.2% (300 of 764 strings) Translated using Weblate (Lombard) Currently translated at 0.3% (3 of 764 strings) Translated using Weblate (French) Currently translated at 75.8% (66 of 87 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Tigrinya) Currently translated at 21.8% (167 of 764 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Belarusian) Currently translated at 99.0% (757 of 764 strings) Translated using Weblate (Slovak) Currently translated at 77.0% (67 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Bulgarian) Currently translated at 3.4% (3 of 87 strings) Translated using Weblate (Santali) Currently translated at 1.1% (1 of 87 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (German) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (764 of 764 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (Turkish) Currently translated at 33.3% (29 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 78.1% (68 of 87 strings) Translated using Weblate (German) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (French) Currently translated at 74.7% (65 of 87 strings) Translated using Weblate (French) Currently translated at 74.7% (65 of 87 strings) Translated using Weblate (Czech) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (Slovak) Currently translated at 74.7% (65 of 87 strings) Translated using Weblate (Hindi) Currently translated at 77.0% (67 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 68.9% (60 of 87 strings) Co-authored-by: 135 <135135@users.noreply.hosted.weblate.org> Co-authored-by: Balázs Meskó Co-authored-by: Ding User Co-authored-by: Dizro Co-authored-by: Erenay Co-authored-by: Femini Co-authored-by: Fjuro Co-authored-by: Hosted Weblate Co-authored-by: Kuko Co-authored-by: MatthieuPh Co-authored-by: Mickaël Binos Co-authored-by: Milan Co-authored-by: Prasanta-Hembram Co-authored-by: STV Co-authored-by: ShareASmile Co-authored-by: Sumon Kayal Co-authored-by: Trunars Co-authored-by: VfBFan Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sat/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/ Translation: NewPipe/Metadata --- app/src/main/res/values-az/strings.xml | 2 +- app/src/main/res/values-be/strings.xml | 1 + app/src/main/res/values-bn-rIN/strings.xml | 4 ++ app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-hi/strings.xml | 34 +++++++++-- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-lmo/strings.xml | 1 + app/src/main/res/values-pa/strings.xml | 57 +++++++++---------- app/src/main/res/values-sk/strings.xml | 16 +++--- app/src/main/res/values-ti/strings.xml | 15 +++++ .../metadata/android/bg/changelogs/63.txt | 8 --- .../metadata/android/cs/changelogs/1005.txt | 22 +++---- .../metadata/android/de/changelogs/986.txt | 17 +++--- .../metadata/android/de/changelogs/987.txt | 18 +++--- .../metadata/android/de/changelogs/997.txt | 15 +++-- .../metadata/android/de/changelogs/999.txt | 4 +- .../metadata/android/fr/changelogs/1000.txt | 24 ++++---- .../metadata/android/fr/changelogs/1003.txt | 12 ++-- .../metadata/android/fr/changelogs/1005.txt | 18 +++--- .../metadata/android/fr/changelogs/65.txt | 2 +- .../metadata/android/fr/changelogs/70.txt | 2 +- .../metadata/android/hi/changelogs/1000.txt | 4 -- .../metadata/android/hi/changelogs/1002.txt | 1 - .../metadata/android/hi/changelogs/1004.txt | 4 +- .../metadata/android/hi/changelogs/1005.txt | 22 ++++--- .../metadata/android/hi/changelogs/1006.txt | 15 +++++ .../metadata/android/hi/changelogs/65.txt | 29 +++------- .../metadata/android/hi/changelogs/66.txt | 42 +++++--------- .../metadata/android/hi/changelogs/68.txt | 40 +++++-------- .../metadata/android/hi/changelogs/69.txt | 28 ++++----- .../metadata/android/hi/changelogs/70.txt | 34 ++++------- .../metadata/android/hi/changelogs/71.txt | 15 ++--- .../metadata/android/hi/changelogs/740.txt | 29 +++------- .../metadata/android/hi/changelogs/750.txt | 31 ++++------ .../metadata/android/hi/changelogs/760.txt | 50 ++++------------ .../metadata/android/hi/changelogs/790.txt | 21 +++---- .../metadata/android/hi/changelogs/800.txt | 31 +++------- .../metadata/android/hi/changelogs/810.txt | 26 +++------ .../metadata/android/hi/changelogs/840.txt | 28 +++------ .../metadata/android/hi/changelogs/930.txt | 26 ++++----- .../metadata/android/hi/changelogs/940.txt | 24 ++++---- .../metadata/android/hi/changelogs/951.txt | 24 ++++---- .../metadata/android/hi/changelogs/995.txt | 4 +- .../metadata/android/hi/changelogs/997.txt | 3 - .../metadata/android/pa/changelogs/1000.txt | 8 +-- .../metadata/android/pa/changelogs/1004.txt | 4 +- .../metadata/android/pa/changelogs/1005.txt | 21 +++---- .../metadata/android/pa/changelogs/1006.txt | 15 +++++ .../metadata/android/pa/changelogs/65.txt | 14 ++++- .../metadata/android/pa/changelogs/66.txt | 22 ++++++- .../metadata/android/pa/changelogs/68.txt | 20 ++++++- .../metadata/android/pa/changelogs/69.txt | 16 +++++- .../metadata/android/pa/changelogs/70.txt | 11 +++- .../metadata/android/pa/changelogs/71.txt | 9 ++- .../metadata/android/pa/changelogs/740.txt | 9 ++- .../metadata/android/pa/changelogs/750.txt | 10 +++- .../metadata/android/pa/changelogs/760.txt | 11 +++- .../metadata/android/pa/changelogs/780.txt | 12 +++- .../metadata/android/pa/changelogs/790.txt | 12 +++- .../metadata/android/pa/changelogs/800.txt | 11 +++- .../metadata/android/pa/changelogs/810.txt | 12 +++- .../metadata/android/pa/changelogs/840.txt | 11 +++- .../metadata/android/pa/changelogs/920.txt | 10 +++- .../metadata/android/pa/changelogs/930.txt | 15 ++++- .../metadata/android/pa/changelogs/940.txt | 15 ++++- .../metadata/android/pa/changelogs/951.txt | 24 ++++---- .../metadata/android/pa/changelogs/954.txt | 15 ++--- .../metadata/android/pa/changelogs/957.txt | 17 +++--- .../metadata/android/pa/changelogs/964.txt | 7 ++- .../metadata/android/pa/changelogs/975.txt | 5 +- .../metadata/android/pa/changelogs/976.txt | 11 +--- .../metadata/android/pa/changelogs/986.txt | 18 +++--- .../metadata/android/pa/changelogs/987.txt | 4 +- .../metadata/android/pa/changelogs/990.txt | 21 +++---- .../metadata/android/pa/changelogs/995.txt | 8 +-- .../metadata/android/pa/changelogs/997.txt | 2 - .../android/sat/short_description.txt | 1 + .../metadata/android/sk/changelogs/1005.txt | 31 +++++----- .../metadata/android/sk/changelogs/1006.txt | 28 ++++----- .../metadata/android/sk/changelogs/65.txt | 46 +++++++-------- .../metadata/android/sk/changelogs/66.txt | 54 +++++++++--------- .../metadata/android/tr/changelogs/1005.txt | 16 +++--- 82 files changed, 717 insertions(+), 666 deletions(-) delete mode 100644 fastlane/metadata/android/bg/changelogs/63.txt create mode 100644 fastlane/metadata/android/hi/changelogs/1006.txt create mode 100644 fastlane/metadata/android/pa/changelogs/1006.txt create mode 100644 fastlane/metadata/android/sat/short_description.txt diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 6f14202e1..689cf4937 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -585,7 +585,7 @@ Serveri təsdiqləmək mümkün olmadı %s-də bəyəndiyiniz serverləri tapın Video \"Təfsilatlar\" səhifəsində fon və ya ani görüntü düyməsin basarkən ipucu göstər - Oynadıcı titr mətn miqyasını və arxa fon üslublarını dəyişdir. Effektiv olması üçün tətbiqi yenidən başlatmaq tələb olunur + Oynadıcı titr mətn miqyasını və arxa plan üslublarını dəyişdir. Effektiv olması üçün tətbiqi yenidən başlatmaq tələb olunur Xəta baş verdi: %1$s Fayl mövcud deyil, yaxud oxumaq və ya yazmaq icazəsi yoxdur Veb saytı təhlil etmək alınmadı diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 8732e45d9..ef7ef98c3 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -831,4 +831,5 @@ Трэнды – фільмы і перадачы Гэты кантэнт недаступны для цяперашняй краіны кантэнту.\n\nЯе можна змяніць праз «Налады > Кантэнт > Прадвызначаная краіна кантэнту». 21 ліпеня 2025 года YouTube спыніў падтрымку аб\'яднанай старонкі трэндаў. NewPipe замяніў старонку трэндаў на трэнды трансляцый.\n\nТаксама можна выбраць іншыя старонкі трэндаў праз «Налады > Кантэнт > Змесціва галоўнай старонкі». + Аб\'яднаныя трэнды YouTube выдалены diff --git a/app/src/main/res/values-bn-rIN/strings.xml b/app/src/main/res/values-bn-rIN/strings.xml index e6269b5b9..a79319ee3 100644 --- a/app/src/main/res/values-bn-rIN/strings.xml +++ b/app/src/main/res/values-bn-rIN/strings.xml @@ -307,4 +307,8 @@ বিজ্ঞপ্তিতে প্রদর্শিত ভিডিও থাম্বনেল 16:9 থেকে 1:1 অনুপাতের করুন (বিকৃতি দেখা যেতে পারে) অদলবদল কিছু না + হ্যাঁ + না + সার্চ + খুঁজুন diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 627e755f6..b36b8555b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -837,7 +837,7 @@ Beliebte Filme und Shows Beliebte Musik Beliebte Podcasts - YouTube hat den geteilten Feed entfernt + YouTube hat die kombinierten „beliebten Seiten“ entfernt YouTube hat die kombinierte Trending-Seite ab dem 21. Juli 2025 eingestellt. NewPipe hat die Standard-Trending-Seite durch die Trending-Livestreams ersetzt.\n\nDu kannst auch verschiedene Trendseiten unter „Einstellungen > Inhalt > Inhalt der Hauptseite“ auswählen. Um den Pop-up-Player zu verwenden, bitte in den folgenden Android-Einstellungen %1$s auswählen und %2$s aktivieren. „Über anderen Apps einblenden“ diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index dd23cfc08..d2e6a422e 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -74,7 +74,7 @@ देखे गए वीडियोज़ की सूची रखें प्लेबैक फिर से शुरू करें रुकावटें (जैसे कि फ़ोन कॉल) खत्म होने के बाद वीडियो प्ले जारी रखें - \'अगले\' और \'सबंधित\' वीडियो दिखाएं + \'अगला\' और \'संबंधित\' वीडियो दिखाएं \"कतार में जोड़ने के लिए स्पर्श बनाये रखें\" दिखाएं जब बैकग्राउंड और पॉपअप बटन वीडियो के विवरण पन्ने में दबाई जाए तो सलाह दिखाएं असमर्थित URL @@ -93,7 +93,7 @@ बंद किया साफ करें उत्तम रिजॉल्युशन - वापिस + अन-डू करें सभी प्ले करें न्यूपाइप की नोटीफिकेशन न्यूपाइप के प्लेयर के लिए नोटीफिकेशन @@ -104,7 +104,7 @@ वैबसाइट parse नहीं हो सकी विषय वस्तु उपलब्ध नहीं है डाउनलोड मेनू स्थापित नहीं किया जा सका - APP/UI करैश हो गई + ऐप/UI करैश हो गई इस वीडियो को चलाने में असफल हुए अनचाही वीडियो प्लेयर त्रुटी आयी है वीडियो प्लेयर त्रुटी से ठीक हो रहा है @@ -391,7 +391,7 @@ प्लेबैक स्थानों को मिटाएं सारे प्लेबैक स्थानों को मिटाता है सारे प्लेबैक स्थानों को मिटाएं\? - निपटान के बाद खंड या गतिविधि जीवन चक्र के बाहर अविभाज्य आरएक्स अपवादों की रिपोर्टिंग को बलपूर्वक लागू करें + हैंडलिंग के बाद फ्रैगमेंट या एक्टिविटी लूप के बाहर अनहैंडल्ड Rx एक्सेप्शन की रिपोर्टिंग को बलपूर्वक लागू करें साउंडक्लाउड प्रोफाइल निर्यात करने के लिए आईडी या युआरएल दीजिये: \n \n1. अपने वेब ब्राउज़र में \"डेस्कटॉप मोड\" चालू करें (वेबसाइट मोबाइल उपकरणों के लिए उपलब्ध नहीं है) @@ -406,7 +406,7 @@ ग्रिड ऑटो त्रुटि दिखाएं - सर्वर मल्टी थ्रेडेड डाउनलोड स्वीकार नहीं करता, पुनः कोशिश करे @string/msg_threads = 1 के साथ + सर्वर मल्टी थ्रेडेड डाउनलोड स्वीकार नहीं करता, @string/msg_threads = 1 के साथ पुनः कोशिश करें \'स्टोरेज एक्सेस फ्रेमवर्क\' आपको बाहरी एसडी कार्ड पर डाउनलोड करने देता है सेवा चुनें, वर्तमान चुनाव : डिफ़ॉल्ट कियोस्क @@ -502,7 +502,7 @@ अनगिनत विडीओज़ 100+ विडीओज़ विवरण - संबंधित स्ट्रीमस + संबंधित आइटम्स टिप्पणियाँ कृपया जांचें लें कि क्या आपके क्रैश पर चर्चा करने वाला मुद्दा पहले से मौजूद है। डुप्लिकेट टिकट बनाते समय, आप हमसे समय लेते हैं जो हम वास्तविक बग को ठीक करने के लिए खर्च कर सकते हैं। गिटहब पर रिपोर्ट करें @@ -828,4 +828,26 @@ चैनल समूह पेज पसंद यूट्यूब अस्थायी प्लेलिस्ट के रूप में साझा करें + एंटरी मिटा दी गई + फाईल डिलीट करें + एंटरी मिटाऐं + %sहज़ार + पॉपअप प्लेयर इस्तेमाल करने के लिए, कृपया नीचे दिए गए Android सेटिंग्स मेनू में %1$s चुनें और %2$s चालू करें। + “अन्य ऐप्स पर डिस्प्ले की अनुमति दें” + %sमिलीअन + %sअरब + अकाउंट बंद कर दिया गया\n\n%1$s यह कारण बताता है: %2$s + साउंडक्लाउड टॉप 50 पेज हटा दिया गया + साउंडक्लाउड ने ओरिजिनल टॉप 50 चार्ट बंद कर दिए हैं। इससे जुड़ा टैब आपके मेन पेज से हटा दिया गया है। + YouTube कंबाइंड ट्रेंडिंग हटा दी गई + YouTube ने 21 जुलाई 2025 से कंबाइंड ट्रेंडिंग पेज बंद कर दिया है। NewPipe ने डिफ़ॉल्ट ट्रेंडिंग पेज को ट्रेंडिंग लाइवस्ट्रीम से बदल दिया है।\n\nआप \"सेटिंग्स > कंटेंट > मेन पेज कंटेंट\" में अलग-अलग ट्रेंडिंग पेज भी चुन सकते हैं। + गेमिंग ट्रेंडस + ट्रेंडिंग पॉडकास्ट + ट्रेंडिंग फिल्में और शो + ट्रेंडिंग संगीत + पले करते समय सर्वर से HTTP error 403 मिला, शायद स्ट्रीमिंग URL एक्सपायर होने या IP बैन की वजह से हुआ + पले करते समय सर्वर से HTTP error %1$s मिला + पले करते समय सर्वर से HTTP error 403 मिला, जो शायद IP बैन या स्ट्रीमिंग URL डीओबफस्केशन की दिक्कतों की वजह से हुआ है + %1$s ने डेटा देने से मना कर दिया, और यह कन्फर्म करने के लिए लॉगिन मांगा कि रिक्वेस्ट करने वाला बोट नहीं है।\n\nहो सकता है कि %1$s ने आपके IP को कुछ समय के लिए बैन कर दिया हो, आप कुछ समय इंतज़ार कर सकते हैं या किसी दूसरे IP पर स्विच कर सकते हैं (जैसे VPN ऑन/ऑफ करके, या WiFi से मोबाइल डेटा पर स्विच करके)। + यह कंटेंट अभी चुने गए देश के कंटेंट के लिए उपलब्ध नहीं है।\n\n\"सेटिंग्स > कंटेंट > डिफ़ॉल्ट कंटेंट देश\" से अपना चुनाव बदलें। diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index d114a2d33..12778fd32 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -817,7 +817,7 @@ Bejegyzés törölve Fiók megszüntetve\n\n%1$s az alábbi ok miatt: %2$s A lejátszás közben a kiszolgáló 403-as HTTP-hibát adott vissza, valószínűleg a közvetítési hivatkozás érvényessége lejárt vagy a IP-tiltás miatt - HTTP-hiba %1$s érkezett a kiszolgáltól a lejátszás közben + HTTP-hiba (%1$s) érkezett a kiszolgálótól a lejátszás során HTTP 403-as hiba érkezett a kiszolgálótól a lejátszás közben, valószínűleg IP-tiltás vagy a közvetítési hivatkozás feloldási problémák miatt %1$s visszautasította az adatok szolgáltatását, és bejelentkezést kér annak megerősítésére, hogy a kérés nem robot által érkezik.\n\nElőfordulhat, hogy az IP-címét ideiglenesen letiltotta %1$s, várhat egy keveset, vagy váltson egy másik IP-címre (például VPN be-/kikapcsolásával, vagy Wi-Fi-ről mobiladat-forgalomra váltva). Ez a tartalom a jelenleg kiválasztott tartalom országában nem elérhető.\n\nVáltoztassa meg a „Beállítások > Tartalom >Tartalom alapértelmezett országa” menüpontban. diff --git a/app/src/main/res/values-lmo/strings.xml b/app/src/main/res/values-lmo/strings.xml index 6f681ac08..80f3dd9c6 100644 --- a/app/src/main/res/values-lmo/strings.xml +++ b/app/src/main/res/values-lmo/strings.xml @@ -1,4 +1,5 @@ Pigia la lente per inziaa. + Canai diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index eb6ee58a2..a937fbf86 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -29,7 +29,7 @@ ਨਵਾਂ ਕੀ ਹੈ ਬੈਕਗ੍ਰਾਊਂਡ ਪੌਪ-ਅਪ - ਵਿੱਚ ਸ਼ਾਮਿਲ ਕਰੋ + ਦੇ ਵਿੱਚ ਜੋੜ੍ਹੋ ਵੀਡੀਓ ਲਈ ਡਾਊਨਲੋਡ ਫ਼ੋਲਡਰ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਇੱਥੇ ਜਮ੍ਹਾਂ ਹੁੰਦੀਆਂ ਹਨ ਵੀਡੀਓ ਫ਼ਾਈਲਾਂ ਲਈ ਡਾਊਨਲੋਡ ਫ਼ੋਲਡਰ ਚੁਣੋ @@ -93,7 +93,7 @@ ਬੰਦ ਕੀਤਾ ਸਾਫ ਕਰੋ ਵਧੀਆ ਰੈਜ਼ੋਲਿਊਸ਼ਨ - ਵਾਪਿਸ + ਅਣ-ਕੀਤਾ ਕਰੋ ਸਾਰੇ ਚਲਾਓ ਹਮੇਸ਼ਾਂ ਸਿਰਫ਼ ਇਸ ਬਾਰ @@ -184,8 +184,7 @@ ਕ੍ਰਿਪਾ ਕਰਕੇ ਉਡੀਕ ਕਰੋ… ਕਲਿਪ-ਬੋਰਡ ਵਿੱਚ ਕਾਪੀ ਹੋ ਗਿਆ ਹੈ ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਵਿਚੋਂ ਇੱਕ ਡਾਊਨਲੋਡ ਫੋਲਡਰ ਨੂੰ ਚੁਣੋ - ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ -\nਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ + ਪੌਪ-ਅਪ ਮੋਡ ਵਿੱਚ ਖੋਲ੍ਹਣ ਵਾਸਤੇ\nਇਸ ਇਜਾਜ਼ਤ ਦੀ ਲੋੜ ਹੈ 1 ਆਈਟਮ ਮਿਟਾਈ ਗਈ। ReCaptcha ਚੁਣੌਤੀ ReCaptcha ਚੁਣੌਤੀ ਲਈ ਬੇਨਤੀ @@ -278,36 +277,19 @@ ਪਿੱਛਲਾ ਐਕਸਪੋਰਟ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਐਕਸਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕੀਆਂ - ਗੂਗਲ ਟੇਕਅਊਟ ਤੋਂ ਯੂਟਿਊਬ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਐਕਸਪੋਰਟ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ: -\n -\n1. ਇਸ URL ਤੇ ਜਾਓ: %1$s -\n2. ਮੰਗਣ ਤੇ ਆਪਣੇ ਖਾਤੇ \'ਚ ਲਾਗ-ਇਨ ਕਰੋ -\n3. ਕਲਿੱਕ ਕਰੋ \" All data incuded\" ਤੇ, ਫੇਰ \"Deselect all\" ਤੇ ਫੇਰ ਸਿਰਫ \"subscriprion\" ਚੁਣੋ ਅਤੇ \"OK\" ਕਰੋ -\n4. \"Next step\" ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਫੇਰ \"create export\" ਤੇ -\n5. ਡਾਊਨਲੋਡ ਬਟਨ ਦਿਖਾਈ ਦੇਣ ਤੇ ਇਸ ਤੇ ਕਲਿੱਕ ਕਰੋ।ਇੱਕ ਡਾਉਨਲੋਡ ਸ਼ੁਰੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਇਹੀ ਐਕਸਪੋਰਟ ਫਾਈਲ ਹੈ) -\n6. ਥੱਲੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਡਾਊਨਲੋਡ ਕੀਤੀ .zip ਫਾਈਲ ਚੁਣੋ -\n7. [ਜੇ .zip ਤੋਂ ਐਕਸਪੋਰਟ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ] ਤਾਂ .csv ਫਾਈਲ ਐਕਸਟਰੈਕਟ ਕਰੋ (ਆਮ ਤੌਰ ਤੇ \"YouTube and YouTube Music/subscriptions/subscriptions.csv\"), ਥੱਲੇ ਦਿੱਤੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਐਕਸਟਰੈਕਟ ਕੀਤੀ csv ਫਾਈਲ ਚੁਣੋ - URL ਜਾਂ ਆਪਣੀ ID ਟਾਈਪ ਕਰਕੇ ਸਾਉੰਡ ਕਲਾਉਡ ਪ੍ਰੋਫਾਈਲ ਇੰਪੋਰਟ ਕਰੋ: -\n -\n1. ਇੱਕ ਵੈਬ-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ \"ਡੈਸਕਟਾਪ ਮੋਡ\" ਨੂੰ ਚਾਲੂ ਕਰੋ (ਸਾਈਟ ਮੋਬਾਈਲ ਉਪਕਰਣਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ) -\n2. ਇਸ URL ਤੇ ਜਾਓ: %1$s -\n3. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ -\n4. ਨਿਰਦੇਸ਼ਤ ਕੀਤੇ ਗਏ ਪ੍ਰੋਫਾਈਲ URL ਨੂੰ ਕਾਪੀ ਕਰੋ. + ਗੂਗਲ ਟੇਕਆਊਟ ਤੋਂ ਯੂਟਿਊਬ ਸਬਸਕ੍ਰਿਪਸ਼ਨਾਂ ਇੰਪੋਰਟ ਕਰਨ ਲਈ ਐਕਸਪੋਰਟ ਫਾਈਲ ਡਾਊਨਲੋਡ ਕਰੋ:\n\n1. ਇਸ URL ਤੇ ਜਾਓ: %1$s\n2. ਮੰਗਣ ਤੇ ਆਪਣੇ ਖਾਤੇ \'ਚ ਲਾਗ-ਇਨ ਕਰੋ\n3. ਕਲਿੱਕ ਕਰੋ \" All data incuded\" ਤੇ, ਫੇਰ \"Deselect all\" ਤੇ ਫੇਰ ਸਿਰਫ \"subscriprion\" ਚੁਣੋ ਅਤੇ \"OK\" ਕਰੋ\n4. \"Next step\" ਤੇ ਕਲਿੱਕ ਕਰੋ ਅਤੇ ਫੇਰ \"create export\" ਤੇ\n5. ਡਾਊਨਲੋਡ ਬਟਨ ਦਿਖਾਈ ਦੇਣ ਤੇ ਇਸ ਤੇ ਕਲਿੱਕ ਕਰੋ। ਇੱਕ ਡਾਉਨਲੋਡ ਸ਼ੁਰੂ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ (ਇਹੀ ਐਕਸਪੋਰਟ ਫਾਈਲ ਹੈ)\n6. ਥੱਲੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰੋ ਤੇ ਡਾਊਨਲੋਡ ਕੀਤੀ .zip ਫਾਈਲ ਚੁਣੋ\n7. [ਜੇ .zip ਤੋਂ ਐਕਸਪੋਰਟ ਫੇਲ ਹੋ ਜਾਂਦੀ ਹੈ] ਤਾਂ .csv ਫਾਈਲ ਐਕਸਟਰੈਕਟ ਕਰੋ (ਆਮ ਤੌਰ ਤੇ \"YouTube and YouTube Music/subscriptions/subscriptions.csv\"), ਥੱਲੇ ਦਿੱਤੇ ਇੰਪੋਰਟ ਫਾਈਲ ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਐਕਸਟਰੈਕਟ ਕੀਤੀ csv ਫਾਈਲ ਚੁਣੋ + URL ਜਾਂ ਆਪਣੀ ID ਟਾਈਪ ਕਰਕੇ ਸਾਉੰਡ ਕਲਾਉਡ ਪ੍ਰੋਫਾਈਲ ਇੰਪੋਰਟ ਕਰੋ: \n \n1. ਇੱਕ ਵੈਬ-ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ \"ਡੈਸਕਟਾਪ ਮੋਡ\" ਨੂੰ ਚਾਲੂ ਕਰੋ (ਸਾਈਟ ਮੋਬਾਈਲ ਉਪਕਰਣਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੈ) \n2. ਇਸ URL ਤੇ ਜਾਓ: %1$s \n3. ਆਪਣੇ ਖਾਤੇ ਚ ਲੌਗ-ਇਨ ਕਰੋ \n4. ਨਿਰਦੇਸ਼ਤ ਕੀਤੇ ਗਏ ਪ੍ਰੋਫਾਈਲ URL ਨੂੰ ਕਾਪੀ ਕਰੋ। ਤੁਹਾਡੀ ਆਈਡੀ, soundcloud.com/ਤੁਹਾਡੀ ਆਈਡੀ - ਯਾਦ ਰੱਖੋ ਕਿ ਇਸ ਕਾਰਜ ਨਾਲ ਡਾਟਾ ਖਪਤ ਹੋ ਸਕਦਾ ਹੈ। -\n -\nਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ\? + ਯਾਦ ਰੱਖੋ ਕਿ ਇਸ ਕਾਰਜ ਨਾਲ ਡਾਟਾ ਖਪਤ ਹੋ ਸਕਦਾ ਹੈ।\n\nਕੀ ਤੁਸੀਂ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਪਲੇਅਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ ਤਾਲ ਪਿੱਚ ਅਲਹਿਦਾ ਕਰੋ (ਵਿਗਾੜ ਪੈ ਸਕਦਾ ਹੈ) ਕੀ ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੀ ਇੰਪੋਰਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ\? ਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ - ਨਿਊਪਾਈਪ ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਹੁਤ ਗੰਭੀਰਤਾ ਨਾਲ ਲੈਂਦਾ ਹੈ। ਇਸ ਲਈ ਐਪ ਤੁਹਾਡੀ ਸਹਿਮਤੀ ਤੋਂ ਬਿਨਾਂ ਕੋਈ ਵੀ ਡਾਟਾ ਇੱਕਠਾ ਨਹੀਂ ਕਰਦਾ। -\nਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਦੀ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਕਰੈਸ਼ ਰਿਪੋਰਟ ਭੇਜਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਡਾਟਾ ਭੇਜਿਆ ਜਾਂ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। + ਨਿਊਪਾਈਪ ਪ੍ਰੋਜੈਕਟ ਤੁਹਾਡੀ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਹੁਤ ਗੰਭੀਰਤਾ ਨਾਲ ਲੈਂਦਾ ਹੈ। ਇਸ ਲਈ ਐਪ ਤੁਹਾਡੀ ਸਹਿਮਤੀ ਤੋਂ ਬਿਨਾਂ ਕੋਈ ਵੀ ਡਾਟਾ ਇੱਕਠਾ ਨਹੀਂ ਕਰਦਾ।\nਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵਿਸਥਾਰ ਵਿੱਚ ਦੱਸਦੀ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਕਰੈਸ਼ ਰਿਪੋਰਟ ਭੇਜਦੇ ਹੋ ਤਾਂ ਕਿਹੜਾ ਡਾਟਾ ਭੇਜਿਆ ਜਾਂ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਪੜ੍ਹੋ - ਯੂਰਪੀਅਨ ਜਨਰਲ ਡੇਟਾ ਪ੍ਰੋਟੈਕਸ਼ਨ ਰੈਗੂਲੇਸ਼ਨ (ਜੀਡੀਪੀਆਰ) ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਤੁਹਾਡਾ ਧਿਆਨ ਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵੱਲ ਖਿੱਚਦੇ ਹਾਂ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ। -\nਸਾਨੂੰ ਨੁਕਸ ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਹੋਵੇਗਾ। + ਯੂਰਪੀਅਨ ਜਨਰਲ ਡੇਟਾ ਪ੍ਰੋਟੈਕਸ਼ਨ ਰੈਗੂਲੇਸ਼ਨ (ਜੀਡੀਪੀਆਰ) ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ, ਅਸੀਂ ਤੁਹਾਡਾ ਧਿਆਨ ਨਿਊਪਾਈਪ ਦੀ ਗੋਪਨੀਯਤਾ ਨੀਤੀ ਵੱਲ ਖਿੱਚਦੇ ਹਾਂ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਧਿਆਨ ਨਾਲ ਪੜ੍ਹੋ।\nਸਾਨੂੰ ਨੁਕਸ ਰਿਪੋਰਟ ਭੇਜਣ ਲਈ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨਾ ਹੋਵੇਗਾ। ਸਵੀਕਾਰ ਕਰੋ ਅਸਵੀਕਾਰ ਕੋਈ ਸੀਮਾ ਨਹੀਂ @@ -512,8 +494,7 @@ %d ਸਕਿੰਟ ਹਾਂ, ਅਤੇ ਅੱਧ-ਪਚੱਧੀਆਂ ਵੇਖੀਆਂ ਹੋਈਆਂ ਵੀ - ਪਲੇਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ, ਪਹਿਲਾਂ ਚਾਹੇ ਬਾਅਦ ਵਿੱਚ ਵੇਖੇ ਜਾ ਚੁੱਕੇ ਵੀਡੀਓ ਹਟਾ ਦਿੱਤੇ ਜਾਣਗੇ। -\nਕੀ ਵਾਕਿਆ ਹੀ ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਵਾਪਸ ਨਹੀਂ ਮੋੜਿਆ ਜਾ ਸਕਣਾ! + ਪਲੇਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਿਲ ਪਹਿਲਾਂ ਤੇ ਬਾਅਦ ਵਿੱਚ ਵੇਖੇ ਜਾ ਚੁੱਕੇ ਵੀਡੀਓ ਹਟਾ ਦਿੱਤੇ ਜਾਣਗੇ। \nਕੀ ਵਾਕਿਆ ਹੀ ਤੁਸੀਂ ਇਹਨਾਂ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਵਾਪਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਣਾ! ਵੇਖੇ ਹੋਏ ਵੀਡੀਓ ਹਟਾ ਦੇਈਏ\? ਵੇਖੇ ਹੋਏ ਨੂੰ ਹਟਾਓ ਸਿਸਟਮ ਡਿਫ਼ਾਲਟ @@ -554,7 +535,7 @@ ਕੋਈ ਸਰੋਤਾ ਨਹੀਂ ਸੁਣ ਰਿਹਾ ਕੋਈ ਦਰਸ਼ਕ ਨਹੀਂ ਵੇਖ ਰਿਹਾ ਵੇਰਵਾ - ਸਬੰਧਤ ਨਗ + ਸਬੰਧਤ ਆਈਟਮਾਂ ਟਿੱਪਣੀਆਂ ਗਿਟਹੱਬ \'ਤੇ ਜਾ ਕੇ ਇਤਲਾਹ ਦਿਓ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਤੇ ਵਿਖਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ @@ -832,4 +813,22 @@ ਐਂਟਰੀ ਮਿਟਾਓ ਖ਼ਾਤਾ ਬੰਦ ਕੀਤਾ ਗਿਆ\n\n%1$s ਇਹ ਕਾਰਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ: %2$s ਐਂਟਰੀ ਮਿਟਾ ਦਿੱਤੀ ਗਈ + ਪੌਪਅੱਪ ਪਲੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਾਂ ਦਿੱਤੇ Android ਸੈਟਿੰਗ ਮੀਨੂ ਵਿੱਚ %1$s ਚੁਣੋ ਅਤੇ %2$s ਨੂੰ ਇਨੇਬਲ ਕਰੋ। + \"ਹੋਰ ਐਪਾਂ ਉੱਤੇ ਡਿਸਪਲੇ ਦੀ ਆਗਿਆ ਦਿਓ\" + %sਹਜ਼ਾਰ + %sਮਿਲੀਅਨ + %sਅਰਬ + SoundCloud ਟੌਪ 50 ਪੰਨਾ ਹਟਾ ਦਿੱਤਾ ਗਿਆ + SoundCloud ਨੇ ਮੂਲ ਟੌਪ 50 ਚਾਰਟਾਂ ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ। ਸੰਬੰਧਿਤ ਟੈਬ ਨੂੰ ਤੁਹਾਡੇ ਮੁੱਖ ਪੰਨੇ ਤੋਂ ਹਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ। + YouTube ਸੰਯੁਕਤ ਰੁਝਾਨ ਹਟਾਇਆ ਗਿਆ + YouTube ਨੇ 21 ਜੁਲਾਈ 2025 ਤੋਂ ਸੰਯੁਕਤ \"ਰੁਝਾਨ ਵਿੱਚ\" ਪੰਨੇ ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ। NewPipe ਨੇ ਡਿਫ਼ਾਲਟ \"ਰੁਝਾਨ ਵਿੱਚ\" ਪੰਨੇ ਨੂੰ ਟ੍ਰੈਂਡਿੰਗ ਲਾਈਵਸਟ੍ਰੀਮਾਂ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਹੈ।\n\nਤੁਸੀਂ \"ਸੈਟਿੰਗਾਂ > ਸਮੱਗਰੀ > ਮੁੱਖ ਪੰਨੇ ਦੀ ਸਮੱਗਰੀ\" ਵਿੱਚ ਵੱਖ-ਵੱਖ ਟ੍ਰੈਂਡਿੰਗ ਪੰਨਿਆਂ ਨੂੰ ਵੀ ਚੁਣ ਸਕਦੇ ਹੋ। + ਗੇਮਿੰਗ ਟ੍ਰੈਂਡਸ + ਟ੍ਰੈਂਡਿੰਗ ਪੌਡਕਾਸਟ + ਟਰੈਂਡਿੰਗ ਫ਼ਿਲਮਾਂ ਅਤੇ ਸ਼ੋਅ + ਟਰੈਂਡਿੰਗ ਸੰਗੀਤ + ਪਲੇਅ ਕਰਦੇ ਸਮੇਂ ਸਰਵਰ ਤੋਂ HTTP error 403 ਪ੍ਰਾਪਤ ਹੋਇਆ, ਜੋ ਸ਼ਾਇਦ ਸਟ੍ਰੀਮਿੰਗ URL ਦੀ ਮਿਆਦ ਪੁੱਗਣ ਜਾਂ IP ਦੀ ਪਾਬੰਦੀ ਕਾਰਨ ਹੋਈ ਹੈ + ਚਲਾਉਣ ਦੌਰਾਨ ਸਰਵਰ ਤੋਂ HTTP error %1$s ਪ੍ਰਾਪਤ ਹੋਇਆ + ਪਲੇਅ ਕਰਦੇ ਸਮੇਂ ਸਰਵਰ ਤੋਂ HTTP error 403 ਪ੍ਰਾਪਤ ਹੋਇਆ, ਜੋ ਸ਼ਾਇਦ IP ਬੈਨ ਜਾਂ ਸਟ੍ਰੀਮਿੰਗ URL ਡੀਔਬਫਸਕੇਸ਼ਨ ਸਮੱਸਿਆਵਾਂ ਕਾਰਨ ਹੋਈ ਹੈ + %1$s ਨੇ ਡੇਟਾ ਪ੍ਰਦਾਨ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰ ਦਿੱਤਾ, ਅਤੇ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਲੌਗਇਨ ਕਰਨ ਲਈ ਕਿਹਾ ਕਿ ਬੇਨਤੀਕਰਤਾ ਬੋਟ ਨਹੀਂ ਹੈ।\n\nਹੋ ਸਕਦਾ ਹੈ ਕਿ %1$s ਨੇ ਤੁਹਾਡੇ IP ਨੂੰ ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਈ ਹੋਵੇ, ਤੁਸੀਂ ਕੁਝ ਸਮਾਂ ਉਡੀਕ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਕਿਸੇ ਵੱਖਰੇ IP \'ਤੇ ਸਵਿੱਚ ਕਰ ਸਕਦੇ ਹੋ (ਉਦਾਹਰਣ ਵਜੋਂ VPN ਨੂੰ ਚਾਲੂ/ਬੰਦ ਕਰਕੇ, ਜਾਂ WiFi ਤੋਂ ਮੋਬਾਈਲ ਡੇਟਾ \'ਤੇ ਸਵਿੱਚ ਕਰਕੇ)। + ਇਹ ਸਮੱਗਰੀ ਵਰਤਮਾਨ ਵਿੱਚ ਚੁਣੇ ਗਏ ਦੇਸ਼ ਦੀ ਸਮੱਗਰੀ ਲਈ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ।\n\n\"ਸੈਟਿੰਗਾਂ > ਸਮੱਗਰੀ > ਡਿਫ਼ਾਲਟ ਸਮੱਗਰੀ ਦੇਸ਼\" ਤੋਂ ਆਪਣੀ ਚੋਣ ਬਦਲੋ। diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index b41d9fff9..601623cb1 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -45,7 +45,7 @@ Náhľad avataru uploadera Lajky Dislajky - Začnite klepnutím na lupu. + Začnite ťuknutím na lupu. Obsah Zobraziť vekovo obmedzený obsah Naživo @@ -74,7 +74,7 @@ Čakajte prosím… Skopírované do schránky Priečinok na sťahovanie zadefinujte prosím neskôr v nastaveniach - Sťahované súbory + Stiahnuté súbory Stiahnuté Hlásenie o chybe Aplikácia/UP zlyhalo @@ -208,7 +208,7 @@ Neplatný ZIP súbor Upozornenie: Nemožno importovať všetky súbory. Toto prepíše vaše aktuálne nastavenie. - Trendy + Populárne Top 50 Nové a horúce Odstrániť @@ -473,7 +473,7 @@ %d dní Skupiny kanálov - Zdroj naposledy aktualizovaný: %s + Zdroj aktualizovaný: %s Nenačítané: %d Načítavanie zdroja… Spracovávanie zdroja… @@ -845,10 +845,10 @@ SoundCloud prestal používať pôvodnú Top 50. Daná stránka bola odstránená z hlavnej stránky. Odstránené kombinované trendy na YouTube YouTube ukončil prevádzku kombinovanej stránky s trendmi k 21. júlu 2025. NewPipe nahradil predvolenú stránku s trendmi stránkou s trendovými živými prenosmi.\n\nV nastaveniach „Nastavenia > Obsah > Obsah hlavnej stránky“ môžete vybrať aj iné stránky s trendmi. - Ttendy v hrách - Trendové podcasty - Trendové filmy a seriály - Trendová hudba + Populárne hry + Populárne podcasty + Populárne filmy a seriály + Populárna hudba %stis. %smil. %smld. diff --git a/app/src/main/res/values-ti/strings.xml b/app/src/main/res/values-ti/strings.xml index 50a20f494..ccce73524 100644 --- a/app/src/main/res/values-ti/strings.xml +++ b/app/src/main/res/values-ti/strings.xml @@ -170,4 +170,19 @@ ሰሩዞ ስም ቀያር ስሕተት + መፍለዪ + ህዝባዊ + ብሕትነት + ፍቓድታት + ፍቓድ ኣንብብ + ምድብ + ፍቓድ + እዋናዊታት + ኣቫታራት + ባነራት + ዘይተዘርዘረ + ብሕታዊ + ውሽጣዊ + ተኸታተልቲ + መርበብ-ቦታ ክፈት diff --git a/fastlane/metadata/android/bg/changelogs/63.txt b/fastlane/metadata/android/bg/changelogs/63.txt deleted file mode 100644 index be8865e6d..000000000 --- a/fastlane/metadata/android/bg/changelogs/63.txt +++ /dev/null @@ -1,8 +0,0 @@ -### Подобрения -- Импорт/ Експорт на настройки #1333 -- Редуциране на надхвърляне (подобрение на производителността) #1371 -- Малки подобрения в кода #1375 -- Добавяне на всичко за GDPR #1420 - -### Поправени -- Изтегляния: Поправен срив при зареждане на неприключени изтегляния от .giga файлове #1407 diff --git a/fastlane/metadata/android/cs/changelogs/1005.txt b/fastlane/metadata/android/cs/changelogs/1005.txt index 2059e43de..e8efaffad 100644 --- a/fastlane/metadata/android/cs/changelogs/1005.txt +++ b/fastlane/metadata/android/cs/changelogs/1005.txt @@ -1,17 +1,17 @@ -Novinky -• Přidána podpora pro Android Auto. -• Možnost nastavit skupiny kanálů jako záložky na hlavní obrazovce. -• [YouTube] Sdílení jako dočasný seznam skladeb. -• [SoundCloud] Záložka Oblíbené kanály +Nově +• Podpora pro Android Auto +• Možnost nastavit skupiny zdrojů jako záložky +• [YouTube] Sdílení jako dočasný playlist +• [SoundCloud] Záložka Oblíbené u kanálů Vylepšeno -• Lepší nápověda pro vyhledávací lištu -• Zobrazení data stažení v sekci Stažené soubory -• Použití jazyka Android 13 pro jednotlivé aplikace +• Lepší našeptávač vyhledávače +• Zobrazení data stažení ve Stažených +• Použití individuálního jazyka Opraveno • Oprava chybných barev textu v tmavém režimu -• [YouTube] Oprava seznamů skladeb, které nenačtou více než 100 položek +• [YouTube] Oprava nenačtení více než 100 položek v playlistech • [YouTube] Oprava chybějících doporučených videí -• Oprava pádů v zobrazení seznamu historie -• Oprava časových značek v odpovědích na komentáře +• Oprava pádů v Historii +• Oprava časů v odpovědích diff --git a/fastlane/metadata/android/de/changelogs/986.txt b/fastlane/metadata/android/de/changelogs/986.txt index 044365eb8..a1bc3217a 100644 --- a/fastlane/metadata/android/de/changelogs/986.txt +++ b/fastlane/metadata/android/de/changelogs/986.txt @@ -1,16 +1,15 @@ -Neu: +Neu • Benachrichtigungen für neue Streams • Nahtloser Übergang zwischen Hintergrund- und Videoplayer -• Änderung der Tonhöhe um Halbtöne +• Ändern der Tonhöhe um Halbtöne • Warteschlange des Hauptplayers an Wiedergabeliste anfügen -Verbessert: -• Geschwindigkeit/Tonhöhenschrittgröße speichern +Verbessert +• Speichern der Geschwindigkeit/Tonhöhenschrittweite • Anfängliche lange Videoplayer-Pufferung verringert • Player-UI für Android TV -• Löschbestätigung für alle heruntergeladenen Dateien +• Löschbestätigung aller heruntergeladenen Dateien -Behoben: -• Medienschaltfläche blendet die Steuerelemente des Players nicht aus -• Rücksetzung der Wiedergabe bei Änderung des Playertyps -• Drehung des Wiedergabelisten-Dialogs +Behoben +• Medienschaltfläche blendet Player-Steuerelemente nicht aus +• … diff --git a/fastlane/metadata/android/de/changelogs/987.txt b/fastlane/metadata/android/de/changelogs/987.txt index f7bc9bd80..a03048973 100644 --- a/fastlane/metadata/android/de/changelogs/987.txt +++ b/fastlane/metadata/android/de/changelogs/987.txt @@ -1,12 +1,12 @@ -Neu: -• Unterstützung anderer Übertragungsmethoden als progressives HTTP: schnellere Ladezeit der Wiedergabe, Korrekturen für PeerTube und SoundCloud, Wiedergabe von kürzlich beendeten YouTube-Livestreams -• Schaltfläche um entfernte Wiedergabeliste einer lokalen Wiedergabeliste hinzuzufügen -• Bildvorschau im Android 10+ Teilen-Dialog +Neu +• Unterstützung anderer Übertragungsmethoden als progressives HTTP: schnellere Ladezeit bei Wiedergabe, Fehlerbehebungen für PeerTube/SoundCloud, Wiedergabe kürzlich beendeter YouTube-Livestreams +• Schaltfläche, um Remote-Wiedergabeliste einer Lokalen hinzuzufügen +• Bildvorschau im Teilen-Dialog von Android 10+ -Verbessert: +Verbessert • Wiedergabewerte-Dialog -• Import/Export-Schaltflächen für Abonnements in das Drei-Punkte-Menü verschoben +• Import/Export-Schaltflächen für Abos in Drei-Punkte-Menü verschoben -Behoben: -• Entfernung von vollständig angesehenen Videos aus der Wiedergabeliste -• Freigabemenü-Design und „Zur Wiedergabeliste hinzufügen“-Eintrag +Behoben +• Entfernen vollständig angesehener Videos aus Wiedergabeliste +• … diff --git a/fastlane/metadata/android/de/changelogs/997.txt b/fastlane/metadata/android/de/changelogs/997.txt index f55e72b05..fbb5727d8 100644 --- a/fastlane/metadata/android/de/changelogs/997.txt +++ b/fastlane/metadata/android/de/changelogs/997.txt @@ -1,17 +1,16 @@ Neu • Antwort auf Kommentar • Wiedergabelisten umordnen -• Wiedergabelisten-Beschreibung und -Dauer +• Wiedergabelisten-Beschreibung/-Dauer • Rücksetzen der Einstellungen Verbessert -• [Android 13+] Wiederherstellen benutzerdef. Benachrichtigungsaktionen -• Zustimmung zur Update-Prüfung -• Während Pufferung Abspielen/Pause über Benachrichtigung -• Neuordnung einiger Einstellungen +• [Android 13+] Wiederherstellen benutzerd. Benachrichtigungsaktionen +• Zustimmung zur Updateprüfung +• Wiedergabe/Pause von Benachrichtigungen während Pufferung +• Neuanordnung einiger Einstellungen Behoben -• [YouTube] Kommentare wurden nicht geladen, weitere Korrekturen und Verbesserungen +• [YouTube] Kommentare wurden nicht geladen, weitere Fehlerbehebungen/Verbesserungen • Sicherheitslücke beim Einstellungsimport und Umstellung auf JSON -• Verschiedene Download-Korrekturen -• Suchtext gekürzt +• … diff --git a/fastlane/metadata/android/de/changelogs/999.txt b/fastlane/metadata/android/de/changelogs/999.txt index 51cf80d3e..059b4e081 100644 --- a/fastlane/metadata/android/de/changelogs/999.txt +++ b/fastlane/metadata/android/de/changelogs/999.txt @@ -4,9 +4,9 @@ Neu • [SoundCloud] Unterstützung für on.soundcloud.com-URLs hinzugefügt Verbessert -• [Bandcamp]Anzeige zusätzlicher Informationen im Radio-Kiosk +• [Bandcamp] Anzeige zusätzlicher Informationen im Radio-Kiosk Behoben -• [YouTube] Behebung gelegentlicher HTTP 403-Fehler am Anfang oder in der Mitte von Videos +• [YouTube] Behebung gelegentlicher HTTP-403-Fehler am Anfang oder in der Mitte von Videos • [YouTube] Extrahieren von Avataren und Banner aus mehr Kanal-Header-Typen • [Bandcamp] Verschiedene Fehler behoben und HTTPS wird stets verwendet diff --git a/fastlane/metadata/android/fr/changelogs/1000.txt b/fastlane/metadata/android/fr/changelogs/1000.txt index d4e706e2e..994b6061d 100644 --- a/fastlane/metadata/android/fr/changelogs/1000.txt +++ b/fastlane/metadata/android/fr/changelogs/1000.txt @@ -1,13 +1,13 @@ -Amélioré -• Rendre la description de la playlist cliquable pour afficher plus / moins de contenu -• [PeerTube] Gérer automatiquement les liens d'instance `subscribeto.me` -• Ne commencer à lire qu'un seul élément dans l'écran d'historique +Améliorations +• La description de la playlist est désormais cliquable pour afficher plus ou moins de contenu. +• [PeerTube] Gestion automatique des liens d'instance `subscribeto.me` +• Lecture d'un seul élément à la fois depuis l'historique -Corrigé -• Correction de la visibilité du bouton RSS -• Correction des plantages de l'aperçu de la barre de recherche -• Correction de la mise en playlist d'un élément sans vignette -• Correction de la sortie de la boîte de dialogue de téléchargement avant qu'elle n'apparaisse -• Correction de la fenêtre contextuelle de mise en file d'attente de la liste des éléments associés -• Correction de l'ordre dans la boîte de dialogue d'ajout à la playlist -• Ajuster la disposition des éléments de signet de la playlist +Corrections +• Amélioration de la visibilité du bouton RSS +• Correction des plantages liés à l'aperçu de la barre de progression +• Correction de l'ajout d'un élément sans vignette à la playlist +• Correction de la fermeture prématurée de la boîte de dialogue de téléchargement +• Correction de la fenêtre contextuelle d'ajout à la file d'attente de la liste des éléments associés +• Amélioration de l'ordre d'affichage dans la boîte de dialogue « Ajouter à la playlist » +• Ajustement de la mise en page des signets de playlist diff --git a/fastlane/metadata/android/fr/changelogs/1003.txt b/fastlane/metadata/android/fr/changelogs/1003.txt index 161ee7fbb..917714bae 100644 --- a/fastlane/metadata/android/fr/changelogs/1003.txt +++ b/fastlane/metadata/android/fr/changelogs/1003.txt @@ -1,6 +1,6 @@ -Ceci est une version de correction qui résout les erreurs de YouTube : -• [YouTube] Correction du non-chargement des informations des vidéos, correction des erreurs HTTP 403 lors de la lecture des vidéos et restauration de la lecture de certaines vidéos à âge restreint -• Correction des tailles de sous-titres qui ne changent pas -• Correction du téléchargement des informations deux fois lors de l'ouverture d'un stream -• [Soundcloud] Suppression des streams protégés par DRM non lisibles -• Traductions mises à jour +Cette m.à.j corrective résout les problèmes suivants sur YouTube : +• [YouTube] Correction du problème de chargement des informations vidéo, des erreurs HTTP 403 lors de la lecture et restauration de la lecture de certaines vidéos à contenu restreint. +• Correction du problème d'affichage de la taille des sous-titres. +• Correction du double téléchargement des informations lors de l'ouverture d'un flux. +• [SoundCloud] Suppression des flux protégés par DRM et illisibles. +• Traductions mises à jour. diff --git a/fastlane/metadata/android/fr/changelogs/1005.txt b/fastlane/metadata/android/fr/changelogs/1005.txt index b7e5ff49f..269ba2105 100644 --- a/fastlane/metadata/android/fr/changelogs/1005.txt +++ b/fastlane/metadata/android/fr/changelogs/1005.txt @@ -1,17 +1,17 @@ -Nouveau -• Prise en charge d'Android Auto +Nouveautés +• Ajout de la compatibilité avec Android Auto • Possibilité de définir des groupes de flux comme onglets de l'écran principal • [YouTube] Partager comme playlist temporaire -• [SoundCloud] Onglet « J'aime » +• [SoundCloud] Onglet « J'aime » sur les chaînes -Amélioration -• Amélioration des astuces de la barre de recherche +Améliorations +• Amélioration des suggestions de la barre de recherche • Affichage de la date de téléchargement dans Téléchargements • Utilisation de la langue par application d'Android 13 -Corrigé +Corrections • Correction des couleurs de texte défectueuses en mode sombre -• [YouTube] Correction des playlists ne chargeant pas plus de 100 éléments -• [YouTube] Correction des vidéos recommandées manquantes -• Correction des plantages dans la vue Historique +• [YouTube] Correction du chargement des playlists de plus de 100 éléments +• [YouTube] Correction de l'affichage des vidéos recommandées manquantes +• Correction des plantages dans l'historique • Correction des horodatages dans les réponses aux commentaires diff --git a/fastlane/metadata/android/fr/changelogs/65.txt b/fastlane/metadata/android/fr/changelogs/65.txt index bb664a3cb..c5d6d852a 100644 --- a/fastlane/metadata/android/fr/changelogs/65.txt +++ b/fastlane/metadata/android/fr/changelogs/65.txt @@ -11,7 +11,7 @@ - Ajout d'une option d'avance rapide pendant les silences dans le contrôle de la vitesse de lecture. Cela devrait être utile pour les livres audio et certains genres musicaux, et peut apporter une véritable expérience transparente (et peut casser une chanson avec beaucoup de silences =\\). - Refonte de la résolution des sources de médias pour permettre le passage des métadonnées avec les médias en interne dans le lecteur, plutôt que de le faire manuellement. Maintenant, nous avons une seule source de métadonnées et elles sont directement disponibles lorsque la lecture commence. - Correction des métadonnées des listes de lecture distantes qui ne sont pas mises à jour lorsque de nouvelles métadonnées sont disponibles lors de l'ouverture du fragment de liste de lecture. - - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. + - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. - Utilisation d'un nouvel extracteur avec une architecture remaniée pour le multiservice. ### Corrections diff --git a/fastlane/metadata/android/fr/changelogs/70.txt b/fastlane/metadata/android/fr/changelogs/70.txt index fccfccd2b..185f98f69 100644 --- a/fastlane/metadata/android/fr/changelogs/70.txt +++ b/fastlane/metadata/android/fr/changelogs/70.txt @@ -1,4 +1,4 @@ -ATTENTION : Cette version est probablement un festival de bugs, tout comme la dernière. Cependant, en raison de la fermeture complète depuis la 17. une version cassée est mieux que pas de version. N'est-ce pas ? ¯\_(ツ)_/¯ +ATTENTION : Cette version est probablement un festival de bugs, tout comme la dernière. Cependant, en raison de la fermeture complète depuis la 17. une version cassée est mieux que pas de version. N'est-ce pas ? ¯\_(ツ)_/¯ ### Améliorations * Les fichiers téléchargés peuvent maintenant être ouverts en un seul clic. diff --git a/fastlane/metadata/android/hi/changelogs/1000.txt b/fastlane/metadata/android/hi/changelogs/1000.txt index 67a819e0f..201a8a970 100644 --- a/fastlane/metadata/android/hi/changelogs/1000.txt +++ b/fastlane/metadata/android/hi/changelogs/1000.txt @@ -7,7 +7,3 @@ • RSS बटन दृश्यता को ठीक करें • सीकबार पूर्वावलोकन क्रैश को ठीक करें • थंबनेल-रहित आइटम को प्लेलिस्ट में डालना ठीक करें -• डाउनलोड डायलॉग के दिखाई देने से पहले बाहर निकलने को ठीक करें -• संबंधित आइटम सूची एनक्यू पॉपअप को ठीक करें -• प्लेलिस्ट में जोड़ें डायलॉग में क्रम को ठीक करें -• प्लेलिस्ट बुकमार्क आइटम लेआउट को समायोजित करें diff --git a/fastlane/metadata/android/hi/changelogs/1002.txt b/fastlane/metadata/android/hi/changelogs/1002.txt index d780f47a6..a0bc033fe 100644 --- a/fastlane/metadata/android/hi/changelogs/1002.txt +++ b/fastlane/metadata/android/hi/changelogs/1002.txt @@ -1,5 +1,4 @@ YouTube द्वारा कोई भी स्ट्रीम न चलाए जाने की समस्या को ठीक किया गया। यह रिलीज़ केवल सबसे ज़्यादा दबाव वाली त्रुटि को संबोधित करती है जो YouTube वीडियो विवरण को लोड होने से रोकती है। - हम जानते हैं कि अन्य समस्याएँ भी हैं, और हम जल्द ही उन्हें हल करने के लिए एक अलग रिलीज़ जारी करेंगे। diff --git a/fastlane/metadata/android/hi/changelogs/1004.txt b/fastlane/metadata/android/hi/changelogs/1004.txt index 071ab64e3..faf98d116 100644 --- a/fastlane/metadata/android/hi/changelogs/1004.txt +++ b/fastlane/metadata/android/hi/changelogs/1004.txt @@ -1 +1,3 @@ -फिक्स्ड YouTube कोई स्ट्रीम नहीं चला रहा है +इस रिलीज़ में YouTube सिर्फ़ 360p स्ट्रीम दे रहा था, इसे ठीक किया गया है। + +ध्यान दें कि इस वर्शन में इस्तेमाल किया गया सॉल्यूशन शायद टेम्पररी है, और लंबे समय में SABR वीडियो प्रोटोकॉल को लागू करने की ज़रूरत है, लेकिन TeamNewPipe के सदस्य अभी बिज़ी हैं, इसलिए किसी भी मदद की बहुत तारीफ़ होगी! https://github.com/TeamNewPipe/NewPipe/issues/12248 diff --git a/fastlane/metadata/android/hi/changelogs/1005.txt b/fastlane/metadata/android/hi/changelogs/1005.txt index 495894e76..4d72dc68f 100644 --- a/fastlane/metadata/android/hi/changelogs/1005.txt +++ b/fastlane/metadata/android/hi/changelogs/1005.txt @@ -1,17 +1,15 @@ नया -+ • Android Auto के लिए समर्थन जोड़ें -+ • फ़ीड समूहों को मुख्य स्क्रीन टैब के रूप में सेट करने की अनुमति दें -+ • [YouTube] अस्थायी प्लेलिस्ट के रूप में साझा करें -+ • [SoundCloud] "पसंद" चैनल टैब जोङी गई +• Android Auto के लिए समर्थन जोड़ें +• फ़ीड समूहों को मुख्य स्क्रीन टैब के रूप में सेट करने की अनुमति दें +• [YouTube] अस्थायी प्लेलिस्ट के रूप में साझा करें +• [SoundCloud] "पसंद" चैनल टैब जोङी गई बेहतर किए -+ • खोज बार संकेत -+ • डाउनलोडस स्क्रीन में डाउनलोड की तारीख दिखाएं -+ • Android 13+ पर प्रति-ऐप भाषा का उपयोग करें +• खोज बार संकेत +• डाउनलोडस स्क्रीन में डाउनलोड की तारीख दिखाएं +• Android 13+ पर प्रति-ऐप भाषा का उपयोग करें फिक्स किए -+ • डार्क मोड में पाठ के रंग ठीक करें -+ • [YouTube] 100 से अधिक आइटम लोड नहीं करने वाली प्लेलिस्ट को ठीक करें -+ • [YouTube] अनुपलब्ध अनुशंसित वीडियो को ठीक करें -+ • इतिहास सूची दृश्य में क्रैश ठीक करें -+ • टिप्पणी के उत्तरों में टाइमस्टैम्प को ठीक करें +• डार्क मोड में पाठ के रंग ठीक करें +• [YouTube] 100 से अधिक आइटम लोड नहीं करने वाली प्लेलिस्ट को ठीक करें +• टिप्पणी के उत्तरों में टाइमस्टैम्प को ठीक करें diff --git a/fastlane/metadata/android/hi/changelogs/1006.txt b/fastlane/metadata/android/hi/changelogs/1006.txt new file mode 100644 index 000000000..f9656149b --- /dev/null +++ b/fastlane/metadata/android/hi/changelogs/1006.txt @@ -0,0 +1,15 @@ +# बेहतर किए +टाइमस्टैम्प पर क्लिक करते समय मौजूदा प्लेयर पर ही दिखाएं +जब हो सके तो पेंडिंग डाउनलोड मिशन को रिकवर करने की कोशिश करें +फ़ाइल डिलीट किए बिना डाउनलोड डिलीट करने का ऑप्शन जोड़ें +.soundcloud लिंक खोलने में सपोर्ट करें +कई छोटे सुधार और ऑप्टिमाइज़ेशन + +# ठीक किया गया +7 से कम Android वर्शन के लिए छोटे नंबर फ़ॉर्मेटिंग को ठीक किया गया +खाली नोटिफ़िकेशन को ठीक किया गया +SRT सबटाइटल फ़ाइलों के लिए ठीक किया गया +कई क्रैश ठीक किए गए + +# डेवलपमेंट +इंटरनल कोड मॉडर्नाइज़ेशन diff --git a/fastlane/metadata/android/hi/changelogs/65.txt b/fastlane/metadata/android/hi/changelogs/65.txt index d2c2b8c71..d870f8d03 100644 --- a/fastlane/metadata/android/hi/changelogs/65.txt +++ b/fastlane/metadata/android/hi/changelogs/65.txt @@ -1,26 +1,13 @@ ### सुधार -- बर्गरमेनू आइकन एनीमेशन को अक्षम करें #1486 -- डाउनलोड को पूर्ववत करें #1472 -- शेयर मेनू में डाउनलोड विकल्प #1498 -- लॉन्ग टैप मेनू में शेयर विकल्प जोड़ा गया #1454 -- बाहर निकलने पर मुख्य प्लेयर को छोटा करें #1354 -- लाइब्रेरी संस्करण अपडेट और डेटाबेस बैकअप फिक्स #1510 -- एक्सोप्लेयर 2.8.2 अपडेट #1392 -- तेज गति परिवर्तन के लिए विभिन्न चरण आकारों का समर्थन करने के लिए प्लेबैक गति नियंत्रण संवाद को फिर से तैयार किया गया। -- प्लेबैक गति नियंत्रण में मौन के दौरान तेजी से आगे बढ़ने के लिए एक टॉगल जोड़ा गया। यह ऑडियोबुक और कुछ संगीत शैलियों के लिए मददगार होना चाहिए, और एक सच्चा सहज अनुभव ला सकता है (और बहुत सारे मौन वाले गीत को तोड़ सकता है =\\)। -- मीडिया स्रोत रिज़ॉल्यूशन को फिर से तैयार किया गया ताकि प्लेयर में आंतरिक रूप से मीडिया के साथ मेटाडेटा को पास किया जा सके, बजाय मैन्युअल रूप से ऐसा करने के। अब हमारे पास मेटाडेटा का एक ही स्रोत है और प्लेबैक शुरू होने पर सीधे उपलब्ध है। -- जब प्लेलिस्ट का टुकड़ा खोला जाता है तो नया मेटाडेटा उपलब्ध होने पर रिमोट प्लेलिस्ट मेटाडेटा अपडेट नहीं होता है। -- विभिन्न UI फ़िक्सेस: #1383, बैकग्राउंड प्लेयर नोटिफिकेशन कंट्रोल अब हमेशा सफ़ेद रहता है, फ़्लिंगिंग के ज़रिए पॉपअप प्लेयर को बंद करना आसान है -- मल्टीसर्विस के लिए रीफ़ैक्टर्ड आर्किटेक्चर के साथ नए एक्सट्रैक्टर का उपयोग करें +- बर्गरमेनू आइकन एनिमेशन को डिसेबल करें #1486 +- डाउनलोड को अनडू करें #1472 +- शेयर मेनू में डाउनलोड ऑप्शन #1498 +- लॉन्ग टैप मेनू में शेयर ऑप्शन जोड़ा गया #1454 +- ExoPlayer 2.8.2 अपडेट #1392 +- कई UI फ़िक्स: #1383 -### फ़िक्सेस +### फ़िक्स -- फ़िक्स #1440 टूटी हुई वीडियो जानकारी लेआउट #1491 - व्यू हिस्ट्री फ़िक्स #1497 -- #1495, जैसे ही उपयोगकर्ता प्लेलिस्ट एक्सेस करता है मेटाडेटा (थंबनेल, शीर्षक और वीडियो काउंट) को अपडेट करके। -- #1475, जब उपयोगकर्ता डिटेल फ़्रैगमेंट पर बाहरी प्लेयर पर वीडियो शुरू करता है तो डेटाबेस में व्यू रजिस्टर करके। -- पॉपअप मोड के मामले में स्क्रीन टाइमआउट को ठीक करें। #1463 (फ़िक्स #640) -- मुख्य वीडियो प्लेयर फ़िक्स #1509 -- [#1412] प्लेयर गतिविधि के बैकग्राउंड में होने पर नया इंटेंट प्राप्त होने पर प्लेयर NPE का कारण बनने वाले रिपीट मोड को ठीक किया गया। -- पॉपअप के लिए प्लेयर को छोटा करने की सुविधा को ठीक किया गया, जब पॉपअप की अनुमति नहीं दी जाती है तो प्लेयर नष्ट नहीं होता है। +- #1495, जैसे ही यूज़र प्लेलिस्ट एक्सेस करता है, मेटाडेटा (थंबनेल, टाइटल और वीडियो काउंट) को अपडेट करके। diff --git a/fastlane/metadata/android/hi/changelogs/66.txt b/fastlane/metadata/android/hi/changelogs/66.txt index 30c20b0e8..e9ec1e3fa 100644 --- a/fastlane/metadata/android/hi/changelogs/66.txt +++ b/fastlane/metadata/android/hi/changelogs/66.txt @@ -1,33 +1,21 @@ -# Changelog of v0.13.7 +# v0.13.7 का चेंजलॉग -### Fixed -- Fix sort filter issues of v0.13.6 +### ठीक किया गया +- v0.13.6 के सॉर्ट फ़िल्टर की दिक्कतें ठीक की गईं -# Changelog of v0.13.6 +# v0.13.6 का चेंजलॉग -### Improvements +### सुधार -- Disable burgermenu icon animation #1486 -- undo delete of downloads #1472 -- Download option in share menu #1498 -- Added share option to long tap menu #1454 -- Minimize main player on exit #1354 -- Library version update and database backup fix #1510 -- ExoPlayer 2.8.2 Update #1392 - - Reworked the playback speed control dialog to support different step sizes for faster speed change. - - Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\\). - - Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts. - - Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened. - - Various UI fixes: #1383, background player notification controls now always white, easier to shutdown popup player through flinging -- Use new extractor with refactored architecture for multiservice +- बर्गरमेनू आइकन एनिमेशन डिसेबल करें #1486 +- डाउनलोड को अनडू डिलीट करें #1472 +- शेयर मेनू में डाउनलोड ऑप्शन #1498 +- लॉन्ग टैप मेनू में शेयर ऑप्शन जोड़ा गया #1454 +- ExoPlayer 2.8.2 अपडेट #1392 +कई UI फ़िक्स: #1383 -### Fixes +### फ़िक्स -- Fix #1440 Broken Video Info Layout #1491 -- View history fix #1497 - - #1495, by updating the metadata (thumbnail, title and video count) as soon as the user access the playlist. - - #1475, by registering a view in the database when the user starts a video on external player on detail fragment. -- Fix creen timeout in case of popup mode. #1463 (Fixed #640) -- Main video player fix #1509 - - [#1412] Fixed repeat mode causing player NPE when new intent is received while player activity is in background. - - Fixed minimizing player to popup does not destroy player when popup permission is not granted. +- फ़िक्स #1440 टूटा हुआ वीडियो इन्फ़ो लेआउट #1491 +- व्यू हिस्ट्री फ़िक्स #1497 +- मेन वीडियो प्लेयर फिक्स #1509। diff --git a/fastlane/metadata/android/hi/changelogs/68.txt b/fastlane/metadata/android/hi/changelogs/68.txt index 238b1e0b1..f0cc5bddb 100644 --- a/fastlane/metadata/android/hi/changelogs/68.txt +++ b/fastlane/metadata/android/hi/changelogs/68.txt @@ -1,31 +1,19 @@ -# changes of v0.14.1 +# v0.14.1 में बदलाव -### Fixed -- Fixed failed to decrypt video url #1659 -- Fixed description link not extract well #1657 +### ठीक किया गया +- वीडियो URL डिक्रिप्ट करने में फेल होना ठीक किया गया #1659 +- डिस्क्रिप्शन लिंक ठीक से एक्सट्रेक्ट नहीं हो रहा था, इसे ठीक किया गया #1657 -# changes of v0.14.0 +# v0.14.0 में बदलाव -### New -- New Drawer design #1461 -- New customizable front page #1461 +### नया +- नया ड्रॉअर डिज़ाइन #1461 +- नया कस्टमाइज़ेबल फ्रंट पेज #1461 -### Improvements -- Reworked Gesture controls #1604 -- New way to close the popup player #1597 +### सुधार +- पॉपअप प्लेयर बंद करने का नया तरीका #1597 -### Fixed -- Fix error when subscription count is not available. Closes #1649. - - Show "Subscriber count not available" in those cases -- Fix NPE when a YouTube playlist is empty -- Quick fix for the kiosks in SoundCloud -- Refactor and bugfix #1623 - - Fix Cyclic search result #1562 - - Fix Seek bar not statically lay outed - - Fix YT Premium video are not blocked correctly - - Fix Videos sometimes not loading (due to DASH parsing) - - Fix links in video description - - Show warning when someone tries to download to external sdcard - - fix nothing shown exception triggers report - - thumbnail not shown in background player for android 8.1 [see here](https://github.com/TeamNewPipe/NewPipe/issues/943) -- Fix registering of broadcast receiver. Closes #1641. +### ठीक किया गया +- जब YouTube प्लेलिस्ट खाली हो तो NPE को ठीक करें +- SoundCloud में कियोस्क के लिए क्विक फिक्स +- रीफैक्टर और बगफिक्स #1623। diff --git a/fastlane/metadata/android/hi/changelogs/69.txt b/fastlane/metadata/android/hi/changelogs/69.txt index c8262d1b0..8bdf96c8f 100644 --- a/fastlane/metadata/android/hi/changelogs/69.txt +++ b/fastlane/metadata/android/hi/changelogs/69.txt @@ -1,19 +1,15 @@ -### New -- Long-tap delete and share in subscriptions #1516 -- Tablet UI and grid list layout #1617 +### नया +- सब्सक्रिप्शन में लंबे समय तक टैप करके डिलीट और शेयर करें #1516 +- टैबलेट UI और ग्रिड लिस्ट लेआउट #1617 -### Improvements -- store and reload the last used aspect ratio #1748 -- Enable linear layout in Downloads activity with full video names #1771 -- Delete and share subscriptions directly from within the subscriptions tab #1516 -- Enqueuing now triggers video playing if the play queue has already ended #1783 -- Separate settings for volume and brightness gestures #1644 -- Add support for Localization #1792 +### सुधार +- वॉल्यूम और ब्राइटनेस जेस्चर के लिए अलग सेटिंग्स #1644 +- लोकलाइज़ेशन के लिए सपोर्ट जोड़ें #1792 -### Fixes -- Fix time parsing for . format, so NewPipe can be used in Finland -- Fix subscription count -- Add foreground service permission for API 28+ devices #1830 +### सुधार +- . फ़ॉर्मेट के लिए टाइम पार्सिंग ठीक करें, ताकि फ़िनलैंड में NewPipe का इस्तेमाल किया जा सके +- सब्सक्रिप्शन काउंट ठीक करें +- API 28+ डिवाइस के लिए फ़ोरग्राउंड सर्विस परमिशन जोड़ें #1830 -### Known Bugs -- Playback state can not be saved on Android P +### जाने-पहचाने बग +- Android P पर प्लेबैक स्टेट सेव नहीं किया जा सकता diff --git a/fastlane/metadata/android/hi/changelogs/70.txt b/fastlane/metadata/android/hi/changelogs/70.txt index ad87a4409..cfa334bdb 100644 --- a/fastlane/metadata/android/hi/changelogs/70.txt +++ b/fastlane/metadata/android/hi/changelogs/70.txt @@ -1,25 +1,11 @@ -ATTENTION: This version probably is a bugfest, just like the last one. However due to the full shutdown since the 17. a broken version is better then no version. Right? ¯\_(ツ)_/¯ +### सुधार +* डाउनलोड की गई फ़ाइलें अब एक क्लिक से खोली जा सकती हैं #1879 +* एंड्रॉयड 4.1 - 4.3 के लिए सपोर्ट हटा दिया गया #1884 +* पुराना प्लेयर हटाएँ #1884 +* मौजूदा प्ले क्यू से स्ट्रीम को दाईं ओर स्वाइप करके हटाएँ #1915 +* बहुत सारी डाउनलोड गड़बड़ियाँ ठीक करके सुधार किया गए -### Improvements -* downloaded files can now be opened with one click #1879 -* drop support for android 4.1 - 4.3 #1884 -* remove old player #1884 -* remove streams from current play queue by swiping them to the right #1915 -* remove auto queued stream when a new stream is enqueued manually #1878 -* Postprocessing for downloads and implement missing features #1759 by @kapodamy - * Post-processing infrastructure - * Proper error handling "infrastructure" (for downloader) - * Queue instead of multiple downloads - * Move serialized pending downloads (`.giga` files) to app data - * Implement max download retry - * Proper multi-thread download pausing - * Stop downloads when swicthing to mobile network (never works, see 2nd point) - * Save the thread count for next downloads - * A lot of incoherences fixed - -### Fixed -* Fix crash with default resolution set to best and limited mobile data resolution #1835 -* pop-up player crash fixed #1874 -* NPE when trying to open background player #1901 -* Fix for inserting new streams when auto queuing is enabled #1878 -* Fixed the decypering shuttown issue +### ठीक किया गया +* डिफ़ॉल्ट रिज़ॉल्यूशन को बेस्ट और लिमिटेड मोबाइल डेटा रिज़ॉल्यूशन पर सेट करने पर क्रैश को ठीक किया गया #1835 +* पॉप-अप प्लेयर क्रैश को ठीक किया गया #1874 +* बैकग्राउंड प्लेयर खोलने की कोशिश करते समय NPE #1901 diff --git a/fastlane/metadata/android/hi/changelogs/71.txt b/fastlane/metadata/android/hi/changelogs/71.txt index 5facfc05f..c9b9675b0 100644 --- a/fastlane/metadata/android/hi/changelogs/71.txt +++ b/fastlane/metadata/android/hi/changelogs/71.txt @@ -1,10 +1,7 @@ -### Improvements -* Add app update notification for GitHub build (#1608 by @krtkush) -* Various improvements to the downloader (#1944 by @kapodamy): - * add missing white icons and use hardcored way for change the icon colors - * check if the iterator is initialized (fixes #2031) - * allow retry downloads with "post-processing failed" error in the new muxer - * new MPEG-4 muxer fixing non-synchronous video and audio streams (#2039) +### सुधार +* GitHub बिल्ड के लिए ऐप अपडेट नोटिफ़िकेशन जोड़ें (#1608 @krtkush द्वारा) +* डाउनलोडर में कई सुधार #1944 +* नया MPEG-4 म्यूक्सर नॉन-सिंक्रोनस वीडियो और ऑडियो स्ट्रीम को ठीक करता है (#2039) -### Fixed -* YouTube live streams stop playing after a short time (#1996 by @yausername) +### फिकसड +* YouTube लाइव स्ट्रीम थोड़े समय बाद चलना बंद हो जाती हैं (#1996 @yausername द्वारा) diff --git a/fastlane/metadata/android/hi/changelogs/740.txt b/fastlane/metadata/android/hi/changelogs/740.txt index c795978a8..9380af1b0 100644 --- a/fastlane/metadata/android/hi/changelogs/740.txt +++ b/fastlane/metadata/android/hi/changelogs/740.txt @@ -1,23 +1,12 @@ -

    Improvements

    +

    सुधार

      -
    • make links in comments clickable, increase text size
    • -
    • seek on clicking timestamp links in comments
    • -
    • show preferred tab based on recently selected state
    • -
    • add playlist to queue when long clicking on 'Background' in playlist window
    • -
    • search for shared text when it is not an URL
    • -
    • add "share at current time" button to the main video player
    • -
    • add close button to main player when video queue is finished
    • -
    • add "Play directly in Background" to longpress menu for video list items
    • -
    • improve English translations for Play/Enqueue commands
    • -
    • small performance improvements
    • -
    • remove unused files
    • -
    • update ExoPlayer to 2.9.6
    • -
    • add support for Invidious links
    • -
    -

    Fixed

    +
  • कमेंट्स में लिंक को क्लिक करने लायक बनाएं, टेक्स्ट का साइज़ बढ़ाएं
  • +
  • कमेंट्स में टाइमस्टैम्प लिंक पर क्लिक करने पर खोजें
  • +
  • जब शेयर किया गया टेक्स्ट URL न हो तो उसे खोजें
  • +
  • मेन वीडियो प्लेयर में "अभी के समय शेयर करें" बटन जोड़ें
  • +
  • ExoPlayer को 2.9.6 पर अपडेट करना
  • +

    फिकसड

    +
      -
    • fixed scroll w/ comments and related streams disabled
    • -
    • fixed CheckForNewAppVersionTask being executed when it shouldn't
    • -
    • fixed youtube subscription import: ignore ones with invalid url and keep ones with empty title
    • -
    • fix invalid YouTube url: signature tag name is not always "signature" preventing streams from loading
    • +
    • गलत YouTube URL ठीक करें: सिग्नेचर टैग का नाम हमेशा "सिग्नेचर" नहीं होता, जिससे स्ट्रीम लोड नहीं हो पातीं
    diff --git a/fastlane/metadata/android/hi/changelogs/750.txt b/fastlane/metadata/android/hi/changelogs/750.txt index 39b77f7c3..13e965311 100644 --- a/fastlane/metadata/android/hi/changelogs/750.txt +++ b/fastlane/metadata/android/hi/changelogs/750.txt @@ -1,22 +1,13 @@ -New -Playback resume #2288 -• Resume streams where you stopped last time -Downloader Enhancements #2149 -• Use Storage Access Framework to store downloads on external SD-cards -• New mp4 muxer -• Optionally change the download directory before starting a download -• Respect metered networks +नया +प्लेबैक फिर से शुरू करें #2288 +• स्ट्रीम वहीं से फिर से शुरू करें जहाँ आपने पिछली बार रोका था +डाउनलोडर एन्हांसमेंट #2149 +• एक्सटर्नल SD-कार्ड पर डाउनलोड स्टोर करने के लिए स्टोरेज एक्सेस फ्रेमवर्क का इस्तेमाल करें +बेहतर +• एक्टिविटी लाइफसाइकल के दौरान (ऑटो) रोटेशन में बदलाव को हैंडल करें #2444 +• लॉन्ग-प्रेस मेनू को एक जैसा बनाएं #2368 -Improved -• Removed gema strings #2295 -• Handle (auto)rotation changes during activity lifecycle #2444 -• Make long-press menus consistent #2368 - -Fixed -• Fixed selected subtitle track name not being shown #2394 -• Do not crash when check for app update fails (GitHub version) #2423 -• Fixed downloads stuck at 99.9% #2440 -• Update play queue metadata #2453 -• [SoundCloud] Fixed crash when loading playlists TeamNewPipe/NewPipeExtractor#170 -• [YouTube] Fixed duration can not be paresd TeamNewPipe/NewPipeExtractor#177 +ठीक किया गया +• चुने हुए सबटाइटल ट्रैक का नाम नहीं दिखना ठीक किया गया #2394 +• 99.9% पर अटके डाउनलोड को ठीक किया गया #2440 diff --git a/fastlane/metadata/android/hi/changelogs/760.txt b/fastlane/metadata/android/hi/changelogs/760.txt index 6e000f6d9..c4b6d951f 100644 --- a/fastlane/metadata/android/hi/changelogs/760.txt +++ b/fastlane/metadata/android/hi/changelogs/760.txt @@ -1,43 +1,13 @@ -Changes in 0.17.1 +0.17.1 में बदलाव -New -• Thai localization +नया +• थाई लोकलाइज़ेशन +बेहतर +• प्लेलिस्ट के लिए लॉन्ग-प्रेस मेनू में फिर से 'यहाँ से प्ले करना शुरू करें' एक्शन जोड़ें #2518 +• SAF / लेगेसी फ़ाइल पिकर के लिए स्विच जोड़ें #2521 -Improved -• Add start playing here action in long-press menus for playlists again #2518 -• Add switch for SAF / legacy file picker #2521 - -Fixed -• Fix disappearing buttons in downloads view when switching apps #2487 -• Fix playback position is stored although watch history is disabled -• Fix reduced performance caused by playback position in list views #2517 -• [Extractor] Fix ReCaptchaActivity #2527, TeamNewPipe/NewPipeExtractor#186 -• [Extractor] [YouTube] Fix casual search error when playlists are in results TeamNewPipe/NewPipeExtractor#185 - - - -Changes in 0.17.0 - -New -Playback resume #2288 -• Resume streams where you stopped last time -Downloader Enhancements #2149 -• Use Storage Access Framework to store downloads on external SD-cards -• New mp4 muxer -• Optionally change the download directory before starting a download -• Respect metered networks - - -Improved -• Removed gema strings #2295 -• Handle (auto)rotation changes during activity lifecycle #2444 -• Make long-press menus consistent #2368 - -Fixed -• Fixed selected subtitle track name not being shown #2394 -• Do not crash when check for app update fails (GitHub version) #2423 -• Fixed downloads stuck at 99.9% #2440 -• Update play queue metadata #2453 -• [SoundCloud] Fixed crash when loading playlists TeamNewPipe/NewPipeExtractor#170 -• [YouTube] Fixed duration can not be paresd TeamNewPipe/NewPipeExtractor#177 +ठीक किया गया +• ऐप बदलते समय डाउनलोड व्यू में बटन गायब होने की समस्या ठीक करें #2487 +• लिस्ट व्यू में प्लेबैक पोज़िशन की वजह से परफॉर्मेंस में आई कमी को ठीक करें #2517 +• [एक्सट्रैक्टर] [YouTube] जब प्लेलिस्ट रिज़ल्ट में हों तो कैज़ुअल सर्च एरर को ठीक करें TeamNewPipe/NewPipeExtractor#185 diff --git a/fastlane/metadata/android/hi/changelogs/790.txt b/fastlane/metadata/android/hi/changelogs/790.txt index ec77b2acb..3b322f0af 100644 --- a/fastlane/metadata/android/hi/changelogs/790.txt +++ b/fastlane/metadata/android/hi/changelogs/790.txt @@ -1,14 +1,9 @@ -Improved -• Add more titles to improve accessibility for blind people #2655 -• Make language of download folder setting more consistent and less ambiguous #2637 +ठीक किया गया +• चेक करें कि ब्लॉक में आखिरी बाइट डाउनलोड हुआ है या नहीं #2646 +• वीडियो डिटेल फ़्रैगमेंट में स्क्रॉलिंग को ठीक किया गया #2672 +• [साउंडक्लाउड] client_id एक्सट्रैक्शन को ठीक करें #2745 -Fixed -• Check if last byte in the block is downloaded #2646 -• Fixed scrolling in video detail fragment #2672 -• Remove double search clear box animations to one #2695 -• [SoundCloud] Fix client_id extraction #2745 - -Development -• Add missing dependencies inherited from NewPipeExtractor into NewPipe #2535 -• Migrate to AndroidX #2685 -• Update to ExoPlayer 2.10.6 #2697, #2736 +डेवलपमेंट +• NewPipeExtractor से मिली गायब डिपेंडेंसी को NewPipe में जोड़ें #2535 +• AndroidX पर माइग्रेट करें #2685 +• ExoPlayer 2.10.6 पर अपडेट करें #2697, #2736 diff --git a/fastlane/metadata/android/hi/changelogs/800.txt b/fastlane/metadata/android/hi/changelogs/800.txt index 332b5c994..4df518086 100644 --- a/fastlane/metadata/android/hi/changelogs/800.txt +++ b/fastlane/metadata/android/hi/changelogs/800.txt @@ -1,27 +1,10 @@ -New -• PeerTube support without P2P (#2201) [Beta]: - ◦ Watch and download videos from PeerTube instances - ◦ Add instances in the settings to access the complete PeerTube world - ◦ There might be problems with SSL handshakes on Android 4.4 and 7.1 when accessing certain instances resulting in a network error. +नया +• P2P के बिना PeerTube सपोर्ट (#2201) [बीटा]: -• Downloader (#2679): - ◦ Calculate download ETA - ◦ Download opus (webm files) as ogg - ◦ Recover expired download links to resume downloads after a long pause +◦ लंबे समय तक रुकने के बाद डाउनलोड फिर से शुरू करने के लिए एक्सपायर हो चुके डाउनलोड लिंक रिकवर करें -Improved -• Make the KioskFragment aware of changes in the preferred content country and improve performance of all main tabs #2742 -• Use new Localization and Downloader implementations from extractor #2713 -• Make "Default kiosk" string translatable -• Black navigation bar for black theme #2569 +बेहतर +• KioskFragment को पसंदीदा कंटेंट देश में होने वाले बदलावों के बारे में बताएं और सभी मेन टैब की परफॉर्मेंस को बेहतर बनाएं #2742 -Fixed -• Fixed a bug that could not move the popup player if another finger was placed while moving the popup player #2772 -• Allow playlists missing an uploader and fix crashes related to this problem #2724, TeamNewPipe/NewPipeExtractor#219 -• Enabling TLS1.1/1.2 on Android 4.4 devices (API 19/KitKat) to fix TLS handshake with MediaCCC and some PeerTube instances #2792 -• [SoundCloud] Fixed client_id extraction TeamNewPipe/NewPipeExtractor#217 -• [SoundCloud] Fix audio stream extraction - -Development -• Update ExoPlayer to 2.10.8 #2791, #2816 -• Update Gradle to 3.5.1 and add Kotlin support #2714 +फिक्स किया गया +• Android 4.4 डिवाइस (API 19/KitKat) पर TLS1.1/1.2 इनेबल करें diff --git a/fastlane/metadata/android/hi/changelogs/810.txt b/fastlane/metadata/android/hi/changelogs/810.txt index c75855fd1..b3d4c7bd6 100644 --- a/fastlane/metadata/android/hi/changelogs/810.txt +++ b/fastlane/metadata/android/hi/changelogs/810.txt @@ -1,19 +1,11 @@ -New -• Show video thumbnail on the lock screen when playing in the background +नया +• बैकग्राउंड में चलने पर लॉक स्क्रीन पर वीडियो थंमनेल दिखाएं -Improved -• Add local playlist to queue when long pressing on background / popup button -• Make main page tabs scrollable and hide when there is only a single tab -• Limit amount of notification thumbnail updates in background player -• Add dummy thumbnail for empty local playlists -• Use *.opus file extension instead of *.webm and show "opus" in format label instead of "WebM Opus" in the download dropdown -• Add button to delete downloaded files or download history in "Downloads" -• [YouTube] Add support to /c/shortened_url channel links +बेहतर +• बैकग्राउंड / पॉपअप बटन पर देर तक दबाने पर लोकल प्लेलिस्ट को क्यू में जोड़ें +• [YouTube] /c/shortened_url चैनल लिंक के लिए सपोर्ट जोड़ें -Fixed -• Fixed multiple issues when sharing a video to NewPipe and downloading its streams directly -• Fixed player access out of its creation thread -• Fixed search result paging -• [YouTube] Fixed switching on null causing NPE -• [YouTube] Fixed viewing comments when opening an invidio.us url -• [SoundCloud] Updated client_id +फिकसड +• NewPipe पर वीडियो शेयर करते समय और सीधे उसकी स्ट्रीम डाउनलोड करते समय कई दिक्कतें ठीक की गईं +• सर्च रिज़ल्ट पेजिंग ठीक की गई +• [SoundCloud] client_id अपडेट किया गया diff --git a/fastlane/metadata/android/hi/changelogs/840.txt b/fastlane/metadata/android/hi/changelogs/840.txt index 95dc80844..5be8a8660 100644 --- a/fastlane/metadata/android/hi/changelogs/840.txt +++ b/fastlane/metadata/android/hi/changelogs/840.txt @@ -1,22 +1,10 @@ -New -• Added language selector to change the app language -• Added send to Kodi button to player collapsible menu -• Added ability to copy comments on long press +नया +• ऐप की भाषा बदलने के लिए भाशा सिलेक्टर जोड़ा गया +• प्लेयर कोलैप्सिबल मेनू में कोडी को भेजें बटन जोड़ा गया +• देर तक दबाने पर कमेंट्स कॉपी करने की सुविधा जोड़ी गई -Improved -• Fix ReCaptcha activity and correctly save obtained cookies -• Removed dot-menu in favour of drawer and hide history button when watch history is not enabled in settings -• Ask for display over other apps permission in settings correctly on Android 6 and later -• Rename local playlist by long-clicking in BookmarkFragment -• Various PeerTube improvements -• Improved several English source strings +बेहतर +• ReCaptcha एक्टिविटी को ठीक किया गया और मिली हुई कुकीज़ को सही ढंग से सेव किया गया -Fixed -• Fixed player starting again although it is paused when option "minimize on app switch" enabled and NewPipe is minimized -• Fix initial brightness value for gesture -• Fixed .srt subtitle downloads containing not all line breaks -• Fixed download to SD card failing because some Android 5 devices are not CTF compliant -• Fixed downloading on Android KitKat -• Fixed corrupt video .mp4 file being recognized as audio file -• Fixed multiple localization problems, including wrong Chinese language codes -• [YouTube] Timestamps in description are clickable again +ठीक किया गया +• Android KitKat पर डाउनलोडिंग ठीक की गई diff --git a/fastlane/metadata/android/hi/changelogs/930.txt b/fastlane/metadata/android/hi/changelogs/930.txt index b23b01ea8..457d1745b 100644 --- a/fastlane/metadata/android/hi/changelogs/930.txt +++ b/fastlane/metadata/android/hi/changelogs/930.txt @@ -1,19 +1,13 @@ -New -• Search on YouTube Music -• Basic Android TV support +नया +• YouTube Music पर सर्च करें +• बेसिक Android TV सपोर्ट -Improved -• Added the ability to remove all watched videos from a local playlist -• Show message when content isn't supported yet instead of crashing -• Improved popup player resize with pinch gestures -• Enqueue streams on long press on background and popup buttons in channel -• Improved size handling of the drawer header title +बेहतर +• लोकल प्लेलिस्ट से सभी देखे गए वीडियो हटाने की सुविधा जोड़ी गई +• जब कंटेंट अभी सपोर्टेड न हो, तो क्रैश होने के बजाय मैसेज दिखाएं -Fixed -• Fixed age restricted content setting not working -• Fixed certain kinds of reCAPTCHAs -• Fixed crash when opening bookmarks while playlist is `null` -• Fixed detection of network related exceptions -• Fixed visibility of group sort button in the subscriptions fragment +फिकसड +• उम्र पर रोक वाली कंटेंट सेटिंग काम नहीं कर रही थी, इसे ठीक किया गया +• कुछ तरह के reCAPTCHA को ठीक किया गया -and more +और भी बहुत कुछ diff --git a/fastlane/metadata/android/hi/changelogs/940.txt b/fastlane/metadata/android/hi/changelogs/940.txt index f9530bc68..6f9253a2f 100644 --- a/fastlane/metadata/android/hi/changelogs/940.txt +++ b/fastlane/metadata/android/hi/changelogs/940.txt @@ -1,16 +1,14 @@ -New -• Add support for SoundCloud comments -• Add YouTube restricted mode setting -• Show PeerTube parent channel details +नया +• SoundCloud कमेंट्स के लिए सपोर्ट जोड़ें +• YouTube रेस्ट्रिक्टेड मोड सेटिंग जोड़ें +• PeerTube पेरेंट चैनल की डिटेल्स दिखाएँ -Improved -• Show Kore button only for supported services -• Block player gestures that begin at the NavigationBar or StatusBar -• Change retry & subscribe buttons background color based on service color +बेहतर +• सिर्फ़ सपोर्टेड सर्विसेज़ के लिए Kore बटन दिखाएँ -Fixed -• Fix download dialog freeze -• Open in browser button now really opens in browser -• Fix crash on opening videos and "Could not play this stream" +फिक्स किया गया +• डाउनलोड डायलॉग फ़्रीज़ होने की समस्या को ठीक करें +• ब्राउज़र में खोलें बटन अब सच में ब्राउज़र में खुलता है +• वीडियो खोलने पर क्रैश और "यह स्ट्रीम नहीं चला सका" -and more +और भी बहुत कुछ diff --git a/fastlane/metadata/android/hi/changelogs/951.txt b/fastlane/metadata/android/hi/changelogs/951.txt index e933e5cbd..ffc1f8891 100644 --- a/fastlane/metadata/android/hi/changelogs/951.txt +++ b/fastlane/metadata/android/hi/changelogs/951.txt @@ -1,17 +1,13 @@ -New -• Add search for subscription picker in the feed group dialog -• Add filter to the feed group dialog to show only ungrouped subscriptions -• Add playlist tab to main page -• Fast forward/rewind in background/pop-up player queue -• Display search suggestion: did you mean & showing result for +नया +• फ़ीड ग्रुप डायलॉग में सब्सक्रिप्शन पिकर के लिए सर्च जोड़ें +• फ़ीड ग्रुप डायलॉग में फ़िल्टर जोड़ें ताकि सिर्फ़ अनग्रुप्ड सब्सक्रिप्शन दिखें +• मेन पेज पर प्लेलिस्ट टैब जोड़ें -Improved -• Drop writing application metadata in muxed files -• Do not remove failed streams from the queue -• Update status bar color to match toolbar color +बेहतर +• म्यूक्स की गई फ़ाइलों में एप्लीकेशन मेटाडेटा लिखना बंद करें +• फ़ेल स्ट्रीम को क्यू से न हटाएं -Fixed -• Fixed audio/video desync caused by floating point cumulative errors -• [PeerTube] Handle deleted comments +फिकसड +• फ़्लोटिंग पॉइंट क्यूमुलेटिव एरर के कारण होने वाले ऑडियो/वीडियो डीसिंक को ठीक किया गया -and more +और भी बहुत कुछ diff --git a/fastlane/metadata/android/hi/changelogs/995.txt b/fastlane/metadata/android/hi/changelogs/995.txt index 63ed335a4..7bd7341c2 100644 --- a/fastlane/metadata/android/hi/changelogs/995.txt +++ b/fastlane/metadata/android/hi/changelogs/995.txt @@ -1,16 +1,14 @@ नया • चैनल टैब्स का समर्थन करें • छवि गुणवत्ता का चयन करें -• सभी छवियों के यूआरएल प्राप्त करें सुधार किए • प्लेयर इंटरफ़ेस की पहुंच • केवल-वीडियो डाउनलोड के लिए बेहतर ऑडियो चयन -• साझा प्लेलिस्ट सामग्री में प्लेलिस्ट और वीडियो नाम शामिल करने का विकल्प ठीक किए • [यूट्यूब] लाइक पाने की संख्या ठीक करें • पॉपअप और क्रैश पर प्रतिक्रिया नहीं देने वाले प्लेयर को ठीक करें • भाषा चयनकर्ता में गलत भाषाओं का चयन ठीक करें • प्लेयर ऑडियो फोकस म्यूट का सम्मान नहीं कर रहा था -• प्लेलिस्ट में आइटम जोड़ना कभी-कभी काम नहीं कर रहा था +• प्लेलिस्ट में आइटम ना जुड़ना ठीक किया diff --git a/fastlane/metadata/android/hi/changelogs/997.txt b/fastlane/metadata/android/hi/changelogs/997.txt index 652935884..b47816231 100644 --- a/fastlane/metadata/android/hi/changelogs/997.txt +++ b/fastlane/metadata/android/hi/changelogs/997.txt @@ -6,12 +6,9 @@ सुधार • [एंड्रॉइड 13+] कस्टम अधिसूचना क्रियाएं पुनर्स्थापित करें -• अपडेटस की जांच के लिए सहमति का अनुरोध करें -• बफ़रिंग के दौरान नोटीफिकेशन से चलाने/रोकने की अनुमति दें • कुछ सेटिंग्स पुनः व्यवस्थित करें ठीक किए • [यूट्यूब] लोड न होने वाली टिप्पणियों को ठीक करें, साथ ही अन्य फिक्स और सुधार भी -• सेटिंग्स आयात में भेद्यता को हल करें और JSON पर स्विच करें • विभिन्न डाउनलोड सुधार • खोज पाठ को ट्रिम करें diff --git a/fastlane/metadata/android/pa/changelogs/1000.txt b/fastlane/metadata/android/pa/changelogs/1000.txt index 90d70c151..ddc239f32 100644 --- a/fastlane/metadata/android/pa/changelogs/1000.txt +++ b/fastlane/metadata/android/pa/changelogs/1000.txt @@ -3,11 +3,9 @@ • [PeerTube] `subscribeto.me` ਇੰਸਟੈਂਸ ਲਿੰਕਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕ ਹੀ ਹੈਂਡਲ ਕਰੋ • ਇਤਿਹਾਸ ਸਕਰੀਨ ਵਿੱਚ ਸਿਰਫ਼ ਸਿੰਗਲ ਆਈਟਮ ਨੂੰ ਚਲਾਉਣਾ ਸ਼ੁਰੂ ਕਰੋ -ਠੀਕ ਕਰਿਆ +ਫਿਕਸਡ • RSS ਬਟਨ ਦੀ ਦਿੱਖ ਨੂੰ ਠੀਕ ਕਰੋ • ਸੀਕਬਾਰ ਪੂਰਵਦਰਸ਼ਨ ਕ੍ਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ • ਥੰਮਨੇਲ-ਰਹਿਤ ਆਈਟਮ ਦੀ ਪਲੇਲਿਸਟਿੰਗ ਨੂੰ ਠੀਕ ਕਰੋ -• ਡਾਉਨਲੋਡ ਡਾਇਲਾਗ ਦੇ ਦਿਸਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਬਾਹਰ ਕੱਢਣਾ ਠੀਕ ਕਰੋ -• ਸੰਬੰਧਿਤ ਆਈਟਮਾਂ ਦੀ ਸੂਚੀ ਐਨਕਿਊ ਪੌਪਅੱਪ ਨੂੰ ਠੀਕ ਕਰੋ -• ਪਲੇਲਿਸਟ ਡਾਇਲਾਗ ਵਿੱਚ ਜੋੜਨ ਦਾ ਕ੍ਰਮ ਠੀਕ ਕਰੋ -• ਪਲੇਲਿਸਟ ਬੁੱਕਮਾਰਕ ਆਈਟਮ ਖਾਕਾ ਵਿਵਸਥਿਤ ਕਰੋ +• ਸੰਬੰਧਿਤ ਆਈਟਮਾਂ ਦੀ ਸੂਚੀ ਐਨਕਿਊ ਪੌਪ-ਅਪ ਨੂੰ ਠੀਕ ਕਰੋ +• ਅਤੇ ਹੋਰ ਪਲੇਲਿਸਟ ਤੇ ਡਾਊਨਲੋਡ ਸਬੰਧਤ ਫਿਕਸ diff --git a/fastlane/metadata/android/pa/changelogs/1004.txt b/fastlane/metadata/android/pa/changelogs/1004.txt index fe62a1330..6d3d23b2e 100644 --- a/fastlane/metadata/android/pa/changelogs/1004.txt +++ b/fastlane/metadata/android/pa/changelogs/1004.txt @@ -1 +1,3 @@ -ਸਥਿਰ YouTube ਕੋਈ ਸਟ੍ਰੀਮ ਨਹੀਂ ਚਲਾ ਰਿਹਾ +ਇਹ ਰੀਲੀਜ਼ ਸਿਰਫ਼ 360p ਸਟ੍ਰੀਮ ਪ੍ਰਦਾਨ ਕਰਨ ਵਾਲੇ YouTube ਨੂੰ ਠੀਕ ਕਰਦੀ ਹੈ। + +ਧਿਆਨ ਦਿਓ ਕਿ ਇਸ ਸੰਸਕਰਣ ਵਿੱਚ ਵਰਤਿਆ ਗਿਆ ਹੱਲ ਸੰਭਾਵਤ ਤੌਰ 'ਤੇ ਅਸਥਾਈ ਹੈ, ਅਤੇ ਲੰਬੇ ਸਮੇਂ ਵਿੱਚ SABR ਵੀਡੀਓ ਪ੍ਰੋਟੋਕੋਲ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ, ਪਰ TeamNewPipe ਮੈਂਬਰ ਇਸ ਸਮੇਂ ਰੁੱਝੇ ਹੋਏ ਹਨ ਇਸ ਲਈ ਕਿਸੇ ਵੀ ਮਦਦ ਦੀ ਬਹੁਤ ਪ੍ਰਸ਼ੰਸਾ ਕੀਤੀ ਜਾਵੇਗੀ! https://github.com/TeamNewPipe/NewPipe/issues/12248 diff --git a/fastlane/metadata/android/pa/changelogs/1005.txt b/fastlane/metadata/android/pa/changelogs/1005.txt index f1492a1ac..982b092a4 100644 --- a/fastlane/metadata/android/pa/changelogs/1005.txt +++ b/fastlane/metadata/android/pa/changelogs/1005.txt @@ -1,17 +1,10 @@ ਨਵਾਂ -+ • Android Auto ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਿਲ ਕਰੋ -+ • ਫੀਡ ਗਰੁੱਪਾਂ ਨੂੰ ਮੁੱਖ ਸਕ੍ਰੀਨ ਟੈਬਾਂ ਵਜੋਂ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ -+ • [YouTube] ਅਸਥਾਈ ਪਲੇਲਿਸਟ ਦੇ ਵਜੋਂ ਸਾਂਝਾ ਕਰੋ -+ • [SoundCloud] "ਪਸੰਦ" ਚੈਨਲ ਟੈਬ ਜੋੜੀ ਗਈ - -ਬਿਹਤਰ ਕੀਤੇ -+ • ਖੋਜ ਬਾਰ ਸੰਕੇਤ -+ • ਡਾਊਨਲੋਡਸ ਸੂਚੀ ਵਿੱਚ ਡਾਊਨਲੋਡ ਤਾਰੀਖ ਦਿਖਾਓ -+ • ਐਂਡਰਾਇਡ 13+ 'ਤੇ ਪ੍ਰਤੀ ਐਪ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਕਰੋ +• Android Auto ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਿਲ ਕਰਨ ਸਮੇਤ YouTube ਲਈ ਅਸਥਾਈ ਪਲੇਲਿਸਟ ਵਜੋਂ ਸ਼ੇਅਰ ਫੰਕਸ਼ਨ ਤੇ SoundCloud ਲਈ ਲਾਈਕਸ ਚੈਨਲ ਟੈਬ ਨਵੀਂ ਐਡ ਕੀਤੀ +• ਫੀਡ ਗਰੁੱਪਾਂ ਨੂੰ ਮੁੱਖ ਸਕ੍ਰੀਨ ਟੈਬਾਂ ਵਜੋਂ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ ਦਰੁਸਤ ਕੀਤੇ -+ • ਡਾਰਕ ਥੀਮਾਂ 'ਤੇ ਟੈਕਸਟ ਰੰਗਾਂ ਨੂੰ ਠੀਕ ਕਰੋ -+ • [YouTube] ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ ਜੋ 100 ਤੋਂ ਵੱਧ ਆਈਟਮਾਂ ਲੋਡ ਨਹੀਂ ਕਰਦੀਆਂ -+ • [YouTube] ਸਿਫਾਰਸ਼ ਕੀਤੀਆਂ ਵੀਡੀਓਜ਼ ਦੀ ਅਣਉਪਲੱਬਧਤਾ ਨੂੰ ਠੀਕ ਕਰੋ -+ • ਇਤਿਹਾਸ ਸੂਚੀ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਕ੍ਰੈਸ਼ ਨੂੰ ਠੀਕ ਕਰੋ -+ • ਟਿੱਪਣੀਆਂ ਦੇ ਜਵਾਬ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਠੀਕ ਕਰੋ +• ਡਾਰਕ ਥੀਮਾਂ 'ਤੇ ਟੈਕਸਟ ਰੰਗਾਂ ਨੂੰ ਠੀਕ ਕਰੋ +• [YouTube] ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਠੀਕ ਕਰੋ ਜੋ 100 ਤੋਂ ਵੱਧ ਆਈਟਮਾਂ ਲੋਡ ਨਹੀਂ ਕਰਦੀਆਂ +• [YouTube] ਸਿਫਾਰਸ਼ ਕੀਤੀਆਂ ਵੀਡੀਓਜ਼ ਦੀ ਅਣਉਪਲੱਬਧਤਾ ਨੂੰ ਠੀਕ ਕਰੋ +• ਟਿੱਪਣੀਆਂ ਦੇ ਜਵਾਬ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪਾਂ ਨੂੰ ਠੀਕ ਕਰੋ +ਪੂਰੇ ਬਦਲਾਵਾਂ ਵਾਸਤੇ ਗਿਟਹੱਬ ਤੇ dev ਸ਼ਾਖਾ ਟੈਗ ਅਨੁਸਾਰ ਬਦਲਾਅ ਵੇਖੋ diff --git a/fastlane/metadata/android/pa/changelogs/1006.txt b/fastlane/metadata/android/pa/changelogs/1006.txt new file mode 100644 index 000000000..2539da187 --- /dev/null +++ b/fastlane/metadata/android/pa/changelogs/1006.txt @@ -0,0 +1,15 @@ +# ਸੁਧਾਰਿਆ ਗਿਆ +ਟਾਈਮਸਟੈਂਪਾਂ 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਸਮੇਂ ਮੌਜੂਦਾ ਪਲੇਅਰ ਰੱਖੋ +ਜਦੋਂ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਬਕਾਇਆ ਡਾਊਨਲੋਡ ਮਿਸ਼ਨਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ +ਫਾਈਲ ਨੂੰ ਮਿਟਾਏ ਬਿਨਾਂ ਡਾਊਨਲੋਡ ਨੂੰ ਮਿਟਾਉਣ ਦਾ ਵਿਕਲਪ ਸ਼ਾਮਿਲ ਕਰੋ +on.soundcloud ਲਿੰਕ ਖੋਲ੍ਹਣ ਦਾ ਸਮਰਥਨ ਕਰੋ +ਬਹੁਤ ਸਾਰੇ ਛੋਟੇ ਸੁਧਾਰ ਅਤੇ ਅਨੁਕੂਲਤਾ + +# ਫਿਕਸਡ +7 ਤੋਂ ਘੱਟ ਐਂਡਰਾਇਡ ਸੰਸਕਰਣਾਂ ਲਈ ਛੋਟੀ ਗਿਣਤੀ ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +ਖਾਲੀ ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +SRT ਉਪਸਿਰਲੇਖ ਫਾਈਲਾਂ ਲਈ ਠੀਕ ਕੀਤਾ ਗਿਆ +ਬਹੁਤ ਸਾਰੇ ਕਰੈਸ਼ ਠੀਕ ਕੀਤੇ ਗਏ + +# ਵਿਕਾਸ +ਅੰਦਰੂਨੀ ਕੋਡ ਆਧੁਨਿਕੀਕਰਨ diff --git a/fastlane/metadata/android/pa/changelogs/65.txt b/fastlane/metadata/android/pa/changelogs/65.txt index 0fbf1147e..0f7f8fe7d 100644 --- a/fastlane/metadata/android/pa/changelogs/65.txt +++ b/fastlane/metadata/android/pa/changelogs/65.txt @@ -1 +1,13 @@ -### ਸੁਧਾਰ - ਬਰਗਰਮੇਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ #1486 ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ - ਡਾਉਨਲੋਡਸ #1472 ਨੂੰ ਮਿਟਾਉਣ ਨੂੰ ਅਨਡੂ ਕਰੋ - ਸ਼ੇਅਰ ਮੀਨੂ #1498 ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ - ਲੰਬੇ ਟੈਪ ਮੀਨੂ #1454 ਵਿੱਚ ਸ਼ੇਅਰ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ - ਨਿਕਾਸ #1354 'ਤੇ ਮੁੱਖ ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰੋ - ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ ਅਪਡੇਟ ਅਤੇ ਡੇਟਾਬੇਸ ਬੈਕਅਪ ਫਿਕਸ #1510 - ExoPlayer 2.8.2 ਅੱਪਡੇਟ #1392 - ਤੇਜ਼ ਗਤੀ ਤਬਦੀਲੀ ਲਈ ਵੱਖ-ਵੱਖ ਸਟੈਪ ਸਾਈਜ਼ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਲੇਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ ਡਾਇਲਾਗ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ। - ਪਲੇਬੈਕ ਸਪੀਡ ਨਿਯੰਤਰਣ ਵਿੱਚ ਚੁੱਪ ਦੌਰਾਨ ਫਾਸਟ-ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਇੱਕ ਟੌਗਲ ਜੋੜਿਆ ਗਿਆ। ਇਹ ਆਡੀਓਬੁੱਕਾਂ ਅਤੇ ਕੁਝ ਸੰਗੀਤ ਸ਼ੈਲੀਆਂ ਲਈ ਮਦਦਗਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਸੱਚਾ ਸਹਿਜ ਅਨੁਭਵ ਲਿਆ ਸਕਦਾ ਹੈ (ਅਤੇ ਬਹੁਤ ਸਾਰੀਆਂ ਚੁੱਪ =\\ ਨਾਲ ਗੀਤ ਤੋੜ ਸਕਦਾ ਹੈ)। - ਹੱਥੀਂ ਅਜਿਹਾ ਕਰਨ ਦੀ ਬਜਾਏ, ਪਲੇਅਰ ਵਿੱਚ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਮੀਡੀਆ ਦੇ ਨਾਲ-ਨਾਲ ਮੈਟਾਡੇਟਾ ਪਾਸ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਰੀਫੈਕਟਰਡ ਮੀਡੀਆ ਸਰੋਤ ਰੈਜ਼ੋਲਿਊਸ਼ਨ। ਹੁਣ ਸਾਡੇ ਕੋਲ ਮੈਟਾਡੇਟਾ ਦਾ ਇੱਕ ਸਿੰਗਲ ਸਰੋਤ ਹੈ ਅਤੇ ਪਲੇਬੈਕ ਸ਼ੁਰੂ ਹੋਣ 'ਤੇ ਸਿੱਧਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਸਥਿਰ ਰਿਮੋਟ ਪਲੇਲਿਸਟ ਮੈਟਾਡੇਟਾ ਅੱਪਡੇਟ ਨਹੀਂ ਹੋ ਰਿਹਾ ਹੈ ਜਦੋਂ ਪਲੇਲਿਸਟ ਫਰੈਗਮੈਂਟ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਨਵਾਂ ਮੈਟਾਡੇਟਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਕਈ UI ਫਿਕਸ: #1383, ਬੈਕਗਰਾਊਂਡ ਪਲੇਅਰ ਨੋਟੀਫਿਕੇਸ਼ਨ ਕੰਟਰੋਲ ਹੁਣ ਹਮੇਸ਼ਾ ਸਫੈਦ, ਫਲਿੰਗਿੰਗ ਰਾਹੀਂ ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨਾ ਆਸਾਨ - ਮਲਟੀਸਰਵਿਸ ਲਈ ਰੀਫੈਕਟਰਡ ਆਰਕੀਟੈਕਚਰ ਦੇ ਨਾਲ ਨਵੇਂ ਐਕਸਟਰੈਕਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ ### ਫਿਕਸ - #1440 ਟੁੱਟੇ ਹੋਏ ਵੀਡੀਓ ਜਾਣਕਾਰੀ ਲੇਆਉਟ #1491 ਨੂੰ ਠੀਕ ਕਰੋ - ਇਤਿਹਾਸ ਫਿਕਸ #1497 ਦੇਖੋ - #1495, ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਪਲੇਲਿਸਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ, ਮੈਟਾਡੇਟਾ (ਥੰਬਨੇਲ, ਸਿਰਲੇਖ ਅਤੇ ਵੀਡੀਓ ਗਿਣਤੀ) ਨੂੰ ਅਪਡੇਟ ਕਰਕੇ। - #1475, ਜਦੋਂ ਉਪਭੋਗਤਾ ਵੇਰਵੇ ਦੇ ਟੁਕੜੇ 'ਤੇ ਬਾਹਰੀ ਪਲੇਅਰ 'ਤੇ ਵੀਡੀਓ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਤਾਂ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਦ੍ਰਿਸ਼ ਨੂੰ ਰਜਿਸਟਰ ਕਰਕੇ। - ਪੌਪਅੱਪ ਮੋਡ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਕ੍ਰੀਨ ਟਾਈਮਆਊਟ ਫਿਕਸ ਕਰੋ। #1463 (ਸਥਿਰ #640) - ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਫਿਕਸ #1509 - [#1412] ਫਿਕਸਡ ਰੀਪੀਟ ਮੋਡ ਜਿਸ ਨਾਲ ਪਲੇਅਰ ਐਨਪੀਈ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ ਜਦੋਂ ਪਲੇਅਰ ਦੀ ਗਤੀਵਿਧੀ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਹੁੰਦੀ ਹੈ ਤਾਂ ਨਵਾਂ ਇਰਾਦਾ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ। - ਪੌਪਅੱਪ ਲਈ ਫਿਕਸਡ ਮਿਨੀਮਾਈਜ਼ਿੰਗ ਪਲੇਅਰ ਪਲੇਅਰ ਨੂੰ ਨਸ਼ਟ ਨਹੀਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਪੌਪਅੱਪ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। +### ਸੁਧਾਰ + +- ਬਰਗਰ ਮੀਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਕਰੋ #1486 +- ਡਾਊਨਲੋਡਸ ਨੂੰ ਅਨਡੂ ਕਰੋ #1472 +- ਸ਼ੇਅਰ ਮੀਨੂ ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ #1498 +- ਲੰਬੇ ਟੈਪ ਮੀਨੂ ਵਿੱਚ ਸਾਂਝਾ ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ #1454 +- ਐਕਸੋਪਲੇਅਰ 2.8.2 ਅਪਡੇਟ #1392 +- ਕਈ UI ਫਿਕਸ: #1383 + +### ਫਿਕਸ + +- ਵਿਊ ਹਿਸਟਰੀ ਫਿਕਸ #1497 +- #1495, ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਪਲੇਲਿਸਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ, ਮੈਟਾਡੇਟਾ (ਥੰਬਨੇਲ, ਸਿਰਲੇਖ ਅਤੇ ਵੀਡੀਓ ਗਿਣਤੀ) ਨੂੰ ਅਪਡੇਟ ਕਰਕੇ। diff --git a/fastlane/metadata/android/pa/changelogs/66.txt b/fastlane/metadata/android/pa/changelogs/66.txt index aecf80cbc..f400eb137 100644 --- a/fastlane/metadata/android/pa/changelogs/66.txt +++ b/fastlane/metadata/android/pa/changelogs/66.txt @@ -1 +1,21 @@ -# v0.13.7 ਦਾ ਚੇਂਜਲਾਗ ### ਸਥਿਰ - v0.13.6 ਦੇ ਕ੍ਰਮਬੱਧ ਫਿਲਟਰ ਮੁੱਦਿਆਂ ਨੂੰ ਠੀਕ ਕਰੋ # v0.13.6 ਦਾ ਚੇਂਜਲਾਗ ### ਸੁਧਾਰ - ਬਰਗਰਮੇਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ #1486 ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ - ਡਾਉਨਲੋਡਸ #1472 ਨੂੰ ਮਿਟਾਉਣ ਨੂੰ ਅਨਡੂ ਕਰੋ - ਸ਼ੇਅਰ ਮੀਨੂ #1498 ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ - ਲੰਬੇ ਟੈਪ ਮੀਨੂ #1454 ਵਿੱਚ ਸ਼ੇਅਰ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ - ਨਿਕਾਸ #1354 'ਤੇ ਮੁੱਖ ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰੋ - ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ ਅਪਡੇਟ ਅਤੇ ਡੇਟਾਬੇਸ ਬੈਕਅਪ ਫਿਕਸ #1510 - ExoPlayer 2.8.2 ਅੱਪਡੇਟ #1392 - ਤੇਜ਼ ਗਤੀ ਤਬਦੀਲੀ ਲਈ ਵੱਖ-ਵੱਖ ਸਟੈਪ ਸਾਈਜ਼ ਦਾ ਸਮਰਥਨ ਕਰਨ ਲਈ ਪਲੇਬੈਕ ਸਪੀਡ ਕੰਟਰੋਲ ਡਾਇਲਾਗ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ। - ਪਲੇਬੈਕ ਸਪੀਡ ਨਿਯੰਤਰਣ ਵਿੱਚ ਚੁੱਪ ਦੌਰਾਨ ਫਾਸਟ-ਫਾਰਵਰਡ ਕਰਨ ਲਈ ਇੱਕ ਟੌਗਲ ਜੋੜਿਆ ਗਿਆ। ਇਹ ਆਡੀਓਬੁੱਕਾਂ ਅਤੇ ਕੁਝ ਸੰਗੀਤ ਸ਼ੈਲੀਆਂ ਲਈ ਮਦਦਗਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਇੱਕ ਸੱਚਾ ਸਹਿਜ ਅਨੁਭਵ ਲਿਆ ਸਕਦਾ ਹੈ (ਅਤੇ ਬਹੁਤ ਸਾਰੀਆਂ ਚੁੱਪ =\\ ਨਾਲ ਗੀਤ ਤੋੜ ਸਕਦਾ ਹੈ)। - ਹੱਥੀਂ ਅਜਿਹਾ ਕਰਨ ਦੀ ਬਜਾਏ, ਪਲੇਅਰ ਵਿੱਚ ਅੰਦਰੂਨੀ ਤੌਰ 'ਤੇ ਮੀਡੀਆ ਦੇ ਨਾਲ-ਨਾਲ ਮੈਟਾਡੇਟਾ ਪਾਸ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ ਰੀਫੈਕਟਰਡ ਮੀਡੀਆ ਸਰੋਤ ਰੈਜ਼ੋਲਿਊਸ਼ਨ। ਹੁਣ ਸਾਡੇ ਕੋਲ ਮੈਟਾਡੇਟਾ ਦਾ ਇੱਕ ਸਿੰਗਲ ਸਰੋਤ ਹੈ ਅਤੇ ਪਲੇਬੈਕ ਸ਼ੁਰੂ ਹੋਣ 'ਤੇ ਸਿੱਧਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਸਥਿਰ ਰਿਮੋਟ ਪਲੇਲਿਸਟ ਮੈਟਾਡੇਟਾ ਅੱਪਡੇਟ ਨਹੀਂ ਹੋ ਰਿਹਾ ਹੈ ਜਦੋਂ ਪਲੇਲਿਸਟ ਫਰੈਗਮੈਂਟ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਨਵਾਂ ਮੈਟਾਡੇਟਾ ਉਪਲਬਧ ਹੁੰਦਾ ਹੈ। - ਕਈ UI ਫਿਕਸ: #1383, ਬੈਕਗਰਾਊਂਡ ਪਲੇਅਰ ਨੋਟੀਫਿਕੇਸ਼ਨ ਕੰਟਰੋਲ ਹੁਣ ਹਮੇਸ਼ਾ ਸਫੈਦ, ਫਲਿੰਗਿੰਗ ਰਾਹੀਂ ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨਾ ਆਸਾਨ - ਮਲਟੀਸਰਵਿਸ ਲਈ ਰੀਫੈਕਟਰਡ ਆਰਕੀਟੈਕਚਰ ਦੇ ਨਾਲ ਨਵੇਂ ਐਕਸਟਰੈਕਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ ### ਫਿਕਸ - #1440 ਟੁੱਟੇ ਹੋਏ ਵੀਡੀਓ ਜਾਣਕਾਰੀ ਲੇਆਉਟ #1491 ਨੂੰ ਠੀਕ ਕਰੋ - ਇਤਿਹਾਸ ਫਿਕਸ #1497 ਦੇਖੋ - #1495, ਜਿਵੇਂ ਹੀ ਉਪਭੋਗਤਾ ਪਲੇਲਿਸਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ, ਮੈਟਾਡੇਟਾ (ਥੰਬਨੇਲ, ਸਿਰਲੇਖ ਅਤੇ ਵੀਡੀਓ ਗਿਣਤੀ) ਨੂੰ ਅਪਡੇਟ ਕਰਕੇ। - #1475, ਜਦੋਂ ਉਪਭੋਗਤਾ ਵੇਰਵੇ ਦੇ ਟੁਕੜੇ 'ਤੇ ਬਾਹਰੀ ਪਲੇਅਰ 'ਤੇ ਵੀਡੀਓ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ ਤਾਂ ਡੇਟਾਬੇਸ ਵਿੱਚ ਇੱਕ ਦ੍ਰਿਸ਼ ਨੂੰ ਰਜਿਸਟਰ ਕਰਕੇ। - ਪੌਪਅੱਪ ਮੋਡ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਕ੍ਰੀਨ ਟਾਈਮਆਊਟ ਫਿਕਸ ਕਰੋ। #1463 (ਸਥਿਰ #640) - ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਫਿਕਸ #1509 - [#1412] ਫਿਕਸਡ ਰੀਪੀਟ ਮੋਡ ਜਿਸ ਨਾਲ ਪਲੇਅਰ ਐਨਪੀਈ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ ਜਦੋਂ ਪਲੇਅਰ ਦੀ ਗਤੀਵਿਧੀ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਹੁੰਦੀ ਹੈ ਤਾਂ ਨਵਾਂ ਇਰਾਦਾ ਪ੍ਰਾਪਤ ਹੁੰਦਾ ਹੈ। - ਪੌਪਅੱਪ ਲਈ ਫਿਕਸਡ ਮਿਨੀਮਾਈਜ਼ਿੰਗ ਪਲੇਅਰ ਪਲੇਅਰ ਨੂੰ ਨਸ਼ਟ ਨਹੀਂ ਕਰਦਾ ਹੈ ਜਦੋਂ ਪੌਪਅੱਪ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। +# v0.13.7 ਲਈ ਚੇਂਜਲੌਗ + +### ਫਿਕਸ +- v0.13.6 ਤੋਂ ਸੌਰਟ ਫਿਲਟਰ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕੀਤੀਆਂ ਗਈਆਂ। + +# v0.13.6 ਲਈ ਚੇਂਜਲੌਗ + +### ਸੁਧਾਰ + +- ਬਰਗਰ ਮੀਨੂ ਆਈਕਨ ਐਨੀਮੇਸ਼ਨ #1486 ਨੂੰ ਅਯੋਗ ਕਰੋ +- ਡਾਊਨਲੋਡਸ ਨੂੰ ਮਿਟਾਓ ਨੂੰ ਅਣਡੂ ਕਰੋ #1472 +- ਸ਼ੇਅਰ ਮੀਨੂ ਵਿੱਚ ਡਾਊਨਲੋਡ ਵਿਕਲਪ #1498 +- ਲੰਬੇ ਟੈਪ ਮੀਨੂ ਵਿੱਚ ਸ਼ੇਅਰ ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ #1454 +- ਐਕਸੋਪਲੇਅਰ 2.8.2 ਅਪਡੇਟ #1392 +ਕਈ UI ਫਿਕਸ: #1383 + +### ਫਿਕਸ + +- ਫਿਕਸ ਕੀਤਾ ਗਿਆ #1440 ਟੁੱਟਿਆ ਹੋਇਆ ਵੀਡੀਓ ਜਾਣਕਾਰੀ ਲੇਆਉਟ #1491 +- ਇਤਿਹਾਸ ਦੇਖੋ ਫਿਕਸ #1497 +- ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਫਿਕਸ #1509. diff --git a/fastlane/metadata/android/pa/changelogs/68.txt b/fastlane/metadata/android/pa/changelogs/68.txt index e8e54ea4f..7b98078df 100644 --- a/fastlane/metadata/android/pa/changelogs/68.txt +++ b/fastlane/metadata/android/pa/changelogs/68.txt @@ -1 +1,19 @@ -v0.14.1 ਦੇ # ਬਦਲਾਅ ### ਸਥਿਰ - ਵੀਡੀਓ url #1659 ਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ ਰਿਹਾ - ਸਥਿਰ ਵਰਣਨ ਲਿੰਕ #1657 ਨੂੰ ਚੰਗੀ ਤਰ੍ਹਾਂ ਐਕਸਟਰੈਕਟ ਨਹੀਂ ਕਰਦਾ ਹੈ v0.14.0 ਦੀਆਂ # ਤਬਦੀਲੀਆਂ ### ਨਵਾਂ - ਨਵਾਂ ਦਰਾਜ਼ ਡਿਜ਼ਾਈਨ #1461 - ਨਵਾਂ ਅਨੁਕੂਲਿਤ ਫਰੰਟ ਪੇਜ #1461 ### ਸੁਧਾਰ - ਮੁੜ ਕੰਮ ਕੀਤਾ ਸੰਕੇਤ ਨਿਯੰਤਰਣ #1604 - ਪੌਪਅੱਪ ਪਲੇਅਰ #1597 ਨੂੰ ਬੰਦ ਕਰਨ ਦਾ ਨਵਾਂ ਤਰੀਕਾ ### ਸਥਿਰ - ਗਾਹਕੀ ਦੀ ਗਿਣਤੀ ਉਪਲਬਧ ਨਾ ਹੋਣ 'ਤੇ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰੋ। #1649 ਬੰਦ ਹੁੰਦਾ ਹੈ। - ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ "ਗਾਹਕ ਗਿਣਤੀ ਉਪਲਬਧ ਨਹੀਂ" ਦਿਖਾਓ - YouTube ਪਲੇਲਿਸਟ ਖਾਲੀ ਹੋਣ 'ਤੇ NPE ਨੂੰ ਠੀਕ ਕਰੋ - SoundCloud ਵਿੱਚ ਕਿਓਸਕ ਲਈ ਤੁਰੰਤ ਫਿਕਸ - ਰਿਫੈਕਟਰ ਅਤੇ ਬੱਗਫਿਕਸ #1623 - ਚੱਕਰੀ ਖੋਜ ਨਤੀਜੇ #1562 ਨੂੰ ਠੀਕ ਕਰੋ - ਸੀਕ ਬਾਰ ਨੂੰ ਸਥਿਰ ਤੌਰ 'ਤੇ ਬਾਹਰ ਨਾ ਕੱਢੋ - ਫਿਕਸ YT ਪ੍ਰੀਮੀਅਮ ਵੀਡੀਓ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਬਲੌਕ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ - ਕਈ ਵਾਰ ਲੋਡ ਨਾ ਹੋਣ ਵਾਲੇ ਵੀਡੀਓ ਨੂੰ ਠੀਕ ਕਰੋ (DASH ਪਾਰਸਿੰਗ ਦੇ ਕਾਰਨ) - ਵੀਡੀਓ ਵਰਣਨ ਵਿੱਚ ਲਿੰਕ ਫਿਕਸ ਕਰੋ - ਜਦੋਂ ਕੋਈ ਬਾਹਰੀ sdcard 'ਤੇ ਡਾਊਨਲੋਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਤਾਂ ਚੇਤਾਵਨੀ ਦਿਖਾਓ - ਅਪਵਾਦ ਟਰਿੱਗਰ ਰਿਪੋਰਟ ਦਿਖਾਈ ਗਈ ਕੁਝ ਵੀ ਠੀਕ ਨਾ ਕਰੋ - ਐਂਡਰਾਇਡ 8.1 ਲਈ ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ ਥੰਬਨੇਲ ਨਹੀਂ ਦਿਖਾਇਆ ਗਿਆ [ਇੱਥੇ ਦੇਖੋ](https://github.com/TeamNewPipe/NewPipe/issues/943) - ਪ੍ਰਸਾਰਣ ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਦੀ ਰਜਿਸਟਰੇਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰੋ। #1641 ਬੰਦ ਹੁੰਦਾ ਹੈ। +# v0.14.1 ਵਿੱਚ ਬਦਲਾਅ + +### ਠੀਕ ਕੀਤਾ ਗਿਆ +- ਵੀਡੀਓ URL ਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲਤਾ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ #1659 +- ਵਰਣਨ ਲਿੰਕ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਐਕਸਟਰੈਕਟ ਨਾ ਕਰਨ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ #1657 + +# v0.14.0 ਵਿੱਚ ਬਦਲਾਅ + +### ਨਵਾਂ +- ਨਵਾਂ ਦਰਾਜ਼ ਡਿਜ਼ਾਈਨ #1461 +- ਨਵਾਂ ਅਨੁਕੂਲਿਤ ਫਰੰਟ ਪੇਜ #1461 + +### ਸੁਧਾਰ +- ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨ ਦਾ ਨਵਾਂ ਤਰੀਕਾ #1597 + +### ਠੀਕ ਕੀਤਾ ਗਿਆ +- YouTube ਪਲੇਲਿਸਟਾਂ ਖਾਲੀ ਹੋਣ 'ਤੇ NPE ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +- SoundCloud ਵਿੱਚ ਕਿਓਸਕ ਲਈ ਤੁਰੰਤ ਠੀਕ ਕੀਤਾ ਗਿਆ +- ਰੀਫੈਕਟਰ ਅਤੇ ਬੱਗਫਿਕਸ #1623. diff --git a/fastlane/metadata/android/pa/changelogs/69.txt b/fastlane/metadata/android/pa/changelogs/69.txt index b6358991b..8956afb54 100644 --- a/fastlane/metadata/android/pa/changelogs/69.txt +++ b/fastlane/metadata/android/pa/changelogs/69.txt @@ -1 +1,15 @@ -### ਨਵਾਂ - ਮਿਟਾਓ ਅਤੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨ #1516 ਵਿੱਚ ਸਾਂਝਾ ਕਰੋ - ਟੈਬਲੇਟ UI ਅਤੇ ਗਰਿੱਡ ਸੂਚੀ ਖਾਕਾ #1617 ### ਸੁਧਾਰ - ਆਖਰੀ ਵਰਤੇ ਗਏ ਆਸਪੈਕਟ ਰੇਸ਼ੋ #1748 ਨੂੰ ਸਟੋਰ ਅਤੇ ਰੀਲੋਡ ਕਰੋ - ਪੂਰੇ ਵੀਡੀਓ ਨਾਮ #1771 ਦੇ ਨਾਲ ਡਾਊਨਲੋਡ ਗਤੀਵਿਧੀ ਵਿੱਚ ਲੀਨੀਅਰ ਲੇਆਉਟ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ - ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਟੈਬ #1516 ਦੇ ਅੰਦਰੋਂ ਸਿੱਧਾ ਗਾਹਕੀਆਂ ਨੂੰ ਮਿਟਾਓ ਅਤੇ ਸਾਂਝਾ ਕਰੋ - ਜੇਕਰ ਪਲੇ ਕਤਾਰ ਪਹਿਲਾਂ ਹੀ #1783 ਖਤਮ ਹੋ ਗਈ ਹੈ ਤਾਂ ਹੁਣ ਏਨਕਿਊ ਕਰਨਾ ਵੀਡੀਓ ਚਲਾਉਣ ਨੂੰ ਚਾਲੂ ਕਰਦਾ ਹੈ - ਵਾਲੀਅਮ ਅਤੇ ਚਮਕ ਸੰਕੇਤ #1644 ਲਈ ਵੱਖਰੀ ਸੈਟਿੰਗ - ਸਥਾਨਕਕਰਨ #1792 ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ ### ਫਿਕਸ - ਲਈ ਪਾਰਸਿੰਗ ਸਮਾਂ ਫਿਕਸ ਕਰੋ। ਫਾਰਮੈਟ, ਇਸ ਲਈ ਨਿਊ ਪਾਈਪ ਨੂੰ ਫਿਨਲੈਂਡ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ - ਗਾਹਕੀ ਦੀ ਗਿਣਤੀ ਨੂੰ ਠੀਕ ਕਰੋ - API 28+ ਡਿਵਾਈਸਾਂ #1830 ਲਈ ਫੋਰਗਰਾਉਂਡ ਸੇਵਾ ਅਨੁਮਤੀ ਸ਼ਾਮਲ ਕਰੋ ### ਜਾਣੇ-ਪਛਾਣੇ ਬੱਗ - ਐਂਡ੍ਰਾਇਡ ਪੀ 'ਤੇ ਪਲੇਬੈਕ ਸਟੇਟ ਨੂੰ ਸੇਵ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ +### ਨਵਾਂ +- ਗਾਹਕੀਆਂ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਟੈਪ ਕਰਕੇ ਮਿਟਾਓ ਅਤੇ ਸਾਂਝਾ ਕਰੋ #1516 +- ਟੈਬਲੇਟ UI ਅਤੇ ਗਰਿੱਡ ਸੂਚੀ ਲੇਆਉਟ #1617 + +### ਸੁਧਾਰ +- ਵਾਲੀਅਮ ਅਤੇ ਚਮਕ ਸੰਕੇਤਾਂ ਲਈ ਵੱਖਰੀਆਂ ਸੈਟਿੰਗਾਂ #1644 +- ਸਥਾਨਕਕਰਨ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ #1792 + +### ਸੁਧਾਰ +- . ਫਾਰਮੈਟ ਲਈ ਸਮਾਂ ਪਾਰਸਿੰਗ ਠੀਕ ਕਰੋ ਤਾਂ ਜੋ ਫਿਨਲੈਂਡ ਵਿੱਚ ਨਿਊਪਾਈਪ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕੇ +- ਗਾਹਕੀ ਗਿਣਤੀ ਠੀਕ ਕਰੋ +- API 28+ ਡਿਵਾਈਸਾਂ ਲਈ ਫੋਰਗਰਾਉਂਡ ਸੇਵਾ ਅਨੁਮਤੀ ਸ਼ਾਮਲ ਕਰੋ #1830 + +### ਜਾਣੇ-ਪਛਾਣੇ ਬੱਗ +- ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਐਂਡਰਾਇਡ ਪੀ 'ਤੇ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ diff --git a/fastlane/metadata/android/pa/changelogs/70.txt b/fastlane/metadata/android/pa/changelogs/70.txt index 97d781d4a..bedc91496 100644 --- a/fastlane/metadata/android/pa/changelogs/70.txt +++ b/fastlane/metadata/android/pa/changelogs/70.txt @@ -1 +1,10 @@ -ਧਿਆਨ ਦਿਓ: ਇਹ ਸੰਸਕਰਣ ਸ਼ਾਇਦ ਇੱਕ ਬੱਗਫੈਸਟ ਹੈ, ਬਿਲਕੁਲ ਪਿਛਲੇ ਇੱਕ ਵਾਂਗ। ਹਾਲਾਂਕਿ 17 ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਬੰਦ ਹੋਣ ਦੇ ਕਾਰਨ. ਇੱਕ ਟੁੱਟਿਆ ਹੋਇਆ ਸੰਸਕਰਣ ਕੋਈ ਸੰਸਕਰਣ ਨਾਲੋਂ ਬਿਹਤਰ ਹੈ. ਸਹੀ? ¯\_(ツ)_/¯ ### ਸੁਧਾਰ * ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਹੁਣ ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ ਹੈ #1879 * ਐਂਡਰਾਇਡ 4.1 - 4.3 #1884 ਲਈ ਸਹਾਇਤਾ ਛੱਡੋ * ਪੁਰਾਣੇ ਪਲੇਅਰ #1884 ਨੂੰ ਹਟਾਓ * ਮੌਜੂਦਾ ਪਲੇ ਕਤਾਰ ਤੋਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੱਜੇ #1915 'ਤੇ ਸਵਾਈਪ ਕਰਕੇ ਹਟਾਓ * ਆਟੋ ਕਤਾਰਬੱਧ ਸਟ੍ਰੀਮ ਨੂੰ ਹਟਾਓ ਜਦੋਂ ਇੱਕ ਨਵੀਂ ਸਟ੍ਰੀਮ ਹੱਥੀਂ ਕਤਾਰਬੱਧ ਹੁੰਦੀ ਹੈ #1878 * @kapodamy ਦੁਆਰਾ ਡਾਉਨਲੋਡ ਕਰਨ ਅਤੇ ਗੁੰਮ ਹੋਈਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ #1759 ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਪੋਸਟ ਪ੍ਰੋਸੈਸਿੰਗ * ਪੋਸਟ-ਪ੍ਰੋਸੈਸਿੰਗ ਬੁਨਿਆਦੀ ਢਾਂਚਾ * "ਬੁਨਿਆਦੀ ਢਾਂਚੇ" ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਸਹੀ ਤਰੁੱਟੀ (ਡਾਊਨਲੋਡਰ ਲਈ) * ਮਲਟੀਪਲ ਡਾਉਨਲੋਡਸ ਦੀ ਬਜਾਏ ਕਤਾਰ * ਲੜੀਬੱਧ ਲੰਬਿਤ ਡਾਉਨਲੋਡਸ (`ਗੀਗਾ` ਫਾਈਲਾਂ) ਨੂੰ ਐਪ ਡੇਟਾ ਵਿੱਚ ਮੂਵ ਕਰੋ * ਅਧਿਕਤਮ ਡਾਊਨਲੋਡ ਦੀ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਨੂੰ ਲਾਗੂ ਕਰੋ * ਉਚਿਤ ਮਲਟੀ-ਥ੍ਰੈਡ ਡਾਊਨਲੋਡ ਵਿਰਾਮ * ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ 'ਤੇ ਜਾਣ ਵੇਲੇ ਡਾਊਨਲੋਡ ਬੰਦ ਕਰੋ (ਕਦੇ ਕੰਮ ਨਹੀਂ ਕਰਦਾ, ਦੂਜਾ ਪੁਆਇੰਟ ਦੇਖੋ) * ਅਗਲੇ ਡਾਉਨਲੋਡਸ ਲਈ ਥਰਿੱਡ ਗਿਣਤੀ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰੋ * ਬਹੁਤ ਸਾਰੀਆਂ ਅਸੰਗਤੀਆਂ ਹੱਲ ਕੀਤੀਆਂ ਗਈਆਂ ### ਸਥਿਰ * ਪੂਰਵ-ਨਿਰਧਾਰਤ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਨਾਲ ਕਰੈਸ਼ ਨੂੰ ਬਿਹਤਰ ਅਤੇ ਸੀਮਤ ਮੋਬਾਈਲ ਡਾਟਾ ਰੈਜ਼ੋਲਿਊਸ਼ਨ #1835 'ਤੇ ਸੈੱਟ ਕਰੋ * ਪੌਪ-ਅੱਪ ਪਲੇਅਰ ਕਰੈਸ਼ ਫਿਕਸਡ #1874 * ਬੈਕਗਰਾਊਂਡ ਪਲੇਅਰ #1901 ਨੂੰ ਖੋਲ੍ਹਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ NPE * ਜਦੋਂ ਆਟੋ ਕਤਾਰ ਯੋਗ ਹੁੰਦੀ ਹੈ ਤਾਂ ਨਵੀਆਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੰਮਿਲਿਤ ਕਰਨ ਲਈ ਠੀਕ ਕਰੋ #1878 * ਡੀਸਾਈਪਰਿੰਗ ਸ਼ੱਟਟਾਊਨ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ +ਸੁਧਾਰ +* ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫਾਈਲਾਂ ਹੁਣ ਇੱਕ ਕਲਿੱਕ ਨਾਲ ਖੋਲ੍ਹੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ #1879 +* ਐਂਡਰਾਇਡ 4.1 - 4.3 ਲਈ ਡ੍ਰੌਪ ਸਪੋਰਟ #1884 +* ਪੁਰਾਣੇ ਪਲੇਅਰ ਨੂੰ ਹਟਾਓ #1884 +* ਮੌਜੂਦਾ ਪਲੇ ਕਤਾਰ ਤੋਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸੱਜੇ ਪਾਸੇ ਸਵਾਈਪ ਕਰਕੇ ਹਟਾਓ #1915 +* ਜਦੋਂ ਇੱਕ ਨਵੀਂ ਸਟ੍ਰੀਮ ਨੂੰ ਹੱਥੀਂ ਕਤਾਰਬੱਧ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਆਟੋ ਕਤਾਰਬੱਧ ਸਟ੍ਰੀਮ ਨੂੰ ਹਟਾਓ #1878 +* ਬਹੁਤ ਸਾਰੀਆਂ ਡਾਊਨਲੋਡ ਅਸੰਗਤੀਆਂ ਠੀਕ ਕੀਤੀਆਂ ਗਈਆਂ + +ਫਿਕਸਡ +* ਬਹੁਤ ਸਾਰੀਆਂ ਅਸੰਗਤੀਆਂ ਠੀਕ ਕੀਤੀਆਂ ਗਈਆਂ diff --git a/fastlane/metadata/android/pa/changelogs/71.txt b/fastlane/metadata/android/pa/changelogs/71.txt index bafa26f8c..2f11dea82 100644 --- a/fastlane/metadata/android/pa/changelogs/71.txt +++ b/fastlane/metadata/android/pa/changelogs/71.txt @@ -1 +1,8 @@ -### ਸੁਧਾਰ * GitHub ਬਿਲਡ ਲਈ ਐਪ ਅਪਡੇਟ ਨੋਟੀਫਿਕੇਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ (@krtkush ਦੁਆਰਾ #1608) * ਡਾਊਨਲੋਡਰ ਵਿੱਚ ਕਈ ਸੁਧਾਰ (@kapodamy ਦੁਆਰਾ #1944): * ਗੁੰਮ ਹੋਏ ਚਿੱਟੇ ਆਈਕਨ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਆਈਕਨ ਦੇ ਰੰਗਾਂ ਨੂੰ ਬਦਲਣ ਲਈ ਹਾਰਡਕੋਰਡ ਤਰੀਕੇ ਦੀ ਵਰਤੋਂ ਕਰੋ * ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਇਟਰੇਟਰ ਸ਼ੁਰੂ ਕੀਤਾ ਗਿਆ ਹੈ (ਫਿਕਸ #2031) * ਨਵੇਂ ਮੁਕਸਰ ਵਿੱਚ "ਪੋਸਟ-ਪ੍ਰੋਸੈਸਿੰਗ ਫੇਲ੍ਹ" ਗਲਤੀ ਦੇ ਨਾਲ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ * ਨਵਾਂ MPEG-4 ਮੁਕਸਰ ਫਿਕਸਿੰਗ ਗੈਰ-ਸਿੰਕਰੋਨਸ ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ ਸਟ੍ਰੀਮਜ਼ (#2039) ### ਸਥਿਰ * YouTube ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਥੋੜ੍ਹੇ ਸਮੇਂ ਬਾਅਦ ਚੱਲਣੀਆਂ ਬੰਦ ਹੋ ਜਾਂਦੀਆਂ ਹਨ (@yausername ਦੁਆਰਾ #1996) +ਸੁਧਾਰ +* GitHub ਬਿਲਡ ਲਈ ਐਪ ਅੱਪਡੇਟ ਸੂਚਨਾ ਸ਼ਾਮਲ ਕਰੋ (#1608 @krtkush ਦੁਆਰਾ) +* ਡਾਊਨਲੋਡਰ ਵਿੱਚ ਕਈ ਸੁਧਾਰ (#1944 @kapodamy ਦੁਆਰਾ) +* ਨਵੇਂ ਮਕਸਰ ਵਿੱਚ "ਪੋਸਟ-ਪ੍ਰੋਸੈਸਿੰਗ ਅਸਫਲ" ਗਲਤੀ ਨਾਲ ਡਾਊਨਲੋਡਾਂ ਨੂੰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ +* ਨਵਾਂ MPEG-4 ਮਕਸਰ ਗੈਰ-ਸਮਕਾਲੀ ਵੀਡੀਓ ਅਤੇ ਆਡੀਓ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਠੀਕ ਕਰਦਾ ਹੈ (#2039) + +ਫਿਕਸਡ +* YouTube ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਥੋੜ੍ਹੇ ਸਮੇਂ ਬਾਅਦ ਚੱਲਣਾ ਬੰਦ ਕਰ ਦਿੰਦੀਆਂ ਹਨ (#1996 @yausername ਦੁਆਰਾ) diff --git a/fastlane/metadata/android/pa/changelogs/740.txt b/fastlane/metadata/android/pa/changelogs/740.txt index 6a2dbdc86..62da0f9c3 100644 --- a/fastlane/metadata/android/pa/changelogs/740.txt +++ b/fastlane/metadata/android/pa/changelogs/740.txt @@ -1 +1,8 @@ -ਬਦਲਾਅ ਸੂਚੀ ਅਨੁਵਾਦ ਕਰਣਯੋਗ ਨਹੀਂ। ਬਿਲਕੁਲ ਬਕਵਾਸ +

    ਸੁਧਾਰ

    +
      +
    • ਟਿੱਪਣੀਆਂ ਵਿੱਚ ਲਿੰਕਾਂ ਨੂੰ ਕਲਿੱਕ ਕਰਨ ਯੋਗ ਬਣਾਓ, ਟੈਕਸਟ ਦਾ ਆਕਾਰ ਵਧਾਓ
    • +
    • ਟਿੱਪਣੀਆਂ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪ ਕੀਤੇ ਲਿੰਕਾਂ 'ਤੇ ਕਲਿੱਕ ਕੀਤੇ ਜਾਣ 'ਤੇ ਖੋਜ ਕਰੋ
    • +
    • ਜਦੋਂ ਸਾਂਝਾ ਕੀਤਾ ਟੈਕਸਟ URL ਨਾ ਹੋਵੇ ਤਾਂ ਖੋਜ ਕਰੋ
    • +
    • ਮੁੱਖ ਵੀਡੀਓ ਪਲੇਅਰ ਵਿੱਚ "ਹੁਣੇ ਸਾਂਝਾ ਕਰੋ" ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ
    • +
    • ExoPlayer ਨੂੰ 2.9.6 'ਤੇ ਅੱਪਡੇਟ ਕਰਨਾ
    • +
    diff --git a/fastlane/metadata/android/pa/changelogs/750.txt b/fastlane/metadata/android/pa/changelogs/750.txt index 0b875b705..c24183ddb 100644 --- a/fastlane/metadata/android/pa/changelogs/750.txt +++ b/fastlane/metadata/android/pa/changelogs/750.txt @@ -1 +1,9 @@ -ਨਵਾਂ ਪਲੇਬੈਕ ਰੈਜ਼ਿਊਮੇ #2288 • ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜਿੱਥੇ ਤੁਸੀਂ ਪਿਛਲੀ ਵਾਰ ਰੁਕੇ ਸੀ ਡਾਊਨਲੋਡਰ ਸੁਧਾਰ #2149 • ਬਾਹਰੀ SD-ਕਾਰਡਾਂ 'ਤੇ ਡਾਊਨਲੋਡ ਸਟੋਰ ਕਰਨ ਲਈ ਸਟੋਰੇਜ਼ ਐਕਸੈਸ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰੋ • ਨਵਾਂ mp4 muxer • ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਡਾਉਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਬਦਲੋ • ਮੀਟਰਡ ਨੈੱਟਵਰਕਾਂ ਦਾ ਆਦਰ ਕਰੋ ਸੁਧਾਰ • gema ਸਤਰ #2295 ਨੂੰ ਹਟਾਇਆ • ਗਤੀਵਿਧੀ ਜੀਵਨ ਚੱਕਰ #2444 ਦੌਰਾਨ ਹੈਂਡਲ (ਆਟੋ) ਰੋਟੇਸ਼ਨ ਤਬਦੀਲੀਆਂ • ਲੰਬੇ-ਦਬਾਓ ਮੀਨੂ ਨੂੰ ਇਕਸਾਰ #2368 ਬਣਾਓ ਸਥਿਰ • ਫਿਕਸਡ ਚੁਣਿਆ ਹੋਇਆ ਉਪਸਿਰਲੇਖ ਟਰੈਕ ਨਾਮ #2394 ਨਹੀਂ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ • ਐਪ ਅੱਪਡੇਟ ਦੀ ਜਾਂਚ ਅਸਫਲ ਹੋਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਨਾ ਹੋਵੋ (GitHub ਸੰਸਕਰਣ) #2423 • ਸਥਿਰ ਡਾਊਨਲੋਡ 99.9% #2440 'ਤੇ ਅਟਕ ਗਏ • ਪਲੇ ਕਤਾਰ ਮੈਟਾਡੇਟਾ #2453 ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ • [SoundCloud] ਪਲੇਲਿਸਟਸ ਲੋਡ ਕਰਨ ਵੇਲੇ ਸਥਿਰ ਕਰੈਸ਼ TeamNewPipe/NewPipeExtractor#170 • [YouTube] ਸਥਿਰ ਅਵਧੀ ਨੂੰ ਪਾਰਸਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ TeamNewPipe/NewPipeExtractor#177 +ਨਵਾਂ +ਪਲੇਬੈਕ ਰੈਜ਼ਿਊਮੇ #2288 +ਡਾਊਨਲੋਡਰ ਸੁਧਾਰ #2149 +• ਬਾਹਰੀ SD-ਕਾਰਡਾਂ 'ਤੇ ਡਾਊਨਲੋਡ ਸਟੋਰ ਕਰਨ ਲਈ ਸਟੋਰੇਜ ਐਕਸੈਸ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰੋ +• ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਡਾਊਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਬਦਲੋ +• ਮੀਟਰ ਕੀਤੇ ਨੈੱਟਵਰਕਾਂ ਦਾ ਸਤਿਕਾਰ ਕਰੋ + +ਸਥਿਰ +• [YouTube] ਸਥਿਰ ਮਿਆਦ ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ TeamNewPipe/NewPipeExtractor#177 diff --git a/fastlane/metadata/android/pa/changelogs/760.txt b/fastlane/metadata/android/pa/changelogs/760.txt index fd4b8f2a4..6279139d0 100644 --- a/fastlane/metadata/android/pa/changelogs/760.txt +++ b/fastlane/metadata/android/pa/changelogs/760.txt @@ -1 +1,10 @@ -0.17.1 ਵਿੱਚ ਬਦਲਾਅ ਨਵਾਂ • ਥਾਈ ਸਥਾਨਕਕਰਨ ਸੁਧਾਰ • ਦੁਬਾਰਾ #2518 ਪਲੇਲਿਸਟਾਂ ਲਈ ਲੰਬੇ-ਦਬਾਓ ਮੀਨੂ ਵਿੱਚ ਇੱਥੇ ਪਲੇ ਸ਼ੁਰੂ ਕਰੋ ਐਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ • SAF / ਪੁਰਾਤਨ ਫਾਈਲ ਪਿਕਰ #2521 ਲਈ ਸਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ ਸਥਿਰ • ਐਪਸ #2487 ਨੂੰ ਬਦਲਦੇ ਸਮੇਂ ਡਾਊਨਲੋਡ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਗਾਇਬ ਹੋਣ ਵਾਲੇ ਬਟਨਾਂ ਨੂੰ ਠੀਕ ਕਰੋ • ਫਿਕਸ ਪਲੇਬੈਕ ਸਥਿਤੀ ਸਟੋਰ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਹਾਲਾਂਕਿ ਦੇਖਣ ਦਾ ਇਤਿਹਾਸ ਅਯੋਗ ਹੈ • ਸੂਚੀ ਦ੍ਰਿਸ਼ #2517 ਵਿੱਚ ਪਲੇਬੈਕ ਸਥਿਤੀ ਦੇ ਕਾਰਨ ਘਟੇ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰੋ • [ਐਕਸਟ੍ਰੈਕਟਰ] ReCaptchaActivity #2527, TeamNewPipe/NewPipeExtractor#186 ਫਿਕਸ • [ਐਕਸਟ੍ਰੈਕਟਰ] [YouTube] ਜਦੋਂ ਪਲੇਲਿਸਟਾਂ ਨਤੀਜੇ ਵਿੱਚ ਹੋਣ ਤਾਂ ਆਮ ਖੋਜ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰੋ TeamNewPipe/NewPipeExtractor#185 0.17.0 ਵਿੱਚ ਬਦਲਾਅ ਨਵਾਂ ਪਲੇਬੈਕ ਰੈਜ਼ਿਊਮੇ #2288 • ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ ਜਿੱਥੇ ਤੁਸੀਂ ਪਿਛਲੀ ਵਾਰ ਰੁਕੇ ਸੀ ਡਾਊਨਲੋਡਰ ਸੁਧਾਰ #2149 • ਬਾਹਰੀ SD-ਕਾਰਡਾਂ 'ਤੇ ਡਾਊਨਲੋਡ ਸਟੋਰ ਕਰਨ ਲਈ ਸਟੋਰੇਜ਼ ਐਕਸੈਸ ਫਰੇਮਵਰਕ ਦੀ ਵਰਤੋਂ ਕਰੋ • ਨਵਾਂ mp4 muxer • ਡਾਊਨਲੋਡ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਡਾਉਨਲੋਡ ਡਾਇਰੈਕਟਰੀ ਨੂੰ ਬਦਲੋ • ਮੀਟਰਡ ਨੈੱਟਵਰਕਾਂ ਦਾ ਆਦਰ ਕਰੋ ਸੁਧਾਰ • gema ਸਤਰ #2295 ਨੂੰ ਹਟਾਇਆ • ਗਤੀਵਿਧੀ ਜੀਵਨ ਚੱਕਰ #2444 ਦੌਰਾਨ ਹੈਂਡਲ (ਆਟੋ) ਰੋਟੇਸ਼ਨ ਤਬਦੀਲੀਆਂ • ਲੰਬੇ-ਦਬਾਓ ਮੀਨੂ ਨੂੰ ਇਕਸਾਰ #2368 ਬਣਾਓ ਸਥਿਰ • ਫਿਕਸਡ ਚੁਣਿਆ ਹੋਇਆ ਉਪਸਿਰਲੇਖ ਟਰੈਕ ਨਾਮ #2394 ਨਹੀਂ ਦਿਖਾਇਆ ਜਾ ਰਿਹਾ ਹੈ • ਐਪ ਅੱਪਡੇਟ ਦੀ ਜਾਂਚ ਅਸਫਲ ਹੋਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਨਾ ਹੋਵੋ (GitHub ਸੰਸਕਰਣ) #2423 • ਸਥਿਰ ਡਾਊਨਲੋਡ 99.9% #2440 'ਤੇ ਅਟਕ ਗਏ • ਪਲੇ ਕਤਾਰ ਮੈਟਾਡੇਟਾ #2453 ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ • [SoundCloud] ਪਲੇਲਿਸਟਸ ਲੋਡ ਕਰਨ ਵੇਲੇ ਸਥਿਰ ਕਰੈਸ਼ TeamNewPipe/NewPipeExtractor#170 • [YouTube] ਸਥਿਰ ਅਵਧੀ ਨੂੰ ਪਾਰਸਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ TeamNewPipe/NewPipeExtractor#177 +0.17.1 ਵਿੱਚ ਬਦਲਾਅ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਪਲੇਲਿਸਟਾਂ ਲਈ ਦੁਬਾਰਾ ਲੰਬੇ-ਦਬਾਓ ਵਾਲੇ ਮੀਨੂ ਵਿੱਚ ਇੱਥੇ ਚਲਾਉਣਾ ਸ਼ੁਰੂ ਕਰੋ ਐਕਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ +• SAF / ਲੀਗੇਸੀ ਫਾਈਲ ਪਿਕਰ #2521 ਲਈ ਸਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ +ਫਿਕਸਡ +• ਐਪਸ ਨੂੰ ਸਵਿੱਚ ਕਰਦੇ ਸਮੇਂ ਡਾਊਨਲੋਡ ਵਿਊ ਵਿੱਚ ਗਾਇਬ ਹੋਣ ਵਾਲੇ ਬਟਨਾਂ ਨੂੰ ਠੀਕ ਕਰੋ #2487 +• ਦੇਖਣ ਦੇ ਇਤਿਹਾਸ ਨੂੰ ਅਯੋਗ ਹੋਣ ਦੇ ਬਾਵਜੂਦ ਸਟੋਰ ਕੀਤੀ ਗਈ ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਠੀਕ ਕਰੋ +• ਸੂਚੀ ਵਿਊ ਵਿੱਚ ਪਲੇਬੈਕ ਸਥਿਤੀ ਕਾਰਨ ਘਟੀ ਹੋਈ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਠੀਕ ਕਰੋ +• [ਐਕਸਟ੍ਰੈਕਟਰ] [YouTube] ਜਦੋਂ ਪਲੇਲਿਸਟਾਂ ਨਤੀਜਿਆਂ ਵਿੱਚ ਹੋਣ ਤਾਂ ਆਮ ਖੋਜ ਗਲਤੀ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/780.txt b/fastlane/metadata/android/pa/changelogs/780.txt index 999a24468..923a0410a 100644 --- a/fastlane/metadata/android/pa/changelogs/780.txt +++ b/fastlane/metadata/android/pa/changelogs/780.txt @@ -1 +1,11 @@ -0.17.3 ਵਿੱਚ ਬਦਲਾਅ ਸੁਧਾਰ • ਪਲੇਬੈਕ ਸਥਿਤੀਆਂ #2550 ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਫਾਈਲ ਪਿਕਰ #2591 ਵਿੱਚ ਲੁਕੀਆਂ ਹੋਈਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਦਿਖਾਓ • NewPipe #2488 ਨਾਲ ਖੋਲ੍ਹੇ ਜਾਣ ਵਾਲੇ `invidio.us` ਉਦਾਹਰਨਾਂ ਤੋਂ ਸਮਰਥਨ URL • `music.youtube.com` URLs TeamNewPipe/NewPipeExtractor#194 ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ ਸਥਿਰ • [YouTube] ਸਥਿਰ 'java.lang.IllegalArgumentException #192 • [YouTube] ਸਥਿਰ ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀਆਂ TeamNewPipe/NewPipeExtractor#195 • ਇੱਕ ਸਟ੍ਰੀਮ #2592 ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨ ਵੇਲੇ ਐਂਡਰੌਇਡ ਪਾਈ ਵਿੱਚ ਸਥਿਰ ਪ੍ਰਦਰਸ਼ਨ ਸਮੱਸਿਆ +0.17.3 ਵਿੱਚ ਬਦਲਾਅ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਪਲੇਬੈਕ ਸਥਿਤੀਆਂ ਨੂੰ ਸਾਫ਼ ਕਰਨ ਲਈ ਵਿਕਲਪ ਜੋੜਿਆ ਗਿਆ #2550 +• ਫਾਈਲ ਚੋਣਕਾਰ #2591 ਵਿੱਚ ਲੁਕੀਆਂ ਹੋਈਆਂ ਡਾਇਰੈਕਟਰੀਆਂ ਦਿਖਾਓ +• NewPipe #2488 ਨਾਲ ਖੋਲ੍ਹੇ ਜਾਣ ਵਾਲੇ `invidio.us` ਉਦਾਹਰਣਾਂ ਤੋਂ URL ਦਾ ਸਮਰਥਨ ਕਰੋ +• `music.youtube.com` URL ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ + +ਸਥਿਰ +• [YouTube] ਫਿਕਸਡ ਲਾਈਵ ਸਟ੍ਰੀਮਾਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀਆਂ +• ਸਟ੍ਰੀਮ ਡਾਊਨਲੋਡ ਕਰਦੇ ਸਮੇਂ ਐਂਡਰਾਇਡ ਪਾਈ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਨ ਸਮੱਸਿਆ ਹੱਲ ਕੀਤੀ ਗਈ #2592 diff --git a/fastlane/metadata/android/pa/changelogs/790.txt b/fastlane/metadata/android/pa/changelogs/790.txt index f841801eb..28627c7ec 100644 --- a/fastlane/metadata/android/pa/changelogs/790.txt +++ b/fastlane/metadata/android/pa/changelogs/790.txt @@ -1 +1,11 @@ -ਸੁਧਾਰ • ਅੰਨ੍ਹੇ ਲੋਕਾਂ #2655 ਲਈ ਪਹੁੰਚਯੋਗਤਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਹੋਰ ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕਰੋ • ਡਾਉਨਲੋਡ ਫੋਲਡਰ ਸੈਟਿੰਗ ਦੀ ਭਾਸ਼ਾ ਨੂੰ ਵਧੇਰੇ ਇਕਸਾਰ ਅਤੇ ਘੱਟ ਅਸਪਸ਼ਟ #2637 ਬਣਾਓ ਸਥਿਰ • ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਬਲਾਕ ਵਿੱਚ ਆਖਰੀ ਬਾਈਟ #2646 ਡਾਊਨਲੋਡ ਕੀਤੀ ਗਈ ਹੈ • ਵੀਡੀਓ ਡਿਟੇਲ ਫਰੈਗਮੈਂਟ #2672 ਵਿੱਚ ਸਥਿਰ ਸਕ੍ਰੋਲਿੰਗ • ਡਬਲ ਸਰਚ ਕਲੀਅਰ ਬਾਕਸ ਐਨੀਮੇਸ਼ਨ ਨੂੰ ਇੱਕ #2695 ਵਿੱਚ ਹਟਾਓ • [SoundCloud] ਕਲਾਇਟ_ਆਈਡੀ ਐਕਸਟਰੈਕਸ਼ਨ #2745 ਨੂੰ ਠੀਕ ਕਰੋ ਵਿਕਾਸ • NewPipeExtractor ਤੋਂ ਵਿਰਾਸਤ ਵਿੱਚ ਮਿਲੀ ਗੁੰਮ ਨਿਰਭਰਤਾ ਨੂੰ NewPipe #2535 ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ • AndroidX #2685 'ਤੇ ਮਾਈਗ੍ਰੇਟ ਕਰੋ • ExoPlayer 2.10.6 #2697, #2736 ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ +ਸੁਧਾਰਿਆ ਗਿਆ +• ਹੋਰ ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕਰੋ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਜਾਂਚ ਕਰੋ ਕਿ ਕੀ ਬਲਾਕ ਵਿੱਚ ਆਖਰੀ ਬਾਈਟ ਡਾਊਨਲੋਡ ਕੀਤਾ ਗਿਆ ਹੈ #2646 +• ਵੀਡੀਓ ਵੇਰਵੇ ਵਾਲੇ ਟੁਕੜੇ #2672 ਵਿੱਚ ਸਕ੍ਰੌਲਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +• [SoundCloud] client_id ਐਕਸਟਰੈਕਸ਼ਨ #2745 ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ + +ਵਿਕਾਸ +• AndroidX 'ਤੇ ਮਾਈਗ੍ਰੇਟ ਕਰੋ +• ExoPlayer 2.10.6 'ਤੇ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/800.txt b/fastlane/metadata/android/pa/changelogs/800.txt index 53868c894..08940d095 100644 --- a/fastlane/metadata/android/pa/changelogs/800.txt +++ b/fastlane/metadata/android/pa/changelogs/800.txt @@ -1 +1,10 @@ -ਨਵਾਂ • P2P (#2201) [ਬੀਟਾ] ਤੋਂ ਬਿਨਾਂ PeerTube ਸਮਰਥਨ: ◦ PeerTube ਉਦਾਹਰਨਾਂ ਤੋਂ ਵੀਡੀਓ ਦੇਖੋ ਅਤੇ ਡਾਊਨਲੋਡ ਕਰੋ ◦ ਪੂਰੀ PeerTube ਸੰਸਾਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਉਦਾਹਰਨਾਂ ਸ਼ਾਮਲ ਕਰੋ ◦ Android 4.4 ਅਤੇ 7.1 'ਤੇ SSL ਹੈਂਡਸ਼ੇਕ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ ਜਦੋਂ ਕੁਝ ਖਾਸ ਮੌਕਿਆਂ 'ਤੇ ਪਹੁੰਚ ਕਰਦੇ ਸਮੇਂ ਨੈੱਟਵਰਕ ਗੜਬੜ ਹੋ ਜਾਂਦੀ ਹੈ। • ਡਾਊਨਲੋਡਰ (#2679): ◦ ਡਾਊਨਲੋਡ ETA ਦੀ ਗਣਨਾ ਕਰੋ ◦ ਓਪਸ (ਵੈਬ ਫਾਈਲਾਂ) ਨੂੰ ogg ਵਜੋਂ ਡਾਊਨਲੋਡ ਕਰੋ ◦ ਲੰਬੇ ਵਿਰਾਮ ਤੋਂ ਬਾਅਦ ਡਾਊਨਲੋਡ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਮਿਆਦ ਪੁੱਗ ਚੁੱਕੇ ਡਾਊਨਲੋਡ ਲਿੰਕਾਂ ਨੂੰ ਮੁੜ-ਹਾਸਲ ਕਰੋ ਸੁਧਾਰ • ਕਿਓਸਕਫ੍ਰੈਗਮੈਂਟ ਨੂੰ ਤਰਜੀਹੀ ਸਮਗਰੀ ਵਾਲੇ ਦੇਸ਼ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਤੋਂ ਜਾਣੂ ਕਰਵਾਓ ਅਤੇ ਸਾਰੀਆਂ ਮੁੱਖ ਟੈਬਾਂ #2742 ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ। • ਐਕਸਟਰੈਕਟਰ #2713 ਤੋਂ ਨਵੇਂ ਸਥਾਨਕਕਰਨ ਅਤੇ ਡਾਉਨਲੋਡਰ ਲਾਗੂਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰੋ • "ਡਿਫੌਲਟ ਕਿਓਸਕ" ਸਤਰ ਨੂੰ ਅਨੁਵਾਦਯੋਗ ਬਣਾਓ • ਬਲੈਕ ਥੀਮ #2569 ਲਈ ਬਲੈਕ ਨੈਵੀਗੇਸ਼ਨ ਪੱਟੀ ਸਥਿਰ • ਇੱਕ ਬੱਗ ਫਿਕਸ ਕੀਤਾ ਗਿਆ ਹੈ ਜੋ ਪੌਪਅੱਪ ਪਲੇਅਰ ਨੂੰ ਹਿਲਾ ਨਹੀਂ ਸਕਦਾ ਸੀ ਜੇਕਰ ਪੌਪਅੱਪ ਪਲੇਅਰ #2772 ਨੂੰ ਹਿਲਾਉਂਦੇ ਸਮੇਂ ਕੋਈ ਹੋਰ ਉਂਗਲ ਰੱਖੀ ਜਾਂਦੀ ਹੈ • ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਅਪਲੋਡਰ ਦੀ ਗੁੰਮਸ਼ੁਦਗੀ ਦੀ ਆਗਿਆ ਦਿਓ ਅਤੇ ਇਸ ਸਮੱਸਿਆ ਨਾਲ ਸਬੰਧਤ ਕ੍ਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ #2724, TeamNewPipe/NewPipeExtractor#219 • MediaCCC ਅਤੇ ਕੁਝ PeerTube ਉਦਾਹਰਨਾਂ #2792 ਨਾਲ TLS ਹੈਂਡਸ਼ੇਕ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ Android 4.4 ਡਿਵਾਈਸਾਂ (API 19/KitKat) 'ਤੇ TLS1.1/1.2 ਨੂੰ ਸਮਰੱਥ ਕਰਨਾ • [SoundCloud] ਫਿਕਸਡ ਕਲਾਈਂਟ_ਆਈਡੀ ਐਕਸਟ੍ਰੈਕਸ਼ਨ TeamNewPipe/NewPipeExtractor#217 • [SoundCloud] ਆਡੀਓ ਸਟ੍ਰੀਮ ਕੱਢਣ ਨੂੰ ਠੀਕ ਕਰੋ ਵਿਕਾਸ • ExoPlayer ਨੂੰ 2.10.8 #2791, #2816 'ਤੇ ਅੱਪਡੇਟ ਕਰੋ • Gradle ਨੂੰ 3.5.1 ਵਿੱਚ ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ Kotlin ਸਹਿਯੋਗ #2714 ਸ਼ਾਮਲ ਕਰੋ +ਨਵਾਂ +• P2P ਤੋਂ ਬਿਨਾਂ PeerTube ਸਹਾਇਤਾ (#2201) [ਬੀਟਾ]: + +◦ ਲੰਬੇ ਵਿਰਾਮ ਤੋਂ ਬਾਅਦ ਡਾਊਨਲੋਡ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਮਿਆਦ ਪੁੱਗ ਚੁੱਕੇ ਡਾਊਨਲੋਡ ਲਿੰਕਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰੋ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਪਸੰਦੀਦਾ ਸਮੱਗਰੀ ਦੇਸ਼ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਬਾਰੇ KioskFragment ਨੂੰ ਸੂਚਿਤ ਕਰੋ ਅਤੇ ਸਾਰੇ ਮੁੱਖ ਟੈਬਾਂ ਵਿੱਚ ਪ੍ਰਦਰਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ #2742 + +ਸਥਿਰ +• Android 4.4 ਡਿਵਾਈਸਾਂ (API 19/KitKat) 'ਤੇ TLS1.1/1.2 ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ diff --git a/fastlane/metadata/android/pa/changelogs/810.txt b/fastlane/metadata/android/pa/changelogs/810.txt index 96a2b9da5..d10bc6913 100644 --- a/fastlane/metadata/android/pa/changelogs/810.txt +++ b/fastlane/metadata/android/pa/changelogs/810.txt @@ -1 +1,11 @@ -ਨਵਾਂ • ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਦੇ ਸਮੇਂ ਲੌਕ ਸਕ੍ਰੀਨ 'ਤੇ ਵੀਡੀਓ ਥੰਬਨੇਲ ਦਿਖਾਓ ਸੁਧਾਰ • ਬੈਕਗ੍ਰਾਉਂਡ / ਪੌਪਅੱਪ ਬਟਨ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ 'ਤੇ ਕਤਾਰ ਵਿੱਚ ਸਥਾਨਕ ਪਲੇਲਿਸਟ ਸ਼ਾਮਲ ਕਰੋ • ਮੁੱਖ ਪੰਨਾ ਟੈਬਾਂ ਨੂੰ ਸਕ੍ਰੋਲ ਕਰਨ ਯੋਗ ਬਣਾਓ ਅਤੇ ਸਿਰਫ਼ ਇੱਕ ਟੈਬ ਹੋਣ 'ਤੇ ਲੁਕਾਓ • ਬੈਕਗ੍ਰਾਉਂਡ ਪਲੇਅਰ ਵਿੱਚ ਸੂਚਨਾ ਥੰਬਨੇਲ ਅੱਪਡੇਟ ਦੀ ਸੀਮਾ ਮਾਤਰਾ • ਖਾਲੀ ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਲਈ ਡਮੀ ਥੰਬਨੇਲ ਸ਼ਾਮਲ ਕਰੋ • *.webm ਦੀ ਬਜਾਏ *.opus ਫਾਈਲ ਐਕਸਟੈਂਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ ਡਾਊਨਲੋਡ ਡ੍ਰੌਪਡਾਉਨ ਵਿੱਚ "WebM Opus" ਦੀ ਬਜਾਏ ਫਾਰਮੈਟ ਲੇਬਲ ਵਿੱਚ "opus" ਦਿਖਾਓ • "ਡਾਊਨਲੋਡ" ਵਿੱਚ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਜਾਂ ਡਾਊਨਲੋਡ ਇਤਿਹਾਸ ਨੂੰ ਮਿਟਾਉਣ ਲਈ ਬਟਨ ਸ਼ਾਮਲ ਕਰੋ • [YouTube] /c/shortened_url ਚੈਨਲ ਲਿੰਕਾਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ ਸਥਿਰ • NewPipe ਨਾਲ ਵੀਡੀਓ ਸਾਂਝਾ ਕਰਨ ਅਤੇ ਇਸ ਦੀਆਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸਿੱਧੇ ਡਾਊਨਲੋਡ ਕਰਨ ਵੇਲੇ ਕਈ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ • ਇਸ ਦੇ ਸਿਰਜਣ ਥ੍ਰੈਡ ਤੋਂ ਬਾਹਰ ਸਥਿਰ ਪਲੇਅਰ ਪਹੁੰਚ • ਸਥਿਰ ਖੋਜ ਨਤੀਜੇ ਪੇਜਿੰਗ • [YouTube] ਨਿਸ਼ਚਤ ਸਵਿਚਿੰਗ ਚਾਲੂ ਕਰਨ ਨਾਲ NPE ਹੁੰਦਾ ਹੈ • [YouTube] ਇੱਕ invidio.us url ਖੋਲ੍ਹਣ ਵੇਲੇ ਟਿੱਪਣੀਆਂ ਦੇਖਣ ਲਈ ਸਥਿਰ • [SoundCloud] ਅੱਪਡੇਟ ਕੀਤਾ client_id +ਨਵਾਂ +• ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਦੇ ਸਮੇਂ ਲਾਕ ਸਕ੍ਰੀਨ 'ਤੇ ਵੀਡੀਓ ਥੰਬਨੇਲ ਦਿਖਾਓ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਬੈਕਗ੍ਰਾਊਂਡ/ਪੌਪਅੱਪ ਬਟਨ ਨੂੰ ਦੇਰ ਤੱਕ ਦਬਾਉਣ 'ਤੇ ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ +• [YouTube] /c/shortened_url ਚੈਨਲ ਲਿੰਕਾਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• NewPipe 'ਤੇ ਵੀਡੀਓ ਸਾਂਝੇ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਦੀਆਂ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਸਿੱਧਾ ਡਾਊਨਲੋਡ ਕਰਨ ਵੇਲੇ ਕਈ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ +• ਖੋਜ ਨਤੀਜਿਆਂ ਦੀ ਪੇਜਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +• [SoundCloud] client_id ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/840.txt b/fastlane/metadata/android/pa/changelogs/840.txt index 745098496..d05907bd6 100644 --- a/fastlane/metadata/android/pa/changelogs/840.txt +++ b/fastlane/metadata/android/pa/changelogs/840.txt @@ -1 +1,10 @@ -ਨਵਾਂ • ਐਪ ਦੀ ਭਾਸ਼ਾ ਬਦਲਣ ਲਈ ਭਾਸ਼ਾ ਚੋਣਕਾਰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਪਲੇਅਰ ਸਮੇਟਣਯੋਗ ਮੀਨੂ ਵਿੱਚ ਕੋਡੀ ਬਟਨ 'ਤੇ ਭੇਜੋ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਲੰਬੀ ਪ੍ਰੈਸ 'ਤੇ ਟਿੱਪਣੀਆਂ ਨੂੰ ਕਾਪੀ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ ਹੈ ਸੁਧਾਰ • ਰੀਕੈਪਚਾ ਗਤੀਵਿਧੀ ਨੂੰ ਠੀਕ ਕਰੋ ਅਤੇ ਪ੍ਰਾਪਤ ਕੀਤੀਆਂ ਕੂਕੀਜ਼ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕਰੋ • ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਦੇਖਣ ਦਾ ਇਤਿਹਾਸ ਚਾਲੂ ਨਾ ਹੋਣ 'ਤੇ ਦਰਾਜ਼ ਦੇ ਹੱਕ ਵਿੱਚ ਡਾਟ-ਮੀਨੂ ਨੂੰ ਹਟਾਇਆ ਗਿਆ ਅਤੇ ਇਤਿਹਾਸ ਨੂੰ ਲੁਕਾਓ ਬਟਨ • Android 6 ਅਤੇ ਬਾਅਦ ਵਾਲੇ 'ਤੇ ਸਹੀ ਢੰਗ ਨਾਲ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਹੋਰ ਐਪਾਂ ਦੀ ਇਜਾਜ਼ਤ ਦੇ ਉੱਪਰ ਡਿਸਪਲੇ ਲਈ ਪੁੱਛੋ • BookmarkFragment ਵਿੱਚ ਲੰਮਾ-ਕਲਿੱਕ ਕਰਕੇ ਸਥਾਨਕ ਪਲੇਲਿਸਟ ਦਾ ਨਾਮ ਬਦਲੋ • ਕਈ PeerTube ਸੁਧਾਰ • ਕਈ ਅੰਗਰੇਜ਼ੀ ਸਰੋਤ ਸਤਰਾਂ ਨੂੰ ਸੁਧਾਰਿਆ ਗਿਆ ਹੈ ਸਥਿਰ • ਫਿਕਸਡ ਪਲੇਅਰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਹੋ ਰਿਹਾ ਹੈ ਹਾਲਾਂਕਿ ਇਹ ਉਦੋਂ ਰੋਕਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਵਿਕਲਪ "ਐਪ ਸਵਿੱਚ 'ਤੇ ਛੋਟਾ ਕਰੋ" ਯੋਗ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਨਿਊ ਪਾਈਪ ਨੂੰ ਛੋਟਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ • ਸੰਕੇਤ ਲਈ ਸ਼ੁਰੂਆਤੀ ਚਮਕ ਮੁੱਲ ਨੂੰ ਠੀਕ ਕਰੋ • ਸਥਿਰ .srt ਉਪਸਿਰਲੇਖ ਡਾਉਨਲੋਡ ਜਿਸ ਵਿੱਚ ਸਾਰੇ ਲਾਈਨ ਬ੍ਰੇਕ ਨਹੀਂ ਹਨ • SD ਕਾਰਡ 'ਤੇ ਸਥਿਰ ਡਾਊਨਲੋਡ ਅਸਫਲ ਹੋ ਰਿਹਾ ਹੈ ਕਿਉਂਕਿ ਕੁਝ Android 5 ਡਿਵਾਈਸਾਂ CTF ਅਨੁਕੂਲ ਨਹੀਂ ਹਨ • Android KitKat 'ਤੇ ਸਥਿਰ ਡਾਊਨਲੋਡਿੰਗ • ਸਥਿਰ ਭ੍ਰਿਸ਼ਟ ਵੀਡੀਓ .mp4 ਫਾਈਲ ਨੂੰ ਆਡੀਓ ਫਾਈਲ ਵਜੋਂ ਮਾਨਤਾ ਦਿੱਤੀ ਜਾ ਰਹੀ ਹੈ • ਗਲਤ ਚੀਨੀ ਭਾਸ਼ਾ ਕੋਡ ਸਮੇਤ, ਮਲਟੀਪਲ ਸਥਾਨੀਕਰਨ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ • [YouTube] ਵਰਣਨ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪ ਦੁਬਾਰਾ ਕਲਿੱਕ ਕਰਨ ਯੋਗ ਹਨ +ਨਵਾਂ +• ਐਪ ਦੀ ਭਾਸ਼ਾ ਬਦਲਣ ਲਈ ਇੱਕ ਭਾਸ਼ਾ ਚੋਣਕਾਰ ਜੋੜਿਆ ਗਿਆ +• ਪਲੇਅਰ ਦੇ ਕੋਲੈਪਸੀਬਲ ਮੀਨੂ ਵਿੱਚ ਕੋਡੀ ਨੂੰ ਭੇਜੋ ਬਟਨ ਜੋੜਿਆ ਗਿਆ +• ਟਿੱਪਣੀਆਂ ਦੀ ਕਾਪੀ ਕਰਨ ਲਈ ਇੱਕ ਲੰਮਾ-ਦਬਾਓ ਵਿਸ਼ੇਸ਼ਤਾ ਜੋੜਿਆ ਗਿਆ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਰੀਕੈਪਚਾ ਗਤੀਵਿਧੀ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਅਤੇ ਪ੍ਰਾਪਤ ਕੂਕੀਜ਼ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਐਂਡਰਾਇਡ ਕਿਟਕੈਟ 'ਤੇ ਡਾਊਨਲੋਡਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/920.txt b/fastlane/metadata/android/pa/changelogs/920.txt index 04fc07937..94b1e74a0 100644 --- a/fastlane/metadata/android/pa/changelogs/920.txt +++ b/fastlane/metadata/android/pa/changelogs/920.txt @@ -1 +1,9 @@ -ਸੁਧਾਰ • ਸਟ੍ਰੀਮ ਗਰਿੱਡ ਆਈਟਮਾਂ 'ਤੇ ਅੱਪਲੋਡ ਦੀ ਮਿਤੀ ਅਤੇ ਦੇਖਣ ਦੀ ਗਿਣਤੀ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ • ਦਰਾਜ਼ ਹੈਡਰ ਲੇਆਉਟ ਲਈ ਸੁਧਾਰ ਸਥਿਰ • ਏਪੀਆਈ 19 'ਤੇ ਕ੍ਰੈਸ਼ ਹੋਣ ਕਾਰਨ ਫਿਕਸਡ ਮਿਊਟ ਬਟਨ • ਲੰਬੇ 1080p 60fps ਵੀਡੀਓ ਦੀ ਸਥਿਰ ਡਾਊਨਲੋਡਿੰਗ +ਸੁਧਾਰਿਆ ਗਿਆ + +• ਸਟ੍ਰੀਮ ਗਰਿੱਡ ਆਈਟਮਾਂ 'ਤੇ ਅਪਲੋਡ ਮਿਤੀ ਅਤੇ ਵਿਯੂ ਗਿਣਤੀ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਦਰਾਜ਼ ਹੈਡਰ ਲੇਆਉਟ ਲਈ ਸੁਧਾਰ + +ਠੀਕ ਕੀਤਾ ਗਿਆ + +• API 19 'ਤੇ ਕਰੈਸ਼ ਹੋਣ ਵਾਲੇ ਮਿਊਟ ਬਟਨ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਲੰਬੇ 1080p 60fps ਵੀਡੀਓਜ਼ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਨਾ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/930.txt b/fastlane/metadata/android/pa/changelogs/930.txt index a067bfb58..96fc7d0b5 100644 --- a/fastlane/metadata/android/pa/changelogs/930.txt +++ b/fastlane/metadata/android/pa/changelogs/930.txt @@ -1 +1,14 @@ -ਨਵਾਂ • YouTube ਸੰਗੀਤ 'ਤੇ ਖੋਜੋ • ਬੁਨਿਆਦੀ Android TV ਸਮਰਥਨ ਸੁਧਾਰ • ਇੱਕ ਸਥਾਨਕ ਪਲੇਲਿਸਟ ਤੋਂ ਸਾਰੇ ਦੇਖੇ ਗਏ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ ਹੈ • ਕ੍ਰੈਸ਼ ਹੋਣ ਦੀ ਬਜਾਏ ਜਦੋਂ ਸਮੱਗਰੀ ਅਜੇ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ ਤਾਂ ਸੁਨੇਹਾ ਦਿਖਾਓ • ਚੁਟਕੀ ਇਸ਼ਾਰਿਆਂ ਨਾਲ ਪੌਪਅੱਪ ਪਲੇਅਰ ਦਾ ਆਕਾਰ ਬਦਲਿਆ ਗਿਆ ਹੈ • ਬੈਕਗ੍ਰਾਊਂਡ 'ਤੇ ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ ਅਤੇ ਚੈਨਲ ਵਿੱਚ ਪੌਪਅੱਪ ਬਟਨਾਂ 'ਤੇ ਸਟ੍ਰੀਮ ਨੂੰ ਐਨਕਿਊ ਕਰੋ • ਦਰਾਜ਼ ਸਿਰਲੇਖ ਦੇ ਸਿਰਲੇਖ ਦੇ ਆਕਾਰ ਨੂੰ ਸੰਭਾਲਣ ਵਿੱਚ ਸੁਧਾਰ ਕੀਤਾ ਗਿਆ ਹੈ ਸਥਿਰ • ਨਿਸ਼ਚਿਤ ਉਮਰ ਪ੍ਰਤਿਬੰਧਿਤ ਸਮੱਗਰੀ ਸੈਟਿੰਗ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀ • ਕੁਝ ਖਾਸ ਕਿਸਮ ਦੇ reCAPTCHA ਫਿਕਸ ਕੀਤੇ ਗਏ ਹਨ • ਪਲੇਲਿਸਟ `ਨੱਲ` ਹੋਣ 'ਤੇ ਬੁੱਕਮਾਰਕ ਖੋਲ੍ਹਣ ਵੇਲੇ ਸਥਿਰ ਕਰੈਸ਼ • ਨੈੱਟਵਰਕ ਸੰਬੰਧੀ ਅਪਵਾਦਾਂ ਦੀ ਸਥਿਰ ਖੋਜ • ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਫਰੈਗਮੈਂਟ ਵਿੱਚ ਗਰੁੱਪ ਸੌਰਟ ਬਟਨ ਦੀ ਸਥਿਰ ਦਿੱਖ ਅਤੇ ਹੋਰ +ਨਵਾਂ +• YouTube ਸੰਗੀਤ ਖੋਜੋ +• ਮੁੱਢਲਾ Android TV ਸਮਰਥਨ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਤੋਂ ਸਾਰੇ ਦੇਖੇ ਗਏ ਵੀਡੀਓ ਹਟਾਉਣ ਦੀ ਯੋਗਤਾ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਜਦੋਂ ਸਮੱਗਰੀ ਵਰਤਮਾਨ ਵਿੱਚ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ ਤਾਂ ਕ੍ਰੈਸ਼ ਹੋਣ ਦੀ ਬਜਾਏ ਇੱਕ ਸੁਨੇਹਾ ਦਿਖਾਓ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਉਮਰ-ਪ੍ਰਤੀਬੰਧਿਤ ਸਮੱਗਰੀ ਸੈਟਿੰਗਾਂ ਨਾਲ ਇੱਕ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ। + +ਕੁਝ reCAPTCHA ਗਲਤੀਆਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ। + +ਅਤੇ ਹੋਰ ਵੀ diff --git a/fastlane/metadata/android/pa/changelogs/940.txt b/fastlane/metadata/android/pa/changelogs/940.txt index b9d9b3fdf..3ea03ad03 100644 --- a/fastlane/metadata/android/pa/changelogs/940.txt +++ b/fastlane/metadata/android/pa/changelogs/940.txt @@ -1 +1,14 @@ -ਨਵਾਂ • SoundCloud ਟਿੱਪਣੀਆਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ • YouTube ਪ੍ਰਤਿਬੰਧਿਤ ਮੋਡ ਸੈਟਿੰਗ ਸ਼ਾਮਲ ਕਰੋ • PeerTube ਮੂਲ ਚੈਨਲ ਦੇ ਵੇਰਵੇ ਦਿਖਾਓ ਸੁਧਾਰ • ਸਿਰਫ਼ ਸਮਰਥਿਤ ਸੇਵਾਵਾਂ ਲਈ ਕੋਰ ਬਟਨ ਦਿਖਾਓ • ਨੈਵੀਗੇਸ਼ਨਬਾਰ ਜਾਂ ਸਟੇਟਸਬਾਰ ਤੋਂ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਪਲੇਅਰ ਸੰਕੇਤਾਂ ਨੂੰ ਬਲਾਕ ਕਰੋ • ਸੇਵਾ ਦੇ ਰੰਗ ਦੇ ਆਧਾਰ 'ਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਗਾਹਕ ਬਣੋ ਬਟਨਾਂ ਦਾ ਪਿਛੋਕੜ ਰੰਗ ਬਦਲੋ ਸਥਿਰ • ਡਾਉਨਲੋਡ ਡਾਇਲਾਗ ਫ੍ਰੀਜ਼ ਨੂੰ ਠੀਕ ਕਰੋ • ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ ਬਟਨ ਹੁਣ ਅਸਲ ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਦਾ ਹੈ • ਵੀਡੀਓ ਖੋਲ੍ਹਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਨੂੰ ਠੀਕ ਕਰੋ ਅਤੇ "ਇਸ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" ਅਤੇ ਹੋਰ +ਨਵਾਂ +• SoundCloud ਟਿੱਪਣੀਆਂ ਲਈ ਸਮਰਥਨ ਸ਼ਾਮਲ ਕਰੋ +• YouTube ਪ੍ਰਤਿਬੰਧਿਤ ਮੋਡ ਸੈਟਿੰਗ ਸ਼ਾਮਲ ਕਰੋ +• PeerTube ਪੇਰੈਂਟ ਚੈਨਲ ਵੇਰਵੇ ਦਿਖਾਓ + +ਸੁਧਾਰਿਆ ਗਿਆ +• ਸਿਰਫ਼ ਸਮਰਥਿਤ ਸੇਵਾਵਾਂ ਲਈ Kore ਬਟਨ ਦਿਖਾਓ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਇੱਕ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕੀਤਾ ਗਿਆ ਜਿੱਥੇ ਡਾਊਨਲੋਡ ਡਾਇਲਾਗ ਫ੍ਰੀਜ਼ ਹੋ ਰਿਹਾ ਸੀ +• ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹੋ ਬਟਨ ਹੁਣ ਅਸਲ ਵਿੱਚ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਖੁੱਲ੍ਹਦਾ ਹੈ +• ਵੀਡੀਓ ਖੋਲ੍ਹਣ ਵੇਲੇ ਕਰੈਸ਼ ਅਤੇ "ਇਸ ਸਟ੍ਰੀਮ ਨੂੰ ਚਲਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ" + +ਅਤੇ ਹੋਰ diff --git a/fastlane/metadata/android/pa/changelogs/951.txt b/fastlane/metadata/android/pa/changelogs/951.txt index 2b1cd7933..f4dd14071 100644 --- a/fastlane/metadata/android/pa/changelogs/951.txt +++ b/fastlane/metadata/android/pa/changelogs/951.txt @@ -1,13 +1,13 @@ -ਨਵਾਂ -• ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਗਾਹਕੀ ਚੋਣਕਾਰ ਲਈ ਖੋਜ ਸ਼ਾਮਲ ਕਰੋ -• ਸਿਰਫ਼ ਗੈਰ-ਗਰੁੱਪ ਕੀਤੀਆਂ ਗਾਹਕੀਆਂ ਨੂੰ ਦਿਖਾਉਣ ਲਈ ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਫਿਲਟਰ ਸ਼ਾਮਲ ਕਰੋ -• ਪਲੇਲਿਸਟ ਟੈਬ ਨੂੰ ਮੁੱਖ ਪੰਨੇ 'ਤੇ ਸ਼ਾਮਲ ਕਰੋ -• ਬੈਕਗ੍ਰਾਊਂਡ/ਪੌਪ-ਅੱਪ ਪਲੇਅਰ ਕਤਾਰ ਵਿੱਚ ਤੇਜ਼ੀ ਨਾਲ ਅੱਗੇ/ਰਿਵਾਈਂਡ ਕਰੋ -• ਖੋਜ ਸੁਝਾਅ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ: ਕੀ ਤੁਹਾਡਾ ਮਤਲਬ ਹੈ ਅਤੇ ਇਸ ਲਈ ਨਤੀਜਾ ਦਿਖਾ ਰਿਹਾ ਹੈ -ਸੁਧਾਰ -• ਮਿਕਸਡ ਫਾਈਲਾਂ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਮੈਟਾਡੇਟਾ ਲਿਖਣਾ ਛੱਡੋ • ਕਤਾਰ ਤੋਂ ਅਸਫਲ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਨਾ ਹਟਾਓ -• ਟੂਲਬਾਰ ਦੇ ਰੰਗ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਸਥਿਤੀ ਪੱਟੀ ਦਾ ਰੰਗ ਅੱਪਡੇਟ ਕਰੋ +ਨਵਾਂ +• ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਚੋਣਕਾਰ ਲਈ ਖੋਜ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਸਿਰਫ਼ ਅਣ-ਗਰੁੱਪ ਕੀਤੀਆਂ ਗਾਹਕੀਆਂ ਦਿਖਾਉਣ ਲਈ ਫੀਡ ਗਰੁੱਪ ਡਾਇਲਾਗ ਵਿੱਚ ਇੱਕ ਫਿਲਟਰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ +• ਮੁੱਖ ਪੰਨੇ 'ਤੇ ਇੱਕ ਪਲੇਲਿਸਟ ਟੈਬ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ -ਠੀਕ ਕੀਤਾ -• ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਸੰਚਤ ਤਰੁੱਟੀਆਂ ਦੇ ਕਾਰਨ ਫਿਕਸਡ ਆਡੀਓ/ਵੀਡੀਓ ਡੀਸਿੰਕ -• [PeerTube] ਮਿਟਾਈਆਂ ਗਈਆਂ ਟਿੱਪਣੀਆਂ ਨੂੰ ਸੰਭਾਲੋ ਅਤੇ ਹੋਰ +ਸੁਧਾਰਿਆ ਗਿਆ +• ਮਕਸਡ ਫਾਈਲਾਂ ਵਿੱਚ ਐਪਲੀਕੇਸ਼ਨ ਮੈਟਾਡੇਟਾ ਲਿਖਣਾ ਬੰਦ ਕੀਤਾ ਗਿਆ +• ਕਤਾਰ ਤੋਂ ਅਸਫਲ ਸਟ੍ਰੀਮਾਂ ਨੂੰ ਨਾ ਹਟਾਓ + +ਠੀਕ ਕੀਤਾ ਗਿਆ +• ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਸੰਚਤ ਗਲਤੀਆਂ ਕਾਰਨ ਆਡੀਓ/ਵੀਡੀਓ ਡੀਸਿੰਕ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ + +ਅਤੇ ਹੋਰ diff --git a/fastlane/metadata/android/pa/changelogs/954.txt b/fastlane/metadata/android/pa/changelogs/954.txt index 3eb8dd68b..b5b0e78d8 100644 --- a/fastlane/metadata/android/pa/changelogs/954.txt +++ b/fastlane/metadata/android/pa/changelogs/954.txt @@ -1,8 +1,9 @@ -• ਨਵਾਂ ਐਪਲੀਕੇਸ਼ਨ ਵਰਕਫਲੋ: ਵੇਰਵੇ ਵਾਲੇ ਪੰਨੇ 'ਤੇ ਵੀਡੀਓ ਚਲਾਓ, ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰਨ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ -• ਮੀਡੀਆ ਸਟਾਈਲ ਸੂਚਨਾਵਾਂ: ਸੂਚਨਾਵਾਂ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਕਾਰਵਾਈਆਂ, ਪ੍ਰਦਰਸ਼ਨ ਸੁਧਾਰ -• ਡੈਸਕਟੌਪ ਐਪ ਦੇ ਤੌਰ 'ਤੇ NewPipe ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਮੂਲ ਰੀਸਾਈਜ਼ ਕਰਨਾ +• ਨਵਾਂ ਐਪ ਵਰਕਫਲੋ: ਵੇਰਵੇ ਵਾਲੇ ਪੰਨੇ 'ਤੇ ਵੀਡੀਓ ਚਲਾਓ, ਪਲੇਅਰ ਨੂੰ ਛੋਟਾ ਕਰਨ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ +• ਮੀਡੀਆਸਟਾਈਲ ਸੂਚਨਾਵਾਂ: ਸੂਚਨਾਵਾਂ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਕਾਰਵਾਈਆਂ, ਪ੍ਰਦਰਸ਼ਨ ਸੁਧਾਰ +• ਡੈਸਕਟੌਪ ਐਪ ਦੇ ਤੌਰ 'ਤੇ NewPipe ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਮੂਲ ਆਕਾਰ ਬਦਲਣਾ -• ਇੱਕ ਅਸਮਰਥਿਤ URL ਟੋਸਟ ਦੇ ਮਾਮਲੇ ਵਿੱਚ ਖੁੱਲੇ ਵਿਕਲਪਾਂ ਨਾਲ ਡਾਇਲਾਗ ਦਿਖਾਓ -• ਜਦੋਂ ਰਿਮੋਟ ਨੂੰ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਤਾਂ ਖੋਜ ਸੁਝਾਅ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ -• ਡਿਫ਼ਾਲਟ ਵੀਡੀਓ ਗੁਣਵੱਤਾ ਨੂੰ 720p60 (ਇਨ-ਐਪ ਪਲੇਅਰ) ਅਤੇ 480p (ਪੌਪ-ਅੱਪ ਪਲੇਅਰ) ਤੱਕ ਵਧਾ ਦਿੱਤਾ ਗਿਆ ਹੈ -• ਬਹੁਤ ਸਾਰੇ ਬੱਗ ਫਿਕਸ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ +• ਇੱਕ ਅਸਮਰਥਿਤ URL ਟੋਸਟ ਦੀ ਸਥਿਤੀ ਵਿੱਚ ਖੁੱਲ੍ਹੇ ਵਿਕਲਪਾਂ ਦੇ ਨਾਲ ਇੱਕ ਡਾਇਲਾਗ ਦਿਖਾਓ +• ਰਿਮੋਟ ਸੁਝਾਅ ਉਪਲਬਧ ਨਾ ਹੋਣ 'ਤੇ ਸੁਧਾਰਾਂ ਦਾ ਅਨੁਭਵ ਕਰੋ +• ਡਿਫੌਲਟ ਵੀਡੀਓ ਗੁਣਵੱਤਾ 720p60 (ਇਨ-ਐਪ ਪਲੇਅਰ) ਅਤੇ 480p (ਪੌਪ-ਅੱਪ ਪਲੇਅਰ) ਤੱਕ ਵਧਾ ਦਿੱਤੀ ਗਈ + +• ਬੱਗ ਫਿਕਸ ਅਤੇ ਹੋਰ ਬਹੁਤ ਕੁਝ diff --git a/fastlane/metadata/android/pa/changelogs/957.txt b/fastlane/metadata/android/pa/changelogs/957.txt index eb66dacbc..2cf56525d 100644 --- a/fastlane/metadata/android/pa/changelogs/957.txt +++ b/fastlane/metadata/android/pa/changelogs/957.txt @@ -1,10 +1,7 @@ -• ਖਾਸ ਐਨਕਿਊ ਕਿਰਿਆਵਾਂ ਨੂੰ ਇੱਕ ਵਿੱਚ ਜੋੜੋ -• ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਦੇ ਸੰਕੇਤ -• reCAPTCHA ਕੂਕੀਜ਼ ਨੂੰ ਕਲੀਅਰ ਕਰਨ ਦਿਓ -• ਨੋਟੀਫਿਕੇਸ਼ਨ ਨੂੰ ਰੰਗ ਨਾ ਕਰਨ ਦਾ ਵਿਕਲਪ -• ਅਨੰਤ ਬਫਰਿੰਗ ਨੂੰ ਠੀਕ ਕਰਨ ਲਈ ਵਿਡੀਓ ਵੇਰਵਿਆਂ ਨੂੰ ਕਿਵੇਂ ਖੋਲ੍ਹਿਆ ਜਾਂਦਾ ਹੈ ਇਸ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ, ਨਿਊਪਾਈਪ ਨਾਲ ਸਾਂਝਾ ਕਰਨ ਵੇਲੇ ਬੱਗੀ ਵਿਵਹਾਰ ਅਤੇ ਹੋਰ ਅਸੰਗਤਤਾਵਾਂ -• YouTube ਵੀਡੀਓਜ਼ ਦੀ ਗਤੀ ਵਧਾਓ ਅਤੇ ਉਮਰ ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਨੂੰ ਠੀਕ ਕਰੋ -• ਫਾਸਟ ਫਾਰਵਰਡ/ਰਿਵਾਇੰਡ 'ਤੇ ਕਰੈਸ਼ ਨੂੰ ਠੀਕ ਕਰੋ -• ਥੰਬਨੇਲ ਖਿੱਚ ਕੇ ਸੂਚੀਆਂ ਨੂੰ ਮੁੜ ਵਿਵਸਥਿਤ ਨਾ ਕਰੋ -• ਪੌਪਅੱਪ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਹਮੇਸ਼ਾ ਯਾਦ ਰੱਖੋ -• ਸੰਤਾਲੀ ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰੋ +• ਖਾਸ NQE ਕਿਰਿਆਵਾਂ ਨੂੰ ਇੱਕ ਵਿੱਚ ਏਕੀਕ੍ਰਿਤ ਕਰਨਾ। +• ਦੋ-ਉਂਗਲਾਂ ਵਾਲੇ ਇਸ਼ਾਰੇ ਨਾਲ ਵੀਡੀਓ ਪਲੇਅਰ ਨੂੰ ਬੰਦ ਕਰਨਾ। +• reCOPTCHA ਕੂਕੀਜ਼ ਨੂੰ ਹਟਾਉਣ ਦੀ ਆਗਿਆ ਦੇਣਾ। +• ਸੂਚਨਾਵਾਂ ਨੂੰ ਰੰਗੀਨ ਨਾ ਕਰਨ ਦਾ ਵਿਕਲਪ। +• NewPipe 'ਤੇ ਸਾਂਝਾ ਕਰਦੇ ਸਮੇਂ ਅਨੰਤ ਬਫਰਿੰਗ, ਗਲਤੀਆਂ ਅਤੇ ਹੋਰ ਅਸੰਗਤੀਆਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ। +• YouTube ਵੀਡੀਓ ਨੂੰ ਤੇਜ਼ ਕੀਤਾ ਗਿਆ ਅਤੇ ਉਮਰ-ਪ੍ਰਤੀਬੰਧਿਤ ਵੀਡੀਓ ਨੂੰ ਬਿਹਤਰ ਬਣਾਇਆ ਗਿਆ। +• ਫਾਸਟ ਫਾਰਵਰਡ/ਰਿਵਾਈਂਡ 'ਤੇ ਕਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/964.txt b/fastlane/metadata/android/pa/changelogs/964.txt index 85dc2c151..e94595673 100644 --- a/fastlane/metadata/android/pa/changelogs/964.txt +++ b/fastlane/metadata/android/pa/changelogs/964.txt @@ -1 +1,6 @@ -• ਪਲੇਅਰ ਨਿਯੰਤਰਣ ਵਿੱਚ ਅਧਿਆਵਾਂ ਲਈ ਸਮਰਥਨ ਜੋੜਿਆ ਗਿਆ • [PeerTube] ਸੇਪੀਆ ਖੋਜ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ • ਵੀਡੀਓ ਵੇਰਵੇ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਸ਼ੇਅਰ ਬਟਨ ਨੂੰ ਮੁੜ-ਜੋੜਿਆ ਗਿਆ ਅਤੇ ਟੈਬ ਲੇਆਉਟ ਵਿੱਚ ਸਟ੍ਰੀਮ ਵਰਣਨ ਨੂੰ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ • ਜੇਕਰ ਚਮਕ ਦਾ ਸੰਕੇਤ ਅਸਮਰੱਥ ਹੈ ਤਾਂ ਚਮਕ ਨੂੰ ਬਹਾਲ ਕਰਨਾ ਬੰਦ ਕਰੋ • ਕੋਡੀ 'ਤੇ ਵੀਡੀਓ ਚਲਾਉਣ ਲਈ ਸੂਚੀ ਆਈਟਮ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ • ਕੁਝ ਡਿਵਾਈਸਾਂ 'ਤੇ ਕੋਈ ਡਿਫੌਲਟ ਬ੍ਰਾਊਜ਼ਰ ਸੈੱਟ ਨਾ ਹੋਣ 'ਤੇ ਕ੍ਰੈਸ਼ ਦਾ ਹੱਲ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਸ਼ੇਅਰ ਡਾਇਲਾਗਸ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ • ਫੁੱਲਸਕ੍ਰੀਨ ਪਲੇਅਰ ਵਿੱਚ ਹਾਰਡਵੇਅਰ ਸਪੇਸ ਬਟਨ ਨਾਲ ਪਲੇ/ਪੌਜ਼ ਨੂੰ ਟੌਗਲ ਕਰੋ • [media.ccc.de] ਕਈ ਫਿਕਸ ਅਤੇ ਸੁਧਾਰ +• ਪਲੇਅਰ ਕੰਟਰੋਲਾਂ ਵਿੱਚ ਚੈਪਟਰਾਂ ਲਈ ਸਮਰਥਨ ਜੋੜਿਆ ਗਿਆ +• [PeerTube] ਸੇਪੀਆ ਖੋਜ ਜੋੜਿਆ ਗਿਆ +• ਵੀਡੀਓ ਵੇਰਵੇ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਸ਼ੇਅਰ ਬਟਨ ਨੂੰ ਦੁਬਾਰਾ ਜੋੜਿਆ ਗਿਆ ਅਤੇ ਸਟ੍ਰੀਮ ਵਰਣਨ ਨੂੰ ਟੈਬ ਲੇਆਉਟ ਵਿੱਚ ਤਬਦੀਲ ਕੀਤਾ ਗਿਆ +• ਜੇਕਰ ਚਮਕ ਸੰਕੇਤ ਅਯੋਗ ਹੈ ਤਾਂ ਚਮਕ ਨੂੰ ਬਹਾਲ ਕਰਨਾ ਅਯੋਗ ਕਰੋ +• ਕੋਡੀ 'ਤੇ ਵੀਡੀਓ ਚਲਾਉਣ ਲਈ ਸੂਚੀ ਆਈਟਮ ਸ਼ਾਮਲ ਕੀਤੀ ਗਈ +• ਕੁਝ ਡਿਵਾਈਸਾਂ 'ਤੇ ਕੋਈ ਡਿਫੌਲਟ ਬ੍ਰਾਊਜ਼ਰ ਸੈੱਟ ਨਾ ਹੋਣ 'ਤੇ ਕਰੈਸ਼ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ diff --git a/fastlane/metadata/android/pa/changelogs/975.txt b/fastlane/metadata/android/pa/changelogs/975.txt index c866df1e2..fe23991c7 100644 --- a/fastlane/metadata/android/pa/changelogs/975.txt +++ b/fastlane/metadata/android/pa/changelogs/975.txt @@ -3,14 +3,11 @@ • ਅਯੋਗ ਟਿੱਪਣੀਆਂ ਦਾ ਪਤਾ ਲਗਾਓ • ਫੀਡ ਆਈਟਮ ਨੂੰ ਦੇਖੇ ਗਏ ਵਜੋਂ ਨਿਸ਼ਾਨਬੱਧ ਕਰਨ ਦਿਓ • ਟਿੱਪਣੀ ਦਿਲ ਦਿਖਾਓ - ਸੁਧਾਰ • ਮੈਟਾਡੇਟਾ ਅਤੇ ਟੈਗਸ ਲੇਆਉਟ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ • UI ਭਾਗਾਂ 'ਤੇ ਸੇਵਾ ਰੰਗ ਲਾਗੂ ਕਰੋ ਠੀਕ ਕੀਤਾ • ਮਿੰਨੀ ਪਲੇਅਰ ਵਿੱਚ ਥੰਬਨੇਲ ਠੀਕ ਕਰੋ • ਡੁਪਲੀਕੇਟ ਕਤਾਰ ਆਈਟਮਾਂ 'ਤੇ ਬੇਅੰਤ ਬਫਰਿੰਗ ਨੂੰ ਠੀਕ ਕਰੋ -• ਕੁਝ ਪਲੇਅਰ ਫਿਕਸ ਜਿਵੇਂ ਰੋਟੇਸ਼ਨ ਅਤੇ ਤੇਜ਼ੀ ਨਾਲ ਬੰਦ ਹੋਣਾ -• ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਲੋਡ ਕੀਤੇ ਬਾਕੀ ਬਚੇ ReCAPTCHA ਨੂੰ ਠੀਕ ਕਰੋ -• ਫੀਡ ਨੂੰ ਤਾਜ਼ਾ ਕਰਨ ਵੇਲੇ ਕਲਿੱਕਾਂ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਓ +• ਕੁਝ ਪਲੇਅਰ ਫਿਕਸ • ਕੁਝ ਡਾਊਨਲੋਡਰ ਕਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/976.txt b/fastlane/metadata/android/pa/changelogs/976.txt index a1a1354ca..1f2a70887 100644 --- a/fastlane/metadata/android/pa/changelogs/976.txt +++ b/fastlane/metadata/android/pa/changelogs/976.txt @@ -1,10 +1 @@ -• ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਿੱਚ ਪਲੇਅਰ ਨੂੰ ਸਿੱਧਾ ਖੋਲ੍ਹਣ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ -• ਇਹ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਕਿ ਕਿਸ ਕਿਸਮ ਦੇ ਖੋਜ ਸੁਝਾਅ ਦਿਖਾਉਣੇ ਹਨ -• ਗੂੜ੍ਹਾ ਥੀਮ ਹੁਣ ਗਹਿਰਾ ਗੂੜ੍ਹਾ + ਗੂੜ੍ਹਾ ਸਪਲੈਸ਼ ਸਕ੍ਰੀਨ ਜੋੜਿਆ ਗਿਆ ਹੈ -• ਅਣਚਾਹੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਲੇਟੀ ਕਰਨ ਲਈ ਬਿਹਤਰ ਫ਼ਾਈਲ ਚੋਣਕਾਰ -• ਸਥਿਰ YouTube ਗਾਹਕੀ ਆਯਾਤ - -• ਇੱਕ ਸਟ੍ਰੀਮ ਨੂੰ ਮੁੜ ਚਲਾਉਣ ਲਈ ਮੁੜ-ਪਲੇਅ ਬਟਨ 'ਤੇ ਟੈਪ ਕਰਨ ਦੀ ਲੋੜ ਹੈ -• ਸਥਿਰ ਸਮਾਪਤੀ ਆਡੀਓ ਸੈਸ਼ਨ -• [Android TV] DPad ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਸਥਿਰ ਲੰਬੀ ਸੀਕਬਾਰ ਜੰਪ -ਹੋਰ ਤਬਦੀਲੀਆਂ ਦੇਖਣ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ਟੈਬ ਤੋਂ ਚੇਂਜਲੌਗ (ਅਤੇ ਬਲੌਗ ਪੋਸਟ) ਦੇਖੋ। +• ਪੂਰੀ ਸਕ੍ਰੀਨ ਵਿੱਚ ਪਲੇਅਰ ਨੂੰ ਸਿੱਧਾ ਖੋਲ੍ਹਣ ਲਈ ਵਿਕਲਪ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ • ਇਹ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਕਿ ਕਿਸ ਕਿਸਮ ਦੇ ਖੋਜ ਸੁਝਾਅ ਦਿਖਾਉਣੇ ਹਨ • ਗੂੜ੍ਹਾ ਥੀਮ ਹੁਣ ਗੂੜ੍ਹਾ + ਗੂੜ੍ਹਾ ਸਪਲੈਸ਼ ਸਕ੍ਰੀਨ ਜੋੜਿਆ ਗਿਆ ਹੈ • ਅਣਚਾਹੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਲੇਟੀ ਕਰਨ ਲਈ ਬਿਹਤਰ ਫ਼ਾਈਲ ਚੋਣਕਾਰ • ਸਥਿਰ YouTube ਗਾਹਕੀ ਆਯਾਤ • ਇੱਕ ਸਟ੍ਰੀਮ ਨੂੰ ਮੁੜ ਚਲਾਉਣ ਲਈ ਮੁੜ-ਪਲੇਅ ਬਟਨ 'ਤੇ ਟੈਪ ਕਰਨ ਦੀ ਲੋੜ ਹੈ • ਸਥਿਰ ਸਮਾਪਤੀ ਆਡੀਓ ਸੈਸ਼ਨ • [Android TV] DPad ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਸਥਿਰ ਲੰਬੀ ਸੀਕਬਾਰ ਜੰਪ ਹੋਰ ਤਬਦੀਲੀਆਂ ਦੇਖਣ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਲਿੰਕ ਟੈਬ ਤੋਂ ਚੇਂਜਲੌਗ (ਅਤੇ ਬਲੌਗ ਪੋਸਟ) ਦੇਖੋ। diff --git a/fastlane/metadata/android/pa/changelogs/986.txt b/fastlane/metadata/android/pa/changelogs/986.txt index b072d6cb9..3766ca8d1 100644 --- a/fastlane/metadata/android/pa/changelogs/986.txt +++ b/fastlane/metadata/android/pa/changelogs/986.txt @@ -1,15 +1,15 @@ ਨਵਾਂ -• ਨਵੀਆਂ ਸਟ੍ਰੀਮਾਂ ਲਈ ਸੂਚਨਾਵਾਂ -• ਬੈਕਗ੍ਰਾਊਂਡ ਅਤੇ ਵੀਡੀਓ ਪਲੇਅਰਾਂ ਵਿਚਕਾਰ ਅਰਾਮ ਨਾਲ ਤਬਦੀਲੀ -• ਸੈਮੀਟੋਨਸ ਦੁਆਰਾ ਪਿੱਚ ਬਦਲੋ -• ਇੱਕ ਪਲੇਲਿਸਟ ਵਿੱਚ ਮੁੱਖ ਪਲੇਅਰ ਕਤਾਰ ਜੋੜੋ +• ਨਵੀਆਂ ਸਟ੍ਰੀਮਾਂ ਲਈ ਸੂਚਨਾਵਾਂ +• ਬੈਕਗ੍ਰਾਊਂਡ ਅਤੇ ਵੀਡੀਓ ਪਲੇਅਰਾਂ ਵਿਚਕਾਰ ਅਰਾਮ ਨਾਲ ਤਬਦੀਲੀ +• ਸੈਮੀਟੋਨਸ ਦੁਆਰਾ ਪਿੱਚ ਬਦਲੋ +• ਇੱਕ ਪਲੇਲਿਸਟ ਵਿੱਚ ਮੁੱਖ ਪਲੇਅਰ ਕਤਾਰ ਜੋੜੋ ਸੁਧਾਰ -• ਸਪੀਡ/ਪਿਚ ਸਟੈਪ ਦਾ ਆਕਾਰ ਯਾਦ ਰੱਖੋ -• ਵੀਡੀਓ ਪਲੇਅਰ ਵਿੱਚ ਸ਼ੁਰੂਆਤੀ ਲੰਬੇ ਬਫਰਿੰਗ ਨੂੰ ਘੱਟ ਕਰੋ • Android TV ਲਈ ਪਲੇਅਰ UI ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ +• ਸਪੀਡ/ਪਿਚ ਸਟੈਪ ਦਾ ਆਕਾਰ ਯਾਦ ਰੱਖੋ +• ਵੀਡੀਓ ਪਲੇਅਰ ਵਿੱਚ ਸ਼ੁਰੂਆਤੀ ਲੰਬੇ ਬਫਰਿੰਗ ਨੂੰ ਘੱਟ ਕਰੋ +• Android TV ਲਈ ਪਲੇਅਰ UI ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ • ਸਾਰੀਆਂ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਮਿਟਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ -ਠੀਕ ਕੀਤਾ -• ਮੀਡੀਆ ਬਟਨ ਨੂੰ ਫਿਕਸ ਕਰੋ ਜੋ ਪਲੇਅਰ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਨਹੀਂ ਲੁਕਾਉਂਦਾ ਹੈ +ਫਿਕਸਡ +• ਮੀਡੀਆ ਬਟਨ ਨੂੰ ਫਿਕਸ ਕਰੋ ਜੋ ਪਲੇਅਰ ਨਿਯੰਤਰਣਾਂ ਨੂੰ ਨਹੀਂ ਲੁਕਾਉਂਦਾ ਹੈ • ਪਲੇਅਰ ਦੀ ਕਿਸਮ ਬਦਲਣ 'ਤੇ ਪਲੇਬੈਕ ਰੀਸੈਟ ਨੂੰ ਠੀਕ ਕਰੋ -• ਪਲੇਲਿਸਟ ਡਾਇਲਾਗ ਨੂੰ ਘੁੰਮਾਉਣ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/987.txt b/fastlane/metadata/android/pa/changelogs/987.txt index 93fc77a77..52d0bb828 100644 --- a/fastlane/metadata/android/pa/changelogs/987.txt +++ b/fastlane/metadata/android/pa/changelogs/987.txt @@ -6,6 +6,4 @@ ਸੁਧਾਰ • ਪਲੇਬੈਕ ਪੈਰਾਮੀਟਰ ਡਾਇਲਾਗ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ • ਗਾਹਕੀ ਆਯਾਤ/ਨਿਰਯਾਤ ਬਟਨਾਂ ਨੂੰ ਤਿੰਨ-ਬਿੰਦੀਆਂ ਵਾਲੇ ਮੀਨੂ ਵਿੱਚ ਲੈ ਜਾਓ - -ਠੀਕ ਕੀਤਾ -• ਪਲੇਲਿਸਟ ਤੋਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਦੇਖੇ ਗਏ ਵੀਡੀਓ ਨੂੰ ਹਟਾਉਣਾ ਠੀਕ ਕਰੋ • ਸ਼ੇਅਰ ਮੀਨੂ ਥੀਮ ਅਤੇ "ਪਲੇਲਿਸਟ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ" ਐਂਟਰੀ ਨੂੰ ਠੀਕ ਕਰੋ +ਠੀਕ ਕੀਤਾ diff --git a/fastlane/metadata/android/pa/changelogs/990.txt b/fastlane/metadata/android/pa/changelogs/990.txt index bd532ecb0..90cd8b35c 100644 --- a/fastlane/metadata/android/pa/changelogs/990.txt +++ b/fastlane/metadata/android/pa/changelogs/990.txt @@ -1,13 +1,10 @@ -ਇਹ ਰੀਲੀਜ਼ Android 4.4 ਕਿਟਕੈਟ ਲਈ ਸਮਰਥਨ ਛੱਡਦੀ ਹੈ, ਹੁਣ ਘੱਟੋ-ਘੱਟ ਸੰਸਕਰਣ Android 5 Lollipop ਹੈ! -ਨਵਾਂ -• ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ ਵਾਲੇ ਮੀਨੂ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰੋ -• ਫੀਡ ਵਿੱਚ ਭਵਿੱਖ ਦੇ ਵੀਡੀਓ ਲੁਕਾਓ -• ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ -ਸੁਧਾਰ -• ਪਲੇਅਰ ਕੋਡ ਨੂੰ ਛੋਟੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਰੀਫੈਕਟਰ ਕਰੋ: ਘੱਟ RAM ਵਰਤੀ ਗਈ, ਘੱਟ ਬੱਗ -• ਥੰਮਨੇਲ ਦੇ ਸਕੇਲ ਮੋਡ ਵਿੱਚ ਸੁਧਾਰ ਕਰੋ -• ਚਿੱਤਰ ਪਲੇਸਹੋਲਡਰ ਨੂੰ ਵੈਕਟਰਾਈਜ਼ ਕਰੋ - -ਠੀਕ ਕੀਤਾ -• ਪਲੇਅਰ ਨੋਟੀਫਿਕੇਸ਼ਨ ਨਾਲ ਵੱਖ-ਵੱਖ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰੋ: ਪੁਰਾਣੀ/ਗੁੰਮ ਮੀਡੀਆ ਜਾਣਕਾਰੀ, ਵਿਗੜਿਆ ਥੰਮਨੇਲ +ਇਹ ਰਿਲੀਜ਼ Android 4.4 ਕਿਟਕੈਟ ਲਈ ਸਮਰਥਨ ਛੱਡਦੀ ਹੈ, ਹੁਣ ਘੱਟੋ-ਘੱਟ ਸੰਸਕਰਣ Android 5 Lollipop ਹੈ! +ਨਵਾਂ +• ਲੰਬੇ ਸਮੇਂ ਤੱਕ ਦਬਾਉਣ ਵਾਲੇ ਮੀਨੂ ਤੋਂ ਡਾਊਨਲੋਡ ਕਰੋ +• ਫੀਡ ਵਿੱਚ ਭਵਿੱਖ ਦੇ ਵੀਡੀਓ ਲੁਕਾਓ +• ਸਥਾਨਕ ਪਲੇਲਿਸਟਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰੋ +ਸੁਧਾਰ +• ਪਲੇਅਰ ਕੋਡ ਨੂੰ ਛੋਟੇ ਹਿੱਸਿਆਂ ਵਿੱਚ ਰੀਫੈਕਟਰ ਕਰੋ: ਘੱਟ RAM ਵਰਤੇਗੀ, ਘੱਟ ਬੱਗ ਹੋਣਗੇ + +ਠੀਕ ਕੀਤਾ • ਪੂਰੀ ਸਕ੍ਰੀਨ ਦੀ ਥਾਂ ਉਸਦੇ 1/4 ਹਿੱਸੇ ਦੀ ਵਰਤੋਂ ਨੂੰ ਠੀਕ ਕਰੋ diff --git a/fastlane/metadata/android/pa/changelogs/995.txt b/fastlane/metadata/android/pa/changelogs/995.txt index 0da0a4261..dc9c576c9 100644 --- a/fastlane/metadata/android/pa/changelogs/995.txt +++ b/fastlane/metadata/android/pa/changelogs/995.txt @@ -5,12 +5,10 @@ ਸੁਧਾਰ • ਪਲੇਅਰ ਇੰਟਰਫੇਸ ਦੀ ਪਹੁੰਚਯੋਗਤਾ -• ਸਿਰਫ਼-ਵੀਡੀਓ ਡਾਊਨਲੋਡਾਂ ਲਈ ਬਿਹਤਰ ਆਡੀਓ ਚੋਣ -• ਸਾਂਝੀ ਕੀਤੀ ਪਲੇਲਿਸਟ ਸਮੱਗਰੀ ਵਿੱਚ ਪਲੇਲਿਸਟ ਅਤੇ ਵੀਡੀਓ ਨਾਮ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਵਿਕਲਪ +• ਪਲੇਲਿਸਟ ਸ਼ੇਅਰਿੰਗ ਸਮੱਗਰੀ ਵਿੱਚ ਪਲੇਲਿਸਟ ਨਾਮ ਅਤੇ ਵੀਡੀਓ ਨਾਮ ਜੋੜਨ ਲਈ ਵਿਕਲਪ +• ਅੰਦਰੂਨੀ ਸੁਧਾਰ ਅਤੇ ਨਿਰਭਰਤਾ ਅੱਪਡੇਟ ਠੀਕ ਕੀਤੇ -• [ਯੂਟਿਊਬ] ਲਾਈਕ ਗਿਣਤੀ ਨੂੰ ਠੀਕ ਕਰੋ -• ਪਲੇਅਰ ਰਿਸਪੌੰਡ ਨਹੀਂ ਕਰ ਰਿਹਾ ਦੇ ਸੁਨੇਹੇ ਦੇਣ ਵਾਲੇ ਪੌਪਅੱਪ ਅਤੇ ਕਰੈਸ਼ਾਂ ਨੂੰ ਠੀਕ ਕਰੋ • ਭਾਸ਼ਾ ਚੋਣਕਾਰ ਵਿੱਚ ਗਲਤ ਭਾਸ਼ਾਵਾਂ ਦੀ ਚੋਣ • ਪਲੇਅਰ ਆਡੀਓ ਫੋਕਸ ਮਿਊਟ ਦਾ ਆਦਰ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ -• ਪਲੇਲਿਸਟਾਂ ਵਿੱਚ ਆਈਟਮਾਂ ਨੂੰ ਜੋੜਨਾ ਕਦੇ-ਕਦਾਈਂ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ +• ਖਾਸ ਮਾਮਲਿਆਂ ਵਿੱਚ ਪਲੇਲਿਸਟਾਂ ਵਿੱਚ ਆਈਟਮਾਂ ਨੂੰ ਜੋੜਨਾ ਕੰਮ ਨਹੀਂ ਕਰ ਰਿਹਾ ਸੀ diff --git a/fastlane/metadata/android/pa/changelogs/997.txt b/fastlane/metadata/android/pa/changelogs/997.txt index 8e0cb85f2..a33ff32af 100644 --- a/fastlane/metadata/android/pa/changelogs/997.txt +++ b/fastlane/metadata/android/pa/changelogs/997.txt @@ -12,6 +12,4 @@ ਠੀਕ ਕੀਤਾ • [ਯੂਟਿਊਬ] ਲੋਡ ਨਾ ਹੋਣ ਵਾਲੀਆਂ ਟਿੱਪਣੀਆਂ ਨੂੰ ਠੀਕ ਕਰੋ, ਨਾਲ ਹੀ ਹੋਰ ਫਿਕਸ ਅਤੇ ਸੁਧਾਰ -• ਸੈਟਿੰਗਾਂ ਆਯਾਤ ਕਰਨ ਵਿੱਚ ਕਮਜ਼ੋਰੀ ਨੂੰ ਹੱਲ ਕਰੋ ਅਤੇ JSON 'ਤੇ ਸਵਿੱਚ ਕਰੋ • ਕਈ ਡਾਊਨਲੋਡ ਫਿਕਸ -• ਖੋਜ ਟੈਕਸਟ ਨੂੰ ਟਰਿੱਮ ਕਰੋ diff --git a/fastlane/metadata/android/sat/short_description.txt b/fastlane/metadata/android/sat/short_description.txt new file mode 100644 index 000000000..9e7874738 --- /dev/null +++ b/fastlane/metadata/android/sat/short_description.txt @@ -0,0 +1 @@ +ᱮᱱᱰᱨᱳᱭᱮᱰ ᱞᱟᱹᱜᱤᱫ ᱢᱤᱫ ᱯᱷᱨᱤ ᱦᱟᱞᱠᱟ ᱚᱡᱚᱱ ᱭᱩᱴᱭᱩᱵᱽ ᱯᱷᱨᱚᱱᱴᱮᱱᱰ ᱾ diff --git a/fastlane/metadata/android/sk/changelogs/1005.txt b/fastlane/metadata/android/sk/changelogs/1005.txt index 8f2bfbfab..2bfdfca0e 100644 --- a/fastlane/metadata/android/sk/changelogs/1005.txt +++ b/fastlane/metadata/android/sk/changelogs/1005.txt @@ -1,18 +1,17 @@ -Novinky -• Pridaná podpora pre Android Auto -• Možnosť nastaviť skupiny kanálov ako hlavné karty na obrazovke -• [YouTube] Zdieľanie ako dočasný playlist +New +• Add support for Android Auto +• Allow setting feed groups as main screen tabs +• [YouTube] Share as temporary playlist +• [SoundCloud] Likes channel tab -• [SoundCloud] Karta „Páči sa“ kanál. +Improved +• Better search bar hints +• Show download date in Downloads +• Use Android 13 per-app language -Vylepšenia -• Lepšia nápoveda v paneli vyhľadávania -• Zobrazenie dátumu stiahnutia v sekcii „Stiahnuté” -• Použitie jazyka Android 13 pre jednotlivé aplikácie - -Opravy -• Oprava chybných farieb textu v tmavom režime -• [YouTube] Oprava playlistov, ktoré nenačítavajú viac ako 100 položiek -• [YouTube] Oprava chýbajúcich odporúčaných videí -• Oprava pádov v zobrazení zoznamu histórie -• Oprava časových značiek v odpovediach na komentáre. +Fixed +• Fix broken text colors in dark mode +• [YouTube] Fix playlists not loading more than 100 items +• [YouTube] Fix missing recommended videos +• Fix crashes in History list view +• Fix timestamps in comment replies diff --git a/fastlane/metadata/android/sk/changelogs/1006.txt b/fastlane/metadata/android/sk/changelogs/1006.txt index 943b4ff5c..6bc6f9a2b 100644 --- a/fastlane/metadata/android/sk/changelogs/1006.txt +++ b/fastlane/metadata/android/sk/changelogs/1006.txt @@ -1,16 +1,16 @@ -# Vylepšené -Aktuálny prehrávač zostane zachovaný pri kliknutí na časové značky -Ak je to možné, pokúsi sa obnoviť čakajúce úlohy sťahovania -Pridaná možnosť odstrániť sťahovanie bez odstránenia súboru -Oprávnenie zobrazenia cez ostatné aplikácie: zobrazí vysvetlenie pre Android > R -Podpora otvárania odkazov on.soundcloud -Množstvo malých vylepšení a optimalizácií +# Improved +Keep current player when clicking on timestamps +Try to recover pending download missions when possible +Add option to delete a download without also deleting file +Overlay Permission: display explanatory dialog for Android > R +Support on.soundcloud link opening +A lot of small improvements and optimizations -# Opravené -Oprava formátovania krátkeho počítania pre verzie Androidu nižšie ako 7 -Oprava klamných oznámení -Oprava súborov titulkov SRT -Oprava množstva zlyhaní +# Fixed +Fix short count formatting for Android versions below 7 +Fix ghost notifications +Fixes for SRT subtitle files +Fixed tons of crashes -# Vývoj -Modernizácia interného kódu +# Development +Internal code modernization diff --git a/fastlane/metadata/android/sk/changelogs/65.txt b/fastlane/metadata/android/sk/changelogs/65.txt index c7cac2626..8570a056a 100644 --- a/fastlane/metadata/android/sk/changelogs/65.txt +++ b/fastlane/metadata/android/sk/changelogs/65.txt @@ -1,26 +1,26 @@ -### Zlepšenia +### Improvements -- Zakázanie animácie ikony burgermenu #1486 -- Zrušenie odstránenia stiahnutých súborov #1472 -- Možnosť sťahovania v ponuke zdieľania #1498 -- Pridaná možnosť zdieľania do ponuky dlhého ťuknutia #1454 -- Minimalizácia hlavného prehrávača pri ukončení #1354 -- Aktualizácia verzie knižnice a oprava zálohovania databázy #1510 -- Aktualizácia ExoPlayer 2.8.2 #1392 - - Prepracované dialógové okno na ovládanie rýchlosti prehrávania tak, aby podporovalo rôzne veľkosti krokov pre rýchlejšiu zmenu rýchlosti. - - Pridaný prepínač na rýchle prevíjanie dopredu počas ticha v ovládaní rýchlosti prehrávania. Toto by malo byť užitočné pre audioknihy a niektoré hudobné žánre a môže priniesť skutočne plynulý zážitok (a môže prerušiť skladbu s množstvom ticha =\). - - Prepracované rozlíšenie zdrojov médií, aby bolo možné odovzdávať metadáta spolu s médiami interne v prehrávači, namiesto toho, aby sa to robilo ručne. Teraz máme jediný zdroj metadát a je priamo k dispozícii pri spustení prehrávania. - - Opravené neaktualizovanie metadát vzdialeného zoznamu skladieb, keď sú k dispozícii nové metadáta pri otvorení fragmentu zoznamu skladieb. - - Rôzne opravy používateľského rozhrania: #1383, ovládacie prvky oznámenia prehrávača na pozadí sú teraz vždy biele, jednoduchšie vypnutie vyskakovacieho prehrávača prostredníctvom hodenia -- Použitie nového extraktora s preformulovanou architektúrou pre multiservis +- Disable burgermenu icon animation #1486 +- undo delete of downloads #1472 +- Download option in share menu #1498 +- Added share option to long tap menu #1454 +- Minimize main player on exit #1354 +- Library version update and database backup fix #1510 +- ExoPlayer 2.8.2 Update #1392 + - Reworked the playback speed control dialog to support different step sizes for faster speed change. + - Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\\). + - Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts. + - Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened. + - Various UI fixes: #1383, background player notification controls now always white, easier to shutdown popup player through flinging +- Use new extractor with refactored architecture for multiservice -### Opravy +### Fixes -- Oprava #1440 Nefunkčné rozloženie informácií o videu #1491 -- Oprava histórie zobrazenia #1497 - - #1495 aktualizáciou metadát (miniatúry, názov a počet videí) hneď, ako používateľ vstúpi do zoznamu skladieb. - - #1475, zaregistrovaním zobrazenia v databáze, keď používateľ spustí video v externom prehrávači na detailnom fragmente. -- Oprava časového limitu creen v prípade popup režimu. #1463 (Opravené #640) -- Oprava hlavného prehrávača videa č. 1509 - - #1412] Opravený režim opakovania spôsobujúci NPE prehrávača, keď je prijatý nový zámer, zatiaľ čo je činnosť prehrávača na pozadí. - - Opravené minimalizovanie prehrávača na vyskakovacie okno nezničí prehrávač, keď nie je udelené povolenie na vyskakovanie. +- Fix #1440 Broken Video Info Layout #1491 +- View history fix #1497 + - #1495, by updating the metadata (thumbnail, title and video count) as soon as the user access the playlist. + - #1475, by registering a view in the database when the user starts a video on external player on detail fragment. +- Fix creen timeout in case of popup mode. #1463 (Fixed #640) +- Main video player fix #1509 + - [#1412] Fixed repeat mode causing player NPE when new intent is received while player activity is in background. + - Fixed minimizing player to popup does not destroy player when popup permission is not granted. diff --git a/fastlane/metadata/android/sk/changelogs/66.txt b/fastlane/metadata/android/sk/changelogs/66.txt index ba9808cba..30c20b0e8 100644 --- a/fastlane/metadata/android/sk/changelogs/66.txt +++ b/fastlane/metadata/android/sk/changelogs/66.txt @@ -1,33 +1,33 @@ -# Zoznam zmien verzie v0.13.7 +# Changelog of v0.13.7 -### Opravené -- Oprava problémov s triediacim filtrom vo verzii v0.13.6 +### Fixed +- Fix sort filter issues of v0.13.6 -# Zoznam zmien verzie v0.13.6 +# Changelog of v0.13.6 -### Vylepšenia +### Improvements -- Zakázanie animácie ikony burgermenu #1486 -- Zrušenie odstránenia stiahnutých súborov #1472 -- Možnosť sťahovania v ponuke zdieľania #1498 -- Pridaná možnosť zdieľania do ponuky dlhého ťuknutia #1454 -- Minimalizácia hlavného prehrávača pri ukončení #1354 -- Aktualizácia verzie knižnice a oprava zálohovania databázy #1510 -- Aktualizácia ExoPlayer 2.8.2 #1392 - - Prepracované dialógové okno na ovládanie rýchlosti prehrávania tak, aby podporovalo rôzne veľkosti krokov pre rýchlejšiu zmenu rýchlosti. - - Pridaný prepínač na rýchle prevíjanie dopredu počas ticha v ovládaní rýchlosti prehrávania. Toto by malo byť užitočné pre audioknihy a niektoré hudobné žánre a môže priniesť skutočne plynulý zážitok (a môže prerušiť skladbu s množstvom ticha =\). - - Prepracované rozlíšenie zdrojov médií, aby bolo možné odovzdávať metadáta spolu s médiami interne v prehrávači, namiesto toho, aby sa to robilo ručne. Teraz máme jediný zdroj metadát a je priamo k dispozícii pri spustení prehrávania. - - Opravené neaktualizovanie metadát vzdialeného zoznamu skladieb, keď sú k dispozícii nové metadáta pri otvorení fragmentu zoznamu skladieb. - - Rôzne opravy používateľského rozhrania: #1383, ovládacie prvky oznámenia prehrávača na pozadí sú teraz vždy biele, jednoduchšie vypnutie vyskakovacieho prehrávača prostredníctvom hodenia -- Použitie nového extraktora s preformulovanou architektúrou pre multiservis +- Disable burgermenu icon animation #1486 +- undo delete of downloads #1472 +- Download option in share menu #1498 +- Added share option to long tap menu #1454 +- Minimize main player on exit #1354 +- Library version update and database backup fix #1510 +- ExoPlayer 2.8.2 Update #1392 + - Reworked the playback speed control dialog to support different step sizes for faster speed change. + - Added a toggle to fast-forward during silences in playback speed control. This should be helpful for audiobooks and certain music genres, and can bring a true seamless experience (and can break a song with lots of silences =\\). + - Refactored media source resolution to allow passing metadata alongside media internally in the player, rather than doing so manually. Now we have a single source of metadata and is directly available when playback starts. + - Fixed remote playlist metadata not updating when new metadata is available when playlist fragment is opened. + - Various UI fixes: #1383, background player notification controls now always white, easier to shutdown popup player through flinging +- Use new extractor with refactored architecture for multiservice -### Opravy +### Fixes -- Oprava #1440 Nefunkčné rozloženie informácií o videu #1491 -- Oprava histórie zobrazenia #1497 - - #1495 aktualizáciou metadát (miniatúry, názov a počet videí) hneď, ako používateľ vstúpi do zoznamu skladieb. - - #1475, zaregistrovaním zobrazenia v databáze, keď používateľ spustí video v externom prehrávači na detailnom fragmente. -- Oprava časového limitu creen v prípade popup režimu. #1463 (Opravené #640) -- Oprava hlavného prehrávača videa č. 1509 - - #1412] Opravený režim opakovania spôsobujúci NPE prehrávača, keď je prijatý nový zámer, zatiaľ čo je činnosť prehrávača na pozadí. - - Opravené minimalizovanie prehrávača na vyskakovacie okno nezničí prehrávač, keď nie je udelené povolenie na vyskakovanie. +- Fix #1440 Broken Video Info Layout #1491 +- View history fix #1497 + - #1495, by updating the metadata (thumbnail, title and video count) as soon as the user access the playlist. + - #1475, by registering a view in the database when the user starts a video on external player on detail fragment. +- Fix creen timeout in case of popup mode. #1463 (Fixed #640) +- Main video player fix #1509 + - [#1412] Fixed repeat mode causing player NPE when new intent is received while player activity is in background. + - Fixed minimizing player to popup does not destroy player when popup permission is not granted. diff --git a/fastlane/metadata/android/tr/changelogs/1005.txt b/fastlane/metadata/android/tr/changelogs/1005.txt index 82b3e2e9c..46b3142f7 100644 --- a/fastlane/metadata/android/tr/changelogs/1005.txt +++ b/fastlane/metadata/android/tr/changelogs/1005.txt @@ -1,17 +1,17 @@ Yeni • Android Auto desteği eklendi -• Akış gruplarını ana ekran sekmeleri olarak ayarlama özelliği eklendi -• [YouTube] Geçici oynatma listesi olarak paylaşma özelliği eklendi -• [SoundCloud] Beğeniler kanalı sekmesi eklendi +• Akış gruplarının ana ekran sekmeleri olarak ayarlanmasına izin verme +• [YouTube] Geçici oynatma listesi olarak paylaşma +• [SoundCloud] Beğenilen kanal sekmesi Geliştirildi -• Arama çubuğu ipuçları iyileştirildi -• İndirilenler bölümünde indirme tarihi gösteriliyor -• Android 13 uygulama başına dil ayarı desteği eklendi +• Daha iyi arama çubuğu önerileri +• İndirilenler'de indirme tarihini gösterimi +• Android 13 uygulama başı dil kullanma Düzeltildi • Karanlık modda bozuk metin renkleri düzeltildi -• [YouTube] 100’den fazla öğe yüklenmeyen oynatma listeleri sorunu giderildi +• [YouTube] 100'den fazla öğeyi yüklemeyen oynatma listeleri düzeltildi • [YouTube] Eksik önerilen videolar düzeltildi -• Geçmiş liste görünümünde oluşan çökme sorunu giderildi +• Geçmiş listesi görünümündeki çökmeler düzeltildi • Yorum yanıtlarındaki zaman damgaları düzeltildi From 11467a73b8e09edd386343df4e41d6bfdd428a92 Mon Sep 17 00:00:00 2001 From: tobigr Date: Fri, 9 Jan 2026 21:13:57 +0100 Subject: [PATCH 20/59] Fixed length of changelogs --- .../metadata/android/cs/changelogs/1006.txt | 4 ---- .../metadata/android/de/changelogs/1006.txt | 3 --- .../metadata/android/fr/changelogs/1006.txt | 9 --------- .../metadata/android/hi/changelogs/1006.txt | 5 ----- .../metadata/android/hu/changelogs/1006.txt | 3 --- .../metadata/android/pa/changelogs/1006.txt | 6 ------ .../metadata/android/pl/changelogs/1006.txt | 3 --- .../metadata/android/sv/changelogs/1006.txt | 7 ------- .../metadata/android/uk/changelogs/1006.txt | 4 ---- fastlane_check.sh | 19 +++++++++++++++++++ 10 files changed, 19 insertions(+), 44 deletions(-) create mode 100755 fastlane_check.sh diff --git a/fastlane/metadata/android/cs/changelogs/1006.txt b/fastlane/metadata/android/cs/changelogs/1006.txt index 11a6f4cca..88c312e14 100644 --- a/fastlane/metadata/android/cs/changelogs/1006.txt +++ b/fastlane/metadata/android/cs/changelogs/1006.txt @@ -4,13 +4,9 @@ Pokus o obnovení čekajících stahování, pokud to jde Možnost odstranění stahování bez smazání souboru Oprávnění Zobrazení přes ostatní aplikace: zobrazení vysvětlení pro Android > R Podpora odkazů on.soundcloud -Spousta malých vylepšení a optimalizací # Opravy Oprava formátování pro verze Androidu nižší než 7 Oprava falešných oznámení Opravy souborů titulků SRT Oprava spousty pádů - -# Vývoj -Interní modernizace kódu diff --git a/fastlane/metadata/android/de/changelogs/1006.txt b/fastlane/metadata/android/de/changelogs/1006.txt index 811138c07..1a76b6f0e 100644 --- a/fastlane/metadata/android/de/changelogs/1006.txt +++ b/fastlane/metadata/android/de/changelogs/1006.txt @@ -11,6 +11,3 @@ Kurzformatierung für Android-Versionen unter 7 Geisterbenachrichtigungen SRT-Untertiteldateien Zahlreiche Abstürze - -# Entwicklung -Modernisierung des internen Codes diff --git a/fastlane/metadata/android/fr/changelogs/1006.txt b/fastlane/metadata/android/fr/changelogs/1006.txt index a9ed2c642..65fbccfd5 100644 --- a/fastlane/metadata/android/fr/changelogs/1006.txt +++ b/fastlane/metadata/android/fr/changelogs/1006.txt @@ -1,17 +1,8 @@ -# Améliorations Conservation du lecteur en cours lors du clic sur les horodatages Tentative de récupération des téléchargements en attente Ajout d'une option pour supprimer un téléchargement sans supprimer le fichier Autorisation de superposition : affichage d'une boîte de dialogue explicative pour Android > R -Prise en charge de l'ouverture des liens .soundcloud -Nombreuses améliorations et optimisations mineures - -# Corrections Correction du formatage du nombre court pour les versions Android inférieures à 7 Correction des notifications fantômes Corrections pour les fichiers de sous-titres SRT -Correction de nombreux plantages - -# Développement -Modernisation du code interne diff --git a/fastlane/metadata/android/hi/changelogs/1006.txt b/fastlane/metadata/android/hi/changelogs/1006.txt index f9656149b..4545d60ed 100644 --- a/fastlane/metadata/android/hi/changelogs/1006.txt +++ b/fastlane/metadata/android/hi/changelogs/1006.txt @@ -3,13 +3,8 @@ जब हो सके तो पेंडिंग डाउनलोड मिशन को रिकवर करने की कोशिश करें फ़ाइल डिलीट किए बिना डाउनलोड डिलीट करने का ऑप्शन जोड़ें .soundcloud लिंक खोलने में सपोर्ट करें -कई छोटे सुधार और ऑप्टिमाइज़ेशन -# ठीक किया गया 7 से कम Android वर्शन के लिए छोटे नंबर फ़ॉर्मेटिंग को ठीक किया गया खाली नोटिफ़िकेशन को ठीक किया गया SRT सबटाइटल फ़ाइलों के लिए ठीक किया गया कई क्रैश ठीक किए गए - -# डेवलपमेंट -इंटरनल कोड मॉडर्नाइज़ेशन diff --git a/fastlane/metadata/android/hu/changelogs/1006.txt b/fastlane/metadata/android/hu/changelogs/1006.txt index 3d0cba88f..a5cbf76eb 100644 --- a/fastlane/metadata/android/hu/changelogs/1006.txt +++ b/fastlane/metadata/android/hu/changelogs/1006.txt @@ -11,6 +11,3 @@ Számozás javítása Android 7 alatt Szellem értesítések javítása SRT felirat javítások Sok összeomlás javítva - -# Fejlesztés -Belső kód modernizálása diff --git a/fastlane/metadata/android/pa/changelogs/1006.txt b/fastlane/metadata/android/pa/changelogs/1006.txt index 2539da187..5046eaaa0 100644 --- a/fastlane/metadata/android/pa/changelogs/1006.txt +++ b/fastlane/metadata/android/pa/changelogs/1006.txt @@ -3,13 +3,7 @@ ਜਦੋਂ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਬਕਾਇਆ ਡਾਊਨਲੋਡ ਮਿਸ਼ਨਾਂ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਫਾਈਲ ਨੂੰ ਮਿਟਾਏ ਬਿਨਾਂ ਡਾਊਨਲੋਡ ਨੂੰ ਮਿਟਾਉਣ ਦਾ ਵਿਕਲਪ ਸ਼ਾਮਿਲ ਕਰੋ on.soundcloud ਲਿੰਕ ਖੋਲ੍ਹਣ ਦਾ ਸਮਰਥਨ ਕਰੋ -ਬਹੁਤ ਸਾਰੇ ਛੋਟੇ ਸੁਧਾਰ ਅਤੇ ਅਨੁਕੂਲਤਾ - -# ਫਿਕਸਡ 7 ਤੋਂ ਘੱਟ ਐਂਡਰਾਇਡ ਸੰਸਕਰਣਾਂ ਲਈ ਛੋਟੀ ਗਿਣਤੀ ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ ਖਾਲੀ ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਠੀਕ ਕੀਤਾ ਗਿਆ SRT ਉਪਸਿਰਲੇਖ ਫਾਈਲਾਂ ਲਈ ਠੀਕ ਕੀਤਾ ਗਿਆ ਬਹੁਤ ਸਾਰੇ ਕਰੈਸ਼ ਠੀਕ ਕੀਤੇ ਗਏ - -# ਵਿਕਾਸ -ਅੰਦਰੂਨੀ ਕੋਡ ਆਧੁਨਿਕੀਕਰਨ diff --git a/fastlane/metadata/android/pl/changelogs/1006.txt b/fastlane/metadata/android/pl/changelogs/1006.txt index a537d7c18..137f996b9 100644 --- a/fastlane/metadata/android/pl/changelogs/1006.txt +++ b/fastlane/metadata/android/pl/changelogs/1006.txt @@ -11,6 +11,3 @@ Naprawione - Puste powiadomienia - Pliki napisów SRT - Mnóstwo awarii - -Rozwój -- Modernizacja wewnętrznego kodu diff --git a/fastlane/metadata/android/sv/changelogs/1006.txt b/fastlane/metadata/android/sv/changelogs/1006.txt index 90825e8a8..5fae37d22 100644 --- a/fastlane/metadata/android/sv/changelogs/1006.txt +++ b/fastlane/metadata/android/sv/changelogs/1006.txt @@ -4,13 +4,6 @@ Försök att återställa väntande nedladdningsuppdrag när det är möjligt Lägg till alternativ för att ta bort en nedladdning utan att också ta bort filen Överläggsbehörighet: visa förklarande dialogruta för Android > R Stöd för att öppna on.soundcloud-länkar -Många små förbättringar och optimeringar - -# Åtgärdat Åtgärdade formatering av korta antal för Android-versioner under 7 Åtgärdade Ghost Notifications Åtgärdade för SRT-undertextfiler -Åtgärdade massor av krascher - -# Utveckling -Intern kodmodernisering diff --git a/fastlane/metadata/android/uk/changelogs/1006.txt b/fastlane/metadata/android/uk/changelogs/1006.txt index 6534e9145..fd79de93a 100644 --- a/fastlane/metadata/android/uk/changelogs/1006.txt +++ b/fastlane/metadata/android/uk/changelogs/1006.txt @@ -4,13 +4,9 @@ Додано опцію видалення завантаження без одночасного видалення файлу Дозвіл на накладання: відображення пояснювального діалогового вікна для Android > R Підтримка відкриття посилання на .soundcloud -Багато дрібних покращень та оптимізацій # Виправлено Виправлено форматування короткого лічильника для версій Android нижче 7 Виправлено сповіщення-примари Виправлення для файлів субтитрів SRT Виправлено безліч збоїв - -# Розробка -Модернізація внутрішнього коду diff --git a/fastlane_check.sh b/fastlane_check.sh new file mode 100755 index 000000000..71bc5b6f7 --- /dev/null +++ b/fastlane_check.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +dir="fastlane" +size="500" +name_filter="${1:-}" + +find_cmd=(find "$dir" -type f -size +"${size}c") +if [[ -n $name_filter ]]; then + find_cmd+=(-name "$name_filter") +fi +find_cmd+=(-print0) + +# find: -type f (files), -size +Nc (N bytes, + means strictly greater) +# print0/xargs -0 to safely handle filenames with spaces/newlines + + # macOS stat: "%z %N" => size and filename +"${find_cmd[@]}"| xargs -0 stat -f "%z %N" + + From fc39bff77ef36ed2e61eb4744648d39b1087c052 Mon Sep 17 00:00:00 2001 From: tobigr Date: Fri, 9 Jan 2026 21:25:52 +0100 Subject: [PATCH 21/59] Remove script for fastlane check --- fastlane_check.sh | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100755 fastlane_check.sh diff --git a/fastlane_check.sh b/fastlane_check.sh deleted file mode 100755 index 71bc5b6f7..000000000 --- a/fastlane_check.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -dir="fastlane" -size="500" -name_filter="${1:-}" - -find_cmd=(find "$dir" -type f -size +"${size}c") -if [[ -n $name_filter ]]; then - find_cmd+=(-name "$name_filter") -fi -find_cmd+=(-print0) - -# find: -type f (files), -size +Nc (N bytes, + means strictly greater) -# print0/xargs -0 to safely handle filenames with spaces/newlines - - # macOS stat: "%z %N" => size and filename -"${find_cmd[@]}"| xargs -0 stat -f "%z %N" - - From 9ba89d418b444b127ee936f7a39dc5c5b54521ec Mon Sep 17 00:00:00 2001 From: tobigr Date: Fri, 9 Jan 2026 21:25:52 +0100 Subject: [PATCH 22/59] Remove script for fastlane check --- fastlane_check.sh | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100755 fastlane_check.sh diff --git a/fastlane_check.sh b/fastlane_check.sh deleted file mode 100755 index 71bc5b6f7..000000000 --- a/fastlane_check.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -dir="fastlane" -size="500" -name_filter="${1:-}" - -find_cmd=(find "$dir" -type f -size +"${size}c") -if [[ -n $name_filter ]]; then - find_cmd+=(-name "$name_filter") -fi -find_cmd+=(-print0) - -# find: -type f (files), -size +Nc (N bytes, + means strictly greater) -# print0/xargs -0 to safely handle filenames with spaces/newlines - - # macOS stat: "%z %N" => size and filename -"${find_cmd[@]}"| xargs -0 stat -f "%z %N" - - From 5d7a3f97cd7225699e0f95d60fd6e944760a8db4 Mon Sep 17 00:00:00 2001 From: tobigr Date: Sun, 11 Jan 2026 14:58:38 +0100 Subject: [PATCH 23/59] Update extractor to v0.25.0 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 35dd808d0..2f643413b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ teamnewpipe-nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996" # the corresponding commit hash, since JitPack sometimes deletes artifacts. # If there’s already a git hash, just add more of it to the end (or remove a letter) # to cause jitpack to regenerate the artifact. -teamnewpipe-newpipe-extractor = "f3e143035f8c2b94e43c6bef0608d2a519914e8f" +teamnewpipe-newpipe-extractor = "v0.25.0" viewpager2 = "1.1.0" webkit = "1.14.0" work = "2.10.5" # Newer versions require minSdk >= 23 From 8e389c49e68c25889735af959c8dc87513582527 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 11 Jan 2026 15:01:06 +0100 Subject: [PATCH 24/59] Translated using Weblate (Polish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 56.3% (49 of 87 strings) Translated using Weblate (French) Currently translated at 77.0% (67 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (764 of 764 strings) Co-authored-by: Agnieszka C Co-authored-by: Hosted Weblate Co-authored-by: Mickaël Binos Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ Translation: NewPipe/Metadata --- app/src/main/res/values-pa/strings.xml | 4 +- .../metadata/android/fr/changelogs/65.txt | 53 ++++++++++------ .../metadata/android/fr/changelogs/66.txt | 60 ++++++++++++------ .../metadata/android/fr/changelogs/68.txt | 63 +++++++++++-------- .../metadata/android/fr/changelogs/750.txt | 46 +++++++++----- .../metadata/android/pl/changelogs/1006.txt | 3 + 6 files changed, 148 insertions(+), 81 deletions(-) diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index a937fbf86..9dfc8143e 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -803,8 +803,8 @@ ਸੈਕੰਡਰੀ ਅਸਥਾਈ ਯੂਟਿਊਬ ਪਲੇਲਿਸਟ ਵਜੋਂ ਸਾਂਝਾ ਕਰੋ ਪਲੇਲਿਸਟਾਂ - %1$s ਦੀ ਖੋਜ ਕਰੋ - %1$s (%2$s) ٪1$s ਦੀ ਖੋਜ ਕਰੋ + %1$s ਖੋਜੋ + %1$s (%2$s) ਖੋਜੋ ਫੀਡ ਗਰੁੱਪ ਚੁਣੋ ਅਜੇ ਤੱਕ ਕੋਈ ਫੀਡ ਗਰੁੱਪ ਨਹੀਂ ਬਣਾਇਆ ਗਿਆ ਚੈਨਲ ਗਰੁੱਪ ਪੰਨਾ diff --git a/fastlane/metadata/android/fr/changelogs/65.txt b/fastlane/metadata/android/fr/changelogs/65.txt index c5d6d852a..9d06cac17 100644 --- a/fastlane/metadata/android/fr/changelogs/65.txt +++ b/fastlane/metadata/android/fr/changelogs/65.txt @@ -1,26 +1,41 @@ ### Améliorations -- L'animation de l'icône du burgermenu a été désactivé #1486 -- Annulation de la suppression des téléchargements #1472 +- Désactivation de l'animation de l'icône du menu hamburger #1486 + +- Annulation de la suppression des téléchargements #1472 + - Option de téléchargement dans le menu de partage #1498 -- Ajout d'une option de partage dans le menu "long tap" #1454 -- Réduction du lecteur principal à la sortie #1354 -- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 -- Mise à jour de ExoPlayer 2.8.2 #1392 - - La boîte de dialogue de contrôle de la vitesse de lecture a été retravaillée pour prendre en charge différentes tailles de pas pour un changement de vitesse plus rapide. - - Ajout d'une option d'avance rapide pendant les silences dans le contrôle de la vitesse de lecture. Cela devrait être utile pour les livres audio et certains genres musicaux, et peut apporter une véritable expérience transparente (et peut casser une chanson avec beaucoup de silences =\\). - - Refonte de la résolution des sources de médias pour permettre le passage des métadonnées avec les médias en interne dans le lecteur, plutôt que de le faire manuellement. Maintenant, nous avons une seule source de métadonnées et elles sont directement disponibles lorsque la lecture commence. - - Correction des métadonnées des listes de lecture distantes qui ne sont pas mises à jour lorsque de nouvelles métadonnées sont disponibles lors de l'ouverture du fragment de liste de lecture. - - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. + +- Ajout de l'option de partage au menu contextuel (appui long) #1454 + +- Réduction du lecteur principal à la fermeture #1354 + +- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 + +- Mise à jour ExoPlayer 2.8.2 #1392 + +- Refonte de la boîte de dialogue de contrôle de la vitesse de lecture pour permettre des incréments différents et ainsi accélérer les changements de vitesse. + +- Ajout d'une option pour avancer rapidement pendant les silences dans le contrôle de la vitesse de lecture. Cette fonction devrait être utile pour les livres audio et certains genres musicaux, et peut offrir une expérience d'écoute parfaitement fluide (mais peut aussi perturber la lecture d'un morceau comportant de nombreux silences =\\). + +- Refonte de la résolution de la source multimédia pour permettre la transmission des métadonnées directement dans le lecteur, au lieu d'une saisie manuelle. Nous disposons désormais d'une source unique de métadonnées, directement disponible au démarrage de la lecture. - Correction du problème de mise à jour des métadonnées des listes de lecture distantes lors de la disponibilité de nouvelles métadonnées à l'ouverture d'un fragment de liste de lecture. + +- Diverses corrections d'interface utilisateur : #1383, les commandes de notification du lecteur en arrière-plan sont désormais toujours blanches, fermeture plus facile du lecteur contextuel par un mouvement brusque. + - Utilisation d'un nouvel extracteur avec une architecture remaniée pour le multiservice. ### Corrections -- Correction #1440 Disposition des informations vidéo cassée #1491 -- Correction de l'historique des vues #1497 - - #1495, en mettant à jour les métadonnées (vignette, titre et nombre de vidéos) dès que l'utilisateur accède à la liste de lecture. - - #1475, en enregistrant une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe sur le fragment de détail. -- Correction du timeout de la fenêtre en cas de mode popup. #1463 (Corrigé #640) -- Correction du lecteur vidéo principal #1509 - - Correction du mode répétition entraînant un NPE du lecteur lorsqu'une nouvelle intention est reçue alors que l'activité du lecteur est en arrière-plan. - - Correction de la réduction du lecteur en popup ne détruisant pas le lecteur lorsque la permission de popup n'est pas accordée. +- Correction du problème #1440 : affichage incorrect des informations vidéo. #1491 + +- Correction de l'historique de visionnage. #1497 + +- #1495 : mise à jour des métadonnées (miniature, titre et nombre de vidéos) dès que l'utilisateur accède à la liste de lecture. + +- #1475 : enregistrement d'une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe dans le fragment de détails. + +- Correction du délai d'expiration de l'écran en mode contextuel. #1463 (Correction du problème #640) + +- Correction du lecteur vidéo principal. #1509 + +- [#1412] Correction du mode répétition provoquant une exception NullPointerException (NPE) du lecteur lors de la réception d'une nouvelle intention alors que l'activité du lecteur est en arrière-plan. - Correction d'un problème où la réduction du lecteur dans une fenêtre contextuelle ne détruisait pas le lecteur lorsque l'autorisation d'afficher la fenêtre contextuelle n'était pas accordée. diff --git a/fastlane/metadata/android/fr/changelogs/66.txt b/fastlane/metadata/android/fr/changelogs/66.txt index 33ba1fe25..b6092f44f 100644 --- a/fastlane/metadata/android/fr/changelogs/66.txt +++ b/fastlane/metadata/android/fr/changelogs/66.txt @@ -1,28 +1,50 @@ +# Journal des modifications de la v0.13.7 + +### Corrigé +- Correction des problèmes de filtre de tri de la v0.13.6 + # Journal des modifications de la v0.13.6 ### Améliorations -- L'animation de l'icône du menu « hamburger » a été désactivée #1486 -- Annulation de la suppression des téléchargements #1472 +- Désactivation de l'animation de l'icône du menu hamburger #1486 + +- Annulation de la suppression des téléchargements #1472 + - Option de téléchargement dans le menu de partage #1498 -- Ajout d'une option de partage dans le menu "long tap" #1454 -- Réduction du lecteur principal à la sortie #1354 -- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 -- Mise à jour de ExoPlayer 2.8.2 #1392 - - La boîte de dialogue de contrôle de la vitesse de lecture a été retravaillée pour prendre en charge différentes tailles de pas pour un changement de vitesse plus rapide. - - Ajout d'une option d'avance rapide pendant les silences dans le contrôle de la vitesse de lecture. Cela devrait être utile pour les livres audio et certains genres musicaux, et peut apporter une véritable expérience transparente (et peut casser une chanson avec beaucoup de silences =\\). - - Refonte de la résolution des sources de médias pour permettre le passage des métadonnées avec les médias en interne dans le lecteur, plutôt que de le faire manuellement. Maintenant, nous avons une seule source de métadonnées et elles sont directement disponibles lorsque la lecture commence. - - Correction des métadonnées des listes de lecture distantes qui ne sont pas mises à jour lorsque de nouvelles métadonnées sont disponibles lors de l'ouverture du fragment de liste de lecture. - - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. + +- Ajout de l'option de partage au menu contextuel (appui long) #1454 + +- Réduction du lecteur principal à la fermeture #1354 + +- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 + +- Mise à jour ExoPlayer 2.8.2 #1392 + +- Refonte de la boîte de dialogue de contrôle de la vitesse de lecture pour permettre des incréments différents et ainsi accélérer les changements de vitesse. + +- Ajout d'une option pour avancer rapidement pendant les silences dans le contrôle de la vitesse de lecture. Ceci devrait être utile pour les livres audio et certains genres musicaux, et peut offrir une expérience d'écoute parfaitement fluide (mais peut aussi perturber une chanson avec de nombreux silences =\\). - Résolution de la source multimédia remaniée pour permettre la transmission interne des métadonnées au lecteur, au lieu d'une saisie manuelle. Les métadonnées proviennent désormais d'une source unique et sont directement disponibles au démarrage de la lecture. + +- Correction du problème de mise à jour des métadonnées des listes de lecture distantes lors de l'ouverture d'un fragment de liste de lecture, même lorsque de nouvelles métadonnées sont disponibles. + +- Diverses corrections d'interface : #1383, les commandes de notification du lecteur en arrière-plan sont désormais toujours blanches ; il est plus facile de fermer le lecteur contextuel en le faisant glisser. + - Utilisation d'un nouvel extracteur avec une architecture remaniée pour le multiservice. ### Corrections -- Correction #1440 Disposition des informations vidéo cassée #1491 -- Correction de l'historique des vues #1497 - - #1495, en mettant à jour les métadonnées (vignette, titre et nombre de vidéos) dès que l'utilisateur accède à la playlist. - - #1475, en enregistrant une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe sur le fragment de détail. -- Correction du timeout de la fenêtre en cas de mode popup. #1463 (Corrigé #640) -- Correction du lecteur vidéo principal #1509 - - Correction du mode répétition entraînant un NPE du lecteur lorsqu'une nouvelle intention est reçue alors que l'activité du lecteur est en arrière-plan. - - Correction de la réduction du lecteur en popup ne détruisant pas le lecteur lorsque la permission de popup n'est pas accordée. +- Correction du problème #1440 : affichage incorrect des informations vidéo ; #1491 + +- Correction de l'historique de visionnage ; #1497 + +- #1495 : mise à jour des métadonnées (miniature, titre et nombre de vidéos) dès que l'utilisateur accède à la liste de lecture. + +- #1475 : enregistrement d'une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe dans le fragment de détails. + +- Correction du délai d'expiration de l'écran en mode fenêtre contextuelle. #1463 (Correction de #640) + +- Correction du lecteur vidéo principal #1509 + +- [#1412] Correction du mode de répétition provoquant une exception de pointeur nul (NPE) du lecteur lors de la réception d'une nouvelle intention alors que l'activité du lecteur est en arrière-plan. + +- Correction du problème suivant : la réduction du lecteur dans une fenêtre contextuelle ne le détruisait pas lorsque l'autorisation d'ouvrir une fenêtre contextuelle n'était pas accordée. diff --git a/fastlane/metadata/android/fr/changelogs/68.txt b/fastlane/metadata/android/fr/changelogs/68.txt index b1735214a..3c9c4446f 100644 --- a/fastlane/metadata/android/fr/changelogs/68.txt +++ b/fastlane/metadata/android/fr/changelogs/68.txt @@ -1,31 +1,44 @@ -# Modifications v0.14.1 +# Modifications de la v0.14.1 -### Corrections -- Échec du décryptage de l'URL vidéo #1659 -- Lien de description, ne s'extrayait pas bien #1657 +### Corrigé +- Correction du problème de décryptage de l'URL vidéo (#1659) +- Correction du problème d'extraction du lien de description (#1657) -# Modifications v0.14.0 +# Modifications de la v0.14.0 -### Nouveautés -- Design du dossier #1461 -- Page d'accueil personnalisable #1461 +### Nouveau +- Nouveau design du tiroir (#1461) +- Nouvelle page d'accueil personnalisable (#1461) ### Améliorations -- Contrôles gestuels retravaillés #1604 -- Nouvelle façon de fermer le lecteur popup #1597 +- Refonte des commandes gestuelles (#1604) +- Nouvelle méthode pour fermer le lecteur pop-up (#1597) -### Corrections -- Erreur lorsque le nombre d'abonnements n'est pas disponible. Ferme #1649. - - Affiche "le nombre d'abonnés non disponible" dans ces cas. -- NPE lorsqu'une playlist YouTube est vide. -- Kiosques dans SoundCloud -- Refactor et correction du bug #1623 -- Résultat de recherche cyclique #1562 -- Barre de recherche qui n'est pas mise en page de manière statique -- Vidéos YT Premium qui ne sont pas bloquées correctement -- Vidéos qui ne se chargent pas toujours (à cause du parsing DASH) -- Liens dans la description des vidéos -- Afficher un avertissement lorsque quelqu'un essaie de télécharger vers une carte SD externe -- Exception "rien indiqué" qui déclenche un rapport -- La vignette ne s'affiche pas dans le lecteur de fond pour Android 8.1 [voir ici](https://github.com/TeamNewPipe/NewPipe/issues/943) -- Enregistrement du récepteur de diffusion. Ferme le dossier #1641. +### Corrigé +- Correction d'une erreur lorsque le nombre d'abonnements n'est pas disponible. Résout le problème n° 1649. + + - Afficher « Nombre d'abonnés indisponible » dans ces cas + +- Correction d'une exception NPE lorsqu'une playlist YouTube est vide + +- Correction rapide pour les bornes interactives sur SoundCloud + +- Refactorisation et correction du bug n° 1623 + +- Correction du résultat de recherche cyclique n° 1562 + +- Correction de la barre de progression (position statique) + +- Correction du blocage incorrect des vidéos YouTube Premium + +- Correction du chargement intempestif des vidéos (dû à l'analyse DASH) + +- Correction des liens dans la description des vidéos + +- Afficher un avertissement lors d'une tentative de téléchargement sur carte SD externe + +- Correction d'une exception déclenchant un rapport en cas d'absence d'affichage + +- Correction de l'affichage des miniatures dans le lecteur en arrière-plan sous Android 8.1 [voir ici](https://github.com/TeamNewPipe/NewPipe/issues/943) + +- Correction de l'enregistrement du récepteur de diffusion. Résout le problème n° 1641. diff --git a/fastlane/metadata/android/fr/changelogs/750.txt b/fastlane/metadata/android/fr/changelogs/750.txt index 422529abf..7273ae1f0 100644 --- a/fastlane/metadata/android/fr/changelogs/750.txt +++ b/fastlane/metadata/android/fr/changelogs/750.txt @@ -1,22 +1,36 @@ -Nouveau -Reprise de lecture #2288 -• Reprise des flux où ils s'étaient arrêtés -Améliorations du téléchargeur #2149 -• Utilisation du Storage Access Framework pour stocker sur cartes SD -• Nouveau multiplexeur mp4 -• Peut changer le dossier de téléchargement -• Respect des réseaux tarifés +Nouveautés +Reprise de la lecture #2288 + +• Reprise des flux là où vous les avez interrompus +Améliorations du téléchargeur #2149 + +• Utilisation de Storage Access Framework pour stocker les téléchargements sur des cartes SD externes + +• Nouveau multiplexeur mp4 + +• Possibilité de modifier le répertoire de téléchargement avant de lancer un téléchargement + +• Respect des réseaux limités Améliorations + • Suppression des chaînes gema #2295 -• Gestion des changements de rotation #2444 -• Uniformisation des menus longue-pression #2368 + +• Gestion des changements de rotation (automatique) pendant le cycle de vie de l'activité #2444 + +• Harmonisation des menus accessibles par appui long #2368 Corrections -• Nom de la piste de sous-titres sélectionnée qui ne s'affiche pas #2394 -• Ne plante pas quand la vérification de la mise à jour de l'application échoue #2423 -• Téléchargements bloqués à 99,9 % #2440 -• Mise à jour des métadonnées de la file de lecture #2453 -• [SoundCloud] Ne plante pas lors du chargement des playlists TeamNewPipe/NewPipeExtractor#170 -• [YouTube] Durée pas analysée TeamNewPipe/NewPipeExtractor#177 + +• Correction de l'affichage du nom de la piste de sous-titres sélectionnée #2394 + +• Correction du plantage en cas d'échec de la vérification des mises à jour de l'application (version GitHub) #2423 + +• Correction du blocage des téléchargements à 99,9 % #2440 + +• Mise à jour des métadonnées de la file d'attente de lecture #2453 + +• [SoundCloud] Correction du plantage lors du chargement des playlists TeamNewPipe/NewPipeExtractor#170 + +• [YouTube] Correction de l'impossibilité d'afficher la durée paresd TeamNewPipe/NewPipeExtractor#177 diff --git a/fastlane/metadata/android/pl/changelogs/1006.txt b/fastlane/metadata/android/pl/changelogs/1006.txt index 137f996b9..a537d7c18 100644 --- a/fastlane/metadata/android/pl/changelogs/1006.txt +++ b/fastlane/metadata/android/pl/changelogs/1006.txt @@ -11,3 +11,6 @@ Naprawione - Puste powiadomienia - Pliki napisów SRT - Mnóstwo awarii + +Rozwój +- Modernizacja wewnętrznego kodu From 56489e5ddd6c2ea6b208ef05682561affb9733ff Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 11 Jan 2026 15:01:06 +0100 Subject: [PATCH 25/59] Translated using Weblate (Polish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 56.3% (49 of 87 strings) Translated using Weblate (French) Currently translated at 77.0% (67 of 87 strings) Translated using Weblate (Punjabi) Currently translated at 100.0% (764 of 764 strings) Co-authored-by: Agnieszka C Co-authored-by: Hosted Weblate Co-authored-by: Mickaël Binos Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/ Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/ Translation: NewPipe/Metadata --- app/src/main/res/values-pa/strings.xml | 4 +- .../metadata/android/fr/changelogs/65.txt | 53 ++++++++++------ .../metadata/android/fr/changelogs/66.txt | 60 ++++++++++++------ .../metadata/android/fr/changelogs/68.txt | 63 +++++++++++-------- .../metadata/android/fr/changelogs/750.txt | 46 +++++++++----- .../metadata/android/pl/changelogs/1006.txt | 3 + 6 files changed, 148 insertions(+), 81 deletions(-) diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml index a937fbf86..9dfc8143e 100644 --- a/app/src/main/res/values-pa/strings.xml +++ b/app/src/main/res/values-pa/strings.xml @@ -803,8 +803,8 @@ ਸੈਕੰਡਰੀ ਅਸਥਾਈ ਯੂਟਿਊਬ ਪਲੇਲਿਸਟ ਵਜੋਂ ਸਾਂਝਾ ਕਰੋ ਪਲੇਲਿਸਟਾਂ - %1$s ਦੀ ਖੋਜ ਕਰੋ - %1$s (%2$s) ٪1$s ਦੀ ਖੋਜ ਕਰੋ + %1$s ਖੋਜੋ + %1$s (%2$s) ਖੋਜੋ ਫੀਡ ਗਰੁੱਪ ਚੁਣੋ ਅਜੇ ਤੱਕ ਕੋਈ ਫੀਡ ਗਰੁੱਪ ਨਹੀਂ ਬਣਾਇਆ ਗਿਆ ਚੈਨਲ ਗਰੁੱਪ ਪੰਨਾ diff --git a/fastlane/metadata/android/fr/changelogs/65.txt b/fastlane/metadata/android/fr/changelogs/65.txt index c5d6d852a..9d06cac17 100644 --- a/fastlane/metadata/android/fr/changelogs/65.txt +++ b/fastlane/metadata/android/fr/changelogs/65.txt @@ -1,26 +1,41 @@ ### Améliorations -- L'animation de l'icône du burgermenu a été désactivé #1486 -- Annulation de la suppression des téléchargements #1472 +- Désactivation de l'animation de l'icône du menu hamburger #1486 + +- Annulation de la suppression des téléchargements #1472 + - Option de téléchargement dans le menu de partage #1498 -- Ajout d'une option de partage dans le menu "long tap" #1454 -- Réduction du lecteur principal à la sortie #1354 -- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 -- Mise à jour de ExoPlayer 2.8.2 #1392 - - La boîte de dialogue de contrôle de la vitesse de lecture a été retravaillée pour prendre en charge différentes tailles de pas pour un changement de vitesse plus rapide. - - Ajout d'une option d'avance rapide pendant les silences dans le contrôle de la vitesse de lecture. Cela devrait être utile pour les livres audio et certains genres musicaux, et peut apporter une véritable expérience transparente (et peut casser une chanson avec beaucoup de silences =\\). - - Refonte de la résolution des sources de médias pour permettre le passage des métadonnées avec les médias en interne dans le lecteur, plutôt que de le faire manuellement. Maintenant, nous avons une seule source de métadonnées et elles sont directement disponibles lorsque la lecture commence. - - Correction des métadonnées des listes de lecture distantes qui ne sont pas mises à jour lorsque de nouvelles métadonnées sont disponibles lors de l'ouverture du fragment de liste de lecture. - - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. + +- Ajout de l'option de partage au menu contextuel (appui long) #1454 + +- Réduction du lecteur principal à la fermeture #1354 + +- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 + +- Mise à jour ExoPlayer 2.8.2 #1392 + +- Refonte de la boîte de dialogue de contrôle de la vitesse de lecture pour permettre des incréments différents et ainsi accélérer les changements de vitesse. + +- Ajout d'une option pour avancer rapidement pendant les silences dans le contrôle de la vitesse de lecture. Cette fonction devrait être utile pour les livres audio et certains genres musicaux, et peut offrir une expérience d'écoute parfaitement fluide (mais peut aussi perturber la lecture d'un morceau comportant de nombreux silences =\\). + +- Refonte de la résolution de la source multimédia pour permettre la transmission des métadonnées directement dans le lecteur, au lieu d'une saisie manuelle. Nous disposons désormais d'une source unique de métadonnées, directement disponible au démarrage de la lecture. - Correction du problème de mise à jour des métadonnées des listes de lecture distantes lors de la disponibilité de nouvelles métadonnées à l'ouverture d'un fragment de liste de lecture. + +- Diverses corrections d'interface utilisateur : #1383, les commandes de notification du lecteur en arrière-plan sont désormais toujours blanches, fermeture plus facile du lecteur contextuel par un mouvement brusque. + - Utilisation d'un nouvel extracteur avec une architecture remaniée pour le multiservice. ### Corrections -- Correction #1440 Disposition des informations vidéo cassée #1491 -- Correction de l'historique des vues #1497 - - #1495, en mettant à jour les métadonnées (vignette, titre et nombre de vidéos) dès que l'utilisateur accède à la liste de lecture. - - #1475, en enregistrant une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe sur le fragment de détail. -- Correction du timeout de la fenêtre en cas de mode popup. #1463 (Corrigé #640) -- Correction du lecteur vidéo principal #1509 - - Correction du mode répétition entraînant un NPE du lecteur lorsqu'une nouvelle intention est reçue alors que l'activité du lecteur est en arrière-plan. - - Correction de la réduction du lecteur en popup ne détruisant pas le lecteur lorsque la permission de popup n'est pas accordée. +- Correction du problème #1440 : affichage incorrect des informations vidéo. #1491 + +- Correction de l'historique de visionnage. #1497 + +- #1495 : mise à jour des métadonnées (miniature, titre et nombre de vidéos) dès que l'utilisateur accède à la liste de lecture. + +- #1475 : enregistrement d'une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe dans le fragment de détails. + +- Correction du délai d'expiration de l'écran en mode contextuel. #1463 (Correction du problème #640) + +- Correction du lecteur vidéo principal. #1509 + +- [#1412] Correction du mode répétition provoquant une exception NullPointerException (NPE) du lecteur lors de la réception d'une nouvelle intention alors que l'activité du lecteur est en arrière-plan. - Correction d'un problème où la réduction du lecteur dans une fenêtre contextuelle ne détruisait pas le lecteur lorsque l'autorisation d'afficher la fenêtre contextuelle n'était pas accordée. diff --git a/fastlane/metadata/android/fr/changelogs/66.txt b/fastlane/metadata/android/fr/changelogs/66.txt index 33ba1fe25..b6092f44f 100644 --- a/fastlane/metadata/android/fr/changelogs/66.txt +++ b/fastlane/metadata/android/fr/changelogs/66.txt @@ -1,28 +1,50 @@ +# Journal des modifications de la v0.13.7 + +### Corrigé +- Correction des problèmes de filtre de tri de la v0.13.6 + # Journal des modifications de la v0.13.6 ### Améliorations -- L'animation de l'icône du menu « hamburger » a été désactivée #1486 -- Annulation de la suppression des téléchargements #1472 +- Désactivation de l'animation de l'icône du menu hamburger #1486 + +- Annulation de la suppression des téléchargements #1472 + - Option de téléchargement dans le menu de partage #1498 -- Ajout d'une option de partage dans le menu "long tap" #1454 -- Réduction du lecteur principal à la sortie #1354 -- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 -- Mise à jour de ExoPlayer 2.8.2 #1392 - - La boîte de dialogue de contrôle de la vitesse de lecture a été retravaillée pour prendre en charge différentes tailles de pas pour un changement de vitesse plus rapide. - - Ajout d'une option d'avance rapide pendant les silences dans le contrôle de la vitesse de lecture. Cela devrait être utile pour les livres audio et certains genres musicaux, et peut apporter une véritable expérience transparente (et peut casser une chanson avec beaucoup de silences =\\). - - Refonte de la résolution des sources de médias pour permettre le passage des métadonnées avec les médias en interne dans le lecteur, plutôt que de le faire manuellement. Maintenant, nous avons une seule source de métadonnées et elles sont directement disponibles lorsque la lecture commence. - - Correction des métadonnées des listes de lecture distantes qui ne sont pas mises à jour lorsque de nouvelles métadonnées sont disponibles lors de l'ouverture du fragment de liste de lecture. - - Diverses corrections de l'interface utilisateur : #1383, les contrôles de notification du lecteur en arrière-plan sont maintenant toujours blancs, il est plus facile de fermer le lecteur popup en le lançant. + +- Ajout de l'option de partage au menu contextuel (appui long) #1454 + +- Réduction du lecteur principal à la fermeture #1354 + +- Mise à jour de la version de la bibliothèque et correction de la sauvegarde de la base de données #1510 + +- Mise à jour ExoPlayer 2.8.2 #1392 + +- Refonte de la boîte de dialogue de contrôle de la vitesse de lecture pour permettre des incréments différents et ainsi accélérer les changements de vitesse. + +- Ajout d'une option pour avancer rapidement pendant les silences dans le contrôle de la vitesse de lecture. Ceci devrait être utile pour les livres audio et certains genres musicaux, et peut offrir une expérience d'écoute parfaitement fluide (mais peut aussi perturber une chanson avec de nombreux silences =\\). - Résolution de la source multimédia remaniée pour permettre la transmission interne des métadonnées au lecteur, au lieu d'une saisie manuelle. Les métadonnées proviennent désormais d'une source unique et sont directement disponibles au démarrage de la lecture. + +- Correction du problème de mise à jour des métadonnées des listes de lecture distantes lors de l'ouverture d'un fragment de liste de lecture, même lorsque de nouvelles métadonnées sont disponibles. + +- Diverses corrections d'interface : #1383, les commandes de notification du lecteur en arrière-plan sont désormais toujours blanches ; il est plus facile de fermer le lecteur contextuel en le faisant glisser. + - Utilisation d'un nouvel extracteur avec une architecture remaniée pour le multiservice. ### Corrections -- Correction #1440 Disposition des informations vidéo cassée #1491 -- Correction de l'historique des vues #1497 - - #1495, en mettant à jour les métadonnées (vignette, titre et nombre de vidéos) dès que l'utilisateur accède à la playlist. - - #1475, en enregistrant une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe sur le fragment de détail. -- Correction du timeout de la fenêtre en cas de mode popup. #1463 (Corrigé #640) -- Correction du lecteur vidéo principal #1509 - - Correction du mode répétition entraînant un NPE du lecteur lorsqu'une nouvelle intention est reçue alors que l'activité du lecteur est en arrière-plan. - - Correction de la réduction du lecteur en popup ne détruisant pas le lecteur lorsque la permission de popup n'est pas accordée. +- Correction du problème #1440 : affichage incorrect des informations vidéo ; #1491 + +- Correction de l'historique de visionnage ; #1497 + +- #1495 : mise à jour des métadonnées (miniature, titre et nombre de vidéos) dès que l'utilisateur accède à la liste de lecture. + +- #1475 : enregistrement d'une vue dans la base de données lorsque l'utilisateur lance une vidéo sur un lecteur externe dans le fragment de détails. + +- Correction du délai d'expiration de l'écran en mode fenêtre contextuelle. #1463 (Correction de #640) + +- Correction du lecteur vidéo principal #1509 + +- [#1412] Correction du mode de répétition provoquant une exception de pointeur nul (NPE) du lecteur lors de la réception d'une nouvelle intention alors que l'activité du lecteur est en arrière-plan. + +- Correction du problème suivant : la réduction du lecteur dans une fenêtre contextuelle ne le détruisait pas lorsque l'autorisation d'ouvrir une fenêtre contextuelle n'était pas accordée. diff --git a/fastlane/metadata/android/fr/changelogs/68.txt b/fastlane/metadata/android/fr/changelogs/68.txt index b1735214a..3c9c4446f 100644 --- a/fastlane/metadata/android/fr/changelogs/68.txt +++ b/fastlane/metadata/android/fr/changelogs/68.txt @@ -1,31 +1,44 @@ -# Modifications v0.14.1 +# Modifications de la v0.14.1 -### Corrections -- Échec du décryptage de l'URL vidéo #1659 -- Lien de description, ne s'extrayait pas bien #1657 +### Corrigé +- Correction du problème de décryptage de l'URL vidéo (#1659) +- Correction du problème d'extraction du lien de description (#1657) -# Modifications v0.14.0 +# Modifications de la v0.14.0 -### Nouveautés -- Design du dossier #1461 -- Page d'accueil personnalisable #1461 +### Nouveau +- Nouveau design du tiroir (#1461) +- Nouvelle page d'accueil personnalisable (#1461) ### Améliorations -- Contrôles gestuels retravaillés #1604 -- Nouvelle façon de fermer le lecteur popup #1597 +- Refonte des commandes gestuelles (#1604) +- Nouvelle méthode pour fermer le lecteur pop-up (#1597) -### Corrections -- Erreur lorsque le nombre d'abonnements n'est pas disponible. Ferme #1649. - - Affiche "le nombre d'abonnés non disponible" dans ces cas. -- NPE lorsqu'une playlist YouTube est vide. -- Kiosques dans SoundCloud -- Refactor et correction du bug #1623 -- Résultat de recherche cyclique #1562 -- Barre de recherche qui n'est pas mise en page de manière statique -- Vidéos YT Premium qui ne sont pas bloquées correctement -- Vidéos qui ne se chargent pas toujours (à cause du parsing DASH) -- Liens dans la description des vidéos -- Afficher un avertissement lorsque quelqu'un essaie de télécharger vers une carte SD externe -- Exception "rien indiqué" qui déclenche un rapport -- La vignette ne s'affiche pas dans le lecteur de fond pour Android 8.1 [voir ici](https://github.com/TeamNewPipe/NewPipe/issues/943) -- Enregistrement du récepteur de diffusion. Ferme le dossier #1641. +### Corrigé +- Correction d'une erreur lorsque le nombre d'abonnements n'est pas disponible. Résout le problème n° 1649. + + - Afficher « Nombre d'abonnés indisponible » dans ces cas + +- Correction d'une exception NPE lorsqu'une playlist YouTube est vide + +- Correction rapide pour les bornes interactives sur SoundCloud + +- Refactorisation et correction du bug n° 1623 + +- Correction du résultat de recherche cyclique n° 1562 + +- Correction de la barre de progression (position statique) + +- Correction du blocage incorrect des vidéos YouTube Premium + +- Correction du chargement intempestif des vidéos (dû à l'analyse DASH) + +- Correction des liens dans la description des vidéos + +- Afficher un avertissement lors d'une tentative de téléchargement sur carte SD externe + +- Correction d'une exception déclenchant un rapport en cas d'absence d'affichage + +- Correction de l'affichage des miniatures dans le lecteur en arrière-plan sous Android 8.1 [voir ici](https://github.com/TeamNewPipe/NewPipe/issues/943) + +- Correction de l'enregistrement du récepteur de diffusion. Résout le problème n° 1641. diff --git a/fastlane/metadata/android/fr/changelogs/750.txt b/fastlane/metadata/android/fr/changelogs/750.txt index 422529abf..7273ae1f0 100644 --- a/fastlane/metadata/android/fr/changelogs/750.txt +++ b/fastlane/metadata/android/fr/changelogs/750.txt @@ -1,22 +1,36 @@ -Nouveau -Reprise de lecture #2288 -• Reprise des flux où ils s'étaient arrêtés -Améliorations du téléchargeur #2149 -• Utilisation du Storage Access Framework pour stocker sur cartes SD -• Nouveau multiplexeur mp4 -• Peut changer le dossier de téléchargement -• Respect des réseaux tarifés +Nouveautés +Reprise de la lecture #2288 + +• Reprise des flux là où vous les avez interrompus +Améliorations du téléchargeur #2149 + +• Utilisation de Storage Access Framework pour stocker les téléchargements sur des cartes SD externes + +• Nouveau multiplexeur mp4 + +• Possibilité de modifier le répertoire de téléchargement avant de lancer un téléchargement + +• Respect des réseaux limités Améliorations + • Suppression des chaînes gema #2295 -• Gestion des changements de rotation #2444 -• Uniformisation des menus longue-pression #2368 + +• Gestion des changements de rotation (automatique) pendant le cycle de vie de l'activité #2444 + +• Harmonisation des menus accessibles par appui long #2368 Corrections -• Nom de la piste de sous-titres sélectionnée qui ne s'affiche pas #2394 -• Ne plante pas quand la vérification de la mise à jour de l'application échoue #2423 -• Téléchargements bloqués à 99,9 % #2440 -• Mise à jour des métadonnées de la file de lecture #2453 -• [SoundCloud] Ne plante pas lors du chargement des playlists TeamNewPipe/NewPipeExtractor#170 -• [YouTube] Durée pas analysée TeamNewPipe/NewPipeExtractor#177 + +• Correction de l'affichage du nom de la piste de sous-titres sélectionnée #2394 + +• Correction du plantage en cas d'échec de la vérification des mises à jour de l'application (version GitHub) #2423 + +• Correction du blocage des téléchargements à 99,9 % #2440 + +• Mise à jour des métadonnées de la file d'attente de lecture #2453 + +• [SoundCloud] Correction du plantage lors du chargement des playlists TeamNewPipe/NewPipeExtractor#170 + +• [YouTube] Correction de l'impossibilité d'afficher la durée paresd TeamNewPipe/NewPipeExtractor#177 diff --git a/fastlane/metadata/android/pl/changelogs/1006.txt b/fastlane/metadata/android/pl/changelogs/1006.txt index 137f996b9..a537d7c18 100644 --- a/fastlane/metadata/android/pl/changelogs/1006.txt +++ b/fastlane/metadata/android/pl/changelogs/1006.txt @@ -11,3 +11,6 @@ Naprawione - Puste powiadomienia - Pliki napisów SRT - Mnóstwo awarii + +Rozwój +- Modernizacja wewnętrznego kodu From 4f0e62e5991853015c17bc3f8bc9cc1136d3ed4c Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Sun, 11 Jan 2026 13:51:34 +0200 Subject: [PATCH 26/59] Misc small kotlin based refactors Java file here because it uses kotlin function which returns non null --- .../java/org/schabi/newpipe/database/FeedDAOTest.kt | 1 - .../java/org/schabi/newpipe/DownloaderImpl.java | 4 +--- .../java/org/schabi/newpipe/database/Migrations.kt | 1 - .../main/java/org/schabi/newpipe/error/ErrorInfo.kt | 2 +- app/src/main/java/org/schabi/newpipe/ktx/View.kt | 6 +----- .../newpipe/local/feed/FeedDatabaseManager.kt | 13 ++++++------- .../local/feed/notifications/NotificationHelper.kt | 6 +++--- .../local/feed/notifications/ScheduleOptions.kt | 7 +++---- .../schabi/newpipe/local/playlist/ExportPlaylist.kt | 2 +- 9 files changed, 16 insertions(+), 26 deletions(-) diff --git a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt index 893ae82b7..54d2dad9c 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt @@ -22,7 +22,6 @@ import org.schabi.newpipe.extractor.channel.ChannelInfo import org.schabi.newpipe.extractor.stream.StreamType import java.io.IOException import java.time.OffsetDateTime -import kotlin.streams.toList class FeedDAOTest { private lateinit var db: AppDatabase diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 6ccc2437a..041e91396 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -161,9 +161,7 @@ public final class DownloaderImpl extends Downloader { String responseBodyToReturn = null; try (ResponseBody body = response.body()) { - if (body != null) { - responseBodyToReturn = body.string(); - } + responseBodyToReturn = body.string(); } final String latestUrl = response.request().url().toString(); diff --git a/app/src/main/java/org/schabi/newpipe/database/Migrations.kt b/app/src/main/java/org/schabi/newpipe/database/Migrations.kt index 6566f7e6a..414f74893 100644 --- a/app/src/main/java/org/schabi/newpipe/database/Migrations.kt +++ b/app/src/main/java/org/schabi/newpipe/database/Migrations.kt @@ -8,7 +8,6 @@ package org.schabi.newpipe.database import android.util.Log import androidx.room.migration.Migration -import androidx.sqlite.db.SupportSQLiteDatabase import org.schabi.newpipe.MainActivity object Migrations { diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt index 609fbb336..7ddfeb553 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt @@ -163,7 +163,7 @@ class ErrorInfo private constructor( private fun getServiceName(serviceId: Int?) = // not using getNameOfServiceById since we want to accept a nullable serviceId and we // want to default to SERVICE_NONE - ServiceList.all()?.firstOrNull { it.serviceId == serviceId }?.serviceInfo?.name + ServiceList.all().firstOrNull { it.serviceId == serviceId }?.serviceInfo?.name ?: SERVICE_NONE fun throwableToStringList(throwable: Throwable) = arrayOf(throwable.stackTraceToString()) diff --git a/app/src/main/java/org/schabi/newpipe/ktx/View.kt b/app/src/main/java/org/schabi/newpipe/ktx/View.kt index b781335e1..cf9e4baef 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/View.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/View.kt @@ -41,11 +41,7 @@ fun View.animate( execOnEnd: Runnable? = null ) { if (DEBUG) { - val id = try { - resources.getResourceEntryName(id) - } catch (e: Exception) { - id.toString() - } + val id = runCatching { resources.getResourceEntryName(id) }.getOrDefault(id.toString()) val msg = String.format( "%8s → [%s:%s] [%s %s:%s] execOnEnd=%s", enterOrExit, javaClass.simpleName, id, animationType, duration, delay, execOnEnd diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt index aacc6757e..8a1de01c9 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt @@ -85,14 +85,13 @@ class FeedDatabaseManager(context: Context) { items: List, oldestAllowedDate: OffsetDateTime = FEED_OLDEST_ALLOWED_DATE ) { - val itemsToInsert = ArrayList() - loop@ for (streamItem in items) { - val uploadDate = streamItem.uploadDate + val itemsToInsert = items.mapNotNull { stream -> + val uploadDate = stream.uploadDate - itemsToInsert += when { - uploadDate == null && streamItem.streamType == StreamType.LIVE_STREAM -> streamItem - uploadDate != null && uploadDate.offsetDateTime() >= oldestAllowedDate -> streamItem - else -> continue@loop + when { + uploadDate == null && stream.streamType == StreamType.LIVE_STREAM -> stream + uploadDate != null && uploadDate.offsetDateTime() >= oldestAllowedDate -> stream + else -> null } } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt index 646596884..7ce117fcd 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt @@ -15,6 +15,7 @@ import androidx.core.app.NotificationManagerCompat import androidx.core.app.PendingIntentCompat import androidx.core.content.ContextCompat import androidx.core.content.getSystemService +import androidx.core.net.toUri import androidx.preference.PreferenceManager import com.squareup.picasso.Picasso import com.squareup.picasso.Target @@ -181,8 +182,7 @@ class NotificationHelper(val context: Context) { val manager = context.getSystemService()!! val enabled = manager.areNotificationsEnabled() val channel = manager.getNotificationChannel(channelId) - val importance = channel?.importance - enabled && channel != null && importance != NotificationManager.IMPORTANCE_NONE + enabled && channel?.importance != NotificationManager.IMPORTANCE_NONE } else { NotificationManagerCompat.from(context).areNotificationsEnabled() } @@ -212,7 +212,7 @@ class NotificationHelper(val context: Context) { context.startActivity(intent) } else { val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.packageName) + intent.data = "package:${context.packageName}".toUri() context.startActivity(intent) } } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt index 37e8fc39e..b1027e21a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt @@ -3,6 +3,7 @@ package org.schabi.newpipe.local.feed.notifications import android.content.Context import androidx.preference.PreferenceManager import org.schabi.newpipe.R +import org.schabi.newpipe.ktx.getStringSafe import java.util.concurrent.TimeUnit /** @@ -20,11 +21,9 @@ data class ScheduleOptions( val preferences = PreferenceManager.getDefaultSharedPreferences(context) return ScheduleOptions( interval = TimeUnit.SECONDS.toMillis( - preferences.getString( + preferences.getStringSafe( context.getString(R.string.streams_notifications_interval_key), - null - )?.toLongOrNull() ?: context.getString( - R.string.streams_notifications_interval_default + context.getString(R.string.streams_notifications_interval_default) ).toLong() ), isRequireNonMeteredNetwork = preferences.getString( diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt b/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt index 8eb3ab3ae..9c7f1ba09 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt @@ -65,5 +65,5 @@ private val linkHandler: YoutubeStreamLinkHandlerFactory = YoutubeStreamLinkHand */ private fun getYouTubeId(url: String): String? { - return try { linkHandler.getId(url) } catch (e: ParsingException) { null } + return runCatching { linkHandler.getId(url) }.getOrNull() } From 6c5d58bed3a4e7945580c644a875aa1addf3a89b Mon Sep 17 00:00:00 2001 From: tobigr Date: Sun, 11 Jan 2026 18:56:41 +0100 Subject: [PATCH 27/59] Fix minify step of release build by ignoring two classes This fixes the following error during the minifyWithR8 task: > Task :app:minifyReleaseWithR8 FAILED ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /home/runner/work/NewPipe/NewPipe/app/build/outputs/mapping/release/missing_rules.txt. ERROR: R8: Missing class com.google.re2j.Matcher (referenced from: com.google.re2j.Matcher org.jsoup.helper.Re2jRegex$Re2jMatcher.delegate and 3 other contexts) Missing class com.google.re2j.Pattern (referenced from: com.google.re2j.Pattern org.jsoup.helper.Re2jRegex.re2jPattern and 4 other contexts) --- app/proguard-rules.pro | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 0cdffbe2e..8bcef3fbd 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -16,6 +16,11 @@ -dontwarn javax.script.** -keep class jdk.dynalink.** { *; } -dontwarn jdk.dynalink.** +# Rules for jsoup +# Ignore intended-to-be-optional re2j classes - only needed if using re2j for jsoup regex +# jsoup safely falls back to JDK regex if re2j not on classpath, but has concrete re2j refs +# See https://github.com/jhy/jsoup/issues/2459 - may be resolved in future, then this may be removed +-dontwarn com.google.re2j.** ## Rules for ExoPlayer -keep class com.google.android.exoplayer2.** { *; } From 914feef5e97162a62bfa234e25a030bea9481c45 Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Mon, 12 Jan 2026 20:35:14 +0200 Subject: [PATCH 28/59] Fix playlist item dragging video to only neighbor positions Call `saveImmediate` only after used actually dropped item instead of every time View is updated which happens several times to show user a feedback where item would be moved --- .../newpipe/local/playlist/LocalPlaylistFragment.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java index 1efc0a84c..d841b44b4 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java @@ -768,11 +768,17 @@ public class LocalPlaylistFragment extends BaseLocalListFragment Date: Tue, 13 Jan 2026 20:42:10 +0700 Subject: [PATCH 29/59] ci: fix shell injection in backport workflow --- .github/workflows/backport-pr.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/backport-pr.yml b/.github/workflows/backport-pr.yml index c7bcb117e..de46ca7c7 100644 --- a/.github/workflows/backport-pr.yml +++ b/.github/workflows/backport-pr.yml @@ -25,9 +25,11 @@ jobs: - uses: actions/checkout@v4 - name: Get backport metadata # the target branch is the first argument after `/backport` + env: + COMMENT_BODY: ${{ github.event.comment.body }} run: | set -euo pipefail - body="${{ github.event.comment.body }}" + body="$COMMENT_BODY" line=${body%%$'\n'*} # Get the first line if [[ $line =~ ^/backport[[:space:]]+([^[:space:]]+) ]]; then From 402f43e8952703fe10cd97a0341419e91151eeb2 Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Tue, 13 Jan 2026 16:12:02 +0200 Subject: [PATCH 30/59] Fixed a bug that prevented the display of multiple empty playlists Turned out this bug was already fixed two years ago but unfortunately it made its way back again. It was solved in #9642 but back then another method was used for querying playlists from db (for add playlist dialog) then in ef4a6238c88f26e50ba794caa071432a08da66e7 was introduced another method which had the same problem as fixed in #9642 and which eventually replaced original method in code for querying playlists from db (for add playlist dialog) --- .../database/playlist/dao/PlaylistStreamDAO.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/database/playlist/dao/PlaylistStreamDAO.kt b/app/src/main/java/org/schabi/newpipe/database/playlist/dao/PlaylistStreamDAO.kt index 8bf26d754..c6b6e37a4 100644 --- a/app/src/main/java/org/schabi/newpipe/database/playlist/dao/PlaylistStreamDAO.kt +++ b/app/src/main/java/org/schabi/newpipe/database/playlist/dao/PlaylistStreamDAO.kt @@ -68,6 +68,11 @@ interface PlaylistStreamDAO : BasicDAO { ) fun getOrderedStreamsOf(playlistId: Long): Flowable> + // If a playlist has no streams, there won’t be any rows in the **playlist_stream_join** table + // that have a foreign key to that playlist. Thus, the **playlist_id** will not have a + // corresponding value in any rows of the join table. So, if you group by the **playlist_id**, + // only playlists that contain videos are grouped and displayed. Look at #9642 #13055 + @Transaction @Query( """ @@ -103,6 +108,11 @@ interface PlaylistStreamDAO : BasicDAO { ) fun getStreamsWithoutDuplicates(playlistId: Long): Flowable> + // If a playlist has no streams, there won’t be any rows in the **playlist_stream_join** table + // that have a foreign key to that playlist. Thus, the **playlist_id** will not have a + // corresponding value in any rows of the join table. So, if you group by the **playlist_id**, + // only playlists that contain videos are grouped and displayed. Look at #9642 #13055 + @Transaction @Query( """ @@ -118,7 +128,7 @@ interface PlaylistStreamDAO : BasicDAO { LEFT JOIN streams ON streams.uid = stream_id AND :streamUrl = :streamUrl - GROUP BY playlist_id + GROUP BY playlists.uid ORDER BY display_index, name """ ) From 3ab414252f8b5bd761e9c9a00f6c85021537b6af Mon Sep 17 00:00:00 2001 From: tobigr Date: Tue, 23 Dec 2025 10:36:40 +0100 Subject: [PATCH 31/59] Update NewPipe Extractor, checkstyle and sonarqube to latest versions Add note that new webkit versions require a minSdk >= 23 --- gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a7a856a41..b06321413 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ autoservice-google = "1.1.1" autoservice-zacsweers = "1.2.0" bridge = "v2.0.2" cardview = "1.0.0" -checkstyle = "12.2.0" +checkstyle = "12.3.0" constraintlayout = "2.2.1" core = "1.17.0" desugar = "2.1.5" @@ -45,7 +45,7 @@ runner = "1.7.0" rxandroid = "3.0.2" rxbinding = "4.0.0" rxjava = "3.1.12" -sonarqube = "7.2.1.6560" +sonarqube = "7.2.2.6593" statesaver = "1.4.1" # TODO: Drop because it is deprecated and incompatible with KSP2 stetho = "1.6.0" swiperefreshlayout = "1.2.0" @@ -61,7 +61,7 @@ teamnewpipe-nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996" # to cause jitpack to regenerate the artifact. teamnewpipe-newpipe-extractor = "v0.25.0" viewpager2 = "1.1.0" -webkit = "1.14.0" +webkit = "1.14.0" # Newer versions require minSdk >= 23 work = "2.10.5" # Newer versions require minSdk >= 23 [libraries] From 16415d13edcdd5be0f22b01af4d161d687a7e5b1 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 19 Jan 2026 14:23:24 +0800 Subject: [PATCH 32/59] Update more dependencies to latest stable release Signed-off-by: Aayush Gupta --- gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b06321413..be09de32d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ autoservice-google = "1.1.1" autoservice-zacsweers = "1.2.0" bridge = "v2.0.2" cardview = "1.0.0" -checkstyle = "12.3.0" +checkstyle = "13.0.0" constraintlayout = "2.2.1" core = "1.17.0" desugar = "2.1.5" @@ -20,11 +20,11 @@ documentfile = "1.1.0" exoplayer = "2.19.1" fragment = "1.8.9" groupie = "2.10.1" -jsoup = "1.21.2" +jsoup = "1.22.1" junit = "4.13.2" junit-ext = "1.3.0" kotlin = "2.2.21" -ksp = "2.3.2" +ksp = "2.3.4" ktlint = "1.8.0" leakcanary = "2.14" lifecycle = "2.9.4" # Newer versions require minSdk >= 23 From 40d7dcf3d373408967b22d73afdcf717bbfa4649 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 22 Jan 2026 17:36:13 +0800 Subject: [PATCH 33/59] Update Gradle to 9.3.0 Signed-off-by: Aayush Gupta --- gradle/wrapper/gradle-wrapper.jar | Bin 45633 -> 46175 bytes gradle/wrapper/gradle-wrapper.properties | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index f8e1ee3125fe0768e9a76ee977ac089eb657005e..61285a659d17295f1de7c53e24fdf13ad755c379 100644 GIT binary patch delta 37058 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 NNswbwE82Y!{{uvZmpcFe delta 36446 zcmX6^V`C&-vs}csZQHhO+qRPlC+5U9H`>^?ZJQfwgS*drznnkN)qSd~s&`I*^d0`F zvqc0b{9s1P{qci@fbDj_o)SGZcGOth)FdL8OL)J_BV5J0Bg-Q#0m~a{rympvN!T0C zf*?`EI!3lL^X~80-SxBgn+G;u?F#5HaR;_dDD93ojdlBorJ;?Za5f{_E|uh#06r>^ zY+5|x5bua2nd4?pEqL{ATr-RDb>V^WUGMavPGn{?6EUfrVFqeUqtZa!Iee#Qll5`Z7ED@F=0&DnLuUlzG z21;z=*DT?UdaTs!;LD}w3u8Q@*l2p|?=Gf$}v71vIS2OcFN#*+Vg$V%{n^RTp1=nrWz$&^+rv-HGl8O`D z&J4~UF)9^WbknNUst(V88s$JJ4ml^5)M%*=S|VJ)5>*dFE(T}iZa!8{)oEK3L+=g9 zVWg@xdP($nI8`RO^*DoB{F;oy{7ebsF$cER5_M?n>N7-I;z_2)iD&P=!&C#UjcxQw z$^t-|@b3_qG~-qrv_`%GI=(%JE{aZ=kV*WmC8X4r&vt3GNE=A=vBMf!a%cJ0N>eZ{ zxUrh3%oD>7wP8%?cK3LQmQ^jJ^joB9(6SOcajnlHwx(^-h zm?aY2KWq7tXvqs#bSAfwPiy%a6{FjVKO(V06@kCl1bq zEgQX9a(z|bm-rAH?Y+I@q}ijgG?b*kS>9Btgz@Q(j(qbTyj^id40Bt@x39wW`4sSr zt5Zxdv7qO8&erf~%H0r*Oo}ivAe_m&nALj{lc|p7ZH&SXd+bTc0!h@3L8&p^Aaqn9 zciN$gum8rgxH*o=C!&6))g$8K>i~Bo-K1QBkaXq-;XwP&0z1IO;SqM&#qieXeqij6 z;&B@7N0epS&mQZ%5d#>?J)7VbxpuAT3R?Ze#k zs6$;!M3+;Qh>u8oz0c-U)*8hpUbrBJ^BuwE%_A*qD6uAmxWy%%H&DeVT%#|7{8z=p0SQ3PQj``SJ zCOR{SfrbsZfsB*2D>64ScPlJK6S!M038ub;r&nWnC2pGY+z?|P)vXhHgNIhPC|%_a z%aluo0WYGjzN@FcM`HuJTNl~(?=$Sc=~kA6M;(IE-JDLbWu_^jw(^4JrW4&_Fy zaZC}&GxUK=dKp?Ubk*=bT!{<13hMm$_N^I|PlgZrBqj$*SC9dk)a?~FG|&PV%&=m- z9j#m3b)Be#$SCZM*pP-HemT<6t1pm*$y7UJ%kJ-|jd~a@G=9cEx&nk~>zQM_FE@%m z%H2miDn$y?8Rg9=1Fl`C`DeIK2)_RA7}kE5JAfEipj5oZ2vDZg+d=bC&ryAZXRkVs zTVj&C#*M4iR!|2ZUBjq4DbAYY_+}blzLl;t^0_;NWaW-l#%5aF0xd!XO3UtF-|3vU z`g#AxmRh6iF12|?5`^iq+7asw)F8K$>%~8jbTVr}t zj~4ipd4oOt1lg|RP3M+3?*^rE1E0jwJv>_PEa9Etlv}u8dSSrHUE-u9h365> zh~HpnZz?6X`x;klw<=+pnf)@xCX-{0X>>`lt5}h9Nr-7D$!Om#q2Oh9?S0WV#5nbu zkEr8X@_&MQMT~O{!;tO6i(;{0o^g7EVoW>*$5ws$Br7^OmW1gXy`c*L;&J(mq)_hr z7XnZiC$#$G;Udj(Uf6Q13&2kohN4d#D#cHU|3i%J686=Ow0XaY*Cr*73Mg>xzRMgd-Ra^;(#gGxi+9Osx$W+ zdtcw1K*BTjTDq}oNUpU+j1<<9IVKcM1{?mnUYTvo!|X+LV`D*@8eCEzRH6!+eQr5x zW4i(#292HQ->?5VZou%CUFGMuZy-oe0husJ5r-ZCkqSo#5*vk2vf{|XrRy+)Qvbn* z&SYa2#D;V_tcLG_$Yktc$;t{VY-{4UUfH!qyS!{rSix>zbd)q&Tb=h-u(JWk|5z35 zU8eD$zGSd7QWfc$%)ZZkzUy3Z{k$9d3jmu976-4@@AfNwT-%Kx$U~|StE0yvga?K= z(`EoTA)4kyHTooMn5-RY+fzWwlB{`XEc{pEcJo=mOwV z7ciKK8^uBme0PDg^)yyd+a7!q!L*qgVkqS z1sZ>xko}h4nuL<)Ct(#(H77D05dZ-!LDBpcTPUDQUG{BhpPldA$D z;Iocs%8g;0$CrdPN>k1oM_8m2UC`Z@%t@`zE9y)2pw2ln<9dCVRh3747F{(U%NFE( z)PwdMR6Vmj;ECDP@(GN=bu|#e=|}+ug^9vAF*yPidjVsMp+zv)+VJ{A%*Wei@$Cl& zXaqN|W_+Vvxl(mzF#OkqZAAMHz8~E1BXbm@>(}5B1jX{iw)day@IcXlGUxso zC4hwRKo0pmHJ3LvgA4O{=Ts3L8~PRu50C2iM7fTIAU~*|s_m#!8_UIsNRfcva&t(R zEllPL-UR#2-bB&q#9^0gGr7^E#f(1(;&&fniGjb4=5MG7K#6=!G{D!&+wtEc@eE?< zco*G2bA|d*6o|~*zH8wL{JkafaJ|HUqA6!cZ7D05sKGJDK0RY|lm$;L zv`)Clv4ak|Nx0LX^N%Ig>i7j#vF+85h_2~OQn zn8m(~zvErL&)v97SB(HMj}of;JZYW4eeV}GK$8Y~f=W(>oTlv%W#=x@TtU>v(H#V)f+n%pHFfSQ zCIOzuwv!DmG?HZ_wR?orW2Zgaj6?(s*z}5-ku!!b}wM&Ofo8TDWxNO(Qv== z&{tJ>DBa$Ce&A9Ie&x6G`%>oot;wsc;C3R_xVGT-$1vJfDL>%s1ES~g!1z6`zD0aK z(~N5;#dD6=Yo_X(w9LZ^h%-z6G@I{4|LEeFHYM`VFG{h_4Du2Ab$65IqKXlOhukbF zjLt}w;&{SR^8!%Xt&|Z!?Gz-0-p*45`!hosHZlffg4@H{W?Slp{S_`+e}5v2S?7w( zUY`qo2|cy94dlLroiPTOAwb&ryK+4+>{|20kaEAKQR(-8wawB!&5+y?WbTN`4)Ez% zDxpVBsf_XQ08egbW5wNuMw@C!o+0`0qEmqom4w!K|{KmKAOdrm30Ay*3VA#BVy#L9p|)sbtW@nJ=ZtF~rJ za&>-VXNK-0=jPLu@@gkL*AK%S?@|d({l@+gPI#O z3q}q}boAWP*R*y_YbIru2#DzEL(Dvtd*A(U!BUj9oTU@C0{LF^`{$ly=el0c814YR zl@A!b)b)H7-YVESyK0U$Hy38$R~KgFZZzN%tmm@n)zXjtft9=wnjK+4glnLk+{*t0 z0a%v_=M5^i;-7Hxo~bj9_36^6+9Lh6gLTL2KSC@ydo)bX17p3W0=1Kh;r$#+s6=M8PmMFu&o%(Y}V4*?HEPbOp0~w)vey-x9uUeQS=03H?rq3d^z_Z;YP_nsh4R31ET_^tqS17VZ^=sT%BYl;!p7bB=T6q@E&b)qRYUj?;s7kP z*rPi#1=K%=5y9HQt$f9~5H!b1qx*Ez%yQm$jITM!ccedZe`z%xG@$7fzuu4u1AOD4 ztOXp-zmPwi^w87l6Nbq3l${AM3rTF@xD_3|TwXS8izrA+1io%$h zxt6R{IC80fM!j2#&A@eqfi(&xC_)t{!&*Y5e_>syTgijW>p9R#zt4b7qAu0WVDEnF z(Q87qK2gu<4XXUel4oN@{>2w45Q?V!_A{~(6^goxXEbK$&Q$6H;y;v`i2tkvWs$i9 zFj7-ps5!qYJA>O>r@5$(i%XGPN!1|{CB22qwG8~O>mYB?4gIIW<@FKTw321Md=p5% zwSyfmk@f_w<^1tG;Z5Vd|2q?J_>H2z_vZD`jQ>M<%GKYH3*22|$#b!|67%Zk!hWu{ z8(W7KQmCvk^fe62wTtG0XIS^2R6ETaz}j9aZPIyA!P>hJ>jVx6bZ~I6Fqm>i`<0Vq zj=X#AVjt7o&nzbiWz7Ro5H8Y=7Jc(DIw++>8zK6rN{S`wRiu^F?q#nNY+Okdn@sH8 zheEx@q8cr}ajak*mb~2R7KW$Cf8#psw|j@OcGF6U28Nx)p5y4n#>95^MGbcj7^e?n z>2i{{NG<5wVBhMSqq*eW^LxrZOW)=j$kMX+xw^UaL=K%p6XDmv3a&RNjL4^l1D}J! zLB5m6hqLDpoQ9=Q^GN|RyA5ePy$~yEZ!)Xk<^mWRZlB>~?D}GDNh2jTNqaWXz`Mli z+a&LIC7cMij2{Z}bTr+5i=W5<-qqP}GtmtN5p9-*s^8Gzm>MHU74Kr$WSX7$(qO7W z8N5qV#-+yMHRV>aVugl4NCc({1w}BzeX783jA#z-7VJHgZt*;*!f>}txyCOJ7M?W9 z3B^oRwpkNZYgcy1SMyIg7Ot+={1daj^!(It&SLJ~xd{j*T)}EkI1-Kkw(g{$U}vC& zs8=+GXT^A&*1Jxsc>);4Enf_Dr_rnp2XBL@GA-mWjT9@~R>s&lDrTP?)zH4x=Q z$}Xqyk$1Rxnz`u_b)n6eMc?T9La;<&zOw8K>6HT{LP@?NIx561k*}w)%lIF>u>}r? zmj6ixGT{Ff7(5Upl@ee9iOOEF>lYUp`h>_RF}PYqtXh*wvKrV?@6=k3om}U3%2jMa z<(=pYW;V@ZFXCx@C67YLJZ>doK<=|euI2H{pFG5Gvq39x*A9-1?K_>&h$rPFe->fO zwu3NBr76f-NYn$8B&0eeA~%U5SsmV;fP0&Vk+%wEdN_PHzgGc@UdPcTl4T1HEj!9J z*8>c8W>ISid+_fq7 zcUvl1H4n3|hE@Y;)bhvkSKsGxGz$*5AJr1$n}2rJ6S__Amam-)t_=&qXV1Y^6wdPr zn`8UgJ*{lT{L<}R1Mn`JHs-Zycg#a+PQ;h9fUK;whY09%`$txgu?hTk;-%f0Z&!hbrq|BwF_EEkm=#79E_a6}PC@w2 zT3$aB8g_rTDjdGqJ3JJ>s9xS1PIT&6FSU4RthDfob6n$Va z&tVP&l$o4<*f)$^38}H~EaG2ZX#AS9U3&@M>XQ$VMvTmcO z9}$62i+<6#60R=s9IAg}fFDj+dxn@tQl!^qI?ZLfC_U8IU4-ALbo7lI*t$lb=09OU za4@wCvmSqRFl+wR%lLm$9+BswSBlyEi9%Va zDF$Qstq*L03y&J^SnG7Wao63Y-O<1M5Jo+&z?(OhYhX#fg^BB&1=6o|y< zi&A0+l6wAeBuJ=Zu2L*e5S*+^Ja|4fBYN<0g-ylGTr(a-JGHrNHeEu3ftTGK{v)BpoLI z){J6JSrpB!7V0ec?Cju6NkGMum#7iHIlT7fP379_eNQICLE%L{B_mutHQM z5#<8IMMy&0ITA6k31l9AP#uYGxjr}OC?yjnZT`xfG$O|jnaNszvSew+HxCpzjmj%U1IniG zoeF&>D%;2EYZJMx^qecg+Ixt1mkN9cRvmoX$88(O&BOo*fTTv_n~F=mNammbKW>P3 z78k*wKqg=_O^S4Cq5M+wn+2uh1&lbX8TQ)yFzFF zLPT-w@%)?aQqt8k8iy2dpY=r)6dWn&_l1Pz?F_JdE!XCotC!jB?ow*M6`Oe&d&og^P8Wz_(~g%ABiPj2dy^w zI*lfi8ewt9-v}-PzK0n8cF+TCppcP%D{0d$)PbwH`@DnUd6I^?YxiGQKQ*=ddHvJ% z=tK5F){K0oRGer=y!=`}Ku~RSD#&m!l@l#VEk_?yl!b&dr7XcMxH_d(xr!I4%9VD6G20A(9X)m$%>Q7V2OfnWE<>^EFIO zvjbw1xtVX0;Xg?v-R9_bwO*xD4DOE38TO`~>~prF;+Lo((GapvVO`VG;LAM)waxx@ zhpClgW_rvwI3GG<;VY$+K@OAD;p{meS#99uv*p^k2!ddt0hmVatrbavej@HS=w)C6 zaR_5*U2m^jO*ASqr}3xQRM1t?&00bkTIsFoC$ExKFvdIet5$FOxN9~Fc@5}GXgV|J z`Qko5x3{+&LYp8so@SQZa^O5N$`lsVu*j#7`sZU%v@t`?7qra?PtPu}r7BE_KbgRW zkr>k1Wsx=60s2g%rRp+ibT#KB)u%cN+S{0!Me?LWMJ3`I|s0Q)viU!(=*$s zQKZI#qOJiZHe`8OW9Gx*mJ}?isskWy;A%Q#4R>a4vzRnp31#a6)C5)`ep#!0b`8`M z`qXhlyAt-QJy6tQslmX2f$JI`sw4IUr)A=x^PI&ApwEfvh;-IqoJA7`gT$Q+G=(d0b#u?#on4l1;Nhkv9(IyLZ?=GD zZ`kwe+f$f&itE7d^Rz2t85lo7%H}gHHR#okzpWX(2c*j%e7ZC z-Ayn*9XP-~K!830C)vV#WI32nB?iM^(`p@MO%uBCC5`vR2JN35)I2~x(p|!Rgs+Fo zfV?vDLM8|94je3Z3a=b6Io*hxN^Mg|dbaHcD2d@q4}Zv$jcLQRC&4Yv`Qel8y&p4s zfMIS08uXF_UzVLo+Zkl^X0%Fl#IdGtl1TWR$@DDJr(Fh^@H46^FQe%_8#nM-TFf2n zw9q`QPABf#Q(0E3%oVhS*{eoj^uuY<#ItNvuBF_)YBS<;k!qBnPUNEBO}TU>YtDE8 zbE~mYyEFpsb~&B zWKksvM&?v?Q!N%c7XwNp_3#2lV}m9jv%pR5jO0oEBwq3kl>85y?pkQ^j=(kCmU`YGw{|xGGwk2+~sPMn*J0iT9%i9YX_NRcBmrKnI=k|TN zoM@T(e41ti_L;6Ok9^jMt=7s6^CKf=!v}M8f=~fR-%S%#CB`Oia4Uzge*iP$kL1a#ZnY#- zOAJSOMAFstC#HrKhi}$I}Eet0?VQ3fSVxaZT_4nDZ|r?<(!6jsD3)@Pj~0#mTo9(G9iKNxurA?c!6%8(kLp zBW01MP|KCz%Bm-KplgvmN&J?nQ*7MU{XUu>3)u^{A3Ya&cFG)L4*-+E&9eygME4g} zdMGRl0}L%TfB!i=W2gF=d}S3pAM|(Zv@l7=x6mzghN;tX~6wT*R>-}-8L%YetL?v!ExrO`cYyicx8oFA*{YxP%r=W!j`8nAGFe^>XFAhbtW1f3&^BrvbR^}=cR}|Fa`g$9^TEF? z8sbZzD;Nq{9&DL8h(2``KC8&kUQW^Jm1xn8Xjp|s)!I6!D}W>=c4#v3TzCkM{XYBs z1pCFZnzorHBZEz0nbyrm6Kq-*=J;cyN{-*ILB_NwR=Ks6HQrER(;@NDUeiplFz#l} z@HdcO+exTm&$mLuB+b-%=#T><8@?}qn4;#^2%EuK4m#_J$e98tg-a$d+;;Jt8CsnW z0u4e7uh`keGC+_`W$$PmJIX9PZ^9Axj|BW@BFfP%h^_`J4|At-wkX=hDr_HBjt~6V z%r;uD?}YB6g!n`JF0hfC5YD|<>jUH&nw<_~44 zBV3rD2tUpB(C)~SAaM^1SQucrrS6tUV<`F=nWt~)F#yu(W?o@uEEe-)rk$>#-YlyT z8t^ndVTJ6`L)_2A5DcxPl3MFNI#>k%6JuD71|agSEPK zwGdypG$Z1cENa6xJ|9?|o3M<|AY$wa8 z^85Lrh+VDk31Q<%!NQzdKCU0D(1%@}JL6QRJ6Ws{ICT6xHHJ(50Z&}3&JuKpKx zPJyNQO`~q8wr7~?r(eW-eEstR^r=A|%=@7{5e9xqYd%8j=l|42Bf4R<5U_9GRG|L1 z%@6X50G1k?YzW)k6T`}}LYksqgpm4T!NrB0xG7rBP7nL!RFLWk_YGSUf`bWnB_mgY zc{$VWGhHo@FaCa@3L(<|U_7{0zd76bL@GC(+Wwrj!^Yi4V3D%g>`^ ziCT9#N$rKuqh1ie6*o6t9oMIgZmKTC8PslE0j^z_!2lDmYciqvdQC z?qb7t49g)oT{*qcR)+$b#9-$u+SVdGs+nNRtf+tM6B8)}7sq>&hgIA%$s^^81fKN| zdo(?mXlFaqNY89DhChe4_`||Nyn|j77s<7QmOd95VM{(xO%F{C*Y*>BO46tg)eD)M zYTTCw@nD=g%_5z?gFNfhMp$s*)s(A@5$J=~R09}wW)Z5@_7o&K+gf#7Kl z+TwmUrkdFcx1!bW$|%(VCe-Oqqjn3Skvc3>*T)Ty+vH%Tjci}iP^B9oyh~|A11qKDpyte94^g`x+6c>Lg)2t z9)17q(U6`t66zS;qgCC-m47LQu_gFs23O!L5=t^9D@@W~>YC?{ev=bCisM8C@9D}N z!tEr+{q?>wt}GD+(7$OI_Z$d{D9;ojNLufmScAYtWXj4PlOnM*sZM2FuA=aS6Ob#oM#)U<|t;(yP-s(ft7s)Se$UC6Cp56Fcw6vF!0BV zFmSN{X^GugA_q~6ZT^p4K>A~?{?baGa{`tmBJoI*di|#2r@fNb@z^0a`6xTb}x;%a`_4f zbM>64HQuyO-Ar}g8-)EOFmeQt?t`kC_eDDzD?)`Mlh=s{akvnzd4)EnI^mj!f@{#+ z$$owRk0rI;!xN(X3$(QUZ}&5j{;y#WKngX?0CVL&hXo-d{|z#C&~Rgc(zQU7vVIk@ zNP)Oic`zz^aG}e#9mO=qMN^Zlq*_D(lwfZgB^YEJ-V2qH9lEm-Vgv7=E^pS%kJpP0 z&u^xDNH1>w9~O7SnKDgeywP!_?C}UBDVAXzzZctL8~h|NL7>eN>GQ)$r9yk@X&KODhKyWIs$B{npjPhav69-W6wMnz zQ7tzHZUt*+IG!RGV|G+^Mqa_v+ur*IK(%*&Rm*Q`0nCj+wDW_VLc_6mvzMrXe0}t- zX{J(oueT?L#ZII}M=J_IAFvo-kdUpUv&!!4BOL8ntNlVoCp$=d4Cs%kKQEyg6}{De z?0Jv%I8#KoG(kh0-mpDthm?mOc;z*G-wFOReFMwkh$D>YAKLOzr0Zk*@^kNop7t8X zPvY+ue26_pSnEiwK1Qh4->L6N-%a6~Gc~FO|0~|qGcj@YziCJD|JpFFxGn&3IjvA% z!RsYe}l`1P~1J3n{)W+T1nj_9>RAVfbB3Cf&~RsHa5~kegw=D55rq0Vc!}nS_G^X z-7w)kusRmex=Wxl#=dvU`2*Oem8;aNmdYmCA6fl9^VxrDE55~Z7jvmFCn`G+o+ii* zH(}M*3ToH>#mDg>v>*nHnldvI@hM@0UPMI&PfWy@@9U+(FJDcHEJ4`D&L}lAsGP)E zA~=lwgWZ)en4Lk50P`an(uL|L{Q;HNf{k1dOT5utr>?CTmPGJ{vq9I_p zI7GiWE$s;gljYa-<6c*Og3(I1)X`iQ710+5;V$0aI5n-8Kh7XOkb1jIb+Sok15we* zI<$mQi$}cTF`uQs33U^1@7npu>zDq~*N;I@jD|^LLhek<*1(GY{b(2S%D(IWYCQ7) zHMW%$0Ps7a3M2W;3QS{(?uU}i5}JI6$-I|9$z}Ax3;Z4?W3q( ziQge`a1y9qzQ0oqzWn$>mWe-=^}OA=_3?Rd!TC*eQ}e~i{n5t_IWJMbk~cEmlt0$D zo*{bt5KYb+RG3}28|O+f!;+n-_z?5hW{4&r0LWFjZo|~nR#8exUpM8#gM)|zhBUmK(iav|2lF0vVJxWBq;66 z>;d8;0}6pTG>5KJ#1R+w4bF;)CgRDd4pEJ&kn^nJ*K%tAY5%)Nq<%Dy3#p*D`wes< zO#}JtxTRD5X#~QP;R1|d-`~5sx>`o!su})q9I25NTHQNRWkb)s@)7}yvqW9T6qc%o zs-4cwtxlz%;|#z9`*(;DfS11i`v3-*Nw|v6yPHZ&qx=2OqnJ|Lp`&-rOtop6Sk{Qc zgU_e@?nV&Q01#E8A2le7P1Gag*?Z_HS6^Fu2g#z?B+$6`(H@`+1_z350ka~DW(NvK z>locfpm2Y2?1x*3NaA0D7yfy1eqoeUN;DYkJx`wD9&s(4!H&b&1}Qnm601|yoMB05 zghVOhhm4x#8_9(OtxXlO=u)-76lal?R zQr&=4sYO<83F)jbLX5X8MKsUbCFU4r9Pz-+S$nt5-WF+GEUb8R0fLhw0L;?Gvk~`d zRXkpqUJBO7IycAutgx5klOZEak?tfB9QgLptN1#(1^H6*0E@sUOj~7MU9s`H@ySKO z`KQ?7vVV2RO~cjEO$T7@_vPScLuBd z4!5#;-gNPERB@{-oLG7Xpq1OYVqUkL(vv`aROWFrL|W;JGBVd6j7DB>>BL<>p(Sqz zlCXZ>BO&Jxde}*LPOs4N3W|Xt&mr(u=z2-&H9lWOrg6<&#XVfOlJ`k@`=1M`L+zRf z`Y!JX5Qm|GGMGho*R`sO&{0Az_as7M7#@aXwF~z!?$EVtA!5E0^}Cs~WY;Mq8>W>1 zXE$myl+u&U7k99p_?=|`$$qr}e0;va_YzTHZ`;{TmKvNzZ|Wf{Xb>(>k#`w#Zi&qO zZgXr?=-jmcUn{8te+J{e-;B=kHm>n12`)nfF#fwg`0!!IWV|uiT%Ts<;$mWA64T09 zk2a)Pq~Gl zXUG8Y*+w5`9u5^IjCEXRns)GQ@RDw&U6_&!GUDy9wEd9*e}u!I@Jpe@-=nnki-ki5 zIBwmG2a!;N9HHY2++A=D@925ChoU*LaU8Ydj^ddbaoM|1QGp4_{)NI}r6R)7K&H&h z*+30oP4q&JRi>`9!x*3~?b{@COYodaa&!ot)59NO zT-w0adcmd7%Z^($GGI56xZoJ0GMrh{E;P18F!5yvuMvFOPYQ?{rbe|fkv?@m68NKt z>91eBU9EI-J(brr(gW;zj-`LSLM${UWcrW>67g|-WuQYAg;hGHX735Hsar)sk6UiJ z6U@}FJfdC5{;A7MKxgy;sRc4bteJ*~xSBr|SVR8s_Ev}p*Ti9EXCkT#t^)q7Heq^4N9bv|5 zzZFns^NMma_Zb=!`_I+%|whQ!T#BNEc1w(HvuB_fylfDDKj=uxd^puqK zkc5TAovWy1Z0GU}?&!XlSng21kKMo@{f16q4$n76M+6yIrsOPjY>y0n_{~ z@m+3TA>TAunKrvEXHrwEE+8Kk9UMw8bT3px9;Y6uY106lzuRrKEZ8hdxNq%qkJ<;U zU8Fn1yHBXUdxHye;IVS9F4O#E;~?9AY%O1HsKQWd9WjC z%V3t9wjY>8@=V`AxDtO)U9HrTWt$4Ws8#O6`T<>KRQ4i4I)Sawa4E-UdT~Y<|#)bY^?iZ||K@YjmBbZ15FF*CwcY=g1EwrS9y7_d+JQ(2fVtI(Y2wB5|Y z;hD`a;M_(HHeE}hwC%j+BT$a{+acpRhnPW)$Mhkm2ph!>{+cO!mE4}LRf1!?`owz9 z57a@L+SM^L>Rh#}qQ--zprB3RJtRM=GP|f%uy+a&+qi>yve?4DOJ12Wp@B-2oo1CA z=n5<-b$(qYQs^)IhGD`yAid;9%M~VkRB9Vf&V{YDqSc07zaGqmUIvaddU~@qPmq10;bIjOeoDDW%Ab=VTXu}UhEasG``&tO%H0{&jw0B;E_$2P#{OjY<~-aB%G)7L=Y(;8D3zoe{ZEs^e>3t!GH zxN?vLt;}FJD6fi4ZDFsGh^M8-XwU}9e-s8hpupkzCp>QeH5B372 zwCFq|Iavp7fE6T<$gxh69!u!X9G(&h!}<92t9CncWXFXs-1bCzcXJLNca%eEypb_m zw7;DK=g?+gIcY~(vVGM0Qh$gOjnE#;%M`})s2?;Q>*yG?;MXJ)pnC&H>*JR=&2&lM zgi_Pse*df!0=NH6xHvZTMt%qg-=G1&EZ9WQX_KOb#Zd8EYDi~STC)JFj*ZbYRfo{u za>n6nj3e-2uUNlRozK{oGq6vWZ*6lM;Py6o;j1@Ok4z)^|I{}{@Ra2iLoN@zYAjLN z!@Vv2Rx^+#U689#yMRy1&X0+eI@9Y|!LD3e7k;KEY&TIC|O={*lXTlxe?A>6? z`4mN_%8OTDfOVj?#>i}eWNHVyH+Da>99@J$m`{iNxFOnHI=9~ib(>yoQ|@(pHQ+Mr z4>GJHy5Nad1)1F+Cdg`{?TeE6zgX`qtu)s}SuZKz=i*ox>H|<)n1q8l-y8Qt;a2Q* zJ4(umEJ4eEW=q$PySokKeRQ$_*EUmyyjlzLQ%v}|h4aNFrJb}lc?`r7q{Q|hxAN4| zOe@@<;Pn)xkK;Ac5!?{?a

    x=@At#P@*q_%W~j^q>HM5SPsO{wLhFU(R&U23Q_zP zi1K$GWGI}eCOB%6ELCo)?@~N<(Eox3|3OjsgfkzXlV5KDg93k6@ku%XkS~ctqRT6L zt=nrci!0Nb@CE*Ct#$i5Bvv_S#TamHgZ{iATnY2<@=4udPioA}>V>g9X~L=l@>b~^ z;;yj_({GoMj6ws@?gx17w5KZ%hw(!p&3g09yhg>&afr5y(dL2>E`PA(P#XesHp{)< zL}~K}3U{<@VeKMMxmS!aVEV}&rducJSE*s&3N;Ck+wQ8A!c!jo!9j4k@EP8ZHE`sX zemwfKJ9Z8OUC~E#p`BUtAuhV=)t$HL`%a&yxDB7WL*ij@)bB5U2zj}fVF}l@)j;D? z(+hV^&yl;%EnBs)p8-PE#<|Juxt7b=r4I2GFUab|l>l8T!M1}`!1_2dup#aO2aW5C zIRK@X|Al%0{fLBqzFcOQdp%+g0iU!8UXu0S=^D%{pZ>L5EV5(FHrD!(ZU;3fK%%+y z!LCxMmXHBvdL0g0^&`=kur$+hP8gtVLvKmGu!%^VatV zHL@xQ@Ic|t%U-+>m?^AED8p91)%5xCOX-%gof;?GE2M~>gUkNT(R-*Y3V>t-LC;&( z!K$PRexRp9eW$-#qEGxRzX=8g#lH{)x{ebKP zZipia@uYH{QbBVbM;uiItyLD8t{*`f)!WZpN{q+n)^f957#1z8R=T9kdQ&{xEQI{7 z*KZthMykIX0M>Yzk_h>>W8WXpoX-Lx0Iv1mkx36zV$dymTtT13vr2>JIlrnRuC~N4 zJM$xgGz^hDmkbA$Z0(CHyrow$pTccN>U|AQzr=E8s>Nw?n=4^3dq0|62XGRTTZn$i-s(~sfZ`h(9Hub%S{sAk0WJvO?lm~a0_ z(m4ia+BI7^p4iUBwr$(CZ97kriEZ1qGqG*kwteRP&X2pgs%!t+Rd-eQ>R#8*kMk{2 zN=X)>i$j(k2k|Dyw~t{FaO=UC&jolBW=B>!@@^5!Czjg9A5^yq$GGp?abA=6 zgxx7t>^NKaBvjO3<_a-6{64Ym`Xuum^K(B9)O#s=X)2M}zHbmGOC$l&2kZ8U@%#2n8@-iHOe z7^^ShjbE9VHmk%66>C@UoocMU_Yst4j0y0h4){7zIqU?AHhT?SWT=kyqSyh}2v)KK zCH3EGe-J6$22?bg4!lU}u&G8|lA3s#^r^8#izc@wuZD`Ag>u&oIiw1CO2Cg1jx;iI zV1GOR?8a4*#A*fA}%|ZcS*}Gat5cuS?{JYoQ1cgVhSwh$U>t$6Ww5?YEDQXS>uc(3Qasr@yRF>L* zy16I1+Ob-ofJ0ni2?9)z1x&EOrXaw`0+7)|McdLhNr;)94`>8BG@6T>o83G$sF&^B zB(1Ak(8=ah>T%ZjDyp}veYa9q%&WI9ONxG+uVoS>$s_==`j6Y*(=Wa!8>#;^*4t5I zktV73oU>~j`_1-eSF|g!LqJ&i>A#vtgp0a@nn>+0IX3gWA~jN&HZIw6qS+*i5*b@( zvfxx8Qcfq^1LQ$aOr)e)Ubhj8xe0Dcn{vtiV?;EP1u9uWC{vDxRE4pSp(c`N zFf258x`zl@puf3fNH(VP6uPTqOdLvSce=C13R^?0`)K7Y@Z4h*uvV({sRS}_>=HYM zG4jT8X>H(XiA1_;Nu&-?Wi!->C4;Lq?x|=EAF|nx_Ku{D1E__Kr#k%3_z+Z;1xl$Z z0;+A~3e>9eG&=_*+y}xY(tjI3ek*HIi0GBf-5S`E>gF#%YYiRZ_SDW>)g`sq#Qt7} z5g3H7Tbb`r(h?SQP#&C8>7crSb825o$XT{#r*8n0`2Z*A~Jq|N=V7XZ$u+EWXpIbEACgO_C%M|f0(m*cGsbyMJBC+$LHmqm~ zJPJ%bi8;lKZS3)~@=C(QC&y$^M(crgCz#1kA|j>B2o_sMW@!f{8sW`~bq1}uG1IoQ z5GiGK1&&!?S=0|9LEq2vX_31yc!Z5a14P6j-yk3eF0p-1jB=xl&fQi3`B#MjUG0B9eegK=pO8UHebj?gSv3K(^F=PjA3gYx25< zRa0i@386Tf=0Zg4$cuxq*GG;U2v-Ir@`yE1ql7}cJw5kgl?D$V(#Kuq<4BDbkfikp z5@Sxf0))w|N?5rflEtE91_sNwRo0_^1?97P(Jq)sk|o9rTM5shDxF*qs$`}=Z}@*_ zi9fzq%KE23s){us136mHO>S#D`#vSp_WgT-~$C-jSEui zfW6HW%bBanN5PV*WDG|w9PclUFvsz!y9dK;J`wyea}~?ZMo=EAinf7;G@-^lV)__VAND25Kb+lCfE@w0 ziF)cPoz$S932OR)R3W;Y68rNS|f0PXr+~d2eGFUl^+BM;w z;u|PkU;S672a)s7e4sZZE*)ycROthmry-sb{-fuS$E@9FfC2$YYoO*oGj4nrdOls4 z6TG`sREfx^tHt)1?Oo$E_2X?i{^S)wpf)|T0u z_mO)pI=kq{ID=Cy>0O3pnehDPM$rcm2rzpFK9|uZ`j8_K0EdbO0AY%Ilz%iA+@~MK zx1891oRuz!_YC-kFwPej(3-4V5&p^h6=e2J*$mJ6JUGeX6`E@M&Ar z5OrDg;y~%`vh10lK!NJJRO~U*X2USAcdMcTo-^$7R=iiH6B2}otsLhJ{tQn?zjww% zyyJ=iQpO`~o;$j<5II%?xc}YO3lV)H8%HaOdIys41B+S27y>OWZ)P))EfrZ2w-4 zdIOa+5#d?WL6cr~+}JcuYs02A>sIYp>}dA$zk*n!0d24Pf54<4keK9?PNxP1KARN;FSl6y{9%k%7PlXi7MzoKP+SvXO&2k znXf}Z9^udfad|{^jv!z)LX6ZD3mxYj%C5&$O`a2!8}PR#1`0HEYbwjI^tt;9#OGjE@^BZLn$SgSD=yZC`-DbfEI>I{uar4=qF z%~@W{iKQRQJ7hA;yu-#mwh^AY(BSWmrV#kr<_UROtgI=+*jNsPctX76^5 zhg4ZLBFPgCdJ38A#t8Nw3qoqNKQ>Z3gj`hJU?Jps`~l&}1h^c#PM_6+{>uE^kjeC_(0`AM6t;s+sC9WEMU@rkPe zVD>8lHU1mgV}9a0iC?Vf@+RqmtcH9wf^g*ui`ytpaXm>gKbly$9)@o$W>v>j55I;j zl0e2Yy+eGn{)y{p^({wzhGF#r1NzE3+{Os5v(j8zr9o!9p7K@xSLHDG>@(|>yD2EX zPDCvQ?pY1tCjmfe^-!xz@-185Gc5QC$R2r6{`z< zsUek7-1n{U_TmXV5)jl|HxB3p%Hb)w!*})5Lv_)$*nlwZsB&6tc3^y;{nmf21$iRn zaO7H}4vTPMLCRVEHNW$Q&(+h5$+!H&|EY15IyXAX9U79B%%o3T^I+6Pyarkdn1Ewk zA9H&KK{)%25CVS~t+7jM7FIG_(@fLAgg?1P!Z*v*SZ+r0d#oOc}qqjzdi$iK_ z5uZCFY^zj)rakn-y{AZI_`HoA|A+NKw_QmpKZT4466i85j;D>nyNiteJ;OLuqkvXh zlN8>hj4aHA)IbcBf*xYj9|ltmC=xAR<3GOFrBpZT-APJ++hcyw4vES@9LIPpeI4Yj z=YQD{8!enf>jBWH43aRBP2Xd}#Oa21wkdM&=h*2utZVNcF%=7`e~t?wux{8#2Ge}N z0Q}N{w9P6giO{J3SbXdV8!*dgMHAfZz;Fr@iS+6|B zV&!P36MN%z8nQL&F<9v$ML1s_TkkO5mg7=}ga*e-i~H(lYtE9=n#DSlk9ArD0_1>L z3&w>lbg+&R$bhc{$SAUO7Ve>Ji)vZmrWH!TY^mfYaCY=yg^C7XNu~@AD_lVkEp?N) ztXHdc0}ACDwVJu)Xy_0CiMq&OhPb8w&VWX=j4W|EGntCWp5oNlgSH@-=>$fUw|6KSL%;vyr!wq3Lj;|8-{>T52E z-}tAkfU*B%tUDkOoS^5bel(t>od>2m)idZ3&NLnN&rN0~uX^<=yT zVDjE5ojUt6N24!aNSF(pkaMpNI9QvsQ7$g`&>ES+S>x87xR9hPR|2>(6dOa1S9;m zxFR3$43SwWR6&F1{;O*%XWv9C?P$M*C3U3EtiemB_HwN5Re#S_kNn&X?7z*Plg|z} zy8&_5;xNl8(HaU`dd92irO&^$C6A9;gb@6v#(!o_{)JB_*95x5_d4{fQKs}YYld`N zo|zYZUXT?a4O;qoz_;`fhL~6aH;>^@tuXTpmp$^1(fF9GdK`70yK?^hi{9Xm8b?tk`HxYmIWB{SKAbv~$u!l^&Tl(^u()?)F`^z_&`I6%J0Mxo$ z<*Y&{1VhyBf8Z?a2c2~H47|^o_ody37Da5O5==<9+ zK(L!~GjJ5=P+MSLb!mni5>NOv6*9io#t5 zTpEOLN}Y%T94vp~^Ob>?qm%?98`_Gr^lf44SBrl zUvrmpT#Io3<}mt8(s$ab?D32Spl!D25E+&T+I|~<-zB zUBP{sO%e3tqdB;cU)tTB(frPIDFOs*=jOeIxt#d-zh;Wb=U^%r$opo>+g=?w6_u&2 zx}P>~ykpL}$8_r_tMWMDTL`8DKwusJ_Qxvgj-oeL$fT2jAq&w|rwFO2AW)g^rTCe8 zxvHh3*>Q?1SK>SSr9E1WjHmE9IZ8iqTH&aeg(3t2F_KqK+B@<|J@m(%w*Z?ess z*W}6rbGVOSI*O=jfaomViyP?7ua?n_JgThAGcwe~IjHorSF?Q2QpnT+Y#*0_tR9IrxZf4<@eW^o1~7_|p|r5`>+XBK{JT2ge zI=n}dvY1XSk|Ku#L~_H+1xg6pq5i@EQq(hd&8SqI|1918P;-Lhl`Lv!Gv%Z28S2>- zYquq9&%b}5>e*F!8~U{4Pz`h*s*#SnEVuR8tFF z=uA+aT9rK2T)8Au%i-vVTNYNP*0^nnuC(D5alN>(SGd>aL%d`!o_1$uZ1NY$o|COt zb^mE8lUHthr?FN2fz_>d5I!Bhv;S`#(aP&c;)f0dq)Yoh56OWuBLK!n+Z62wAi3e4 zX;zzJH-TB01lLhx*;=2BWWc}$v7}_MMPc~ID|NHQour+#eJun*WpEGXXwNzf;g(TF zrI)T+B_wPE3{6B3T=6b|UIa-IDgK>bKY{gXT?o+gxcT6F!hLg-^}zdh&ieserE~?& zuJ5`u%xYi0V>U$B3Q)d#m+-A>?Jnm#Ci|5Ybi`>#mF054wzA;X|8L)e{i9ljW7&R$ zZpI`r{avCqd306w3DkG5h!xR|CH8;nwI{UYf_21+cVjph2Gf_C2e=~l(n*mG_f^q* zTgQN$IYs1!b%wl^9!ksx_xX;Q5G7d0rVW>wy#sPfzYsfMYh^yQWgn{3)O;Nqvu=U* zsyxb^6gg5IlR`PIYir%GnWRcZf8uSUWrJ}>Ah@5=i}ivtJS8nN!gRrs`>46;F0Gl? z5Qo9jAv9Sd%fVP}AK9FM-qtLX@3@UNFtl&usc6rtFr z*7RZ64KD*gY?8Eo@o2iRUI;DCO~zQnjj$ml>Dk?X;m#D9y6`#%k5+}zv5=K?P^~J# z9<}1lR8_X^LZjarBTWx&1Ybd|7_&|QQkGEbDG2tUpHEG4}M*-Ccgb4OD zrs?DvYj13jBeE-nV}YoX8N@MJu_V0;$37ezqlq#zTo#g#L{M@Jb{L2c63?LxBZ@@R zpq!U0xSP5@B2%MI%gHQ--Zw$2gSAGD$z=&VD6&`)6(JmxCLf3@D%^ZbUawCDbL3hc zzs3Tntc*dX5-cC3PAjE}8n4(+w1roh>l=7}30BQ$ySMZQmMi!7a{i4|qcJm2i=RkO z^o3h6o3++toZ1@#UnL6;>9!uh0pY-~SK+vG#ba{7Yo0>Mxgb09e;_5~cI<0onsYTB zZcKz=n|F50c=A9>=}kzQEIfNY{#hDHD$k)Yq!Uvq z((RXGgc1hTPIm!qh%*o^%ce=jJe-(C=`Hp^8Nf6Lezq8D@xe5f!3(LUH8f>HWu&uw zB2ulJqi(IVcPf>2ONZl7DQT*3ebS~@Z*?Yu&8|{)=T#Y#B&Rlp~k9Q0Fo+m~rR!SNO0iG1a6$C%_#|xLmVV zx|H_crcfv7Dy`_C{m=o5k!G2J6X_1%&kOX{N1DI^8p|y(#KN7;aIY!EG_JXjw_*0U zFCubs*ti1lLHQ~aJ-<8+$cXFa)uf9 z&1N~;Wjg3DqW;y;RRWa0NkuZ5F`|BoS_7_o9k9oBM@`G~v(eXQMG^yse&G*?97mUW zjk|jZat)e2^&}N^C3(APZRz56aHnWyEpvWjIXgEfE)%&-@@(kTZlCYySRY}^QoVn? zAWUdfqx;Zhz-RV{SohDN^qmA?JLVrkhqI7AH~dRvo(<+1UM=&zd_(Sz3H*+BlU}D= z)*iK)i+W?jy7cN*Y-7IqhC52jv6h!Lj#i~)|GCd-g9cMY$Y{4SF-Z2MC=|p4aYvbA z=dY!(M|3zo1xpN4%57RhB`;irPs`kt|8GV}*O^e&L!B#bcK9XvcBUXX{5j@v(1 z!G>nftnHpTof>{Od_Q{0NQ&qC!4W6(ec^iglj0SIt9WXPY~Ph~rSc+qTy=zdNqtMkdWK``BF)S;6d@57A5$OMFJ4RYjukNc4q`Nk$Wod=x)l9{R@7alzr|^GjVfnhVMLvV$o}E-cSBvm&0`^YXAT zQsbHHCinAt?d%eAOjob^UlwOLjg&Kz>!dANNDAgs#JnXM(w82(mKT*5r0i0=i7VbH z*j^A7(KEJGb4PcgfE?C3NtPo9;@}46%uTaIFdrg7;VaFKKvnz+H6#YBSgRde^3}km z=?6oPB|du4i=kne4?a5FURx&tz*!;o;NfJlI7#yQ`vOP2j%0m~BkYZn2Dh)l!ua1N zBTENQsOnPnXX*f@Fo!K7j1z}5f*SoqzAZwArx_gprhwB1Q%wBvub>X*6;D`1*SF@x zwHP}f-Da$BoN#*!Gun=nmGamf-pH^hYJ}+Mj|OVA3d_;#4sV#r;B9LLT6MDF)K(Si z3&AWZeDYBoT=GfXg_#Q6K}A?Q##Nv`Zgg5Gh4o{59B1IxoP+`7%C&vlb9KhB+Cv9(4ii{o1yr08EbqIG>-F&n?K_E4 zj-b#C7F8A_3%3vsj!^HR&KERJK14?Gro}ic=pdMU$P>!cR0Sq@mr+P~k=F5W;W;D# zj|5!k?bmr|=r7)fe%HauS z;B{rogLLFjwL7a~bzpVR(bn0sO)MS2BI6oUCeXC6r-Kw7GVWdQjg59mRjJ6_Ij&9Z zWF==SD!&rPMOAvtZ0lq-hi5W~l)WDkhP1Eb`!vA&xK>E`Ck9h7Qj)zWWj33iv`>&F zh{|d)9I5eA4|7hUnBT-@ZY!CyIjYa6!kOOep;Z8r_GD!9w$5sb68ndTk@???13ri& z!Q&BjR5#^{rE;TDCBvqi%`Mvcc^rMg*?ZjLi|LB(aKctwzW3R&w$WA#=07Th({x~| z9~$8}uX=5mFT06Zf5Er=9JO`{#8m=zh6&;D`vp|H42wQZx*zPtT3t zzwimXBluqs+@WWoQ@Abl1`4nV>`D!(4UR^m8( z&VQ$DSu4Kq>zEjX2TZ3jIwv{n_X@P@aj5^eKmA-mgyMilHAKiu_F~6C4`7-`=OzsI zvKD!vHNsu0S?y7Hi!LpGN{}#pE!;6TX&t+euv;c5m#lmugT6%VuTzHWAS>pViYcT(rdGm+*BUa(PbU+{tbU7)od@(A!n1602M|(S6ZQxP ztF}!k(AM_KQ#l@E!nH!H#Pz1wHAUGbCEJBfJmAppwJExtGCiMx5Q2YlR9?HRA~`gIwbYLG=EPptl*FE^!$1I1{3-QrX8srf&ck`o2j~Vdg4&xj=wHo zLJE`-HRMO5Sxely%XTw5ur=nN?cJ*{ngBW?kDx7TVZoBcnJ|4hc=gvEtqy8mFv6~I zxOoK;(J!azw})(gLeC!$Ur>dSz+UBA_c;#-dlLt7$AvA|KPlR-e@LW~Q_`i3=%q6L z-}!FeQv4Li2JYU1qUqjB+FV?b2?)_6QI?0}Ie*fsZW*Yu{G4p%(rPr=nBUk>*;g16 z5gQ_`)MZMUG3u&s?^?UfSaii7Apny~l^g+cDPn=DA|ZPeCeFSyuQ0)XJ!EP_HxP-f-B^Eegs8<(vMnAtz7hnsJIa|w7#rw@%1{9DXMC8IUN{Og^)~t8Drv)KvKa=rHxi<2J8v@ zk*c&&-p{}~4xy?iXYJ8&{Fb@rn%N?P{w?77_5KdNfa5!<@{#5Z0byZip!f>*U$5x0 z)68V`Z`bMM-}gUeZen|&D8NU1$@53yc&Kx`5}O>8=LTkr2BHdj9N>?1%qQs2|@u2d_&nJ+C}Sx^&mb0GIb1Z-~~dHJ+;C z*t0ho=K@aN`OUd3HfM0+%C&zilatA)n74wQC06N?{WPoeS` z;5iRD>OnZlgZl|~`)wa^kI0RR4{@nA8nP-z+HR<#9DLUM4n3Cp!Zh9*4BD*VH{0w~ zSG!2_$Ac;NUlNee0J!vGBdwn4(epq$rpQ9wLQ&eprOx3Na$ENBy{WyN>n3!`>!OFykOZoAkt3VJeXP#Wv=BT{L6XVT2x<5}u zUm{%E4N(V5wK*pZ)-pBZJ=0Ih``Td7Ml(hA1f-qAFi?YuInvsx{IR1`YiRYFq^VSfE}HqzLa#|+h_ z%ZSah#f`hir$q{xd1Rd04be90x#?3N!2&JC3MvW;GiaCLBt=kGW#@#Pp72&K3Opi= z=U~?8%vB)M)%Mo>JR8`C>k^q7kyC*w)0)bNtBV}OfR0j)#lv)HTR25_?~ds@H%w6r zGj#HPmtg07FuF2R|L>BP!%dF$X^ftPn*A?<6nw8ElJ-0O-#A)wpW3c&cT4rBhZ<0@u^DEp&C7Qs%w-_$;T)ebA=3dOR`F|ISwn?P8HFw@J92l-kJpw^iXr1&<& zfnI0fc<-jPTOce@i$xkVygF1^F2ifKMlB`&a7QU-5A+Fy^=%^4zOj6ES>`b7@=wx( z0!lc=))2SEW<5-+-M-$0#zG)Y zoc7X;du=L_lNXK{y?`55p+s1?HmlpG1mKVCio7<9zAleQY+d75V;N~SoKAiblH;=0 z@=Ei|svPI=MRj7j7vg}@tYVjWS&*-b1LRieRSuJMkrHR_Y27andilqz@DI$z29jJ% z&h)mlc>eM0Uvma7DkXkDIW;DH*L?T11Dds6H8%X`Wgiv%hLT}Sxo>;TXz7M=?~D)_ zrJtp5pvy%?)n5&Ux#St*mM?r=HB((VvVEv{mwv=L_6@S0x*~m4HuQ>0wB`O{0^lHK zr^03WEsrhq1STOkJi%(4wU}J!tPDI>(&Pt|4H5ka4tK?;Ol4ZdOkxn8he4E?EH@u( zKTtlZKinTSLAlCs*HjL4AeRGbemAreR0 zHB1t0`@<=;}tA9y zma)wQ%1L34=N4J$!Y`H^+{#jFq)W>}Z0nn2aexS%c5CzHv-{Q!DD81LadETsc736J z?c|DcRcrl-MdasB=0Z4jg?aLUNMb11t+#Ov4KR59aY(HN^Wt(uGOW>3G1h?oGe8=3SA(xbwjUqM%NlhIdaczd@o`Os``9yip-1t@QXi&w0l+n8$FI#N`mCe}xWlmu6fbFF;w;GLl*84ovNdiEbbee zK7g+=h~bD#^jZbBlrCl zZI1;l4;uB4?WP!E)CyysQ?5pkWmB&Q$%UJjP5$fHh1*I1pwADBKa$WCzrkwTZF^~A zef@;Rte+m$Ll12AtGA%G(Vvf=;M~6+m$jUO0KE|F-M_VrCEHNunR3FrA{=hrwDK{L@$1{Ury zYGp+%?~98lU^n2raSHU$7Zu6f> zY!cSUlsFCYWn%K(p`}Vqv5wN9d4JR^)Z%oq4y*LwAVQbHVk6KESo;|WAU56c0()+Q zv!NVC3D`&qgTNz9gZ@TGPF%!0E3poNGNKNG@%bx3fD7^I)^j`QZ~H=U?-Nc^5u1OA zB%{JM*ph%x$3_nu{_$8%p#sz|!+KF0IH6KI6|}4aJl?52+XFvk9YSOp(3=-hB`n$l zr=TI#>G`E4>=E}i;AW3$-Wpf0V!@Rs-&-Gz#{w8s-h$Z79#5?iEs-k|5#3({<&X?$ z{aEZC0E+IZ_%65iLqZg+wu)~VGei%98XIi}@$fAlaGr*gXepFc2kH4Ul_9=m$HF$p zWqhnztBc=?!eItH*c^V@EN^QVSfng^?&z64D6$KXwaa|9tVj+r{hwye}w(e z68B45;E5rTqW7FVeS!lfGH})}+)s(MD6Q4c0KU#G2cO!5if#|pjX!OVJ!nN?hKr|G zzrrv|bsOG?9TauDb=P&+0kS!Sl!ML{$qODV`CO12n35N6F32!M0VhCH&k1kw# zu+TZ}gtfqkYP;Eb#-5o7W|LXkWSxbYarrB4fq_vxoz%PqfSTqIVxrI76O^w89rGlj z0H7DJQm?;Or0_SY(Vm$R3^G~n-*c4gH0Z~%D#W3bcBv4$K~M+Pd4F_eV+^&T6ax@a zXO)nRKo%ixy%}p_N@8Rb2ROBIu+s`kPMMpSo?%6~a`KnVi*Eijh0wXNg{#*M#n#iI z(=K!fo31-#2$`2#8zj_(C!aMe_D&q;0;)a zfhclp#zucIa6=f5>{Z7KUJ|Ee1Hg7Nfrd9$m4Wr+T(BLx#xG#AYu*0JY%{|dn^X3j z{6N*mO?8lOnBqGsOH$x3Ak$FO$m!2DnRmf6Pzh zBiO&dr8${f%wgj7gQgl%GW7zn@MbEnQ&$p4){}P`#lg9Eg?&2^hU>w*{&kKsgV~>7dQq5X%}zI?bj;9eR+U--z86t+98`CC{zqxO_Y8kkf3nd4V{UB?w-Xl z^~=3WH~_ln!x~*0+6p+I8DKo`TGt5~fKVr&8rN#}$HjT&5~UbFRlphl^A#}$fVLy( z2i9)rEzloiVXXqf8MB8qeB(8vYHd_^j~(K}(qhJp2uR7{mF1gJCdcS2*#S90kvA-j zbJv&2c_|ajr>sB64TE*Uxai-LWKZPri^-8Lb{i;|Nj-Dt5Ys=#1n`E(?qERHt|)oG zGUSoymGJXO1IYed&dARxwfyMgWmNgtCcwK7&dgm*zKKN$vWV_Py_THbj6c3W*>}0a zH}T0zSI)j)n;dc9B}JCD-U1q&ZUj)tyIi{qWp=m+_)p@egxaKPS=OC6Ye-aMrWUD2 z*w(2=s86jpuZwh@05bD>obdBVoOt<#3>@(xb-RvHGMp)=f}HpEwO~`Fho=G*6C4`- z`ERCY%O|U)shpg$^u|3>Ke;P* zAqDjyc0CY{dB2>OtX;U-9Qb+|mmO359LSo*ksAU{|3r|DWk%koQq%OJm5rJ*U&pxg- zVqTR@>)H2e?LqV0Q-^ld?CZEOFKZ%Sxk(y)CF0T>0sAEl96lM()n(d9HuqbABJMKR z1Lc7cCr1(tpI2s7J;jy7uAjYyCZ_H{@~7+F1)+h(h>ix#XfQ4w*|6lBhM?s^y0 z#^qK;%qle+DdUXY8S?r4LqUm|RCo zqRq}jKpQm|sa#fV@+UGlhi-1v>njX&7aFhp1tMHY8mc6xAG!eL{8qwo{8{Ij-aDQJ zUJu+miLcx|57UEM4FM~vq50F|OLAjQkOkE;0 zsVuQFwdfcB9o#bNEb=t*QurPBFSkPi5c@CL8rk_@kdLq*^&a0OfYnk9IJX!IB1+*j zHPAu2;HZcP(lSX5L4$vCtQhtJ*KdZoh6s}wCrxM6I&2_fn@(tpIL}h06SJr^Z}IN> zo0HZ^XI9OwR_559nC+H-ylUxM-;jddPTjDhxOpWf3)d?Yq z(|)S^r?(9i)fGar^LDZ0)fPNv$Bq2dW1s$}F{ssjc<#I+w5;Bq};$?%w9T#pJjOWO& zUQA+)e$_HXna@3N57BdkgY*{2IW@P2%r*Dvha6^3<{dxZH|V?|){uk3Lh~bbt8AQ) ze%msfiu%f$vXGP4lquo~XVwvG$azph7(8e#n|lRjKt}&6f-$)YyIVVM1lkfiYv@PD z(mh3T#L&KO1l+&(UF~c(NP=W*suyYU0tpg^_}iA|LP1ua+8?5kt>62pK|5 zrXoRwd75nc7%sp|>>&Oc!hEUr`s#yuEiua?QAjXE-P{S+Y;3YVkw5Voiat{7mq8+E8VX5vP#4qLI_o!_odl`y4+1i6Aq#6lSTVXIej z#u$<-bKaJT+G8UQrF@u@=5fuIsCl8T0>SmO}#dy{) zZYA@Z_zgHURo+1rf~l&77GMySCaQD6Pz;}F$xLi}JRI52jr<{3o+}|-dPbnAlmgGr z4euV82Q1TqD^@)4*$?Fe@bn=+pDgS-ioekv+JsX3)&|!laEhP!>iHj?4;)WJQ~Mv8 zUF&~zzAQ$BM0-id#Ge!b04O8kF!^(BbA&GlX{lO=ZWV8pDi{(ERD{sY!letlEn6qa zh8N-oL3c2D-=F^^ROPupC~2`bsrF=t4;NpcKw@>|yQW>;u{npROMx~tBT7>y`V~CX zO?^ryY@_#SY1~XfIj>Bj_+?3p{q)TABg`y0?+p@xu#o~kmzdFjkbyl)bKOUFer@c5 z-cropjii|t(uYm5X*HvsevzIm99SZPGSqLIV1#*3arD^**0vJ8hSv!Uj+i*m__*lc z?YHm~kMrK+B_TSX6(G+iZT+)(vi%!pSt@J(9scj_EggRm9cH`UpiX%@y;~Ef1Xvlf;dTK{D|O#n@g{`#)fK+rmMT+x zpNFlTUHjXiwiyRW|27tDS+nVGpAV<*F2K*nQ7sTzUEl5D-azrBdp*d?a~ND3 z4c0oDo#DVkO8dK^gXWZ z<}zF#Vr!OD$K`DS;d~~1tL3&@30fsYZfi@nl9$hkKM=A* zCCD)$zjlw?77IeOWL*b*3zkr^xr zaMc?rYrsFkFU$PYe%fKW$(R0wGf*AvFJU1rB?G|0S9yqlj==>Jot`Pn8k6uSJJUM9g1HyDrg+)Tsz@3b4eNlxXe32+y3kGF zV8-Cnx0?P+iA!8*kckli36X&r`GImppiTfl<}zp9%dUfYNuGcUgMlJOc=Ux&qh@R^3;XeNj^O&{XO;@e>@Nn zp&v>}SaBbVnPP!Nxl!=ib=v|Bw}ZS^YWXwof5fA8x42|#DZCP2{M5Ot4$}`s(nK$h zn0ORx5sJtQONTo=D~Y|EDgsxUBj6d+ZO(lcL#|H%HEb-SB>oEKJq#;g^D@20@Y?Zf2G!R+)H-cO-fi*rZ03m{85FmW z=RiMB2gM^ zOek^uuGAiZ^8{z`JZG^32vhd>cbIH(xQ|QTJ|fyTl4dz7=*b3ys%T+`Bigx=&?ioNFZi zfQHL^gHoveNsK@4o+L8kJ)}JBF{$~8B8r_?tf>Ni$jY{%#c$LF^AJsUi6&4t=T29CL)}3R!)h0w*izEDP|P#(E$+O>$f$T#HH#=M$!zGp>1G|>%cNRZzi;R+tCMF9x&)_9!fs3p zN^9@&P}2T9!G~k|3*KL9ZFAC|ynV?j^f{7IyOt+?e0(CYo(U6V1Wy2p&)(m$s9jSn zy*6fjKW7mmsr@X{s2r=f0lgP8rXon*<>g%6f2KZdZ7y=2rP%6N^|b&{eqc}jc6C2! zOW+IyxpJB5bzy`i^|H{sHcb`Px_D|;zJRVZG#jn-si(s{JEKaT1EWZ(UZ7O(k-<>R zOKx3D__%mub6?}F)t8clz5)?OM@QEB=+F5tBdhb*$(u{VqL9<$7BPTPg7?g^1Bm4Q z!)Ln;2JwBbjpdUEmpJi%D&WaO6TvvT$LJUabRCPMS0F6-mX>eX|DBZ-Xm76`EN|8R zVu>VPrloP3`gwNttXZw09pb)1F@}&%CxuGg2K!lsKE~vIAO@u%(ckjEl_g-YwG)Wr zLPuwJx-Ck7%}bi%lfhiNHEpPvbmV<}=YF@Cvod~%nG~$=D5D>5rb(8(hM1ZIj6OtR zylPqobN|rxF(FD=bLvYI%*N65NN1x$qO7N@3n>go&yG!<2}md@nudu3hSm;46{ZQf z)T>k1YK6h>06!UB~WW(bb_~GDJB%%db+jiyyt$#;Mz;d5>6R zO;`mgm^{F1YPXO*L+B8?K4@uoG)<)g&dMxw97wlsmnIi(a z$h>BMtiGLX_gvIwxh7#9t^uE_Cvb6`;q~;wcH$2Y^;; zOM(yXfHjBQkLf1Um>Trs@^*f2>cGLky8R^v@YB|j8JG`*fSAzgxbtCUgRy70T&NF< z5Hp9|VVP%J`S|&${rcG|(+*RbW4_O|eHy+^1*GvP1e(V|=jn#~ItyfBJne%tzEukg zU3utYcvchnMt?)i46bb8X2<0x1Mg{XYeEPW>8rVE=X($I10_3_>sFqsmi|1K!qeT< zaX1q2dEc4cI}oJ#N;tr3FD6=2U2y*N!l}*b=_%b;9k{s zV=CaTWnQ0W4`*=`ElPeN#a8ODV`!%=tcm|)Bch;*H#Ua01Ajg=#cwKJ%Py;awr$4_ z9b@n@A@b#VfBjfcQDM9J#q*A*DrNpI{(6|F+_!<^-kj+hjo;0k_Qtuo?;+h@pK&wo zov-4;;yC$J=HS9<$L7jc|5Vf_rBT0Ux!Wzgn#tQZ5we%D?$4v7Y_NHK#z$0RSta<^ z_t@d4#C87zN-FZD^G9(Gxx{^`UBR%&HX+7fGj)&MPpya{O37fIlw|#h3wvCNqIP4p zslsxX$9;50Td*IFy(%`omYAzT{p{KmCZ?FR$~;dXccA-|7WV}}8t`xQ;<{JNoMS#^rG4j(z? z@X~#C9J#B5NmG}rJ!>%%-aS?-^ZBVwc&8_ylj>3bo7rxQ@C)=up7uuqOpjgB88gy( z))rj6h$a3!GETSPaBf88JXey4ic=T&?h6dL+$(#iaAiEoGBZP*=U7hTgr*MK@Ais; zW<$+%0l{IpbOzWn3}EwR$&EZTuGA*8O7at<;fLi!PgJfM@nrt@wqDY{JxZ=jy!;dY zuA6JBB6kW4Hn{||ntU`I*1cP%EBjkBEd^mSZr6R@dOgHeWjwlR+Lvl6YO=GuK?G@n z#Ofy|RhLv%OD{uBJ|(9-DQ6gtwgMXRNH>kWIiQJInxEQ-1|Hb~@`8s&%)Q$dV=w;E za(+gNu!?ip-#wvRTRwo;O&dn6y0jo{Q30*`TJ!Nry^V(uElV|=yhA45cY9=d-J(sj zLV4qEy)e#DQk|9Zjlie*Nem2$#3f9AO}}&1C%ayEvP15XW?a=rAi+zGD=5bx(Pblw z_DzM*J6v?ZPcXAbmpqv{t#k%;?Be87373I>VS3uyQ6*A-biShyzPZTRV%nw;Nr-vo zU0B-2{0i68(DK!GQQ*(Jk8UqCjxh|uq@beBlGZ6M2|m(#5yZUS5tV>}lq#&TV-!4A zkvC^lHDV#}Iwz4su$wRuRcPPsOTxitT*&BBr`C<*@L^-if6%+vjbV;rHA$^?oWgT0 zhMqaAn9PIM8Es{GDnVhdP1Guis+M~V{m$GbT+HXZHx{Tm9cUV2E*WyCg*4bDV>LzV zgD@JmdPJ7a8Q0|ks)a?+bxUav;9cPb=(SE`B49+Z=fvw=(QyFsDHl2E=a}kN0ACS& zr}04ukh@<3Fey?K{R^{h};{q=35=e&H=&U30LMO#|I8wAsipaR{(O z!f=a1ZrhVWAnft(1LR_R)V3QY1fsvdF+9;VK)e>vOzKOzh=Hzg5hLYqXD9&{=!>!LZ898_i=%G>uh|4$`&sUG=b&$ z);?@|eEgSe2e_zuoGgzDz=8_rpkM(QRRXw9krMu`!w(L@K4(W91PI09SV`O#d z*(NchyG03s%KayVwEaAQ(2F8)%}T0Nrv7=dU)i%jIwmsy{1oR=Eu7-#t+5k-NfJkYL1N z)(&m2@IfGAY$IfZv%oVIXw>f|8Sp@fvOyflEa-8C6zccF1DId-lch3+1#PCHSVOWZ z4KR{B=xeUX7VStX3k*+}WPw``j`QG=vfTCG^mJshz_!XGoWHK*%}O{2@*ZoWT$SQ3 JWd7DQ`9Hc?h(rJY diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8a848873f..44ae9537e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=72f44c9f8ebcb1af43838f45ee5c4aa9c5444898b3468ab3f4af7b6076c5bc3f -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionSha256Sum=0d585f69da091fc5b2beced877feab55a3064d43b8a1d46aeb07996b0915e0e0 +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From bcb7469d30fc22cd0d2cd08f813cc1a6be66e180 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 22 Jan 2026 17:38:41 +0800 Subject: [PATCH 34/59] Run checkstyle with JDK 21 Signed-off-by: Aayush Gupta --- app/build.gradle.kts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1aa5297c5..292dcdbdf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -134,6 +134,13 @@ ksp { // Custom dependency configuration for ktlint val ktlint by configurations.creating +// https://checkstyle.org/#JRE_and_JDK +tasks.withType().configureEach { + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(21) + } +} + checkstyle { configDirectory = rootProject.file("checkstyle") isIgnoreFailures = false From ed4b77b5aa847eebf2bd6d2afb6c4e565dbf50a5 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 15:19:26 +0800 Subject: [PATCH 35/59] ktlint: Set codestyle and ignore function naming for Composable Signed-off-by: Aayush Gupta --- .editorconfig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.editorconfig b/.editorconfig index 77feb3181..8c6c145ba 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,6 +6,10 @@ root = true [*.{kt,kts}] +ktlint_code_style = android_studio +# https://pinterest.github.io/ktlint/latest/rules/standard/#function-naming +ktlint_function_naming_ignore_when_annotated_with = Composable + ktlint_standard_annotation = disabled ktlint_standard_argument-list-wrapping = disabled ktlint_standard_backing-property-naming = disabled From f23d8eff571152f5c7eb25bb5ff3bc2ca8683587 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 15:21:02 +0800 Subject: [PATCH 36/59] ktlint: Order imports in lexicographic order Signed-off-by: Aayush Gupta --- .../java/org/schabi/newpipe/database/FeedDAOTest.kt | 4 ++-- .../newpipe/local/history/HistoryRecordManagerTest.kt | 6 +++--- app/src/main/java/org/schabi/newpipe/NewPipeDatabase.kt | 2 +- app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt | 2 +- app/src/main/java/org/schabi/newpipe/about/License.kt | 2 +- .../org/schabi/newpipe/about/LicenseFragmentHelper.kt | 2 +- .../java/org/schabi/newpipe/about/SoftwareComponent.kt | 2 +- .../main/java/org/schabi/newpipe/database/Converters.kt | 4 ++-- .../java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt | 2 +- .../newpipe/database/feed/model/FeedLastUpdatedEntity.kt | 2 +- .../newpipe/database/history/model/StreamHistoryEntity.kt | 2 +- .../newpipe/database/history/model/StreamHistoryEntry.kt | 2 +- .../newpipe/database/stream/StreamStatisticsEntry.kt | 2 +- .../org/schabi/newpipe/database/stream/dao/StreamDAO.kt | 2 +- .../schabi/newpipe/database/stream/model/StreamEntity.kt | 4 ++-- app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt | 2 +- .../java/org/schabi/newpipe/error/ErrorPanelHelper.kt | 2 +- .../org/schabi/newpipe/info_list/StreamSegmentAdapter.kt | 2 +- .../org/schabi/newpipe/local/feed/FeedDatabaseManager.kt | 6 +++--- .../java/org/schabi/newpipe/local/feed/FeedFragment.kt | 4 ++-- .../main/java/org/schabi/newpipe/local/feed/FeedState.kt | 2 +- .../java/org/schabi/newpipe/local/feed/FeedViewModel.kt | 4 ++-- .../java/org/schabi/newpipe/local/feed/item/StreamItem.kt | 4 ++-- .../local/feed/notifications/NotificationWorker.kt | 2 +- .../newpipe/local/feed/notifications/ScheduleOptions.kt | 2 +- .../schabi/newpipe/local/feed/service/FeedEventManager.kt | 2 +- .../schabi/newpipe/local/feed/service/FeedLoadManager.kt | 8 ++++---- .../schabi/newpipe/local/feed/service/FeedLoadService.kt | 2 +- .../newpipe/local/subscription/SubscriptionFragment.kt | 6 +++--- .../newpipe/local/subscription/SubscriptionViewModel.kt | 2 +- .../newpipe/local/subscription/dialog/FeedGroupDialog.kt | 2 +- .../local/subscription/dialog/FeedGroupReorderDialog.kt | 2 +- .../newpipe/player/gesture/MainPlayerGestureListener.kt | 2 +- .../newpipe/player/gesture/PopupPlayerGestureListener.kt | 8 ++++---- .../newpipe/player/mediabrowser/MediaBrowserImpl.kt | 2 +- .../player/mediabrowser/MediaBrowserPlaybackPreparer.kt | 4 ++-- .../newpipe/player/mediabrowser/PackageValidator.kt | 2 +- .../schabi/newpipe/settings/export/ImportExportManager.kt | 6 +++--- .../main/java/org/schabi/newpipe/util/FilenameUtils.kt | 2 +- .../java/org/schabi/newpipe/util/ReleaseVersionUtil.kt | 6 +++--- .../java/org/schabi/newpipe/util/image/ImageStrategy.kt | 2 +- .../org/schabi/newpipe/util/potoken/PoTokenWebView.kt | 2 +- .../main/java/us/shandian/giga/get/MissionRecoveryInfo.kt | 2 +- .../test/java/org/schabi/newpipe/NewVersionManagerTest.kt | 8 ++++---- .../org/schabi/newpipe/ktx/ThrowableExtensionsTest.kt | 6 +++--- .../schabi/newpipe/settings/ImportAllCombinationsTest.kt | 6 +++--- .../schabi/newpipe/settings/ImportExportManagerTest.kt | 8 ++++---- .../test/java/org/schabi/newpipe/util/LocalizationTest.kt | 6 +++--- 48 files changed, 83 insertions(+), 83 deletions(-) diff --git a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt index 54d2dad9c..80d590f24 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt @@ -4,6 +4,8 @@ import android.content.Context import androidx.room.Room import androidx.test.core.app.ApplicationProvider import io.reactivex.rxjava3.core.Single +import java.io.IOException +import java.time.OffsetDateTime import org.junit.After import org.junit.Assert.assertEquals import org.junit.Assert.assertNotNull @@ -20,8 +22,6 @@ import org.schabi.newpipe.database.subscription.SubscriptionEntity import org.schabi.newpipe.extractor.ServiceList import org.schabi.newpipe.extractor.channel.ChannelInfo import org.schabi.newpipe.extractor.stream.StreamType -import java.io.IOException -import java.time.OffsetDateTime class FeedDAOTest { private lateinit var db: AppDatabase diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index 0de9dd268..c4c93d6d5 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -1,6 +1,9 @@ package org.schabi.newpipe.local.history import androidx.test.core.app.ApplicationProvider +import java.time.LocalDateTime +import java.time.OffsetDateTime +import java.time.ZoneOffset import org.assertj.core.api.Assertions.assertThat import org.junit.After import org.junit.Assert.assertEquals @@ -11,9 +14,6 @@ import org.schabi.newpipe.database.AppDatabase import org.schabi.newpipe.database.history.model.SearchHistoryEntry import org.schabi.newpipe.testUtil.TestDatabase import org.schabi.newpipe.testUtil.TrampolineSchedulerRule -import java.time.LocalDateTime -import java.time.OffsetDateTime -import java.time.ZoneOffset class HistoryRecordManagerTest { diff --git a/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.kt b/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.kt index c3ce51524..6527bd2ae 100644 --- a/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.kt +++ b/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.kt @@ -8,6 +8,7 @@ package org.schabi.newpipe import android.content.Context import androidx.room.Room.databaseBuilder +import kotlin.concurrent.Volatile import org.schabi.newpipe.database.AppDatabase import org.schabi.newpipe.database.Migrations.MIGRATION_1_2 import org.schabi.newpipe.database.Migrations.MIGRATION_2_3 @@ -17,7 +18,6 @@ import org.schabi.newpipe.database.Migrations.MIGRATION_5_6 import org.schabi.newpipe.database.Migrations.MIGRATION_6_7 import org.schabi.newpipe.database.Migrations.MIGRATION_7_8 import org.schabi.newpipe.database.Migrations.MIGRATION_8_9 -import kotlin.concurrent.Volatile object NewPipeDatabase { diff --git a/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt b/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt index 000b83953..893aa8d1b 100644 --- a/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt +++ b/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt @@ -18,10 +18,10 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import com.grack.nanojson.JsonParser import com.grack.nanojson.JsonParserException +import java.io.IOException import org.schabi.newpipe.extractor.downloader.Response import org.schabi.newpipe.extractor.exceptions.ReCaptchaException import org.schabi.newpipe.util.ReleaseVersionUtil -import java.io.IOException class NewVersionWorker( context: Context, diff --git a/app/src/main/java/org/schabi/newpipe/about/License.kt b/app/src/main/java/org/schabi/newpipe/about/License.kt index 117ff9bf5..fc50c646d 100644 --- a/app/src/main/java/org/schabi/newpipe/about/License.kt +++ b/app/src/main/java/org/schabi/newpipe/about/License.kt @@ -1,8 +1,8 @@ package org.schabi.newpipe.about import android.os.Parcelable -import kotlinx.parcelize.Parcelize import java.io.Serializable +import kotlinx.parcelize.Parcelize /** * Class for storing information about a software license. diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt index 56e21c88a..a2574ae86 100644 --- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt +++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt @@ -1,9 +1,9 @@ package org.schabi.newpipe.about import android.content.Context +import java.io.IOException import org.schabi.newpipe.R import org.schabi.newpipe.util.ThemeHelper -import java.io.IOException /** * @param context the context to use diff --git a/app/src/main/java/org/schabi/newpipe/about/SoftwareComponent.kt b/app/src/main/java/org/schabi/newpipe/about/SoftwareComponent.kt index 262641caa..a43ddfd5e 100644 --- a/app/src/main/java/org/schabi/newpipe/about/SoftwareComponent.kt +++ b/app/src/main/java/org/schabi/newpipe/about/SoftwareComponent.kt @@ -1,8 +1,8 @@ package org.schabi.newpipe.about import android.os.Parcelable -import kotlinx.parcelize.Parcelize import java.io.Serializable +import kotlinx.parcelize.Parcelize @Parcelize class SoftwareComponent diff --git a/app/src/main/java/org/schabi/newpipe/database/Converters.kt b/app/src/main/java/org/schabi/newpipe/database/Converters.kt index ec097cc1b..f9cbb1de2 100644 --- a/app/src/main/java/org/schabi/newpipe/database/Converters.kt +++ b/app/src/main/java/org/schabi/newpipe/database/Converters.kt @@ -1,11 +1,11 @@ package org.schabi.newpipe.database import androidx.room.TypeConverter -import org.schabi.newpipe.extractor.stream.StreamType -import org.schabi.newpipe.local.subscription.FeedGroupIcon import java.time.Instant import java.time.OffsetDateTime import java.time.ZoneOffset +import org.schabi.newpipe.extractor.stream.StreamType +import org.schabi.newpipe.local.subscription.FeedGroupIcon class Converters { /** diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt b/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt index d756df8b1..5861fa767 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/dao/FeedDAO.kt @@ -8,6 +8,7 @@ import androidx.room.Transaction import androidx.room.Update import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe +import java.time.OffsetDateTime import org.schabi.newpipe.database.feed.model.FeedEntity import org.schabi.newpipe.database.feed.model.FeedGroupEntity import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity @@ -15,7 +16,6 @@ import org.schabi.newpipe.database.stream.StreamWithState import org.schabi.newpipe.database.stream.model.StreamStateEntity import org.schabi.newpipe.database.subscription.NotificationMode import org.schabi.newpipe.database.subscription.SubscriptionEntity -import java.time.OffsetDateTime @Dao abstract class FeedDAO { diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt index a19af9c45..51c8c1afa 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt @@ -4,10 +4,10 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.ForeignKey import androidx.room.PrimaryKey +import java.time.OffsetDateTime import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity.Companion.FEED_LAST_UPDATED_TABLE import org.schabi.newpipe.database.feed.model.FeedLastUpdatedEntity.Companion.SUBSCRIPTION_ID import org.schabi.newpipe.database.subscription.SubscriptionEntity -import java.time.OffsetDateTime @Entity( tableName = FEED_LAST_UPDATED_TABLE, diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.kt index db41e141c..deba7dd3a 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntity.kt @@ -11,12 +11,12 @@ import androidx.room.Entity import androidx.room.ForeignKey import androidx.room.ForeignKey.Companion.CASCADE import androidx.room.Index +import java.time.OffsetDateTime import org.schabi.newpipe.database.history.model.StreamHistoryEntity.Companion.JOIN_STREAM_ID import org.schabi.newpipe.database.history.model.StreamHistoryEntity.Companion.STREAM_ACCESS_DATE import org.schabi.newpipe.database.history.model.StreamHistoryEntity.Companion.STREAM_HISTORY_TABLE import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_ID -import java.time.OffsetDateTime /** * @param streamUid the stream id this history item will refer to diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt index 27fc429f1..ece55269a 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt @@ -2,10 +2,10 @@ package org.schabi.newpipe.database.history.model import androidx.room.ColumnInfo import androidx.room.Embedded +import java.time.OffsetDateTime import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.extractor.stream.StreamInfoItem import org.schabi.newpipe.util.image.ImageStrategy -import java.time.OffsetDateTime data class StreamHistoryEntry( @Embedded diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt b/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt index 3fa281e45..ce74678ca 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/StreamStatisticsEntry.kt @@ -9,13 +9,13 @@ package org.schabi.newpipe.database.stream import androidx.room.ColumnInfo import androidx.room.Embedded import androidx.room.Ignore +import java.time.OffsetDateTime import org.schabi.newpipe.database.LocalItem import org.schabi.newpipe.database.history.model.StreamHistoryEntity import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.database.stream.model.StreamStateEntity.Companion.STREAM_PROGRESS_MILLIS import org.schabi.newpipe.extractor.stream.StreamInfoItem import org.schabi.newpipe.util.image.ImageStrategy -import java.time.OffsetDateTime data class StreamStatisticsEntry( @Embedded diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt b/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt index d8c19c1e9..6ef64ec4d 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt @@ -8,12 +8,12 @@ import androidx.room.Query import androidx.room.Transaction import io.reactivex.rxjava3.core.Completable import io.reactivex.rxjava3.core.Flowable +import java.time.OffsetDateTime import org.schabi.newpipe.database.BasicDAO import org.schabi.newpipe.database.stream.model.StreamEntity import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_ID import org.schabi.newpipe.extractor.stream.StreamType import org.schabi.newpipe.util.StreamTypeUtil -import java.time.OffsetDateTime @Dao abstract class StreamDAO : BasicDAO { diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt b/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt index d9c160b89..4bb34d7b0 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt @@ -5,6 +5,8 @@ import androidx.room.Entity import androidx.room.Ignore import androidx.room.Index import androidx.room.PrimaryKey +import java.io.Serializable +import java.time.OffsetDateTime import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_SERVICE_ID import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_TABLE import org.schabi.newpipe.database.stream.model.StreamEntity.Companion.STREAM_URL @@ -14,8 +16,6 @@ import org.schabi.newpipe.extractor.stream.StreamInfoItem import org.schabi.newpipe.extractor.stream.StreamType import org.schabi.newpipe.player.playqueue.PlayQueueItem import org.schabi.newpipe.util.image.ImageStrategy -import java.io.Serializable -import java.time.OffsetDateTime @Entity( tableName = STREAM_TABLE, diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt index 7ddfeb553..5056c00e1 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt @@ -7,6 +7,7 @@ import androidx.core.content.ContextCompat import com.google.android.exoplayer2.ExoPlaybackException import com.google.android.exoplayer2.upstream.HttpDataSource import com.google.android.exoplayer2.upstream.Loader +import java.net.UnknownHostException import kotlinx.parcelize.Parcelize import org.schabi.newpipe.R import org.schabi.newpipe.extractor.Info @@ -28,7 +29,6 @@ import org.schabi.newpipe.extractor.exceptions.YoutubeMusicPremiumContentExcepti import org.schabi.newpipe.ktx.isNetworkRelated import org.schabi.newpipe.player.mediasource.FailedMediaSource import org.schabi.newpipe.player.resolver.PlaybackResolver -import java.net.UnknownHostException /** * An error has occurred in the app. This class contains plain old parcelable data that can be used diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt index 4ec5f58c3..9d503a935 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt @@ -11,11 +11,11 @@ import androidx.fragment.app.Fragment import com.jakewharton.rxbinding4.view.clicks import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.disposables.Disposable +import java.util.concurrent.TimeUnit import org.schabi.newpipe.MainActivity import org.schabi.newpipe.R import org.schabi.newpipe.ktx.animate import org.schabi.newpipe.util.external_communication.ShareUtils -import java.util.concurrent.TimeUnit class ErrorPanelHelper( private val fragment: Fragment, diff --git a/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentAdapter.kt b/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentAdapter.kt index 869bf6f48..9b6005f65 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentAdapter.kt +++ b/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentAdapter.kt @@ -2,8 +2,8 @@ package org.schabi.newpipe.info_list import android.util.Log import com.xwray.groupie.GroupieAdapter -import org.schabi.newpipe.extractor.stream.StreamInfo import kotlin.math.max +import org.schabi.newpipe.extractor.stream.StreamInfo /** * Custom RecyclerView.Adapter/GroupieAdapter for [StreamSegmentItem] for handling selection state. diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt index 8a1de01c9..3e3a47f57 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedDatabaseManager.kt @@ -7,6 +7,9 @@ import io.reactivex.rxjava3.core.Completable import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Maybe import io.reactivex.rxjava3.schedulers.Schedulers +import java.time.LocalDate +import java.time.OffsetDateTime +import java.time.ZoneOffset import org.schabi.newpipe.MainActivity.DEBUG import org.schabi.newpipe.NewPipeDatabase import org.schabi.newpipe.database.feed.model.FeedEntity @@ -18,9 +21,6 @@ import org.schabi.newpipe.database.subscription.NotificationMode import org.schabi.newpipe.extractor.stream.StreamInfoItem import org.schabi.newpipe.extractor.stream.StreamType import org.schabi.newpipe.local.subscription.FeedGroupIcon -import java.time.LocalDate -import java.time.OffsetDateTime -import java.time.ZoneOffset class FeedDatabaseManager(context: Context) { private val database = NewPipeDatabase.getInstance(context) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index bbad7f689..2663dc5d3 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -53,6 +53,8 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.schedulers.Schedulers +import java.time.OffsetDateTime +import java.util.function.Consumer import org.schabi.newpipe.NewPipeDatabase import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity @@ -81,8 +83,6 @@ import org.schabi.newpipe.util.ThemeHelper.getGridSpanCountStreams import org.schabi.newpipe.util.ThemeHelper.getItemViewMode import org.schabi.newpipe.util.ThemeHelper.resolveDrawable import org.schabi.newpipe.util.ThemeHelper.shouldUseGridLayout -import java.time.OffsetDateTime -import java.util.function.Consumer class FeedFragment : BaseStateFragment() { private var _feedBinding: FragmentFeedBinding? = null diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedState.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedState.kt index 665ebbe43..6d6bc9007 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedState.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedState.kt @@ -1,8 +1,8 @@ package org.schabi.newpipe.local.feed import androidx.annotation.StringRes -import org.schabi.newpipe.local.feed.item.StreamItem import java.time.OffsetDateTime +import org.schabi.newpipe.local.feed.item.StreamItem sealed class FeedState { data class ProgressState( diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt index f916db2b5..6ca06e2f8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt @@ -14,6 +14,8 @@ import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.functions.Function6 import io.reactivex.rxjava3.processors.BehaviorProcessor import io.reactivex.rxjava3.schedulers.Schedulers +import java.time.OffsetDateTime +import java.util.concurrent.TimeUnit import org.schabi.newpipe.App import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity @@ -25,8 +27,6 @@ import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.IdleEvent import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.ProgressEvent import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.SuccessResultEvent import org.schabi.newpipe.util.DEFAULT_THROTTLE_TIMEOUT -import java.time.OffsetDateTime -import java.util.concurrent.TimeUnit class FeedViewModel( private val application: Application, diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt b/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt index 4a071d6df..a39f31efd 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt @@ -6,6 +6,8 @@ import android.view.View import androidx.core.content.ContextCompat import androidx.preference.PreferenceManager import com.xwray.groupie.viewbinding.BindableItem +import java.util.concurrent.TimeUnit +import java.util.function.Consumer import org.schabi.newpipe.MainActivity import org.schabi.newpipe.R import org.schabi.newpipe.database.stream.StreamWithState @@ -20,8 +22,6 @@ import org.schabi.newpipe.extractor.stream.StreamType.VIDEO_STREAM import org.schabi.newpipe.util.Localization import org.schabi.newpipe.util.StreamTypeUtil import org.schabi.newpipe.util.image.PicassoHelper -import java.util.concurrent.TimeUnit -import java.util.function.Consumer data class StreamItem( val streamWithState: StreamWithState, diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt index 6fe311fb0..0f66186b8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt @@ -16,6 +16,7 @@ import androidx.work.WorkerParameters import androidx.work.rxjava3.RxWorker import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Single +import java.util.concurrent.TimeUnit import org.schabi.newpipe.App import org.schabi.newpipe.R import org.schabi.newpipe.error.ErrorInfo @@ -23,7 +24,6 @@ import org.schabi.newpipe.error.ErrorUtil import org.schabi.newpipe.error.UserAction import org.schabi.newpipe.local.feed.service.FeedLoadManager import org.schabi.newpipe.local.feed.service.FeedLoadService -import java.util.concurrent.TimeUnit /* * Worker which checks for new streams of subscribed channels diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt index b1027e21a..6d5f12b2b 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/ScheduleOptions.kt @@ -2,9 +2,9 @@ package org.schabi.newpipe.local.feed.notifications import android.content.Context import androidx.preference.PreferenceManager +import java.util.concurrent.TimeUnit import org.schabi.newpipe.R import org.schabi.newpipe.ktx.getStringSafe -import java.util.concurrent.TimeUnit /** * Information for the Scheduler which checks for new streams. diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedEventManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedEventManager.kt index 1c2826e7a..952a59b9a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedEventManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedEventManager.kt @@ -3,8 +3,8 @@ package org.schabi.newpipe.local.feed.service import androidx.annotation.StringRes import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.processors.BehaviorProcessor -import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.IdleEvent import java.util.concurrent.atomic.AtomicBoolean +import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.IdleEvent object FeedEventManager { private var processor: BehaviorProcessor = BehaviorProcessor.create() diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt index 9b0f177d5..0befb3af7 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt @@ -11,6 +11,10 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.functions.Consumer import io.reactivex.rxjava3.processors.PublishProcessor import io.reactivex.rxjava3.schedulers.Schedulers +import java.time.OffsetDateTime +import java.time.ZoneOffset +import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicInteger import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity import org.schabi.newpipe.database.subscription.NotificationMode @@ -27,10 +31,6 @@ import org.schabi.newpipe.util.ChannelTabHelper import org.schabi.newpipe.util.ExtractorHelper.getChannelInfo import org.schabi.newpipe.util.ExtractorHelper.getChannelTab import org.schabi.newpipe.util.ExtractorHelper.getMoreChannelTabItems -import java.time.OffsetDateTime -import java.time.ZoneOffset -import java.util.concurrent.atomic.AtomicBoolean -import java.util.concurrent.atomic.AtomicInteger class FeedLoadManager(private val context: Context) { diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt index 4aa825ca8..b4af67e6a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt @@ -36,13 +36,13 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.disposables.Disposable import io.reactivex.rxjava3.functions.Function +import java.util.concurrent.TimeUnit import org.schabi.newpipe.App import org.schabi.newpipe.MainActivity.DEBUG import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.ErrorResultEvent import org.schabi.newpipe.local.feed.service.FeedEventManager.postEvent -import java.util.concurrent.TimeUnit class FeedLoadService : Service() { companion object { diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index 8e758adef..5a69c3b41 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -27,6 +27,9 @@ import com.xwray.groupie.GroupAdapter import com.xwray.groupie.Section import com.xwray.groupie.viewbinding.GroupieViewHolder import io.reactivex.rxjava3.disposables.CompositeDisposable +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity.Companion.GROUP_ALL_ID import org.schabi.newpipe.databinding.DialogTitleBinding @@ -62,9 +65,6 @@ import org.schabi.newpipe.util.OnClickGesture import org.schabi.newpipe.util.ServiceHelper import org.schabi.newpipe.util.ThemeHelper.getGridSpanCountChannels import org.schabi.newpipe.util.external_communication.ShareUtils -import java.text.SimpleDateFormat -import java.util.Date -import java.util.Locale class SubscriptionFragment : BaseStateFragment() { private var _binding: FragmentSubscriptionBinding? = null diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionViewModel.kt index dfad60c3f..fc28f8e59 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionViewModel.kt @@ -9,6 +9,7 @@ import com.xwray.groupie.Group import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.processors.BehaviorProcessor import io.reactivex.rxjava3.schedulers.Schedulers +import java.util.concurrent.TimeUnit import org.schabi.newpipe.info_list.ItemViewMode import org.schabi.newpipe.local.feed.FeedDatabaseManager import org.schabi.newpipe.local.subscription.item.ChannelItem @@ -16,7 +17,6 @@ import org.schabi.newpipe.local.subscription.item.FeedGroupCardGridItem import org.schabi.newpipe.local.subscription.item.FeedGroupCardItem import org.schabi.newpipe.util.DEFAULT_THROTTLE_TIMEOUT import org.schabi.newpipe.util.ThemeHelper.getItemViewMode -import java.util.concurrent.TimeUnit class SubscriptionViewModel(application: Application) : AndroidViewModel(application) { private var feedDatabaseManager: FeedDatabaseManager = FeedDatabaseManager(application) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index 71c90e3c1..88254dfbd 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -23,6 +23,7 @@ import com.livefront.bridge.Bridge import com.xwray.groupie.GroupieAdapter import com.xwray.groupie.OnItemClickListener import com.xwray.groupie.Section +import java.io.Serializable import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity import org.schabi.newpipe.databinding.DialogFeedGroupCreateBinding @@ -40,7 +41,6 @@ import org.schabi.newpipe.local.subscription.item.PickerIconItem import org.schabi.newpipe.local.subscription.item.PickerSubscriptionItem import org.schabi.newpipe.util.DeviceUtils import org.schabi.newpipe.util.ThemeHelper -import java.io.Serializable class FeedGroupDialog : DialogFragment(), BackPressable { private var _feedGroupCreateBinding: DialogFeedGroupCreateBinding? = null diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupReorderDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupReorderDialog.kt index c087da464..11f034ba0 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupReorderDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupReorderDialog.kt @@ -15,6 +15,7 @@ import com.evernote.android.state.State import com.livefront.bridge.Bridge import com.xwray.groupie.GroupieAdapter import com.xwray.groupie.TouchCallback +import java.util.Collections import org.schabi.newpipe.R import org.schabi.newpipe.database.feed.model.FeedGroupEntity import org.schabi.newpipe.databinding.DialogFeedGroupReorderBinding @@ -22,7 +23,6 @@ import org.schabi.newpipe.local.subscription.dialog.FeedGroupReorderDialogViewMo import org.schabi.newpipe.local.subscription.dialog.FeedGroupReorderDialogViewModel.DialogEvent.SuccessEvent import org.schabi.newpipe.local.subscription.item.FeedGroupReorderItem import org.schabi.newpipe.util.ThemeHelper -import java.util.Collections class FeedGroupReorderDialog : DialogFragment() { private var _binding: DialogFeedGroupReorderBinding? = null diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt index ff0bb269d..435dfc79a 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt @@ -8,6 +8,7 @@ import android.widget.ProgressBar import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.content.res.AppCompatResources import androidx.core.view.isVisible +import kotlin.math.abs import org.schabi.newpipe.MainActivity import org.schabi.newpipe.R import org.schabi.newpipe.ktx.AnimationType @@ -17,7 +18,6 @@ import org.schabi.newpipe.player.helper.AudioReactor import org.schabi.newpipe.player.helper.PlayerHelper import org.schabi.newpipe.player.ui.MainPlayerUi import org.schabi.newpipe.util.ThemeHelper.getAndroidDimenPx -import kotlin.math.abs /** * GestureListener for the player diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt index 0b94bf364..57dcb6d92 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt @@ -5,14 +5,14 @@ import android.view.MotionEvent import android.view.View import android.view.ViewConfiguration import androidx.core.view.isVisible -import org.schabi.newpipe.MainActivity -import org.schabi.newpipe.ktx.AnimationType -import org.schabi.newpipe.ktx.animate -import org.schabi.newpipe.player.ui.PopupPlayerUi import kotlin.math.abs import kotlin.math.hypot import kotlin.math.max import kotlin.math.min +import org.schabi.newpipe.MainActivity +import org.schabi.newpipe.ktx.AnimationType +import org.schabi.newpipe.ktx.animate +import org.schabi.newpipe.player.ui.PopupPlayerUi class PopupPlayerGestureListener( private val playerUi: PopupPlayerUi, diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt index d221d704b..b2ff4afd4 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt @@ -17,6 +17,7 @@ import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.schedulers.Schedulers +import java.util.function.Consumer import org.schabi.newpipe.MainActivity.DEBUG import org.schabi.newpipe.NewPipeDatabase import org.schabi.newpipe.R @@ -37,7 +38,6 @@ import org.schabi.newpipe.local.playlist.RemotePlaylistManager import org.schabi.newpipe.util.ExtractorHelper import org.schabi.newpipe.util.ServiceHelper import org.schabi.newpipe.util.image.ImageStrategy -import java.util.function.Consumer /** * This class is used to cleanly separate the Service implementation (in diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt index 072a8f332..f50337a22 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt @@ -14,6 +14,8 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.disposables.Disposable import io.reactivex.rxjava3.schedulers.Schedulers +import java.util.function.BiConsumer +import java.util.function.Consumer import org.schabi.newpipe.MainActivity import org.schabi.newpipe.NewPipeDatabase import org.schabi.newpipe.R @@ -30,8 +32,6 @@ import org.schabi.newpipe.player.playqueue.SinglePlayQueue import org.schabi.newpipe.util.ChannelTabHelper import org.schabi.newpipe.util.ExtractorHelper import org.schabi.newpipe.util.NavigationHelper -import java.util.function.BiConsumer -import java.util.function.Consumer /** * This class is used to cleanly separate the Service implementation (in diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt index 05719b6d4..c7106003b 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt @@ -30,9 +30,9 @@ import android.support.v4.media.session.MediaSessionCompat import android.util.Log import androidx.core.app.NotificationManagerCompat import androidx.media.MediaBrowserServiceCompat -import org.schabi.newpipe.BuildConfig import java.security.MessageDigest import java.security.NoSuchAlgorithmException +import org.schabi.newpipe.BuildConfig /** * Validates that the calling package is authorized to browse a [MediaBrowserServiceCompat]. diff --git a/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt b/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt index 36e0b9ce1..c9901d277 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt @@ -5,13 +5,13 @@ import com.grack.nanojson.JsonArray import com.grack.nanojson.JsonParser import com.grack.nanojson.JsonParserException import com.grack.nanojson.JsonWriter -import org.schabi.newpipe.streams.io.SharpOutputStream -import org.schabi.newpipe.streams.io.StoredFileHelper -import org.schabi.newpipe.util.ZipHelper import java.io.FileNotFoundException import java.io.IOException import java.io.ObjectOutputStream import java.util.zip.ZipOutputStream +import org.schabi.newpipe.streams.io.SharpOutputStream +import org.schabi.newpipe.streams.io.StoredFileHelper +import org.schabi.newpipe.util.ZipHelper class ImportExportManager(private val fileLocator: BackupFileLocator) { companion object { diff --git a/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt b/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt index bfa50beef..6a2d23d21 100644 --- a/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt +++ b/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt @@ -7,9 +7,9 @@ package org.schabi.newpipe.util import android.content.Context import androidx.preference.PreferenceManager +import java.util.regex.Matcher import org.schabi.newpipe.R import org.schabi.newpipe.ktx.getStringSafe -import java.util.regex.Matcher object FilenameUtils { private const val CHARSET_MOST_SPECIAL = "[\\n\\r|?*<\":\\\\>/']+" diff --git a/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt b/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt index 3ea19fa4f..fef7e83c0 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt +++ b/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt @@ -2,13 +2,13 @@ package org.schabi.newpipe.util import android.content.pm.PackageManager import androidx.core.content.pm.PackageInfoCompat +import java.time.Instant +import java.time.ZonedDateTime +import java.time.format.DateTimeFormatter import org.schabi.newpipe.App import org.schabi.newpipe.error.ErrorInfo import org.schabi.newpipe.error.ErrorUtil.Companion.createNotification import org.schabi.newpipe.error.UserAction -import java.time.Instant -import java.time.ZonedDateTime -import java.time.format.DateTimeFormatter object ReleaseVersionUtil { // Public key of the certificate that is used in NewPipe release versions diff --git a/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt b/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt index aa59b4d0a..a2a482f4a 100644 --- a/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt +++ b/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt @@ -5,9 +5,9 @@ package org.schabi.newpipe.util.image +import kotlin.math.abs import org.schabi.newpipe.extractor.Image import org.schabi.newpipe.extractor.Image.ResolutionLevel -import kotlin.math.abs object ImageStrategy { // when preferredImageQuality is LOW or MEDIUM, images are sorted by how close their preferred diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt index 9b4b500f0..d222b1b1e 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt @@ -16,9 +16,9 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.core.SingleEmitter import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.schedulers.Schedulers +import java.time.Instant import org.schabi.newpipe.BuildConfig import org.schabi.newpipe.DownloaderImpl -import java.time.Instant class PoTokenWebView private constructor( context: Context, diff --git a/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt b/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt index c2f9dc9b2..712e4ee0b 100644 --- a/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt +++ b/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt @@ -1,13 +1,13 @@ package us.shandian.giga.get import android.os.Parcelable +import java.io.Serializable import kotlinx.parcelize.Parcelize import org.schabi.newpipe.extractor.MediaFormat import org.schabi.newpipe.extractor.stream.AudioStream import org.schabi.newpipe.extractor.stream.Stream import org.schabi.newpipe.extractor.stream.SubtitlesStream import org.schabi.newpipe.extractor.stream.VideoStream -import java.io.Serializable @Parcelize class MissionRecoveryInfo( diff --git a/app/src/test/java/org/schabi/newpipe/NewVersionManagerTest.kt b/app/src/test/java/org/schabi/newpipe/NewVersionManagerTest.kt index 7a2d965f7..f10d9553f 100644 --- a/app/src/test/java/org/schabi/newpipe/NewVersionManagerTest.kt +++ b/app/src/test/java/org/schabi/newpipe/NewVersionManagerTest.kt @@ -1,14 +1,14 @@ package org.schabi.newpipe +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter +import kotlin.math.abs import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Test import org.schabi.newpipe.util.ReleaseVersionUtil.coerceUpdateCheckExpiry import org.schabi.newpipe.util.ReleaseVersionUtil.isLastUpdateCheckExpired -import java.time.Instant -import java.time.ZoneId -import java.time.format.DateTimeFormatter -import kotlin.math.abs class NewVersionManagerTest { diff --git a/app/src/test/java/org/schabi/newpipe/ktx/ThrowableExtensionsTest.kt b/app/src/test/java/org/schabi/newpipe/ktx/ThrowableExtensionsTest.kt index ca2d04c85..fb7c1afe5 100644 --- a/app/src/test/java/org/schabi/newpipe/ktx/ThrowableExtensionsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/ktx/ThrowableExtensionsTest.kt @@ -1,12 +1,12 @@ package org.schabi.newpipe.ktx -import org.junit.Assert.assertFalse -import org.junit.Assert.assertTrue -import org.junit.Test import java.io.IOException import java.io.InterruptedIOException import java.net.SocketException import javax.net.ssl.SSLException +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test class ThrowableExtensionsTest { @Test fun `assignable causes`() { diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt index 862ac3b80..31f57a37f 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt @@ -1,6 +1,9 @@ package org.schabi.newpipe.settings import android.content.SharedPreferences +import java.io.File +import java.io.IOException +import java.nio.file.Files import org.junit.Assert import org.junit.Test import org.mockito.Mockito @@ -8,9 +11,6 @@ import org.schabi.newpipe.settings.export.BackupFileLocator import org.schabi.newpipe.settings.export.ImportExportManager import org.schabi.newpipe.streams.io.StoredFileHelper import us.shandian.giga.io.FileStream -import java.io.File -import java.io.IOException -import java.nio.file.Files class ImportAllCombinationsTest { diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportExportManagerTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportExportManagerTest.kt index 5b8023561..e2ff22134 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportExportManagerTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportExportManagerTest.kt @@ -2,6 +2,10 @@ package org.schabi.newpipe.settings import android.content.SharedPreferences import com.grack.nanojson.JsonParser +import java.io.File +import java.io.ObjectInputStream +import java.nio.file.Files +import java.util.zip.ZipFile import org.junit.Assert.assertEquals import org.junit.Assert.assertFalse import org.junit.Assert.assertThrows @@ -23,10 +27,6 @@ import org.schabi.newpipe.settings.export.BackupFileLocator import org.schabi.newpipe.settings.export.ImportExportManager import org.schabi.newpipe.streams.io.StoredFileHelper import us.shandian.giga.io.FileStream -import java.io.File -import java.io.ObjectInputStream -import java.nio.file.Files -import java.util.zip.ZipFile @RunWith(MockitoJUnitRunner::class) class ImportExportManagerTest { diff --git a/app/src/test/java/org/schabi/newpipe/util/LocalizationTest.kt b/app/src/test/java/org/schabi/newpipe/util/LocalizationTest.kt index ab6396951..081d1c545 100644 --- a/app/src/test/java/org/schabi/newpipe/util/LocalizationTest.kt +++ b/app/src/test/java/org/schabi/newpipe/util/LocalizationTest.kt @@ -1,12 +1,12 @@ package org.schabi.newpipe.util -import org.junit.Assert.assertEquals -import org.junit.Test -import org.ocpsoft.prettytime.PrettyTime import java.time.LocalDate import java.time.OffsetDateTime import java.time.ZoneOffset import java.util.Locale +import org.junit.Assert.assertEquals +import org.junit.Test +import org.ocpsoft.prettytime.PrettyTime class LocalizationTest { @Test(expected = NullPointerException::class) From 2c808b0e86a1ca2792a8183b706e8a581dbb8f3a Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 15:34:06 +0800 Subject: [PATCH 37/59] ktlint: Fix ktlint_standard_annotation violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../schabi/newpipe/local/feed/FeedFragment.kt | 5 ++- .../subscription/dialog/FeedGroupDialog.kt | 43 +++++++++++++++---- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8c6c145ba..8a779c261 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,6 @@ ktlint_code_style = android_studio # https://pinterest.github.io/ktlint/latest/rules/standard/#function-naming ktlint_function_naming_ignore_when_annotated_with = Composable -ktlint_standard_annotation = disabled ktlint_standard_argument-list-wrapping = disabled ktlint_standard_backing-property-naming = disabled ktlint_standard_blank-line-before-declaration = disabled diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index 2663dc5d3..b4b23a503 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -91,7 +91,10 @@ class FeedFragment : BaseStateFragment() { private val disposables = CompositeDisposable() private lateinit var viewModel: FeedViewModel - @State @JvmField var listState: Parcelable? = null + + @State + @JvmField + var listState: Parcelable? = null private var groupId = FeedGroupEntity.GROUP_ALL_ID private var groupName = "" diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index 88254dfbd..094b1c17f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -61,16 +61,41 @@ class FeedGroupDialog : DialogFragment(), BackPressable { data object DeleteScreen : ScreenState() } - @State @JvmField var selectedIcon: FeedGroupIcon? = null - @State @JvmField var selectedSubscriptions: HashSet = HashSet() - @State @JvmField var wasSubscriptionSelectionChanged: Boolean = false - @State @JvmField var currentScreen: ScreenState = InitialScreen + @State + @JvmField + var selectedIcon: FeedGroupIcon? = null - @State @JvmField var subscriptionsListState: Parcelable? = null - @State @JvmField var iconsListState: Parcelable? = null - @State @JvmField var wasSearchSubscriptionsVisible = false - @State @JvmField var subscriptionsCurrentSearchQuery = "" - @State @JvmField var subscriptionsShowOnlyUngrouped = false + @State + @JvmField + var selectedSubscriptions: HashSet = HashSet() + + @State + @JvmField + var wasSubscriptionSelectionChanged: Boolean = false + + @State + @JvmField + var currentScreen: ScreenState = InitialScreen + + @State + @JvmField + var subscriptionsListState: Parcelable? = null + + @State + @JvmField + var iconsListState: Parcelable? = null + + @State + @JvmField + var wasSearchSubscriptionsVisible = false + + @State + @JvmField + var subscriptionsCurrentSearchQuery = "" + + @State + @JvmField + var subscriptionsShowOnlyUngrouped = false private val subscriptionMainSection = Section() private val subscriptionEmptyFooter = Section() From 0641c19388ff4ac55e52ba14e9bc048f72f90fe9 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:44:28 +0800 Subject: [PATCH 38/59] ktlint: Fix multi-line if-else violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../schabi/newpipe/local/feed/FeedViewModel.kt | 5 +++-- .../player/gesture/BasePlayerGestureListener.kt | 15 ++++++++++----- .../player/gesture/MainPlayerGestureListener.kt | 9 ++++++--- .../player/gesture/PopupPlayerGestureListener.kt | 9 ++++++--- .../mediabrowser/MediaBrowserPlaybackPreparer.kt | 5 +++-- .../newpipe/util/potoken/PoTokenException.kt | 5 +++-- .../newpipe/views/player/PlayerFastSeekOverlay.kt | 9 ++++++--- 8 files changed, 37 insertions(+), 21 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8a779c261..8be8d250e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -26,7 +26,6 @@ ktlint_standard_kdoc = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_multiline-expression-wrapping = disabled -ktlint_standard_multiline-if-else = disabled ktlint_standard_no-blank-line-in-list = disabled ktlint_standard_no-consecutive-comments = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt index 6ca06e2f8..cf0150332 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt @@ -73,12 +73,13 @@ class FeedViewModel( .subscribeOn(Schedulers.io()) .observeOn(Schedulers.io()) .map { (event, showPlayedItems, showPartiallyPlayedItems, showFutureItems, notLoadedCount, oldestUpdate) -> - val streamItems = if (event is SuccessResultEvent || event is IdleEvent) + val streamItems = if (event is SuccessResultEvent || event is IdleEvent) { feedDatabaseManager .getStreams(groupId, showPlayedItems, showPartiallyPlayedItems, showFutureItems) .blockingGet(arrayListOf()) - else + } else { arrayListOf() + } CombineResultDataHolder(event, streamItems, notLoadedCount, oldestUpdate) } diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt index 0453f297a..36ee5e05e 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt @@ -86,8 +86,9 @@ abstract class BasePlayerGestureListener( // /////////////////////////////////////////////////////////////////// override fun onDown(e: MotionEvent): Boolean { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "onDown called with e = [$e]") + } if (isDoubleTapping && isDoubleTapEnabled) { doubleTapControls?.onDoubleTapProgressDown(getDisplayPortion(e)) @@ -108,8 +109,9 @@ abstract class BasePlayerGestureListener( } override fun onDoubleTap(e: MotionEvent): Boolean { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "onDoubleTap called with e = [$e]") + } onDoubleTap(e, getDisplayPortion(e)) return true @@ -136,8 +138,9 @@ abstract class BasePlayerGestureListener( private fun startMultiDoubleTap(e: MotionEvent) { if (!isDoubleTapping) { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "startMultiDoubleTap called with e = [$e]") + } keepInDoubleTapMode() doubleTapControls?.onDoubleTapStarted(getDisplayPortion(e)) @@ -145,8 +148,9 @@ abstract class BasePlayerGestureListener( } fun keepInDoubleTapMode() { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "keepInDoubleTapMode called") + } isDoubleTapping = true doubleTapHandler.removeCallbacksAndMessages(DOUBLE_TAP) @@ -161,8 +165,9 @@ abstract class BasePlayerGestureListener( } fun endMultiDoubleTap() { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "endMultiDoubleTap called") + } isDoubleTapping = false doubleTapHandler.removeCallbacksAndMessages(DOUBLE_TAP) diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt index 435dfc79a..1cd297414 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt @@ -51,15 +51,18 @@ class MainPlayerGestureListener( } override fun onSingleTapConfirmed(e: MotionEvent): Boolean { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "onSingleTapConfirmed() called with: e = [$e]") + } - if (isDoubleTapping) + if (isDoubleTapping) { return true + } super.onSingleTapConfirmed(e) - if (player.currentState != Player.STATE_BLOCKED) + if (player.currentState != Player.STATE_BLOCKED) { onSingleTap() + } return true } diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt index 57dcb6d92..70cfd1e95 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt @@ -205,13 +205,16 @@ class PopupPlayerGestureListener( } override fun onSingleTapConfirmed(e: MotionEvent): Boolean { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "onSingleTapConfirmed() called with: e = [$e]") + } - if (isDoubleTapping) + if (isDoubleTapping) { return true - if (player.exoPlayerIsNull()) + } + if (player.exoPlayerIsNull()) { return false + } onSingleTap() return true diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt index f50337a22..62e8032fd 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt @@ -185,10 +185,11 @@ class MediaBrowserPlaybackPreparer( } val playlistId = path[0].toLong() val index = path[1].toInt() - return if (playlistType == ID_LOCAL) + return if (playlistType == ID_LOCAL) { extractLocalPlayQueue(playlistId, index) - else + } else { extractRemotePlayQueue(playlistId, index) + } } ID_URL -> { diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenException.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenException.kt index 879f8f3e6..683fd48b2 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenException.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenException.kt @@ -6,8 +6,9 @@ class PoTokenException(message: String) : Exception(message) class BadWebViewException(message: String) : Exception(message) fun buildExceptionForJsError(error: String): Exception { - return if (error.contains("SyntaxError")) + return if (error.contains("SyntaxError")) { BadWebViewException(error) - else + } else { PoTokenException(error) + } } diff --git a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt index 877070a91..86e8ce311 100644 --- a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt +++ b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt @@ -52,8 +52,9 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : private var initTap: Boolean = false override fun onDoubleTapStarted(portion: DisplayPortion) { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "onDoubleTapStarted called with portion = [$portion]") + } initTap = false @@ -64,7 +65,7 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : val shouldForward: Boolean = performListener?.getFastSeekDirection(portion)?.directionAsBoolean ?: return - if (DEBUG) + if (DEBUG) { Log.d( TAG, "onDoubleTapProgressDown called with " + @@ -72,6 +73,7 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : "wasForwarding = [$wasForwarding], " + "initTap = [$initTap], " ) + } /* * Check if a initial tap occurred or if direction was switched @@ -97,8 +99,9 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : } override fun onDoubleTapFinished() { - if (DEBUG) + if (DEBUG) { Log.d(TAG, "onDoubleTapFinished called with initTap = [$initTap]") + } if (initTap) performListener?.onDoubleTapEnd() initTap = false From 247cbf3d6f3a920344c5588d8ead5af0ad844c7b Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:46:26 +0800 Subject: [PATCH 39/59] ktlint: Drop non-required violation supressions Signed-off-by: Aayush Gupta --- .editorconfig | 3 --- 1 file changed, 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 8be8d250e..fe250c80a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -30,7 +30,6 @@ ktlint_standard_no-blank-line-in-list = disabled ktlint_standard_no-consecutive-comments = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled ktlint_standard_no-empty-first-line-in-method-block = disabled -ktlint_standard_no-line-break-after-else = disabled ktlint_standard_no-semi = disabled ktlint_standard_no-single-line-block-comment = disabled ktlint_standard_package-name = disabled @@ -42,5 +41,3 @@ ktlint_standard_statement-wrapping = disabled ktlint_standard_string-template-indent = disabled ktlint_standard_trailing-comma-on-call-site = disabled ktlint_standard_trailing-comma-on-declaration-site = disabled -ktlint_standard_try-catch-finally-spacing = disabled -ktlint_standard_when-entry-bracing = disabled From d6f3dee9f465d6da0b59ca56e37f861552c97d1f Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:46:59 +0800 Subject: [PATCH 40/59] ktlint: Drop unused semi-colons Signed-off-by: Aayush Gupta --- .editorconfig | 1 - app/src/main/java/org/schabi/newpipe/error/UserAction.kt | 2 +- .../org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt | 2 +- .../org/schabi/newpipe/settings/ImportAllCombinationsTest.kt | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index fe250c80a..aac610b87 100644 --- a/.editorconfig +++ b/.editorconfig @@ -30,7 +30,6 @@ ktlint_standard_no-blank-line-in-list = disabled ktlint_standard_no-consecutive-comments = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled ktlint_standard_no-empty-first-line-in-method-block = disabled -ktlint_standard_no-semi = disabled ktlint_standard_no-single-line-block-comment = disabled ktlint_standard_package-name = disabled ktlint_standard_parameter-list-wrapping = disabled diff --git a/app/src/main/java/org/schabi/newpipe/error/UserAction.kt b/app/src/main/java/org/schabi/newpipe/error/UserAction.kt index 2d2358310..b3f14e2da 100644 --- a/app/src/main/java/org/schabi/newpipe/error/UserAction.kt +++ b/app/src/main/java/org/schabi/newpipe/error/UserAction.kt @@ -40,5 +40,5 @@ enum class UserAction(val message: String) { OPEN_INFO_ITEM_DIALOG("open info item dialog"), GETTING_MAIN_SCREEN_TAB("getting main screen tab"), PLAY_ON_POPUP("play on popup"), - SUBSCRIPTIONS("loading subscriptions"); + SUBSCRIPTIONS("loading subscriptions") } diff --git a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt index 86e8ce311..4a4f4509c 100644 --- a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt +++ b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt @@ -135,7 +135,7 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : enum class FastSeekDirection(val directionAsBoolean: Boolean?) { NONE(null), FORWARD(true), - BACKWARD(false); + BACKWARD(false) } } diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt index 31f57a37f..314e3c484 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt @@ -21,7 +21,7 @@ class ImportAllCombinationsTest { private enum class Ser(val id: String) { YES("ser"), VULNERABLE("vulnser"), - NO("noser"); + NO("noser") } private data class FailData( From c76d14dfd4806a13158e2e63bf3ba709f1b44b21 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:48:46 +0800 Subject: [PATCH 41/59] ktlint: Drop unused trailing commas Signed-off-by: Aayush Gupta --- .editorconfig | 2 -- .../org/schabi/newpipe/database/FeedDAOTest.kt | 4 ++-- .../local/history/HistoryRecordManagerTest.kt | 12 ++++++------ .../newpipe/util/StreamItemAdapterTest.kt | 2 +- .../org/schabi/newpipe/about/AboutActivity.kt | 2 +- .../org/schabi/newpipe/database/LocalItem.kt | 2 +- .../history/model/SearchHistoryEntry.kt | 2 +- .../history/model/StreamHistoryEntry.kt | 2 +- .../database/playlist/model/PlaylistEntity.kt | 2 +- .../java/org/schabi/newpipe/error/ErrorInfo.kt | 18 +++++++++--------- .../schabi/newpipe/error/ErrorPanelHelper.kt | 2 +- .../feed/notifications/NotificationWorker.kt | 2 +- .../local/feed/service/FeedLoadManager.kt | 4 ++-- .../local/feed/service/FeedLoadState.kt | 2 +- .../local/feed/service/FeedUpdateInfo.kt | 6 +++--- .../local/subscription/SubscriptionFragment.kt | 2 +- .../subscription/item/FeedGroupCardGridItem.kt | 2 +- .../gesture/BasePlayerGestureListener.kt | 2 +- .../gesture/PopupPlayerGestureListener.kt | 2 +- .../player/mediabrowser/MediaBrowserImpl.kt | 12 ++++++------ .../MediaBrowserPlaybackPreparer.kt | 8 ++++---- .../settings/export/ImportExportManager.kt | 4 ++-- .../NotificationModeConfigFragment.kt | 2 +- .../newpipe/util/potoken/PoTokenWebView.kt | 16 ++++++++-------- .../settings/ImportAllCombinationsTest.kt | 4 ++-- 25 files changed, 58 insertions(+), 60 deletions(-) diff --git a/.editorconfig b/.editorconfig index aac610b87..897c1b288 100644 --- a/.editorconfig +++ b/.editorconfig @@ -38,5 +38,3 @@ ktlint_standard_spacing-between-declarations-with-annotations = disabled ktlint_standard_spacing-between-declarations-with-comments = disabled ktlint_standard_statement-wrapping = disabled ktlint_standard_string-template-indent = disabled -ktlint_standard_trailing-comma-on-call-site = disabled -ktlint_standard_trailing-comma-on-declaration-site = disabled diff --git a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt index 80d590f24..5216273a0 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt @@ -111,7 +111,7 @@ class FeedDAOTest { SubscriptionEntity.from(ChannelInfo(serviceId, "1", "https://youtube.com/channel/1", "https://youtube.com/channel/1", "channel-1")), SubscriptionEntity.from(ChannelInfo(serviceId, "2", "https://youtube.com/channel/2", "https://youtube.com/channel/2", "channel-2")), SubscriptionEntity.from(ChannelInfo(serviceId, "3", "https://youtube.com/channel/3", "https://youtube.com/channel/3", "channel-3")), - SubscriptionEntity.from(ChannelInfo(serviceId, "4", "https://youtube.com/channel/4", "https://youtube.com/channel/4", "channel-4")), + SubscriptionEntity.from(ChannelInfo(serviceId, "4", "https://youtube.com/channel/4", "https://youtube.com/channel/4", "channel-4")) ) ) feedDAO.insertAll( @@ -122,7 +122,7 @@ class FeedDAOTest { FeedEntity(4, 2), FeedEntity(5, 2), FeedEntity(6, 3), - FeedEntity(7, 4), + FeedEntity(7, 4) ) ) } diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index c4c93d6d5..06c0fd09c 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -54,7 +54,7 @@ class HistoryRecordManagerTest { SearchHistoryEntry(creationDate = time.minusSeconds(1), serviceId = 0, search = "A"), SearchHistoryEntry(creationDate = time.minusSeconds(2), serviceId = 2, search = "A"), SearchHistoryEntry(creationDate = time.minusSeconds(3), serviceId = 1, search = "B"), - SearchHistoryEntry(creationDate = time.minusSeconds(4), serviceId = 0, search = "B"), + SearchHistoryEntry(creationDate = time.minusSeconds(4), serviceId = 0, search = "B") ) // make sure all 4 were inserted @@ -85,7 +85,7 @@ class HistoryRecordManagerTest { val entries = listOf( SearchHistoryEntry(creationDate = time.minusSeconds(1), serviceId = 1, search = "A"), SearchHistoryEntry(creationDate = time.minusSeconds(2), serviceId = 2, search = "B"), - SearchHistoryEntry(creationDate = time.minusSeconds(3), serviceId = 0, search = "C"), + SearchHistoryEntry(creationDate = time.minusSeconds(3), serviceId = 0, search = "C") ) // make sure all 3 were inserted @@ -121,7 +121,7 @@ class HistoryRecordManagerTest { RELATED_SEARCHES_ENTRIES[6].search, // A (even if in two places) RELATED_SEARCHES_ENTRIES[4].search, // B RELATED_SEARCHES_ENTRIES[5].search, // AA - RELATED_SEARCHES_ENTRIES[2].search, // BA + RELATED_SEARCHES_ENTRIES[2].search // BA ) } @@ -136,7 +136,7 @@ class HistoryRecordManagerTest { SearchHistoryEntry(creationDate = time.minusSeconds(4), serviceId = 3, search = "A"), SearchHistoryEntry(creationDate = time.minusSeconds(3), serviceId = 3, search = "A"), SearchHistoryEntry(creationDate = time.minusSeconds(2), serviceId = 0, search = "A"), - SearchHistoryEntry(creationDate = time.minusSeconds(1), serviceId = 2, search = "AA"), + SearchHistoryEntry(creationDate = time.minusSeconds(1), serviceId = 2, search = "AA") ) insertShuffledRelatedSearches(relatedSearches) @@ -153,7 +153,7 @@ class HistoryRecordManagerTest { assertThat(searches).containsExactly( RELATED_SEARCHES_ENTRIES[6].search, // A (even if in two places) RELATED_SEARCHES_ENTRIES[5].search, // AA - RELATED_SEARCHES_ENTRIES[1].search, // BA + RELATED_SEARCHES_ENTRIES[1].search // BA ) // also make sure that the string comparison is case insensitive @@ -171,7 +171,7 @@ class HistoryRecordManagerTest { SearchHistoryEntry(creationDate = time.minusSeconds(4), serviceId = 3, search = "A"), SearchHistoryEntry(creationDate = time.minusSeconds(2), serviceId = 0, search = "B"), SearchHistoryEntry(creationDate = time.minusSeconds(3), serviceId = 2, search = "AA"), - SearchHistoryEntry(creationDate = time.minusSeconds(1), serviceId = 1, search = "A"), + SearchHistoryEntry(creationDate = time.minusSeconds(1), serviceId = 1, search = "A") ) } } diff --git a/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt b/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt index 9b8ee211e..da23bdfec 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt @@ -292,7 +292,7 @@ class StreamItemAdapterTest { Assert.assertEquals( "normal visibility (pos=[$position]) is not correct", findViewById(R.id.wo_sound_icon).visibility, - normalVisibility, + normalVisibility ) } spinner.adapter.getDropDownView(position, null, spinner).run { diff --git a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt index 826616e59..0bed7ac60 100644 --- a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt +++ b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt @@ -195,7 +195,7 @@ class AboutActivity : AppCompatActivity() { SoftwareComponent( "SearchPreference", "2018", "ByteHamster", "https://github.com/ByteHamster/SearchPreference", StandardLicenses.MIT - ), + ) ) } } diff --git a/app/src/main/java/org/schabi/newpipe/database/LocalItem.kt b/app/src/main/java/org/schabi/newpipe/database/LocalItem.kt index 50529610b..944b247bf 100644 --- a/app/src/main/java/org/schabi/newpipe/database/LocalItem.kt +++ b/app/src/main/java/org/schabi/newpipe/database/LocalItem.kt @@ -14,6 +14,6 @@ interface LocalItem { PLAYLIST_REMOTE_ITEM, PLAYLIST_STREAM_ITEM, - STATISTIC_STREAM_ITEM, + STATISTIC_STREAM_ITEM } } diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt index e6006a069..eee213453 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/SearchHistoryEntry.kt @@ -29,7 +29,7 @@ data class SearchHistoryEntry @JvmOverloads constructor( @ColumnInfo(name = ID) @PrimaryKey(autoGenerate = true) - val id: Long = 0, + val id: Long = 0 ) { @Ignore diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt index ece55269a..57d47d0ac 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt @@ -35,7 +35,7 @@ data class StreamHistoryEntry( streamEntity.serviceId, streamEntity.url, streamEntity.title, - streamEntity.streamType, + streamEntity.streamType ).apply { duration = streamEntity.duration uploaderName = streamEntity.uploader diff --git a/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistEntity.kt b/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistEntity.kt index 4ea4eb3a7..1f1862f4f 100644 --- a/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/playlist/model/PlaylistEntity.kt @@ -37,7 +37,7 @@ data class PlaylistEntity @JvmOverloads constructor( name = item.orderingName, isThumbnailPermanent = item.isThumbnailPermanent!!, thumbnailStreamId = item.thumbnailStreamId!!, - displayIndex = item.displayIndex!!, + displayIndex = item.displayIndex!! ) companion object { diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt index 5056c00e1..2bdea13c0 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt @@ -59,7 +59,7 @@ class ErrorInfo private constructor( * If present, this resource can alternatively be opened in browser (useful if NewPipe is * badly broken). */ - val openInBrowserUrl: String?, + val openInBrowserUrl: String? ) : Parcelable { @JvmOverloads @@ -68,7 +68,7 @@ class ErrorInfo private constructor( userAction: UserAction, request: String, serviceId: Int? = null, - openInBrowserUrl: String? = null, + openInBrowserUrl: String? = null ) : this( throwableToStringList(throwable), userAction, @@ -78,7 +78,7 @@ class ErrorInfo private constructor( isReportable(throwable), isRetryable(throwable), (throwable as? ReCaptchaException)?.url, - openInBrowserUrl, + openInBrowserUrl ) @JvmOverloads @@ -87,7 +87,7 @@ class ErrorInfo private constructor( userAction: UserAction, request: String, serviceId: Int? = null, - openInBrowserUrl: String? = null, + openInBrowserUrl: String? = null ) : this( throwableListToStringList(throwables), userAction, @@ -97,7 +97,7 @@ class ErrorInfo private constructor( throwables.any(::isReportable), throwables.isEmpty() || throwables.any(::isRetryable), throwables.firstNotNullOfOrNull { it as? ReCaptchaException }?.url, - openInBrowserUrl, + openInBrowserUrl ) // constructor to manually build ErrorInfo when no throwable is available @@ -118,7 +118,7 @@ class ErrorInfo private constructor( throwable: Throwable, userAction: UserAction, request: String, - info: Info?, + info: Info? ) : this(throwable, userAction, request, info?.serviceId, info?.url) @@ -127,7 +127,7 @@ class ErrorInfo private constructor( throwables: List, userAction: UserAction, request: String, - info: Info?, + info: Info? ) : this(throwables, userAction, request, info?.serviceId, info?.url) @@ -144,7 +144,7 @@ class ErrorInfo private constructor( class ErrorMessage( @StringRes private val stringRes: Int, - private vararg val formatArgs: String, + private vararg val formatArgs: String ) : Parcelable { fun getString(context: Context): String { return if (formatArgs.isEmpty()) { @@ -174,7 +174,7 @@ class ErrorInfo private constructor( fun getMessage( throwable: Throwable?, action: UserAction?, - serviceId: Int?, + serviceId: Int? ): ErrorMessage { return when { // player exceptions diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt index 9d503a935..023d13e9d 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorPanelHelper.kt @@ -20,7 +20,7 @@ import org.schabi.newpipe.util.external_communication.ShareUtils class ErrorPanelHelper( private val fragment: Fragment, rootView: View, - onRetry: Runnable?, + onRetry: Runnable? ) { private val context: Context = rootView.context!! diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt index 0f66186b8..36be86fcd 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt @@ -31,7 +31,7 @@ import org.schabi.newpipe.local.feed.service.FeedLoadService */ class NotificationWorker( appContext: Context, - workerParams: WorkerParameters, + workerParams: WorkerParameters ) : RxWorker(appContext, workerParams) { private val notificationHelper by lazy { diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt index 0befb3af7..1da3e277b 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt @@ -60,7 +60,7 @@ class FeedLoadManager(private val context: Context) { */ fun startLoading( groupId: Long = FeedGroupEntity.GROUP_ALL_ID, - ignoreOutdatedThreshold: Boolean = false, + ignoreOutdatedThreshold: Boolean = false ): Single>> { val defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context) val useFeedExtractor = defaultSharedPreferences.getBoolean( @@ -234,7 +234,7 @@ class FeedLoadManager(private val context: Context) { subscriptionEntity, originalInfo!!, streams!!, - errors, + errors ) ) } catch (e: Throwable) { diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadState.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadState.kt index 703f593ad..2aedf0925 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadState.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadState.kt @@ -3,5 +3,5 @@ package org.schabi.newpipe.local.feed.service data class FeedLoadState( val updateDescription: String, val maxProgress: Int, - val currentProgress: Int, + val currentProgress: Int ) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedUpdateInfo.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedUpdateInfo.kt index b44eec353..fb4a27913 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedUpdateInfo.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedUpdateInfo.kt @@ -25,13 +25,13 @@ data class FeedUpdateInfo( val description: String?, val subscriberCount: Long?, val streams: List, - val errors: List, + val errors: List ) { constructor( subscription: SubscriptionEntity, info: Info, streams: List, - errors: List, + errors: List ) : this( uid = subscription.uid, notificationMode = subscription.notificationMode, @@ -46,7 +46,7 @@ data class FeedUpdateInfo( description = (info as? ChannelInfo)?.description, subscriberCount = (info as? ChannelInfo)?.subscriberCount, streams = streams, - errors = errors, + errors = errors ) /** diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index 5a69c3b41..f913c845a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -309,7 +309,7 @@ class SubscriptionFragment : BaseStateFragment() { title = getString(R.string.feed_groups_header_title), onSortClicked = ::openReorderDialog, onToggleListViewModeClicked = ::toggleListViewMode, - listViewMode = viewModel.getListViewMode(), + listViewMode = viewModel.getListViewMode() ) add(Section(feedGroupsSortMenuItem, listOf(feedGroupsCarousel))) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardGridItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardGridItem.kt index 5a9d6887b..c78801c03 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardGridItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/FeedGroupCardGridItem.kt @@ -10,7 +10,7 @@ import org.schabi.newpipe.local.subscription.FeedGroupIcon data class FeedGroupCardGridItem( val groupId: Long = FeedGroupEntity.GROUP_ALL_ID, val name: String, - val icon: FeedGroupIcon, + val icon: FeedGroupIcon ) : BindableItem() { constructor (feedGroupEntity: FeedGroupEntity) : this(feedGroupEntity.uid, feedGroupEntity.name, feedGroupEntity.icon) diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt index 36ee5e05e..8682adc43 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/BasePlayerGestureListener.kt @@ -18,7 +18,7 @@ import org.schabi.newpipe.player.ui.VideoPlayerUi * and provides some abstract methods to make it easier separating the logic from the UI. */ abstract class BasePlayerGestureListener( - private val playerUi: VideoPlayerUi, + private val playerUi: VideoPlayerUi ) : GestureDetector.SimpleOnGestureListener(), View.OnTouchListener { protected val player: Player = playerUi.player diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt index 70cfd1e95..60752652e 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/PopupPlayerGestureListener.kt @@ -15,7 +15,7 @@ import org.schabi.newpipe.ktx.animate import org.schabi.newpipe.player.ui.PopupPlayerUi class PopupPlayerGestureListener( - private val playerUi: PopupPlayerUi, + private val playerUi: PopupPlayerUi ) : BasePlayerGestureListener(playerUi) { private var isMoving = false diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt index b2ff4afd4..cc09765f4 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt @@ -47,7 +47,7 @@ import org.schabi.newpipe.util.image.ImageStrategy */ class MediaBrowserImpl( private val context: Context, - notifyChildrenChanged: Consumer, // parentId + notifyChildrenChanged: Consumer // parentId ) { private val packageValidator = PackageValidator(context) private val database = NewPipeDatabase.getInstance(context) @@ -204,12 +204,12 @@ class MediaBrowserImpl( val extras = Bundle() extras.putString( MediaConstants.DESCRIPTION_EXTRAS_KEY_CONTENT_STYLE_GROUP_TITLE, - context.resources.getString(R.string.tab_bookmarks), + context.resources.getString(R.string.tab_bookmarks) ) builder.setExtras(extras) return MediaBrowserCompat.MediaItem( builder.build(), - MediaBrowserCompat.MediaItem.FLAG_BROWSABLE, + MediaBrowserCompat.MediaItem.FLAG_BROWSABLE ) } @@ -266,7 +266,7 @@ class MediaBrowserImpl( private fun createLocalPlaylistStreamMediaItem( playlistId: Long, item: PlaylistStreamEntry, - index: Int, + index: Int ): MediaBrowserCompat.MediaItem { val builder = MediaDescriptionCompat.Builder() builder.setMediaId(createMediaIdForPlaylistIndex(false, playlistId, index)) @@ -283,7 +283,7 @@ class MediaBrowserImpl( private fun createRemotePlaylistStreamMediaItem( playlistId: Long, item: StreamInfoItem, - index: Int, + index: Int ): MediaBrowserCompat.MediaItem { val builder = MediaDescriptionCompat.Builder() builder.setMediaId(createMediaIdForPlaylistIndex(true, playlistId, index)) @@ -303,7 +303,7 @@ class MediaBrowserImpl( private fun createMediaIdForPlaylistIndex( isRemote: Boolean, playlistId: Long, - index: Int, + index: Int ): String { return buildLocalPlaylistItemMediaId(isRemote, playlistId) .appendPath(index.toString()) diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt index 62e8032fd..a76eaf737 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt @@ -51,7 +51,7 @@ class MediaBrowserPlaybackPreparer( private val context: Context, private val setMediaSessionError: BiConsumer, // error string, error code private val clearMediaSessionError: Runnable, - private val onPrepare: Consumer, + private val onPrepare: Consumer ) : PlaybackPreparer { private val database = NewPipeDatabase.getInstance(context) private var disposable: Disposable? = null @@ -172,7 +172,7 @@ class MediaBrowserPlaybackPreparer( private fun extractPlayQueueFromPlaylistMediaId( mediaId: String, path: MutableList, - url: String?, + url: String? ): Single { if (path.isEmpty()) { throw parseError(mediaId) @@ -209,7 +209,7 @@ class MediaBrowserPlaybackPreparer( @Throws(ContentNotAvailableException::class) private fun extractPlayQueueFromHistoryMediaId( mediaId: String, - path: List, + path: List ): Single { if (path.size != 1) { throw parseError(mediaId) @@ -230,7 +230,7 @@ class MediaBrowserPlaybackPreparer( private fun extractPlayQueueFromInfoItemMediaId( mediaId: String, path: List, - url: String, + url: String ): Single { if (path.size != 2) { throw parseError(mediaId) diff --git a/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt b/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt index c9901d277..8154338ce 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt @@ -31,7 +31,7 @@ class ImportExportManager(private val fileLocator: BackupFileLocator) { ZipHelper.addFileToZip( outZip, BackupFileLocator.FILE_NAME_DB, - fileLocator.db.path, + fileLocator.db.path ) // add the legacy vulnerable serialized preferences (will be removed in the future) @@ -78,7 +78,7 @@ class ImportExportManager(private val fileLocator: BackupFileLocator) { val success = ZipHelper.extractFileFromZip( file, BackupFileLocator.FILE_NAME_DB, - fileLocator.db.path, + fileLocator.db.path ) if (success) { diff --git a/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt index 581768c30..097200662 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt @@ -45,7 +45,7 @@ class NotificationModeConfigFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?, + savedInstanceState: Bundle? ): View { _binding = FragmentChannelsNotificationsBinding.inflate(inflater, container, false) return binding.root diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt index d222b1b1e..6ec41fc07 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt @@ -23,7 +23,7 @@ import org.schabi.newpipe.DownloaderImpl class PoTokenWebView private constructor( context: Context, // to be used exactly once only during initialization! - private val generatorEmitter: SingleEmitter, + private val generatorEmitter: SingleEmitter ) : PoTokenGenerator { private val webView = WebView(context) private val disposables = CompositeDisposable() // used only during initialization @@ -93,7 +93,7 @@ class PoTokenWebView private constructor( ), "text/html", "utf-8", - null, + null ) }, this::onInitializationErrorCloseAndCancel @@ -113,7 +113,7 @@ class PoTokenWebView private constructor( makeBotguardServiceRequest( "https://www.youtube.com/api/jnn/v1/Create", - "[ \"$REQUEST_KEY\" ]", + "[ \"$REQUEST_KEY\" ]" ) { responseBody -> val parsedChallengeData = parseChallengeData(responseBody) webView.evaluateJavascript( @@ -156,7 +156,7 @@ class PoTokenWebView private constructor( } makeBotguardServiceRequest( "https://www.youtube.com/api/jnn/v1/GenerateIT", - "[ \"$REQUEST_KEY\", \"$botguardResponse\" ]", + "[ \"$REQUEST_KEY\", \"$botguardResponse\" ]" ) { responseBody -> if (BuildConfig.DEBUG) { Log.d(TAG, "GenerateIT response: $responseBody") @@ -200,7 +200,7 @@ class PoTokenWebView private constructor( $JS_INTERFACE.onObtainPoTokenResult(identifier, poTokenU8String) } catch (error) { $JS_INTERFACE.onObtainPoTokenError(identifier, error + "\n" + error.stack) - }""", + }""" ) {} } } @@ -294,7 +294,7 @@ class PoTokenWebView private constructor( private fun makeBotguardServiceRequest( url: String, data: String, - handleResponseBody: (String) -> Unit, + handleResponseBody: (String) -> Unit ) { disposables.add( Single.fromCallable { @@ -306,7 +306,7 @@ class PoTokenWebView private constructor( "Accept" to listOf("application/json"), "Content-Type" to listOf("application/json+protobuf"), "x-goog-api-key" to listOf(GOOGLE_API_KEY), - "x-user-agent" to listOf("grpc-web-javascript/0.1"), + "x-user-agent" to listOf("grpc-web-javascript/0.1") ), data.toByteArray() ) @@ -385,7 +385,7 @@ class PoTokenWebView private constructor( */ private fun runOnMainThread( emitterIfPostFails: SingleEmitter, - runnable: Runnable, + runnable: Runnable ) { if (!Handler(Looper.getMainLooper()).post(runnable)) { emitterIfPostFails.onError(PoTokenException("Could not run on main thread")) diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt index 314e3c484..b8dbf35dc 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt @@ -29,7 +29,7 @@ class ImportAllCombinationsTest { val containsSer: Ser, val containsJson: Boolean, val filename: String, - val throwable: Throwable, + val throwable: Throwable ) private fun testZipCombination( @@ -37,7 +37,7 @@ class ImportAllCombinationsTest { containsSer: Ser, containsJson: Boolean, filename: String, - runTest: (test: () -> Unit) -> Unit, + runTest: (test: () -> Unit) -> Unit ) { val zipFile = File(classloader.getResource(filename)?.file!!) val zip = Mockito.mock(StoredFileHelper::class.java, Mockito.withSettings().stubOnly()) From 80a543e7ab5ddbcc4dc0e490ed628c55be3ba213 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:55:47 +0800 Subject: [PATCH 42/59] ktlint: Fix violation related to comment placement Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.editorconfig b/.editorconfig index 897c1b288..d2206b4c2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -26,7 +26,6 @@ ktlint_standard_kdoc = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_multiline-expression-wrapping = disabled -ktlint_standard_no-blank-line-in-list = disabled ktlint_standard_no-consecutive-comments = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled ktlint_standard_no-empty-first-line-in-method-block = disabled diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt index cc09765f4..c90d141d7 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt @@ -47,7 +47,8 @@ import org.schabi.newpipe.util.image.ImageStrategy */ class MediaBrowserImpl( private val context: Context, - notifyChildrenChanged: Consumer // parentId + // parentId + notifyChildrenChanged: Consumer ) { private val packageValidator = PackageValidator(context) private val database = NewPipeDatabase.getInstance(context) From c60339fc58ba222dab16393d7dde9be64f4fee82 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:56:28 +0800 Subject: [PATCH 43/59] ktlint: Drop non-required violation supression Signed-off-by: Aayush Gupta --- .editorconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index d2206b4c2..b53c364fa 100644 --- a/.editorconfig +++ b/.editorconfig @@ -36,4 +36,3 @@ ktlint_standard_property-naming = disabled ktlint_standard_spacing-between-declarations-with-annotations = disabled ktlint_standard_spacing-between-declarations-with-comments = disabled ktlint_standard_statement-wrapping = disabled -ktlint_standard_string-template-indent = disabled From 6190db7d2fa2db90b6f00def6fa138c00412f744 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:57:25 +0800 Subject: [PATCH 44/59] ktlint: Fix violations regarding statement wrapping Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../java/org/schabi/newpipe/info_list/StreamSegmentItem.kt | 5 ++++- .../java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt | 1 - .../schabi/newpipe/local/subscription/item/ChannelItem.kt | 5 ++++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index b53c364fa..3a09d1ab5 100644 --- a/.editorconfig +++ b/.editorconfig @@ -35,4 +35,3 @@ ktlint_standard_parameter-list-wrapping = disabled ktlint_standard_property-naming = disabled ktlint_standard_spacing-between-declarations-with-annotations = disabled ktlint_standard_spacing-between-declarations-with-comments = disabled -ktlint_standard_statement-wrapping = disabled diff --git a/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentItem.kt b/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentItem.kt index 1e52d3168..a7ca3bd68 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentItem.kt +++ b/app/src/main/java/org/schabi/newpipe/info_list/StreamSegmentItem.kt @@ -41,7 +41,10 @@ class StreamSegmentItem( viewHolder.root.findViewById(R.id.textViewStartSeconds).text = Localization.getDurationString(item.startTimeSeconds.toLong()) viewHolder.root.setOnClickListener { onClick.onItemClick(this, item.startTimeSeconds) } - viewHolder.root.setOnLongClickListener { onClick.onItemLongClick(this, item.startTimeSeconds); true } + viewHolder.root.setOnLongClickListener { + onClick.onItemLongClick(this, item.startTimeSeconds) + true + } viewHolder.root.isSelected = isSelected } diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt b/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt index 9c7f1ba09..cbe0baec4 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt @@ -64,6 +64,5 @@ private val linkHandler: YoutubeStreamLinkHandlerFactory = YoutubeStreamLinkHand * @return the video id */ private fun getYouTubeId(url: String): String? { - return runCatching { linkHandler.getId(url) }.getOrNull() } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt index bc39dafe6..7946de693 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/ChannelItem.kt @@ -43,7 +43,10 @@ class ChannelItem( gesturesListener?.run { viewHolder.root.setOnClickListener { selected(infoItem) } - viewHolder.root.setOnLongClickListener { held(infoItem); true } + viewHolder.root.setOnLongClickListener { + held(infoItem) + true + } } } From dcb2460c81c61fa0b4346ca2f2b3d5aad8728a2f Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 16:58:49 +0800 Subject: [PATCH 45/59] ktlint: Fix spacing-between-declarations-with-comments violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - app/src/main/java/org/schabi/newpipe/info_list/ItemViewMode.kt | 3 +++ .../java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt | 3 +++ .../org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index 3a09d1ab5..fa8c19f71 100644 --- a/.editorconfig +++ b/.editorconfig @@ -34,4 +34,3 @@ ktlint_standard_package-name = disabled ktlint_standard_parameter-list-wrapping = disabled ktlint_standard_property-naming = disabled ktlint_standard_spacing-between-declarations-with-annotations = disabled -ktlint_standard_spacing-between-declarations-with-comments = disabled diff --git a/app/src/main/java/org/schabi/newpipe/info_list/ItemViewMode.kt b/app/src/main/java/org/schabi/newpipe/info_list/ItemViewMode.kt index 703191bb9..899223afa 100644 --- a/app/src/main/java/org/schabi/newpipe/info_list/ItemViewMode.kt +++ b/app/src/main/java/org/schabi/newpipe/info_list/ItemViewMode.kt @@ -13,14 +13,17 @@ enum class ItemViewMode { * Default mode. */ AUTO, + /** * Full width list item with thumb on the left and two line title & uploader in right. */ LIST, + /** * Grid mode places two cards per row. */ GRID, + /** * A full width card in phone - portrait. */ diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt index 6ec41fc07..9db0e0f59 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt @@ -245,6 +245,7 @@ class PoTokenWebView private constructor( //endregion //region Handling multiple emitters + /** * Adds the ([identifier], [emitter]) pair to the [poTokenEmitters] list. This makes it so that * multiple poToken requests can be generated invparallel, and the results will be notified to @@ -283,6 +284,7 @@ class PoTokenWebView private constructor( //endregion //region Utils + /** * Makes a POST request to [url] with the given [data] by setting the correct headers. Calls * [onInitializationErrorCloseAndCancel] in case of any network errors and also if the response @@ -363,6 +365,7 @@ class PoTokenWebView private constructor( companion object : PoTokenGenerator.Factory { private val TAG = PoTokenWebView::class.simpleName + // Public API key used by BotGuard, which has been got by looking at BotGuard requests private const val GOOGLE_API_KEY = "AIzaSyDyT5W0Jh49F30Pqqtyfdf7pDLFKLJoAnw" // NOSONAR private const val REQUEST_KEY = "O43z0dpjhgX20SCx4KAo" diff --git a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt index 4a4f4509c..cfbb4141c 100644 --- a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt +++ b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt @@ -126,6 +126,7 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : interface PerformListener { fun onDoubleTap() fun onDoubleTapEnd() + /** * Determines if the playback should forward/rewind or do nothing. */ From e86846ba6aed17a364a758a25e8d2fc5ae5ec1cc Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:00:50 +0800 Subject: [PATCH 46/59] ktlint: Fix spacing-between-declarations-with-annotations violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../java/org/schabi/newpipe/settings/export/BackupFileLocator.kt | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index fa8c19f71..4a388f187 100644 --- a/.editorconfig +++ b/.editorconfig @@ -33,4 +33,3 @@ ktlint_standard_no-single-line-block-comment = disabled ktlint_standard_package-name = disabled ktlint_standard_parameter-list-wrapping = disabled ktlint_standard_property-naming = disabled -ktlint_standard_spacing-between-declarations-with-annotations = disabled diff --git a/app/src/main/java/org/schabi/newpipe/settings/export/BackupFileLocator.kt b/app/src/main/java/org/schabi/newpipe/settings/export/BackupFileLocator.kt index c864e4a0d..f44d4f3e2 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/export/BackupFileLocator.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/export/BackupFileLocator.kt @@ -8,6 +8,7 @@ import java.io.File class BackupFileLocator(private val homeDir: File) { companion object { const val FILE_NAME_DB = "newpipe.db" + @Deprecated( "Serializing preferences with Java's ObjectOutputStream is vulnerable to injections", replaceWith = ReplaceWith("FILE_NAME_JSON_PREFS") From ea105e9026417f9734802688398462f0ae55782c Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:01:16 +0800 Subject: [PATCH 47/59] ktlint: Drop non-required violation supressions again Signed-off-by: Aayush Gupta --- .editorconfig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index 4a388f187..3d5399585 100644 --- a/.editorconfig +++ b/.editorconfig @@ -25,11 +25,7 @@ ktlint_standard_indent = disabled ktlint_standard_kdoc = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled -ktlint_standard_multiline-expression-wrapping = disabled -ktlint_standard_no-consecutive-comments = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled ktlint_standard_no-empty-first-line-in-method-block = disabled -ktlint_standard_no-single-line-block-comment = disabled ktlint_standard_package-name = disabled -ktlint_standard_parameter-list-wrapping = disabled ktlint_standard_property-naming = disabled From 555cd3acb7a4103d72b5d5faabd9371880a56378 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:12:44 +0800 Subject: [PATCH 48/59] ktlint: Fix standard_kdoc violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../schabi/newpipe/player/mediabrowser/PackageValidator.kt | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 3d5399585..c902918f0 100644 --- a/.editorconfig +++ b/.editorconfig @@ -22,7 +22,6 @@ ktlint_standard_function-expression-body = disabled ktlint_standard_function-literal = disabled ktlint_standard_function-signature = disabled ktlint_standard_indent = disabled -ktlint_standard_kdoc = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt index c7106003b..0bbc7252d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt @@ -98,14 +98,14 @@ internal class PackageValidator(context: Context) { callingUid == Process.SYSTEM_UID -> true // If the app was signed by the same certificate as the platform itself, also allow it. callerSignature == platformSignature -> true - /** + /* * [MEDIA_CONTENT_CONTROL] permission is only available to system applications, and * while it isn't required to allow these apps to connect to a * [MediaBrowserServiceCompat], allowing this ensures optimal compatability with apps * such as Android TV and the Google Assistant. */ callerPackageInfo.permissions.contains(MEDIA_CONTENT_CONTROL) -> true - /** + /* * If the calling app has a notification listener it is able to retrieve notifications * and can connect to an active [MediaSessionCompat]. * From 1466dd17b19ec2b5ab5abd3602b8e80d649e042c Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:13:44 +0800 Subject: [PATCH 49/59] ktlint: Fix indentation violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt | 2 +- .../main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt | 2 +- .../main/java/org/schabi/newpipe/util/image/ImageStrategy.kt | 2 +- .../org/schabi/newpipe/settings/ImportAllCombinationsTest.kt | 4 ++-- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.editorconfig b/.editorconfig index c902918f0..a0d679c80 100644 --- a/.editorconfig +++ b/.editorconfig @@ -21,7 +21,6 @@ ktlint_standard_enum-wrapping = disabled ktlint_standard_function-expression-body = disabled ktlint_standard_function-literal = disabled ktlint_standard_function-signature = disabled -ktlint_standard_indent = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt index b358a5fd2..7facb5d85 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt @@ -46,7 +46,7 @@ class ErrorUtil { @JvmStatic fun openActivity(context: Context, errorInfo: ErrorInfo) { if (PreferenceManager.getDefaultSharedPreferences(context) - .getBoolean(MainActivity.KEY_IS_IN_BACKGROUND, true) + .getBoolean(MainActivity.KEY_IS_IN_BACKGROUND, true) ) { createNotification(context, errorInfo) } else { diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt index cf0150332..481846a2b 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt @@ -65,7 +65,7 @@ class FeedViewModel( feedDatabaseManager.oldestSubscriptionUpdate(groupId), Function6 { t1: FeedEventManager.Event, t2: Boolean, t3: Boolean, t4: Boolean, - t5: Long, t6: List -> + t5: Long, t6: List -> return@Function6 CombineResultEventHolder(t1, t2, t3, t4, t5, t6.firstOrNull()) } ) diff --git a/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt b/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt index a2a482f4a..b5e17d63e 100644 --- a/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt +++ b/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt @@ -68,7 +68,7 @@ object ImageStrategy { val initialComparator = Comparator // the first step splits the images into groups of resolution levels .comparingInt { i: Image -> - return@comparingInt when (i.estimatedResolutionLevel) { + return@comparingInt when (i.estimatedResolutionLevel) { // avoid unknowns as much as possible ResolutionLevel.UNKNOWN -> 3 diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt index b8dbf35dc..a189640a6 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt @@ -152,7 +152,7 @@ class ImportAllCombinationsTest { for (containsSer in Ser.entries) { for (containsJson in listOf(true, false)) { val filename = "settings/${if (containsDb) "db" else "nodb"}_${ - containsSer.id}_${if (containsJson) "json" else "nojson"}.zip" + containsSer.id}_${if (containsJson) "json" else "nojson"}.zip" testZipCombination(containsDb, containsSer, containsJson, filename) { test -> try { test() @@ -173,7 +173,7 @@ class ImportAllCombinationsTest { for (a in failedAssertions) { println( "Assertion failed with containsDb=${a.containsDb}, containsSer=${ - a.containsSer}, containsJson=${a.containsJson}, filename=${a.filename}:" + a.containsSer}, containsJson=${a.containsJson}, filename=${a.filename}:" ) a.throwable.printStackTrace() println() From 81fd089a321b7800ab4bf41fcf308e37fe66e7c3 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:14:42 +0800 Subject: [PATCH 50/59] ktlint: Fix block comment violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt | 2 +- .../player/mediabrowser/MediaBrowserPlaybackPreparer.kt | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index a0d679c80..3869a05ed 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,7 +16,6 @@ ktlint_standard_blank-line-before-declaration = disabled ktlint_standard_blank-line-between-when-conditions = disabled ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled -ktlint_standard_comment-wrapping = disabled ktlint_standard_enum-wrapping = disabled ktlint_standard_function-expression-body = disabled ktlint_standard_function-literal = disabled diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt index c90d141d7..1e1a2a113 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt @@ -138,7 +138,7 @@ class MediaBrowserImpl( ) } - when (/*val uriType = */path.removeAt(0)) { + when (path.removeAt(0)) { ID_BOOKMARKS -> { if (path.isEmpty()) { return populateBookmarks() diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt index a76eaf737..890c83cfa 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserPlaybackPreparer.kt @@ -146,7 +146,7 @@ class MediaBrowserPlaybackPreparer( throw parseError(mediaId) } - return when (/*val uriType = */path.removeAt(0)) { + return when (path.removeAt(0)) { ID_BOOKMARKS -> extractPlayQueueFromPlaylistMediaId( mediaId, path, @@ -237,7 +237,7 @@ class MediaBrowserPlaybackPreparer( } val serviceId = path[1].toInt() - return when (/*val infoItemType = */infoItemTypeFromString(path[0])) { + return when (infoItemTypeFromString(path[0])) { InfoType.STREAM -> ExtractorHelper.getStreamInfo(serviceId, url, false) .map { SinglePlayQueue(it) } From ff2390b14439e5ff99fa399bd2b2b5a1fc367865 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:16:29 +0800 Subject: [PATCH 51/59] ktlint: Fix enum wrapping violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - app/src/main/java/org/schabi/newpipe/ktx/View.kt | 6 +++++- .../org/schabi/newpipe/player/gesture/DisplayPortion.kt | 6 +++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 3869a05ed..e7c884c15 100644 --- a/.editorconfig +++ b/.editorconfig @@ -16,7 +16,6 @@ ktlint_standard_blank-line-before-declaration = disabled ktlint_standard_blank-line-between-when-conditions = disabled ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled -ktlint_standard_enum-wrapping = disabled ktlint_standard_function-expression-body = disabled ktlint_standard_function-literal = disabled ktlint_standard_function-signature = disabled diff --git a/app/src/main/java/org/schabi/newpipe/ktx/View.kt b/app/src/main/java/org/schabi/newpipe/ktx/View.kt index cf9e4baef..f6d08d143 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/View.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/View.kt @@ -287,5 +287,9 @@ private class HideAndExecOnEndListener(private val view: View, execOnEnd: Runnab } enum class AnimationType { - ALPHA, SCALE_AND_ALPHA, LIGHT_SCALE_AND_ALPHA, SLIDE_AND_ALPHA, LIGHT_SLIDE_AND_ALPHA + ALPHA, + SCALE_AND_ALPHA, + LIGHT_SCALE_AND_ALPHA, + SLIDE_AND_ALPHA, + LIGHT_SLIDE_AND_ALPHA } diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/DisplayPortion.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/DisplayPortion.kt index 684f6d326..c5d483628 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/DisplayPortion.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/DisplayPortion.kt @@ -1,5 +1,9 @@ package org.schabi.newpipe.player.gesture enum class DisplayPortion { - LEFT, MIDDLE, RIGHT, LEFT_HALF, RIGHT_HALF + LEFT, + MIDDLE, + RIGHT, + LEFT_HALF, + RIGHT_HALF } From 9b7874ff51e96133be99d842fbcbe0c84397fa67 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:20:00 +0800 Subject: [PATCH 52/59] ktlint: Fix blank-line-between-when-conditions violations Signed-off-by: Aayush Gupta --- .editorconfig | 2 -- .../org/schabi/newpipe/error/ErrorInfo.kt | 30 +++++++++++++++++++ .../newpipe/local/feed/item/StreamItem.kt | 1 + .../local/feed/service/FeedLoadManager.kt | 3 ++ .../subscription/SubscriptionFragment.kt | 7 +++++ .../local/subscription/SubscriptionManager.kt | 2 ++ .../gesture/MainPlayerGestureListener.kt | 4 +++ .../player/mediabrowser/PackageValidator.kt | 4 +++ .../settings/export/ImportExportManager.kt | 10 +++++++ .../NotificationModeConfigFragment.kt | 1 + .../newpipe/util/image/ImageStrategy.kt | 1 + .../util/potoken/PoTokenProviderImpl.kt | 2 ++ .../text/TimestampLongPressClickableSpan.kt | 2 ++ .../shandian/giga/get/MissionRecoveryInfo.kt | 6 ++++ .../settings/ImportAllCombinationsTest.kt | 2 ++ 15 files changed, 75 insertions(+), 2 deletions(-) diff --git a/.editorconfig b/.editorconfig index e7c884c15..24476d4aa 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,8 +12,6 @@ ktlint_function_naming_ignore_when_annotated_with = Composable ktlint_standard_argument-list-wrapping = disabled ktlint_standard_backing-property-naming = disabled -ktlint_standard_blank-line-before-declaration = disabled -ktlint_standard_blank-line-between-when-conditions = disabled ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled ktlint_standard_function-expression-body = disabled diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt index 2bdea13c0..98cae7b30 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt @@ -193,18 +193,24 @@ class ErrorInfo private constructor( ErrorMessage(R.string.player_http_invalid_status, cause.responseCode.toString()) } } + cause is Loader.UnexpectedLoaderException && cause.cause is ExtractionException -> getMessage(throwable, action, serviceId) + throwable.type == ExoPlaybackException.TYPE_SOURCE -> ErrorMessage(R.string.player_stream_failure) + throwable.type == ExoPlaybackException.TYPE_UNEXPECTED -> ErrorMessage(R.string.player_recoverable_failure) + else -> ErrorMessage(R.string.player_unrecoverable_failure) } } + throwable is FailedMediaSource.FailedMediaSourceException -> getMessage(throwable.cause, action, serviceId) + throwable is PlaybackResolver.ResolverException -> ErrorMessage(R.string.player_stream_failure) @@ -220,34 +226,46 @@ class ErrorInfo private constructor( ) } ?: ErrorMessage(R.string.account_terminated) + throwable is AgeRestrictedContentException -> ErrorMessage(R.string.restricted_video_no_stream) + throwable is GeographicRestrictionException -> ErrorMessage(R.string.georestricted_content) + throwable is PaidContentException -> ErrorMessage(R.string.paid_content) + throwable is PrivateContentException -> ErrorMessage(R.string.private_content) + throwable is SoundCloudGoPlusContentException -> ErrorMessage(R.string.soundcloud_go_plus_content) + throwable is UnsupportedContentInCountryException -> ErrorMessage(R.string.unsupported_content_in_country) + throwable is YoutubeMusicPremiumContentException -> ErrorMessage(R.string.youtube_music_premium_content) + throwable is SignInConfirmNotBotException -> ErrorMessage(R.string.sign_in_confirm_not_bot_error, getServiceName(serviceId)) + throwable is ContentNotAvailableException -> ErrorMessage(R.string.content_not_available) // other extractor exceptions throwable is ContentNotSupportedException -> ErrorMessage(R.string.content_not_supported) + // ReCaptchas will be handled in a special way anyway throwable is ReCaptchaException -> ErrorMessage(R.string.recaptcha_request_toast) + // test this at the end as many exceptions could be a subclass of IOException throwable != null && throwable.isNetworkRelated -> ErrorMessage(R.string.network_error) + // an extraction exception unrelated to the network // is likely an issue with parsing the website throwable is ExtractionException -> @@ -256,16 +274,22 @@ class ErrorInfo private constructor( // user actions (in case the exception is null or unrecognizable) action == UserAction.UI_ERROR -> ErrorMessage(R.string.app_ui_crash) + action == UserAction.REQUESTED_COMMENTS -> ErrorMessage(R.string.error_unable_to_load_comments) + action == UserAction.SUBSCRIPTION_CHANGE -> ErrorMessage(R.string.subscription_change_failed) + action == UserAction.SUBSCRIPTION_UPDATE -> ErrorMessage(R.string.subscription_update_failed) + action == UserAction.LOAD_IMAGE -> ErrorMessage(R.string.could_not_load_thumbnails) + action == UserAction.DOWNLOAD_OPEN_DIALOG -> ErrorMessage(R.string.could_not_setup_download_menu) + else -> ErrorMessage(R.string.error_snackbar_message) } @@ -276,15 +300,19 @@ class ErrorInfo private constructor( // we don't have an exception, so this is a manually built error, which likely // indicates that it's important and is thus reportable null -> true + // the service explicitly said that content is not available (e.g. age restrictions, // video deleted, etc.), there is no use in letting users report it is ContentNotAvailableException -> false + // we know the content is not supported, no need to let the user report it is ContentNotSupportedException -> false + // happens often when there is no internet connection; we don't use // `throwable.isNetworkRelated` since any `IOException` would make that function // return true, but not all `IOException`s are network related is UnknownHostException -> false + // by default, this is an unexpected exception, which the user could report else -> true } @@ -294,8 +322,10 @@ class ErrorInfo private constructor( return when (throwable) { // we know the content is not available, retrying won't help is ContentNotAvailableException -> false + // we know the content is not supported, retrying won't help is ContentNotSupportedException -> false + // by default (including if throwable is null), enable retrying (though the retry // button will be shown only if a way to perform the retry is implemented) else -> true diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt b/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt index a39f31efd..e367961f1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/item/StreamItem.kt @@ -132,6 +132,7 @@ data class StreamItem( viewsAndDate.isEmpty() -> uploadDate!! else -> Localization.concatenateStrings(viewsAndDate, uploadDate) } + else -> viewsAndDate } } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt index 1da3e277b..c60214564 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt @@ -85,9 +85,11 @@ class FeedLoadManager(private val context: Context) { FeedGroupEntity.GROUP_ALL_ID -> feedDatabaseManager.outdatedSubscriptions( outdatedThreshold ) + GROUP_NOTIFICATION_ENABLED -> feedDatabaseManager.outdatedSubscriptionsWithNotificationMode( outdatedThreshold, NotificationMode.ENABLED ) + else -> feedDatabaseManager.outdatedSubscriptionsForGroup(groupId, outdatedThreshold) } @@ -305,6 +307,7 @@ class FeedLoadManager(private val context: Context) { feedDatabaseManager.markAsOutdated(info.uid) } } + notification.isOnError -> { val error = notification.error feedResultsHolder.addError(error!!) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index f913c845a..5a3753dd0 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -276,10 +276,13 @@ class SubscriptionFragment : BaseStateFragment() { when (item) { is FeedGroupCardItem -> NavigationHelper.openFeedFragment(fm, item.groupId, item.name) + is FeedGroupCardGridItem -> NavigationHelper.openFeedFragment(fm, item.groupId, item.name) + is FeedGroupAddNewItem -> FeedGroupDialog.newInstance().show(fm, null) + is FeedGroupAddNewGridItem -> FeedGroupDialog.newInstance().show(fm, null) } @@ -294,6 +297,7 @@ class SubscriptionFragment : BaseStateFragment() { when (item) { is FeedGroupCardItem -> FeedGroupDialog.newInstance(item.groupId).show(fm, null) + is FeedGroupCardGridItem -> FeedGroupDialog.newInstance(item.groupId).show(fm, null) } @@ -344,7 +348,9 @@ class SubscriptionFragment : BaseStateFragment() { 0 -> ShareUtils.shareText( requireContext(), selectedItem.name, selectedItem.url, selectedItem.thumbnails ) + 1 -> ShareUtils.openUrlInBrowser(requireContext(), selectedItem.url) + 2 -> deleteChannel(selectedItem) } } @@ -404,6 +410,7 @@ class SubscriptionFragment : BaseStateFragment() { itemsListState = null } } + is SubscriptionState.ErrorState -> { result.error?.let { showError(ErrorInfo(result.error, UserAction.SOMETHING_ELSE, "Subscriptions")) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt index c0783e812..57ff2a401 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt @@ -43,7 +43,9 @@ class SubscriptionManager(context: Context) { subscriptionTable.getSubscriptionsFiltered(filterQuery) } } + showOnlyUngrouped -> subscriptionTable.getSubscriptionsOnlyUngrouped(currentGroupId) + else -> subscriptionTable.getAll() } } diff --git a/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt b/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt index 1cd297414..7cc9ba224 100644 --- a/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt +++ b/app/src/main/java/org/schabi/newpipe/player/gesture/MainPlayerGestureListener.kt @@ -42,10 +42,12 @@ class MainPlayerGestureListener( v.parent?.requestDisallowInterceptTouchEvent(playerUi.isFullscreen) true } + MotionEvent.ACTION_UP -> { v.parent?.requestDisallowInterceptTouchEvent(false) false } + else -> true } } @@ -198,6 +200,7 @@ class MainPlayerGestureListener( when (PlayerHelper.getActionForRightGestureSide(player.context)) { player.context.getString(R.string.volume_control_key) -> onScrollVolume(distanceY) + player.context.getString(R.string.brightness_control_key) -> onScrollBrightness(distanceY) } @@ -205,6 +208,7 @@ class MainPlayerGestureListener( when (PlayerHelper.getActionForLeftGestureSide(player.context)) { player.context.getString(R.string.volume_control_key) -> onScrollVolume(distanceY) + player.context.getString(R.string.brightness_control_key) -> onScrollBrightness(distanceY) } diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt index 0bbc7252d..c41f1dadd 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt @@ -94,10 +94,13 @@ internal class PackageValidator(context: Context) { val isCallerKnown = when { // If it's our own app making the call, allow it. callingUid == Process.myUid() -> true + // If the system is making the call, allow it. callingUid == Process.SYSTEM_UID -> true + // If the app was signed by the same certificate as the platform itself, also allow it. callerSignature == platformSignature -> true + /* * [MEDIA_CONTENT_CONTROL] permission is only available to system applications, and * while it isn't required to allow these apps to connect to a @@ -105,6 +108,7 @@ internal class PackageValidator(context: Context) { * such as Android TV and the Google Assistant. */ callerPackageInfo.permissions.contains(MEDIA_CONTENT_CONTROL) -> true + /* * If the calling app has a notification listener it is able to retrieve notifications * and can connect to an active [MediaSessionCompat]. diff --git a/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt b/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt index 8154338ce..83cca2e0b 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/export/ImportExportManager.kt @@ -122,10 +122,15 @@ class ImportExportManager(private val fileLocator: BackupFileLocator) { for ((key, value) in entries) { when (value) { is Boolean -> editor.putBoolean(key, value) + is Float -> editor.putFloat(key, value) + is Int -> editor.putInt(key, value) + is Long -> editor.putLong(key, value) + is String -> editor.putString(key, value) + is Set<*> -> { // There are currently only Sets with type String possible @Suppress("UNCHECKED_CAST") @@ -159,10 +164,15 @@ class ImportExportManager(private val fileLocator: BackupFileLocator) { for ((key, value) in jsonObject) { when (value) { is Boolean -> editor.putBoolean(key, value) + is Float -> editor.putFloat(key, value) + is Int -> editor.putInt(key, value) + is Long -> editor.putLong(key, value) + is String -> editor.putString(key, value) + is JsonArray -> { editor.putStringSet(key, value.mapNotNull { e -> e as? String }.toSet()) } diff --git a/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt index 097200662..9dbfa826a 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/notifications/NotificationModeConfigFragment.kt @@ -88,6 +88,7 @@ class NotificationModeConfigFragment : Fragment() { toggleAll() true } + else -> super.onOptionsItemSelected(item) } } diff --git a/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt b/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt index b5e17d63e..c7e94c7f8 100644 --- a/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt +++ b/app/src/main/java/org/schabi/newpipe/util/image/ImageStrategy.kt @@ -92,6 +92,7 @@ object ImageStrategy { // the same number for those. val finalComparator = when (nonNoneQuality) { PreferredImageQuality.NONE -> initialComparator + PreferredImageQuality.LOW -> initialComparator.thenComparingDouble { image -> val pixelCount = estimatePixelCount(image, widthOverHeight) abs(pixelCount - BEST_LOW_H * BEST_LOW_H * widthOverHeight) diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt index 5383a613a..eb1153c7f 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt @@ -37,7 +37,9 @@ object PoTokenProviderImpl : PoTokenProvider { webViewBadImpl = true return null } + null -> throw e + else -> throw cause // includes PoTokenException } } diff --git a/app/src/main/java/org/schabi/newpipe/util/text/TimestampLongPressClickableSpan.kt b/app/src/main/java/org/schabi/newpipe/util/text/TimestampLongPressClickableSpan.kt index a76c5c31a..c99e2f639 100644 --- a/app/src/main/java/org/schabi/newpipe/util/text/TimestampLongPressClickableSpan.kt +++ b/app/src/main/java/org/schabi/newpipe/util/text/TimestampLongPressClickableSpan.kt @@ -53,8 +53,10 @@ class TimestampLongPressClickableSpan( when (relatedInfoService) { ServiceList.YouTube -> return relatedStreamUrl + "&t=" + timestampMatchDTO.seconds() + ServiceList.SoundCloud, ServiceList.MediaCCC -> return relatedStreamUrl + "#t=" + timestampMatchDTO.seconds() + ServiceList.PeerTube -> return relatedStreamUrl + "?start=" + timestampMatchDTO.seconds() } diff --git a/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt b/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt index 712e4ee0b..c145b8506 100644 --- a/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt +++ b/app/src/main/java/us/shandian/giga/get/MissionRecoveryInfo.kt @@ -25,16 +25,19 @@ class MissionRecoveryInfo( isDesired2 = false kind = 'a' } + is VideoStream -> { desired = stream.getResolution() isDesired2 = stream.isVideoOnly() kind = 'v' } + is SubtitlesStream -> { desired = stream.languageTag isDesired2 = stream.isAutoGenerated kind = 's' } + else -> throw RuntimeException("Unknown stream kind") } } @@ -48,14 +51,17 @@ class MissionRecoveryInfo( str.append("audio") info = "bitrate=$desiredBitrate" } + 'v' -> { str.append("video") info = "quality=$desired videoOnly=$isDesired2" } + 's' -> { str.append("subtitles") info = "language=$desired autoGenerated=$isDesired2" } + else -> { info = "" str.append("other") diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt index a189640a6..628c41da4 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt @@ -93,6 +93,7 @@ class ImportAllCombinationsTest { Mockito.verify(editor, Mockito.atLeastOnce()) .putInt(Mockito.anyString(), Mockito.anyInt()) } + Ser.VULNERABLE -> runTest { Assert.assertTrue(ImportExportManager(fileLocator).exportHasSerializedPrefs(zip)) Assert.assertThrows(ClassNotFoundException::class.java) { @@ -102,6 +103,7 @@ class ImportAllCombinationsTest { Mockito.verify(editor, Mockito.never()).clear() Mockito.verify(editor, Mockito.never()).commit() } + Ser.NO -> runTest { Assert.assertFalse(ImportExportManager(fileLocator).exportHasSerializedPrefs(zip)) Assert.assertThrows(IOException::class.java) { From 7d5647b0ba35fc16cc42fa0dbb0d000c40e871b8 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 17:24:58 +0800 Subject: [PATCH 53/59] ktlint: Fix standard_argument-list-wrapping violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../newpipe/database/DatabaseMigrationTest.kt | 42 ++++-- .../schabi/newpipe/database/FeedDAOTest.kt | 21 ++- .../playlist/LocalPlaylistManagerTest.kt | 24 ++- .../newpipe/util/StreamItemAdapterTest.kt | 52 +++++-- .../org/schabi/newpipe/NewVersionWorker.kt | 12 +- .../org/schabi/newpipe/about/AboutActivity.kt | 137 +++++++++++++----- .../schabi/newpipe/about/LicenseFragment.kt | 3 +- .../newpipe/about/LicenseFragmentHelper.kt | 9 +- .../newpipe/database/feed/model/FeedEntity.kt | 8 +- .../feed/model/FeedGroupSubscriptionEntity.kt | 8 +- .../feed/model/FeedLastUpdatedEntity.kt | 4 +- .../database/stream/model/StreamEntity.kt | 8 +- .../main/java/org/schabi/newpipe/ktx/View.kt | 10 +- .../schabi/newpipe/local/feed/FeedFragment.kt | 15 +- .../feed/notifications/NotificationHelper.kt | 4 +- .../local/feed/service/FeedLoadManager.kt | 9 +- .../subscription/SubscriptionFragment.kt | 9 +- .../local/subscription/SubscriptionManager.kt | 3 +- .../subscription/dialog/FeedGroupDialog.kt | 9 +- .../dialog/FeedGroupDialogViewModel.kt | 8 +- .../player/mediabrowser/MediaBrowserImpl.kt | 3 +- .../org/schabi/newpipe/util/FilenameUtils.kt | 6 +- .../schabi/newpipe/util/ReleaseVersionUtil.kt | 3 +- .../views/player/PlayerFastSeekOverlay.kt | 6 +- .../newpipe/views/player/SecondsView.kt | 4 +- .../local/subscription/FeedGroupIconTest.kt | 3 +- .../settings/ImportAllCombinationsTest.kt | 7 +- 28 files changed, 306 insertions(+), 122 deletions(-) diff --git a/.editorconfig b/.editorconfig index 24476d4aa..62ebdafe2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,6 @@ ktlint_code_style = android_studio # https://pinterest.github.io/ktlint/latest/rules/standard/#function-naming ktlint_function_naming_ignore_when_annotated_with = Composable -ktlint_standard_argument-list-wrapping = disabled ktlint_standard_backing-property-naming = disabled ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled diff --git a/app/src/androidTest/java/org/schabi/newpipe/database/DatabaseMigrationTest.kt b/app/src/androidTest/java/org/schabi/newpipe/database/DatabaseMigrationTest.kt index 4327271f4..fd551b7b8 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/database/DatabaseMigrationTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/database/DatabaseMigrationTest.kt @@ -176,28 +176,32 @@ class DatabaseMigrationTest { databaseInV7.run { insert( - "search_history", SQLiteDatabase.CONFLICT_FAIL, + "search_history", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("service_id", serviceId) put("search", defaultSearch1) } ) insert( - "search_history", SQLiteDatabase.CONFLICT_FAIL, + "search_history", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("service_id", serviceId) put("search", defaultSearch2) } ) insert( - "search_history", SQLiteDatabase.CONFLICT_FAIL, + "search_history", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("service_id", otherServiceId) put("search", defaultSearch1) } ) insert( - "search_history", SQLiteDatabase.CONFLICT_FAIL, + "search_history", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("service_id", otherServiceId) put("search", defaultSearch2) @@ -207,13 +211,17 @@ class DatabaseMigrationTest { } testHelper.runMigrationsAndValidate( - AppDatabase.DATABASE_NAME, Migrations.DB_VER_8, - true, Migrations.MIGRATION_7_8 + AppDatabase.DATABASE_NAME, + Migrations.DB_VER_8, + true, + Migrations.MIGRATION_7_8 ) testHelper.runMigrationsAndValidate( - AppDatabase.DATABASE_NAME, Migrations.DB_VER_9, - true, Migrations.MIGRATION_8_9 + AppDatabase.DATABASE_NAME, + Migrations.DB_VER_9, + true, + Migrations.MIGRATION_8_9 ) val migratedDatabaseV8 = getMigratedDatabase() @@ -235,7 +243,8 @@ class DatabaseMigrationTest { val remoteUid2: Long databaseInV8.run { localUid1 = insert( - "playlists", SQLiteDatabase.CONFLICT_FAIL, + "playlists", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("name", DEFAULT_NAME + "1") put("is_thumbnail_permanent", false) @@ -243,7 +252,8 @@ class DatabaseMigrationTest { } ) localUid2 = insert( - "playlists", SQLiteDatabase.CONFLICT_FAIL, + "playlists", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("name", DEFAULT_NAME + "2") put("is_thumbnail_permanent", false) @@ -251,25 +261,29 @@ class DatabaseMigrationTest { } ) delete( - "playlists", "uid = ?", + "playlists", + "uid = ?", Array(1) { localUid1 } ) remoteUid1 = insert( - "remote_playlists", SQLiteDatabase.CONFLICT_FAIL, + "remote_playlists", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("service_id", DEFAULT_SERVICE_ID) put("url", DEFAULT_URL) } ) remoteUid2 = insert( - "remote_playlists", SQLiteDatabase.CONFLICT_FAIL, + "remote_playlists", + SQLiteDatabase.CONFLICT_FAIL, ContentValues().apply { put("service_id", DEFAULT_SECOND_SERVICE_ID) put("url", DEFAULT_SECOND_URL) } ) delete( - "remote_playlists", "uid = ?", + "remote_playlists", + "uid = ?", Array(1) { remoteUid2 } ) close() diff --git a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt index 5216273a0..a61caad06 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/database/FeedDAOTest.kt @@ -40,14 +40,21 @@ class FeedDAOTest { private val stream7 = StreamEntity(7, serviceId, "https://youtube.com/watch?v=7", "stream 7", StreamType.VIDEO_STREAM, 1000, "channel-4", "https://youtube.com/channel/4", "https://i.ytimg.com/vi/1/hqdefault.jpg", 100, "2023-08-10", OffsetDateTime.parse("2023-08-10T00:00:00Z")) private val allStreams = listOf( - stream1, stream2, stream3, stream4, stream5, stream6, stream7 + stream1, + stream2, + stream3, + stream4, + stream5, + stream6, + stream7 ) @Before fun createDb() { val context = ApplicationProvider.getApplicationContext() db = Room.inMemoryDatabaseBuilder( - context, AppDatabase::class.java + context, + AppDatabase::class.java ).build() feedDAO = db.feedDAO() streamDAO = db.streamDAO() @@ -64,7 +71,10 @@ class FeedDAOTest { fun testUnlinkStreamsOlderThan_KeepOne() { setupUnlinkDelete("2023-08-15T00:00:00Z") val streams = feedDAO.getStreams( - FeedGroupEntity.GROUP_ALL_ID, includePlayed = true, includePartiallyPlayed = true, null + FeedGroupEntity.GROUP_ALL_ID, + includePlayed = true, + includePartiallyPlayed = true, + null ) .blockingGet() val allowedStreams = listOf(stream3, stream5, stream6, stream7) @@ -75,7 +85,10 @@ class FeedDAOTest { fun testUnlinkStreamsOlderThan_KeepMultiple() { setupUnlinkDelete("2023-08-01T00:00:00Z") val streams = feedDAO.getStreams( - FeedGroupEntity.GROUP_ALL_ID, includePlayed = true, includePartiallyPlayed = true, null + FeedGroupEntity.GROUP_ALL_ID, + includePlayed = true, + includePartiallyPlayed = true, + null ) .blockingGet() val allowedStreams = listOf(stream3, stream4, stream5, stream6, stream7) diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt index ce3aeb84a..ac9e84228 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/playlist/LocalPlaylistManagerTest.kt @@ -33,8 +33,12 @@ class LocalPlaylistManagerTest { fun createPlaylist() { val NEWPIPE_URL = "https://newpipe.net/" val stream = StreamEntity( - serviceId = 1, url = NEWPIPE_URL, title = "title", - streamType = StreamType.VIDEO_STREAM, duration = 1, uploader = "uploader", + serviceId = 1, + url = NEWPIPE_URL, + title = "title", + streamType = StreamType.VIDEO_STREAM, + duration = 1, + uploader = "uploader", uploaderUrl = NEWPIPE_URL ) @@ -58,14 +62,22 @@ class LocalPlaylistManagerTest { @Test() fun createPlaylist_nonExistentStreamsAreUpserted() { val stream = StreamEntity( - serviceId = 1, url = "https://newpipe.net/", title = "title", - streamType = StreamType.VIDEO_STREAM, duration = 1, uploader = "uploader", + serviceId = 1, + url = "https://newpipe.net/", + title = "title", + streamType = StreamType.VIDEO_STREAM, + duration = 1, + uploader = "uploader", uploaderUrl = "https://newpipe.net/" ) database.streamDAO().insert(stream) val upserted = StreamEntity( - serviceId = 1, url = "https://newpipe.net/2", title = "title2", - streamType = StreamType.VIDEO_STREAM, duration = 1, uploader = "uploader", + serviceId = 1, + url = "https://newpipe.net/2", + title = "title2", + streamType = StreamType.VIDEO_STREAM, + duration = 1, + uploader = "uploader", uploaderUrl = "https://newpipe.net/" ) diff --git a/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt b/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt index da23bdfec..348612249 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt @@ -156,41 +156,51 @@ class StreamItemAdapterTest { helper.assertInvalidResponse(getResponse(mapOf(Pair("content-length", "mp3"))), 0) helper.assertInvalidResponse( - getResponse(mapOf(Pair("Content-Disposition", "filename=\"train.png\""))), 1 + getResponse(mapOf(Pair("Content-Disposition", "filename=\"train.png\""))), + 1 ) helper.assertInvalidResponse( - getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"data.csv\""))), 2 + getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"data.csv\""))), + 2 ) helper.assertInvalidResponse( - getResponse(mapOf(Pair("Content-Disposition", "form-data; filename=\"data.csv\""))), 3 + getResponse(mapOf(Pair("Content-Disposition", "form-data; filename=\"data.csv\""))), + 3 ) helper.assertInvalidResponse( - getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"fieldName\"; filename*=\"filename.jpg\""))), 4 + getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"fieldName\"; filename*=\"filename.jpg\""))), + 4 ) helper.assertValidResponse( getResponse(mapOf(Pair("Content-Disposition", "filename=\"train.ogg\""))), - 5, MediaFormat.OGG + 5, + MediaFormat.OGG ) helper.assertValidResponse( getResponse(mapOf(Pair("Content-Disposition", "some-form-data; filename=\"audio.flac\""))), - 6, MediaFormat.FLAC + 6, + MediaFormat.FLAC ) helper.assertValidResponse( getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"audio.aiff\"; filename=\"audio.aiff\""))), - 7, MediaFormat.AIFF + 7, + MediaFormat.AIFF ) helper.assertValidResponse( getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"alien?\"; filename*=UTF-8''%CE%B1%CE%BB%CE%B9%CF%B5%CE%BD.m4a"))), - 8, MediaFormat.M4A + 8, + MediaFormat.M4A ) helper.assertValidResponse( getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"audio.mp3\"; filename=\"audio.opus\"; filename*=UTF-8''alien.opus"))), - 9, MediaFormat.OPUS + 9, + MediaFormat.OPUS ) helper.assertValidResponse( getResponse(mapOf(Pair("Content-Disposition", "form-data; name=\"audio.mp3\"; filename=\"audio.opus\"; filename*=\"UTF-8''alien.opus\""))), - 10, MediaFormat.OPUS + 10, + MediaFormat.OPUS ) } @@ -213,16 +223,24 @@ class StreamItemAdapterTest { helper.assertInvalidResponse(getResponse(mapOf()), 7) helper.assertValidResponse( - getResponse(mapOf(Pair("Content-Type", "audio/flac"))), 8, MediaFormat.FLAC + getResponse(mapOf(Pair("Content-Type", "audio/flac"))), + 8, + MediaFormat.FLAC ) helper.assertValidResponse( - getResponse(mapOf(Pair("Content-Type", "audio/wav"))), 9, MediaFormat.WAV + getResponse(mapOf(Pair("Content-Type", "audio/wav"))), + 9, + MediaFormat.WAV ) helper.assertValidResponse( - getResponse(mapOf(Pair("Content-Type", "audio/opus"))), 10, MediaFormat.OPUS + getResponse(mapOf(Pair("Content-Type", "audio/opus"))), + 10, + MediaFormat.OPUS ) helper.assertValidResponse( - getResponse(mapOf(Pair("Content-Type", "audio/aiff"))), 11, MediaFormat.AIFF + getResponse(mapOf(Pair("Content-Type", "audio/aiff"))), + 11, + MediaFormat.AIFF ) } @@ -345,7 +363,8 @@ class StreamItemAdapterTest { index: Int ) { assertFalse( - "invalid header returns valid value", retrieveMediaFormat(streams[index], response) + "invalid header returns valid value", + retrieveMediaFormat(streams[index], response) ) assertNull("Media format extracted although stated otherwise", wrapper.getFormat(index)) } @@ -359,7 +378,8 @@ class StreamItemAdapterTest { format: MediaFormat ) { assertTrue( - "header was not recognized", retrieveMediaFormat(streams[index], response) + "header was not recognized", + retrieveMediaFormat(streams[index], response) ) assertEquals("Wrong media format extracted", format, wrapper.getFormat(index)) } diff --git a/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt b/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt index 893aa8d1b..fb48d3f70 100644 --- a/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt +++ b/app/src/main/java/org/schabi/newpipe/NewVersionWorker.kt @@ -46,7 +46,8 @@ class NewVersionWorker( // Show toast stating that the app is up-to-date if the update check was manual. ContextCompat.getMainExecutor(applicationContext).execute { Toast.makeText( - applicationContext, R.string.app_update_unavailable_toast, + applicationContext, + R.string.app_update_unavailable_toast, Toast.LENGTH_SHORT ).show() } @@ -58,7 +59,11 @@ class NewVersionWorker( val intent = Intent(Intent.ACTION_VIEW, apkLocationUrl?.toUri()) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) val pendingIntent = PendingIntentCompat.getActivity( - applicationContext, 0, intent, 0, false + applicationContext, + 0, + intent, + 0, + false ) val channelId = applicationContext.getString(R.string.app_update_notification_channel_id) val notificationBuilder = NotificationCompat.Builder(applicationContext, channelId) @@ -71,7 +76,8 @@ class NewVersionWorker( ) .setContentText( applicationContext.getString( - R.string.app_update_available_notification_text, versionName + R.string.app_update_available_notification_text, + versionName ) ) diff --git a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt index 0bed7ac60..cfb504200 100644 --- a/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt +++ b/app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt @@ -116,85 +116,144 @@ class AboutActivity : AppCompatActivity() { */ private val SOFTWARE_COMPONENTS = arrayListOf( SoftwareComponent( - "ACRA", "2013", "Kevin Gaudin", - "https://github.com/ACRA/acra", StandardLicenses.APACHE2 + "ACRA", + "2013", + "Kevin Gaudin", + "https://github.com/ACRA/acra", + StandardLicenses.APACHE2 ), SoftwareComponent( - "AndroidX", "2005 - 2011", "The Android Open Source Project", - "https://developer.android.com/jetpack", StandardLicenses.APACHE2 + "AndroidX", + "2005 - 2011", + "The Android Open Source Project", + "https://developer.android.com/jetpack", + StandardLicenses.APACHE2 ), SoftwareComponent( - "ExoPlayer", "2014 - 2020", "Google, Inc.", - "https://github.com/google/ExoPlayer", StandardLicenses.APACHE2 + "ExoPlayer", + "2014 - 2020", + "Google, Inc.", + "https://github.com/google/ExoPlayer", + StandardLicenses.APACHE2 ), SoftwareComponent( - "GigaGet", "2014 - 2015", "Peter Cai", - "https://github.com/PaperAirplane-Dev-Team/GigaGet", StandardLicenses.GPL3 + "GigaGet", + "2014 - 2015", + "Peter Cai", + "https://github.com/PaperAirplane-Dev-Team/GigaGet", + StandardLicenses.GPL3 ), SoftwareComponent( - "Groupie", "2016", "Lisa Wray", - "https://github.com/lisawray/groupie", StandardLicenses.MIT + "Groupie", + "2016", + "Lisa Wray", + "https://github.com/lisawray/groupie", + StandardLicenses.MIT ), SoftwareComponent( - "Android-State", "2018", "Evernote", - "https://github.com/Evernote/android-state", StandardLicenses.EPL1 + "Android-State", + "2018", + "Evernote", + "https://github.com/Evernote/android-state", + StandardLicenses.EPL1 ), SoftwareComponent( - "Bridge", "2021", "Livefront", - "https://github.com/livefront/bridge", StandardLicenses.APACHE2 + "Bridge", + "2021", + "Livefront", + "https://github.com/livefront/bridge", + StandardLicenses.APACHE2 ), SoftwareComponent( - "Jsoup", "2009 - 2020", "Jonathan Hedley", - "https://github.com/jhy/jsoup", StandardLicenses.MIT + "Jsoup", + "2009 - 2020", + "Jonathan Hedley", + "https://github.com/jhy/jsoup", + StandardLicenses.MIT ), SoftwareComponent( - "Markwon", "2019", "Dimitry Ivanov", - "https://github.com/noties/Markwon", StandardLicenses.APACHE2 + "Markwon", + "2019", + "Dimitry Ivanov", + "https://github.com/noties/Markwon", + StandardLicenses.APACHE2 ), SoftwareComponent( - "Material Components for Android", "2016 - 2020", "Google, Inc.", + "Material Components for Android", + "2016 - 2020", + "Google, Inc.", "https://github.com/material-components/material-components-android", StandardLicenses.APACHE2 ), SoftwareComponent( - "NewPipe Extractor", "2017 - 2020", "Christian Schabesberger", - "https://github.com/TeamNewPipe/NewPipeExtractor", StandardLicenses.GPL3 + "NewPipe Extractor", + "2017 - 2020", + "Christian Schabesberger", + "https://github.com/TeamNewPipe/NewPipeExtractor", + StandardLicenses.GPL3 ), SoftwareComponent( - "NoNonsense-FilePicker", "2016", "Jonas Kalderstam", - "https://github.com/spacecowboy/NoNonsense-FilePicker", StandardLicenses.MPL2 + "NoNonsense-FilePicker", + "2016", + "Jonas Kalderstam", + "https://github.com/spacecowboy/NoNonsense-FilePicker", + StandardLicenses.MPL2 ), SoftwareComponent( - "OkHttp", "2019", "Square, Inc.", - "https://square.github.io/okhttp/", StandardLicenses.APACHE2 + "OkHttp", + "2019", + "Square, Inc.", + "https://square.github.io/okhttp/", + StandardLicenses.APACHE2 ), SoftwareComponent( - "Picasso", "2013", "Square, Inc.", - "https://square.github.io/picasso/", StandardLicenses.APACHE2 + "Picasso", + "2013", + "Square, Inc.", + "https://square.github.io/picasso/", + StandardLicenses.APACHE2 ), SoftwareComponent( - "PrettyTime", "2012 - 2020", "Lincoln Baxter, III", - "https://github.com/ocpsoft/prettytime", StandardLicenses.APACHE2 + "PrettyTime", + "2012 - 2020", + "Lincoln Baxter, III", + "https://github.com/ocpsoft/prettytime", + StandardLicenses.APACHE2 ), SoftwareComponent( - "ProcessPhoenix", "2015", "Jake Wharton", - "https://github.com/JakeWharton/ProcessPhoenix", StandardLicenses.APACHE2 + "ProcessPhoenix", + "2015", + "Jake Wharton", + "https://github.com/JakeWharton/ProcessPhoenix", + StandardLicenses.APACHE2 ), SoftwareComponent( - "RxAndroid", "2015", "The RxAndroid authors", - "https://github.com/ReactiveX/RxAndroid", StandardLicenses.APACHE2 + "RxAndroid", + "2015", + "The RxAndroid authors", + "https://github.com/ReactiveX/RxAndroid", + StandardLicenses.APACHE2 ), SoftwareComponent( - "RxBinding", "2015", "Jake Wharton", - "https://github.com/JakeWharton/RxBinding", StandardLicenses.APACHE2 + "RxBinding", + "2015", + "Jake Wharton", + "https://github.com/JakeWharton/RxBinding", + StandardLicenses.APACHE2 ), SoftwareComponent( - "RxJava", "2016 - 2020", "RxJava Contributors", - "https://github.com/ReactiveX/RxJava", StandardLicenses.APACHE2 + "RxJava", + "2016 - 2020", + "RxJava Contributors", + "https://github.com/ReactiveX/RxJava", + StandardLicenses.APACHE2 ), SoftwareComponent( - "SearchPreference", "2018", "ByteHamster", - "https://github.com/ByteHamster/SearchPreference", StandardLicenses.MIT + "SearchPreference", + "2018", + "ByteHamster", + "https://github.com/ByteHamster/SearchPreference", + StandardLicenses.MIT ) ) } diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt index 240e2f42b..bd0632c13 100644 --- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt @@ -97,7 +97,8 @@ class LicenseFragment : Fragment() { .observeOn(AndroidSchedulers.mainThread()) .subscribe { formattedLicense -> val webViewData = Base64.encodeToString( - formattedLicense.toByteArray(), Base64.NO_PADDING + formattedLicense.toByteArray(), + Base64.NO_PADDING ) val webView = WebView(context) webView.loadData(webViewData, "text/html; charset=UTF-8", "base64") diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt index a2574ae86..32e4f812f 100644 --- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt +++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt @@ -28,13 +28,16 @@ fun getFormattedLicense(context: Context, license: License): String { fun getLicenseStylesheet(context: Context): String { val isLightTheme = ThemeHelper.isLightThemeSelected(context) val licenseBackgroundColor = getHexRGBColor( - context, if (isLightTheme) R.color.light_license_background_color else R.color.dark_license_background_color + context, + if (isLightTheme) R.color.light_license_background_color else R.color.dark_license_background_color ) val licenseTextColor = getHexRGBColor( - context, if (isLightTheme) R.color.light_license_text_color else R.color.dark_license_text_color + context, + if (isLightTheme) R.color.light_license_text_color else R.color.dark_license_text_color ) val youtubePrimaryColor = getHexRGBColor( - context, if (isLightTheme) R.color.light_youtube_primary_color else R.color.dark_youtube_primary_color + context, + if (isLightTheme) R.color.light_youtube_primary_color else R.color.dark_youtube_primary_color ) return "body{padding:12px 15px;margin:0;background:#$licenseBackgroundColor;color:#$licenseTextColor}" + "a[href]{color:#$youtubePrimaryColor}pre{white-space:pre-wrap}" diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedEntity.kt b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedEntity.kt index beeedc62b..86568bc90 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedEntity.kt @@ -19,13 +19,17 @@ import org.schabi.newpipe.database.subscription.SubscriptionEntity entity = StreamEntity::class, parentColumns = [StreamEntity.STREAM_ID], childColumns = [STREAM_ID], - onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true + onDelete = ForeignKey.CASCADE, + onUpdate = ForeignKey.CASCADE, + deferred = true ), ForeignKey( entity = SubscriptionEntity::class, parentColumns = [SubscriptionEntity.SUBSCRIPTION_UID], childColumns = [SUBSCRIPTION_ID], - onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true + onDelete = ForeignKey.CASCADE, + onUpdate = ForeignKey.CASCADE, + deferred = true ) ] ) diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedGroupSubscriptionEntity.kt b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedGroupSubscriptionEntity.kt index b114a734c..6dac3c89c 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedGroupSubscriptionEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedGroupSubscriptionEntity.kt @@ -18,14 +18,18 @@ import org.schabi.newpipe.database.subscription.SubscriptionEntity entity = FeedGroupEntity::class, parentColumns = [FeedGroupEntity.ID], childColumns = [GROUP_ID], - onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true + onDelete = ForeignKey.CASCADE, + onUpdate = ForeignKey.CASCADE, + deferred = true ), ForeignKey( entity = SubscriptionEntity::class, parentColumns = [SubscriptionEntity.SUBSCRIPTION_UID], childColumns = [SUBSCRIPTION_ID], - onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true + onDelete = ForeignKey.CASCADE, + onUpdate = ForeignKey.CASCADE, + deferred = true ) ] ) diff --git a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt index 51c8c1afa..fc0ee6742 100644 --- a/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/feed/model/FeedLastUpdatedEntity.kt @@ -16,7 +16,9 @@ import org.schabi.newpipe.database.subscription.SubscriptionEntity entity = SubscriptionEntity::class, parentColumns = [SubscriptionEntity.SUBSCRIPTION_UID], childColumns = [SUBSCRIPTION_ID], - onDelete = ForeignKey.CASCADE, onUpdate = ForeignKey.CASCADE, deferred = true + onDelete = ForeignKey.CASCADE, + onUpdate = ForeignKey.CASCADE, + deferred = true ) ] ) diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt b/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt index 4bb34d7b0..067f666b6 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/model/StreamEntity.kt @@ -86,8 +86,12 @@ data class StreamEntity( @Ignore constructor(item: PlayQueueItem) : this( - serviceId = item.serviceId, url = item.url, title = item.title, - streamType = item.streamType, duration = item.duration, uploader = item.uploader, + serviceId = item.serviceId, + url = item.url, + title = item.title, + streamType = item.streamType, + duration = item.duration, + uploader = item.uploader, uploaderUrl = item.uploaderUrl, thumbnailUrl = ImageStrategy.imageListToDbUrl(item.thumbnails) ) diff --git a/app/src/main/java/org/schabi/newpipe/ktx/View.kt b/app/src/main/java/org/schabi/newpipe/ktx/View.kt index f6d08d143..432b974cb 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/View.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/View.kt @@ -43,8 +43,14 @@ fun View.animate( if (DEBUG) { val id = runCatching { resources.getResourceEntryName(id) }.getOrDefault(id.toString()) val msg = String.format( - "%8s → [%s:%s] [%s %s:%s] execOnEnd=%s", enterOrExit, - javaClass.simpleName, id, animationType, duration, delay, execOnEnd + "%8s → [%s:%s] [%s %s:%s] execOnEnd=%s", + enterOrExit, + javaClass.simpleName, + id, + animationType, + duration, + delay, + execOnEnd ) Log.d(TAG, "animate(): $msg") } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index b4b23a503..930998c67 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -390,8 +390,13 @@ class FeedFragment : BaseStateFragment() { if (item is StreamItem && !isRefreshing) { val stream = item.streamWithState.stream NavigationHelper.openVideoDetailFragment( - requireContext(), fm, - stream.serviceId, stream.url, stream.title, null, false + requireContext(), + fm, + stream.serviceId, + stream.url, + stream.title, + null, + false ) } } @@ -503,7 +508,8 @@ class FeedFragment : BaseStateFragment() { ) { val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) val isFastFeedModeEnabled = sharedPreferences.getBoolean( - getString(R.string.feed_use_dedicated_fetch_method_key), false + getString(R.string.feed_use_dedicated_fetch_method_key), + false ) val builder = AlertDialog.Builder(requireContext()) @@ -538,7 +544,8 @@ class FeedFragment : BaseStateFragment() { private fun updateRelativeTimeViews() { updateRefreshViewState() groupAdapter.notifyItemRangeChanged( - 0, groupAdapter.itemCount, + 0, + groupAdapter.itemCount, StreamItem.UPDATE_RELATIVE_TIME ) } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt index 7ce117fcd..d2d16a755 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationHelper.kt @@ -42,7 +42,9 @@ class NotificationHelper(val context: Context) { fun displayNewStreamsNotifications(data: FeedUpdateInfo) { val newStreams = data.newStreams val summary = context.resources.getQuantityString( - R.plurals.new_streams, newStreams.size, newStreams.size + R.plurals.new_streams, + newStreams.size, + newStreams.size ) val summaryBuilder = NotificationCompat.Builder( context, diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt index c60214564..3090a92d4 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadManager.kt @@ -87,7 +87,8 @@ class FeedLoadManager(private val context: Context) { ) GROUP_NOTIFICATION_ENABLED -> feedDatabaseManager.outdatedSubscriptionsWithNotificationMode( - outdatedThreshold, NotificationMode.ENABLED + outdatedThreshold, + NotificationMode.ENABLED ) else -> feedDatabaseManager.outdatedSubscriptionsForGroup(groupId, outdatedThreshold) @@ -188,7 +189,8 @@ class FeedLoadManager(private val context: Context) { val channelInfo = getChannelInfo( subscriptionEntity.serviceId, - subscriptionEntity.url, true + subscriptionEntity.url, + true ) .onErrorReturn(storeOriginalErrorAndRethrow) .blockingGet() @@ -218,7 +220,8 @@ class FeedLoadManager(private val context: Context) { ) { val infoItemsPage = getMoreChannelTabItems( subscriptionEntity.serviceId, - linkHandler, channelTabInfo.nextPage + linkHandler, + channelTabInfo.nextPage ) .blockingGet() diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt index 5a3753dd0..28abe4cf9 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionFragment.kt @@ -346,7 +346,10 @@ class SubscriptionFragment : BaseStateFragment() { val actions = DialogInterface.OnClickListener { _, i -> when (i) { 0 -> ShareUtils.shareText( - requireContext(), selectedItem.name, selectedItem.url, selectedItem.thumbnails + requireContext(), + selectedItem.name, + selectedItem.url, + selectedItem.thumbnails ) 1 -> ShareUtils.openUrlInBrowser(requireContext(), selectedItem.url) @@ -380,7 +383,9 @@ class SubscriptionFragment : BaseStateFragment() { private val listenerChannelItem = object : OnClickGesture { override fun selected(selectedItem: ChannelInfoItem) = NavigationHelper.openChannelFragment( fm, - selectedItem.serviceId, selectedItem.url, selectedItem.name + selectedItem.serviceId, + selectedItem.url, + selectedItem.name ) override fun held(selectedItem: ChannelInfoItem) = showLongTapDialog(selectedItem) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt index 57ff2a401..bc7afe602 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt @@ -37,7 +37,8 @@ class SubscriptionManager(context: Context) { filterQuery.isNotEmpty() -> { return if (showOnlyUngrouped) { subscriptionTable.getSubscriptionsOnlyUngroupedFiltered( - currentGroupId, filterQuery + currentGroupId, + filterQuery ) } else { subscriptionTable.getSubscriptionsFiltered(filterQuery) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index 094b1c17f..ab856278f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -178,8 +178,10 @@ class FeedGroupDialog : DialogFragment(), BackPressable { itemAnimator = null adapter = subscriptionGroupAdapter layoutManager = GridLayoutManager( - requireContext(), subscriptionGroupAdapter.spanCount, - RecyclerView.VERTICAL, false + requireContext(), + subscriptionGroupAdapter.spanCount, + RecyclerView.VERTICAL, + false ).apply { spanSizeLookup = subscriptionGroupAdapter.spanSizeLookup } @@ -387,7 +389,8 @@ class FeedGroupDialog : DialogFragment(), BackPressable { val selectedCount = this.selectedSubscriptions.size val selectedCountText = resources.getQuantityString( R.plurals.feed_group_dialog_selection_count, - selectedCount, selectedCount + selectedCount, + selectedCount ) feedGroupCreateBinding.selectedSubscriptionCountView.text = selectedCountText feedGroupCreateBinding.subscriptionsHeaderInfo.text = selectedCountText diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt index 292bda394..d8eac2492 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialogViewModel.kt @@ -55,7 +55,8 @@ class FeedGroupDialogViewModel( private var subscriptionsDisposable = Flowable .combineLatest( - subscriptionsFlowable, feedDatabaseManager.subscriptionIdsForGroup(groupId) + subscriptionsFlowable, + feedDatabaseManager.subscriptionIdsForGroup(groupId) ) { t1: List, t2: List -> t1 to t2.toSet() } .subscribeOn(Schedulers.io()) .subscribe(mutableSubscriptionsLiveData::postValue) @@ -125,7 +126,10 @@ class FeedGroupDialogViewModel( ) = viewModelFactory { initializer { FeedGroupDialogViewModel( - context.applicationContext, groupId, initialQuery, initialShowOnlyUngrouped + context.applicationContext, + groupId, + initialQuery, + initialShowOnlyUngrouped ) } } diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt index 1e1a2a113..6b59f683a 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/MediaBrowserImpl.kt @@ -90,7 +90,8 @@ class MediaBrowserImpl( val extras = Bundle() extras.putBoolean( - MediaConstants.BROWSER_SERVICE_EXTRAS_KEY_SEARCH_SUPPORTED, true + MediaConstants.BROWSER_SERVICE_EXTRAS_KEY_SEARCH_SUPPORTED, + true ) return MediaBrowserServiceCompat.BrowserRoot(ID_ROOT, extras) } diff --git a/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt b/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt index 6a2d23d21..1237a984b 100644 --- a/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt +++ b/app/src/main/java/org/schabi/newpipe/util/FilenameUtils.kt @@ -31,10 +31,12 @@ object FilenameUtils { val defaultCharset = context.getString(R.string.default_file_charset_value) val replacementChar = sharedPreferences.getStringSafe( - context.getString(R.string.settings_file_replacement_character_key), "_" + context.getString(R.string.settings_file_replacement_character_key), + "_" ) val selectedCharset = sharedPreferences.getStringSafe( - context.getString(R.string.settings_file_charset_key), "" + context.getString(R.string.settings_file_charset_key), + "" ).ifEmpty { defaultCharset } val charset = when (selectedCharset) { diff --git a/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt b/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt index fef7e83c0..bc3849384 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt +++ b/app/src/main/java/org/schabi/newpipe/util/ReleaseVersionUtil.kt @@ -26,7 +26,8 @@ object ReleaseVersionUtil { PackageInfoCompat.hasSignatures(app.packageManager, app.packageName, certificates, false) } catch (e: PackageManager.NameNotFoundException) { createNotification( - app, ErrorInfo(e, UserAction.CHECK_FOR_NEW_APP_VERSION, "Could not find package info") + app, + ErrorInfo(e, UserAction.CHECK_FOR_NEW_APP_VERSION, "Could not find package info") ) false } diff --git a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt index cfbb4141c..08b7df6af 100644 --- a/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt +++ b/app/src/main/java/org/schabi/newpipe/views/player/PlayerFastSeekOverlay.kt @@ -115,8 +115,10 @@ class PlayerFastSeekOverlay(context: Context, attrs: AttributeSet?) : clone(rootConstraintLayout) clear(secondsView.id, if (forward) START else END) connect( - secondsView.id, if (forward) END else START, - PARENT_ID, if (forward) END else START + secondsView.id, + if (forward) END else START, + PARENT_ID, + if (forward) END else START ) secondsView.startAnimation() applyTo(rootConstraintLayout) diff --git a/app/src/main/java/org/schabi/newpipe/views/player/SecondsView.kt b/app/src/main/java/org/schabi/newpipe/views/player/SecondsView.kt index 8472653fb..5e4885129 100644 --- a/app/src/main/java/org/schabi/newpipe/views/player/SecondsView.kt +++ b/app/src/main/java/org/schabi/newpipe/views/player/SecondsView.kt @@ -29,7 +29,9 @@ class SecondsView(context: Context, attrs: AttributeSet?) : LinearLayout(context var seconds: Int = 0 set(value) { binding.tvSeconds.text = context.resources.getQuantityString( - R.plurals.seconds, value, value + R.plurals.seconds, + value, + value ) field = value } diff --git a/app/src/test/java/org/schabi/newpipe/local/subscription/FeedGroupIconTest.kt b/app/src/test/java/org/schabi/newpipe/local/subscription/FeedGroupIconTest.kt index 2fc44d9b7..6db72255b 100644 --- a/app/src/test/java/org/schabi/newpipe/local/subscription/FeedGroupIconTest.kt +++ b/app/src/test/java/org/schabi/newpipe/local/subscription/FeedGroupIconTest.kt @@ -15,7 +15,8 @@ class FeedGroupIconTest { assertEquals( "Gap between ids detected (current item: ${currentIcon.name} - ${currentIcon.id} → should be: $shouldBeId)", - shouldBeId, currentIcon.id + shouldBeId, + currentIcon.id ) } } diff --git a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt index 628c41da4..c7f53f3ac 100644 --- a/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt +++ b/app/src/test/java/org/schabi/newpipe/settings/ImportAllCombinationsTest.kt @@ -161,8 +161,11 @@ class ImportAllCombinationsTest { } catch (e: Throwable) { failedAssertions.add( FailData( - containsDb, containsSer, containsJson, - filename, e + containsDb, + containsSer, + containsJson, + filename, + e ) ) } From 81ddd5a1156daefabca0bf3afbafc3664e2cee63 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 20:47:02 +0800 Subject: [PATCH 54/59] ktlint: Fix no-empty-first-line-in-method-block violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt | 1 - .../java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt | 1 - app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt | 1 - .../java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt | 1 - .../java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt | 1 - 6 files changed, 6 deletions(-) diff --git a/.editorconfig b/.editorconfig index 62ebdafe2..ffd02caf2 100644 --- a/.editorconfig +++ b/.editorconfig @@ -19,6 +19,5 @@ ktlint_standard_function-signature = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_no-empty-first-line-in-class-body = disabled -ktlint_standard_no-empty-first-line-in-method-block = disabled ktlint_standard_package-name = disabled ktlint_standard_property-naming = disabled diff --git a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt index 06c0fd09c..32fb08db0 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/local/history/HistoryRecordManagerTest.kt @@ -98,7 +98,6 @@ class HistoryRecordManagerTest { } private fun insertShuffledRelatedSearches(relatedSearches: Collection) { - // shuffle to make sure the order of items returned by queries depends only on // SearchHistoryEntry.creationDate, not on the actual insertion time, so that we can // verify that the `ORDER BY` clause does its job diff --git a/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt b/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt index 6ef64ec4d..a6ab2c6cc 100644 --- a/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt +++ b/app/src/main/java/org/schabi/newpipe/database/stream/dao/StreamDAO.kt @@ -91,7 +91,6 @@ abstract class StreamDAO : BasicDAO { newerStream.uid = existentMinimalStream.uid if (!StreamTypeUtil.isLiveStream(newerStream.streamType)) { - // Use the existent upload date if the newer stream does not have a better precision // (i.e. is an approximation). This is done to prevent unnecessary changes. val hasBetterPrecision = diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index 930998c67..ac076f1b8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -152,7 +152,6 @@ class FeedFragment : BaseStateFragment() { if (newState == RecyclerView.SCROLL_STATE_IDLE && !recyclerView.canScrollVertically(-1) ) { - if (tryGetNewItemsLoadedButton()?.isVisible == true) { hideNewItemsLoaded(true) } diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt b/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt index cbe0baec4..a6c3561ec 100644 --- a/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt +++ b/app/src/main/java/org/schabi/newpipe/local/playlist/ExportPlaylist.kt @@ -44,7 +44,6 @@ private fun exportJustUrls(playlist: List): String { } private fun exportAsYoutubeTempPlaylist(playlist: List): String { - val videoIDs = playlist.asReversed().asSequence() .mapNotNull { getYouTubeId(it.streamEntity.url) } .take(50) // YouTube limitation: temp playlists can't have more than 50 items diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt index eb1153c7f..12fadb68d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenProviderImpl.kt @@ -60,7 +60,6 @@ object PoTokenProviderImpl : PoTokenProvider { webPoTokenGenerator!!.isExpired() if (shouldRecreate) { - val innertubeClientRequestInfo = InnertubeClientRequestInfo.ofWebClient() innertubeClientRequestInfo.clientInfo.clientVersion = YoutubeParsingHelper.getClientVersion() From eb97366e41143e0c27565560515d3e155fbc7c67 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 20:51:34 +0800 Subject: [PATCH 55/59] ktlint: Drop non-required violation supression Signed-off-by: Aayush Gupta --- .editorconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index ffd02caf2..e86e7585e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -18,6 +18,5 @@ ktlint_standard_function-literal = disabled ktlint_standard_function-signature = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled -ktlint_standard_no-empty-first-line-in-class-body = disabled ktlint_standard_package-name = disabled ktlint_standard_property-naming = disabled From 8c5f13ab5c849ec0c71bc1952e453ec733352148 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 20:53:27 +0800 Subject: [PATCH 56/59] ktlint: Fix function-signature violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../testUtil/TrampolineSchedulerRule.kt | 27 ++++--- .../newpipe/util/StreamItemAdapterTest.kt | 71 +++++++++---------- .../history/model/StreamHistoryEntry.kt | 23 +++--- .../org/schabi/newpipe/error/ErrorInfo.kt | 6 +- .../newpipe/local/feed/FeedViewModel.kt | 15 ++-- .../feed/notifications/NotificationWorker.kt | 5 +- .../local/subscription/SubscriptionManager.kt | 21 +++--- .../player/mediabrowser/PackageValidator.kt | 33 ++++----- .../newpipe/util/potoken/PoTokenWebView.kt | 36 +++++----- 10 files changed, 110 insertions(+), 128 deletions(-) diff --git a/.editorconfig b/.editorconfig index e86e7585e..9b62cec64 100644 --- a/.editorconfig +++ b/.editorconfig @@ -15,7 +15,6 @@ ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled ktlint_standard_function-expression-body = disabled ktlint_standard_function-literal = disabled -ktlint_standard_function-signature = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_package-name = disabled diff --git a/app/src/androidTest/java/org/schabi/newpipe/testUtil/TrampolineSchedulerRule.kt b/app/src/androidTest/java/org/schabi/newpipe/testUtil/TrampolineSchedulerRule.kt index 75f5c6195..8b9f6b752 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/testUtil/TrampolineSchedulerRule.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/testUtil/TrampolineSchedulerRule.kt @@ -17,21 +17,20 @@ class TrampolineSchedulerRule : TestRule { private val scheduler = Schedulers.trampoline() - override fun apply(base: Statement, description: Description): Statement = - object : Statement() { - override fun evaluate() { - try { - RxJavaPlugins.setComputationSchedulerHandler { scheduler } - RxJavaPlugins.setIoSchedulerHandler { scheduler } - RxJavaPlugins.setNewThreadSchedulerHandler { scheduler } - RxJavaPlugins.setSingleSchedulerHandler { scheduler } - RxAndroidPlugins.setInitMainThreadSchedulerHandler { scheduler } + override fun apply(base: Statement, description: Description): Statement = object : Statement() { + override fun evaluate() { + try { + RxJavaPlugins.setComputationSchedulerHandler { scheduler } + RxJavaPlugins.setIoSchedulerHandler { scheduler } + RxJavaPlugins.setNewThreadSchedulerHandler { scheduler } + RxJavaPlugins.setSingleSchedulerHandler { scheduler } + RxAndroidPlugins.setInitMainThreadSchedulerHandler { scheduler } - base.evaluate() - } finally { - RxJavaPlugins.reset() - RxAndroidPlugins.reset() - } + base.evaluate() + } finally { + RxJavaPlugins.reset() + RxAndroidPlugins.reset() } } + } } diff --git a/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt b/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt index 348612249..22c7887f9 100644 --- a/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt +++ b/app/src/androidTest/java/org/schabi/newpipe/util/StreamItemAdapterTest.kt @@ -248,39 +248,37 @@ class StreamItemAdapterTest { * @return a list of video streams, in which their video only property mirrors the provided * [videoOnly] vararg. */ - private fun getVideoStreams(vararg videoOnly: Boolean) = - StreamItemAdapter.StreamInfoWrapper( - videoOnly.map { - VideoStream.Builder() - .setId(Stream.ID_UNKNOWN) - .setContent("https://example.com", true) - .setMediaFormat(MediaFormat.MPEG_4) - .setResolution("720p") - .setIsVideoOnly(it) - .build() - }, - context - ) + private fun getVideoStreams(vararg videoOnly: Boolean) = StreamInfoWrapper( + videoOnly.map { + VideoStream.Builder() + .setId(Stream.ID_UNKNOWN) + .setContent("https://example.com", true) + .setMediaFormat(MediaFormat.MPEG_4) + .setResolution("720p") + .setIsVideoOnly(it) + .build() + }, + context + ) /** * @return a list of audio streams, containing valid and null elements mirroring the provided * [shouldBeValid] vararg. */ - private fun getAudioStreams(vararg shouldBeValid: Boolean) = - getSecondaryStreamsFromList( - shouldBeValid.map { - if (it) { - AudioStream.Builder() - .setId(Stream.ID_UNKNOWN) - .setContent("https://example.com", true) - .setMediaFormat(MediaFormat.OPUS) - .setAverageBitrate(192) - .build() - } else { - null - } + private fun getAudioStreams(vararg shouldBeValid: Boolean) = getSecondaryStreamsFromList( + shouldBeValid.map { + if (it) { + AudioStream.Builder() + .setId(Stream.ID_UNKNOWN) + .setContent("https://example.com", true) + .setMediaFormat(MediaFormat.OPUS) + .setAverageBitrate(192) + .build() + } else { + null } - ) + } + ) private fun getIncompleteAudioStreams(size: Int): List { val list = ArrayList(size) @@ -325,18 +323,17 @@ class StreamItemAdapterTest { /** * Helper function that builds a secondary stream list. */ - private fun getSecondaryStreamsFromList(streams: List) = - SparseArrayCompat?>(streams.size).apply { - streams.forEachIndexed { index, stream -> - val secondaryStreamHelper: SecondaryStreamHelper? = stream?.let { - SecondaryStreamHelper( - StreamItemAdapter.StreamInfoWrapper(streams, context), - it - ) - } - put(index, secondaryStreamHelper) + private fun getSecondaryStreamsFromList(streams: List) = SparseArrayCompat?>(streams.size).apply { + streams.forEachIndexed { index, stream -> + val secondaryStreamHelper: SecondaryStreamHelper? = stream?.let { + SecondaryStreamHelper( + StreamItemAdapter.StreamInfoWrapper(streams, context), + it + ) } + put(index, secondaryStreamHelper) } + } private fun getResponse(headers: Map): Response { val listHeaders = HashMap>() diff --git a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt index 57d47d0ac..816b25c2a 100644 --- a/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt +++ b/app/src/main/java/org/schabi/newpipe/database/history/model/StreamHistoryEntry.kt @@ -30,16 +30,15 @@ data class StreamHistoryEntry( accessDate.isEqual(other.accessDate) } - fun toStreamInfoItem(): StreamInfoItem = - StreamInfoItem( - streamEntity.serviceId, - streamEntity.url, - streamEntity.title, - streamEntity.streamType - ).apply { - duration = streamEntity.duration - uploaderName = streamEntity.uploader - uploaderUrl = streamEntity.uploaderUrl - thumbnails = ImageStrategy.dbUrlToImageList(streamEntity.thumbnailUrl) - } + fun toStreamInfoItem(): StreamInfoItem = StreamInfoItem( + streamEntity.serviceId, + streamEntity.url, + streamEntity.title, + streamEntity.streamType + ).apply { + duration = streamEntity.duration + uploaderName = streamEntity.uploader + uploaderUrl = streamEntity.uploaderUrl + thumbnails = ImageStrategy.dbUrlToImageList(streamEntity.thumbnailUrl) + } } diff --git a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt index 98cae7b30..05f2b34a9 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorInfo.kt @@ -160,16 +160,14 @@ class ErrorInfo private constructor( const val SERVICE_NONE = "" - private fun getServiceName(serviceId: Int?) = - // not using getNameOfServiceById since we want to accept a nullable serviceId and we + private fun getServiceName(serviceId: Int?) = // not using getNameOfServiceById since we want to accept a nullable serviceId and we // want to default to SERVICE_NONE ServiceList.all().firstOrNull { it.serviceId == serviceId }?.serviceInfo?.name ?: SERVICE_NONE fun throwableToStringList(throwable: Throwable) = arrayOf(throwable.stackTraceToString()) - fun throwableListToStringList(throwableList: List) = - throwableList.map { it.stackTraceToString() }.toTypedArray() + fun throwableListToStringList(throwableList: List) = throwableList.map { it.stackTraceToString() }.toTypedArray() fun getMessage( throwable: Throwable?, diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt index 481846a2b..4e50f7bd1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt @@ -151,17 +151,14 @@ class FeedViewModel( fun getShowFutureItemsFromPreferences() = getShowFutureItemsFromPreferences(application) companion object { - private fun getShowPlayedItemsFromPreferences(context: Context) = - PreferenceManager.getDefaultSharedPreferences(context) - .getBoolean(context.getString(R.string.feed_show_watched_items_key), true) + private fun getShowPlayedItemsFromPreferences(context: Context) = PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(context.getString(R.string.feed_show_watched_items_key), true) - private fun getShowPartiallyPlayedItemsFromPreferences(context: Context) = - PreferenceManager.getDefaultSharedPreferences(context) - .getBoolean(context.getString(R.string.feed_show_partially_watched_items_key), true) + private fun getShowPartiallyPlayedItemsFromPreferences(context: Context) = PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(context.getString(R.string.feed_show_partially_watched_items_key), true) - private fun getShowFutureItemsFromPreferences(context: Context) = - PreferenceManager.getDefaultSharedPreferences(context) - .getBoolean(context.getString(R.string.feed_show_future_items_key), true) + private fun getShowFutureItemsFromPreferences(context: Context) = PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(context.getString(R.string.feed_show_future_items_key), true) fun getFactory(context: Context, groupId: Long) = viewModelFactory { initializer { diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt index 36be86fcd..d1fd29945 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/notifications/NotificationWorker.kt @@ -95,9 +95,8 @@ class NotificationWorker( private val TAG = NotificationWorker::class.java.simpleName private const val WORK_TAG = App.PACKAGE_NAME + "_streams_notifications" - private fun areNotificationsEnabled(context: Context) = - NotificationHelper.areNewStreamsNotificationsEnabled(context) && - NotificationHelper.areNotificationsEnabledOnDevice(context) + private fun areNotificationsEnabled(context: Context) = NotificationHelper.areNewStreamsNotificationsEnabled(context) && + NotificationHelper.areNotificationsEnabledOnDevice(context) /** * Schedules a task for the [NotificationWorker] diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt index bc7afe602..2918ad5fb 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/SubscriptionManager.kt @@ -70,19 +70,18 @@ class SubscriptionManager(context: Context) { return listEntities } - fun updateChannelInfo(info: ChannelInfo): Completable = - subscriptionTable.getSubscription(info.serviceId, info.url) - .flatMapCompletable { - Completable.fromRunnable { - it.apply { - name = info.name - avatarUrl = ImageStrategy.imageListToDbUrl(info.avatars) - description = info.description - subscriberCount = info.subscriberCount - } - subscriptionTable.update(it) + fun updateChannelInfo(info: ChannelInfo): Completable = subscriptionTable.getSubscription(info.serviceId, info.url) + .flatMapCompletable { + Completable.fromRunnable { + it.apply { + name = info.name + avatarUrl = ImageStrategy.imageListToDbUrl(info.avatars) + description = info.description + subscriberCount = info.subscriberCount } + subscriptionTable.update(it) } + } fun updateNotificationMode(serviceId: Int, url: String, @NotificationMode mode: Int): Completable { return subscriptionTable().getSubscription(serviceId, url) diff --git a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt index c41f1dadd..05c94e990 100644 --- a/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt +++ b/app/src/main/java/org/schabi/newpipe/player/mediabrowser/PackageValidator.kt @@ -173,11 +173,10 @@ internal class PackageValidator(context: Context) { */ @Suppress("deprecation") @SuppressLint("PackageManagerGetSignatures") - private fun getPackageInfo(callingPackage: String): PackageInfo? = - packageManager.getPackageInfo( - callingPackage, - PackageManager.GET_SIGNATURES or PackageManager.GET_PERMISSIONS - ) + private fun getPackageInfo(callingPackage: String): PackageInfo? = packageManager.getPackageInfo( + callingPackage, + PackageManager.GET_SIGNATURES or PackageManager.GET_PERMISSIONS + ) /** * Gets the signature of a given package's [PackageInfo]. @@ -189,23 +188,21 @@ internal class PackageValidator(context: Context) { * returns `null` as the signature. */ @Suppress("deprecation") - private fun getSignature(packageInfo: PackageInfo): String? = - if (packageInfo.signatures == null || packageInfo.signatures!!.size != 1) { - // Security best practices dictate that an app should be signed with exactly one (1) - // signature. Because of this, if there are multiple signatures, reject it. - null - } else { - val certificate = packageInfo.signatures!![0].toByteArray() - getSignatureSha256(certificate) - } + private fun getSignature(packageInfo: PackageInfo): String? = if (packageInfo.signatures == null || packageInfo.signatures!!.size != 1) { + // Security best practices dictate that an app should be signed with exactly one (1) + // signature. Because of this, if there are multiple signatures, reject it. + null + } else { + val certificate = packageInfo.signatures!![0].toByteArray() + getSignatureSha256(certificate) + } /** * Finds the Android platform signing key signature. This key is never null. */ - private fun getSystemSignature(): String = - getPackageInfo(ANDROID_PLATFORM)?.let { platformInfo -> - getSignature(platformInfo) - } ?: throw IllegalStateException("Platform signature not found") + private fun getSystemSignature(): String = getPackageInfo(ANDROID_PLATFORM)?.let { platformInfo -> + getSignature(platformInfo) + } ?: throw IllegalStateException("Platform signature not found") /** * Creates a SHA-256 signature given a certificate byte array. diff --git a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt index 9db0e0f59..deeef613a 100644 --- a/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt +++ b/app/src/main/java/org/schabi/newpipe/util/potoken/PoTokenWebView.kt @@ -179,16 +179,15 @@ class PoTokenWebView private constructor( //endregion //region Obtaining poTokens - override fun generatePoToken(identifier: String): Single = - Single.create { emitter -> - if (BuildConfig.DEBUG) { - Log.d(TAG, "generatePoToken() called with identifier $identifier") - } - runOnMainThread(emitter) { - addPoTokenEmitter(identifier, emitter) - val u8Identifier = stringToU8(identifier) - webView.evaluateJavascript( - """try { + override fun generatePoToken(identifier: String): Single = Single.create { emitter -> + if (BuildConfig.DEBUG) { + Log.d(TAG, "generatePoToken() called with identifier $identifier") + } + runOnMainThread(emitter) { + addPoTokenEmitter(identifier, emitter) + val u8Identifier = stringToU8(identifier) + webView.evaluateJavascript( + """try { identifier = "$identifier" u8Identifier = $u8Identifier poTokenU8 = obtainPoToken(webPoSignalOutput, integrityToken, u8Identifier) @@ -201,9 +200,9 @@ class PoTokenWebView private constructor( } catch (error) { $JS_INTERFACE.onObtainPoTokenError(identifier, error + "\n" + error.stack) }""" - ) {} - } + ) {} } + } /** * Called by the JavaScript snippet from [generatePoToken] when an error occurs in calling the @@ -373,14 +372,13 @@ class PoTokenWebView private constructor( "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.3" private const val JS_INTERFACE = "PoTokenWebView" - override fun newPoTokenGenerator(context: Context): Single = - Single.create { emitter -> - runOnMainThread(emitter) { - val potWv = PoTokenWebView(context, emitter) - potWv.loadHtmlAndObtainBotguard(context) - emitter.setDisposable(potWv.disposables) - } + override fun newPoTokenGenerator(context: Context): Single = Single.create { emitter -> + runOnMainThread(emitter) { + val potWv = PoTokenWebView(context, emitter) + potWv.loadHtmlAndObtainBotguard(context) + emitter.setDisposable(potWv.disposables) } + } /** * Runs [runnable] on the main thread using `Handler(Looper.getMainLooper()).post()`, and From 6b2a1cedef74c65f091027945a08a23bfba9bc9e Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 20:55:36 +0800 Subject: [PATCH 57/59] ktlint: Fix function-literal violations Signed-off-by: Aayush Gupta --- .editorconfig | 1 - .../org/schabi/newpipe/local/feed/FeedViewModel.kt | 10 ++++++++-- .../newpipe/local/feed/service/FeedLoadService.kt | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.editorconfig b/.editorconfig index 9b62cec64..dd54b4355 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,7 +14,6 @@ ktlint_standard_backing-property-naming = disabled ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled ktlint_standard_function-expression-body = disabled -ktlint_standard_function-literal = disabled ktlint_standard_max-line-length = disabled ktlint_standard_mixed-condition-operators = disabled ktlint_standard_package-name = disabled diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt index 4e50f7bd1..7e781b30f 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt @@ -64,8 +64,14 @@ class FeedViewModel( feedDatabaseManager.notLoadedCount(groupId), feedDatabaseManager.oldestSubscriptionUpdate(groupId), - Function6 { t1: FeedEventManager.Event, t2: Boolean, t3: Boolean, t4: Boolean, - t5: Long, t6: List -> + Function6 { + t1: FeedEventManager.Event, + t2: Boolean, + t3: Boolean, + t4: Boolean, + t5: Long, + t6: List + -> return@Function6 CombineResultEventHolder(t1, t2, t3, t4, t5, t6.firstOrNull()) } ) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt index b4af67e6a..48ad5df94 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt @@ -94,7 +94,8 @@ class FeedLoadService : Service() { .doOnSubscribe { startForeground(NOTIFICATION_ID, notificationBuilder.build()) } - .subscribe { _, error: Throwable? -> // explicitly mark error as nullable + .subscribe { _, error: Throwable? -> + // explicitly mark error as nullable if (error != null) { Log.e(TAG, "Error while storing result", error) handleError(error) From 8ac8424cab5f924df34b1ec65612e8505a43f7e9 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 21 Jan 2026 20:56:42 +0800 Subject: [PATCH 58/59] ktlint: Drop unused chain-method-continuation violation supression Signed-off-by: Aayush Gupta --- .editorconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index dd54b4355..da6d5442d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,7 +11,6 @@ ktlint_code_style = android_studio ktlint_function_naming_ignore_when_annotated_with = Composable ktlint_standard_backing-property-naming = disabled -ktlint_standard_chain-method-continuation = disabled ktlint_standard_class-signature = disabled ktlint_standard_function-expression-body = disabled ktlint_standard_max-line-length = disabled From 2fd2822053b33247c047c5481a5f69fb36f37d1d Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 22 Jan 2026 17:30:15 +0800 Subject: [PATCH 59/59] ktlint: Drop non-required backing-property-naming supression Signed-off-by: Aayush Gupta --- .editorconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/.editorconfig b/.editorconfig index da6d5442d..b34abfa11 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,6 @@ ktlint_code_style = android_studio # https://pinterest.github.io/ktlint/latest/rules/standard/#function-naming ktlint_function_naming_ignore_when_annotated_with = Composable -ktlint_standard_backing-property-naming = disabled ktlint_standard_class-signature = disabled ktlint_standard_function-expression-body = disabled ktlint_standard_max-line-length = disabled