mirror of
https://github.com/TeamNewPipe/NewPipe.git
synced 2024-11-22 11:02:35 +01:00
Merge pull request #9850 from Stypox/fix-api33-links-again3
[Android 11+] Correctly open URLs in browser and fix opening downloads and external players
This commit is contained in:
commit
4b050c0dd8
@ -15,7 +15,7 @@
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<data android:scheme="http|https|market" />
|
||||
<data android:scheme="http" />
|
||||
</intent>
|
||||
</queries>
|
||||
|
||||
|
@ -6,6 +6,7 @@ import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
@ -57,13 +58,9 @@ class AboutActivity : AppCompatActivity() {
|
||||
* A placeholder fragment containing a simple view.
|
||||
*/
|
||||
class AboutFragment : Fragment() {
|
||||
private fun Button.openLink(url: Int) {
|
||||
private fun Button.openLink(@StringRes url: Int) {
|
||||
setOnClickListener {
|
||||
ShareUtils.openUrlInBrowser(
|
||||
context,
|
||||
requireContext().getString(url),
|
||||
false
|
||||
)
|
||||
ShareUtils.openUrlInApp(context, requireContext().getString(url))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ fun showLicense(context: Context?, component: SoftwareComponent): Disposable {
|
||||
dialog.dismiss()
|
||||
}
|
||||
setNeutralButton(R.string.open_website_license) { _, _ ->
|
||||
ShareUtils.openUrlInBrowser(context!!, component.link)
|
||||
ShareUtils.openUrlInApp(context!!, component.link)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ public class ErrorActivity extends AppCompatActivity {
|
||||
.setMessage(R.string.start_accept_privacy_policy)
|
||||
.setCancelable(false)
|
||||
.setNeutralButton(R.string.read_privacy_policy, (dialog, which) ->
|
||||
ShareUtils.openUrlInBrowser(context,
|
||||
ShareUtils.openUrlInApp(context,
|
||||
context.getString(R.string.privacy_policy_url)))
|
||||
.setPositiveButton(R.string.accept, (dialog, which) -> {
|
||||
if (action.equals("EMAIL")) { // send on email
|
||||
@ -171,9 +171,9 @@ public class ErrorActivity extends AppCompatActivity {
|
||||
+ getString(R.string.app_name) + " "
|
||||
+ BuildConfig.VERSION_NAME)
|
||||
.putExtra(Intent.EXTRA_TEXT, buildJson());
|
||||
ShareUtils.openIntentInApp(context, i, true);
|
||||
ShareUtils.openIntentInApp(context, i);
|
||||
} else if (action.equals("GITHUB")) { // open the NewPipe issue page on GitHub
|
||||
ShareUtils.openUrlInBrowser(this, ERROR_GITHUB_ISSUE_URL, false);
|
||||
ShareUtils.openUrlInApp(this, ERROR_GITHUB_ISSUE_URL);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(R.string.decline, (dialog, which) -> {
|
||||
|
@ -156,7 +156,7 @@ class ErrorPanelHelper(
|
||||
) {
|
||||
errorOpenInBrowserButton.isVisible = true
|
||||
errorOpenInBrowserButton.setOnClickListener {
|
||||
ShareUtils.openUrlInBrowser(context, errorInfo.request, true)
|
||||
ShareUtils.openUrlInBrowser(context, errorInfo.request)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,6 @@ import static org.schabi.newpipe.player.playqueue.PlayQueueItem.RECOVERY_UNSET;
|
||||
import static org.schabi.newpipe.util.ExtractorHelper.showMetaInfoInTextView;
|
||||
import static org.schabi.newpipe.util.ListHelper.getUrlAndNonTorrentStreams;
|
||||
import static org.schabi.newpipe.util.NavigationHelper.openPlayQueue;
|
||||
import static org.schabi.newpipe.util.NavigationHelper.playWithKore;
|
||||
|
||||
import android.animation.ValueAnimator;
|
||||
import android.annotation.SuppressLint;
|
||||
@ -485,16 +484,8 @@ public final class VideoDetailFragment
|
||||
info.getThumbnailUrl())));
|
||||
binding.detailControlsOpenInBrowser.setOnClickListener(makeOnClickListener(info ->
|
||||
ShareUtils.openUrlInBrowser(requireContext(), info.getUrl())));
|
||||
binding.detailControlsPlayWithKodi.setOnClickListener(makeOnClickListener(info -> {
|
||||
try {
|
||||
playWithKore(requireContext(), Uri.parse(info.getUrl()));
|
||||
} catch (final Exception e) {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "Failed to start kore", e);
|
||||
}
|
||||
KoreUtils.showInstallKoreDialog(requireContext());
|
||||
}
|
||||
}));
|
||||
binding.detailControlsPlayWithKodi.setOnClickListener(makeOnClickListener(info ->
|
||||
KoreUtils.playWithKore(requireContext(), Uri.parse(info.getUrl()))));
|
||||
if (DEBUG) {
|
||||
binding.detailControlsCrashThePlayer.setOnClickListener(v ->
|
||||
VideoDetailPlayerCrasher.onCrashThePlayer(requireContext(), player));
|
||||
|
@ -204,8 +204,7 @@ public class ChannelFragment extends BaseListInfoFragment<StreamInfoItem, Channe
|
||||
break;
|
||||
case R.id.menu_item_rss:
|
||||
if (currentInfo != null) {
|
||||
ShareUtils.openUrlInBrowser(
|
||||
requireContext(), currentInfo.getFeedUrl(), false);
|
||||
ShareUtils.openUrlInApp(requireContext(), currentInfo.getFeedUrl());
|
||||
}
|
||||
break;
|
||||
case R.id.menu_item_openInBrowser:
|
||||
|
@ -99,14 +99,8 @@ public enum StreamDialogDefaultEntry {
|
||||
)
|
||||
),
|
||||
|
||||
PLAY_WITH_KODI(R.string.play_with_kodi_title, (fragment, item) -> {
|
||||
final Uri videoUrl = Uri.parse(item.getUrl());
|
||||
try {
|
||||
NavigationHelper.playWithKore(fragment.requireContext(), videoUrl);
|
||||
} catch (final Exception e) {
|
||||
KoreUtils.showInstallKoreDialog(fragment.requireActivity());
|
||||
}
|
||||
}),
|
||||
PLAY_WITH_KODI(R.string.play_with_kodi_title, (fragment, item) ->
|
||||
KoreUtils.playWithKore(fragment.requireContext(), Uri.parse(item.getUrl()))),
|
||||
|
||||
SHARE(R.string.share, (fragment, item) ->
|
||||
ShareUtils.shareText(fragment.requireContext(), item.getName(), item.getUrl(),
|
||||
|
@ -1420,14 +1420,7 @@ public abstract class VideoPlayerUi extends PlayerUi implements SeekBar.OnSeekBa
|
||||
private void onPlayWithKodiClicked() {
|
||||
if (player.getCurrentMetadata() != null) {
|
||||
player.pause();
|
||||
try {
|
||||
NavigationHelper.playWithKore(context, Uri.parse(player.getVideoUrl()));
|
||||
} catch (final Exception e) {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "Failed to start kore", e);
|
||||
}
|
||||
KoreUtils.showInstallKoreDialog(player.getContext());
|
||||
}
|
||||
KoreUtils.playWithKore(context, Uri.parse(player.getVideoUrl()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
package org.schabi.newpipe.util;
|
||||
|
||||
import static org.schabi.newpipe.util.external_communication.ShareUtils.installApp;
|
||||
import static org.schabi.newpipe.util.ListHelper.getUrlAndNonTorrentStreams;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
@ -50,9 +50,9 @@ import org.schabi.newpipe.local.history.StatisticsPlaylistFragment;
|
||||
import org.schabi.newpipe.local.playlist.LocalPlaylistFragment;
|
||||
import org.schabi.newpipe.local.subscription.SubscriptionFragment;
|
||||
import org.schabi.newpipe.local.subscription.SubscriptionsImportFragment;
|
||||
import org.schabi.newpipe.player.PlayerService;
|
||||
import org.schabi.newpipe.player.PlayQueueActivity;
|
||||
import org.schabi.newpipe.player.Player;
|
||||
import org.schabi.newpipe.player.PlayerService;
|
||||
import org.schabi.newpipe.player.PlayerType;
|
||||
import org.schabi.newpipe.player.helper.PlayerHelper;
|
||||
import org.schabi.newpipe.player.helper.PlayerHolder;
|
||||
@ -63,8 +63,6 @@ import org.schabi.newpipe.util.external_communication.ShareUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.schabi.newpipe.util.ListHelper.getUrlAndNonTorrentStreams;
|
||||
|
||||
public final class NavigationHelper {
|
||||
public static final String MAIN_FRAGMENT_TAG = "main_fragment_tag";
|
||||
public static final String SEARCH_FRAGMENT_TAG = "search_fragment_tag";
|
||||
@ -323,15 +321,13 @@ public final class NavigationHelper {
|
||||
|
||||
public static void resolveActivityOrAskToInstall(@NonNull final Context context,
|
||||
@NonNull final Intent intent) {
|
||||
if (intent.resolveActivity(context.getPackageManager()) != null) {
|
||||
ShareUtils.openIntentInApp(context, intent, false);
|
||||
} else {
|
||||
if (!ShareUtils.tryOpenIntentInApp(context, intent)) {
|
||||
if (context instanceof Activity) {
|
||||
new AlertDialog.Builder(context)
|
||||
.setMessage(R.string.no_player_found)
|
||||
.setPositiveButton(R.string.install,
|
||||
(dialog, which) -> ShareUtils.openUrlInBrowser(context,
|
||||
context.getString(R.string.fdroid_vlc_url), false))
|
||||
(dialog, which) -> ShareUtils.installApp(context,
|
||||
context.getString(R.string.vlc_package)))
|
||||
.setNegativeButton(R.string.cancel, (dialog, which)
|
||||
-> Log.i("NavigationHelper", "You unlocked a secret unicorn."))
|
||||
.show();
|
||||
@ -684,34 +680,6 @@ public final class NavigationHelper {
|
||||
return getOpenIntent(context, url, serviceId, StreamingService.LinkType.CHANNEL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Start an activity to install Kore.
|
||||
*
|
||||
* @param context the context
|
||||
*/
|
||||
public static void installKore(final Context context) {
|
||||
installApp(context, context.getString(R.string.kore_package));
|
||||
}
|
||||
|
||||
/**
|
||||
* Start Kore app to show a video on Kodi.
|
||||
* <p>
|
||||
* For a list of supported urls see the
|
||||
* <a href="https://github.com/xbmc/Kore/blob/master/app/src/main/AndroidManifest.xml">
|
||||
* Kore source code
|
||||
* </a>.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param videoURL the url to the video
|
||||
*/
|
||||
public static void playWithKore(final Context context, final Uri videoURL) {
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setPackage(context.getString(R.string.kore_package));
|
||||
intent.setData(videoURL);
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Finish this <code>Activity</code> as well as all <code>Activities</code> running below it
|
||||
* and then start <code>MainActivity</code>.
|
||||
|
@ -1,6 +1,11 @@
|
||||
package org.schabi.newpipe.util.external_communication;
|
||||
|
||||
import static org.schabi.newpipe.util.external_communication.ShareUtils.installApp;
|
||||
import static org.schabi.newpipe.util.external_communication.ShareUtils.tryOpenIntentInApp;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
@ -8,7 +13,6 @@ import androidx.preference.PreferenceManager;
|
||||
|
||||
import org.schabi.newpipe.R;
|
||||
import org.schabi.newpipe.extractor.ServiceList;
|
||||
import org.schabi.newpipe.util.NavigationHelper;
|
||||
|
||||
/**
|
||||
* Util class that provides methods which are related to the Kodi Media Center and its Kore app.
|
||||
@ -29,13 +33,39 @@ public final class KoreUtils {
|
||||
.getBoolean(context.getString(R.string.show_play_with_kodi_key), false);
|
||||
}
|
||||
|
||||
public static void showInstallKoreDialog(@NonNull final Context context) {
|
||||
/**
|
||||
* Start an activity to install Kore.
|
||||
*
|
||||
* @param context the context to use
|
||||
*/
|
||||
public static void installKore(final Context context) {
|
||||
installApp(context, context.getString(R.string.kore_package));
|
||||
}
|
||||
|
||||
/**
|
||||
* Start Kore app to show a video on Kodi, and if the app is not installed ask the user to
|
||||
* install it.
|
||||
* <p>
|
||||
* For a list of supported urls see the
|
||||
* <a href="https://github.com/xbmc/Kore/blob/master/app/src/main/AndroidManifest.xml">
|
||||
* Kore source code
|
||||
* </a>.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param streamUrl the url to the stream to play
|
||||
*/
|
||||
public static void playWithKore(final Context context, final Uri streamUrl) {
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW)
|
||||
.setPackage(context.getString(R.string.kore_package))
|
||||
.setData(streamUrl)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
if (!tryOpenIntentInApp(context, intent)) {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
builder.setMessage(R.string.kore_not_found)
|
||||
.setPositiveButton(R.string.install, (dialog, which) ->
|
||||
NavigationHelper.installKore(context))
|
||||
.setNegativeButton(R.string.cancel, (dialog, which) -> {
|
||||
});
|
||||
.setPositiveButton(R.string.install, (dialog, which) -> installKore(context))
|
||||
.setNegativeButton(R.string.cancel, (dialog, which) -> { });
|
||||
builder.create().show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,60 +41,67 @@ public final class ShareUtils {
|
||||
* second param (a system chooser will be opened if there are multiple markets and no default)
|
||||
* and falls back to Google Play Store web URL if no app to handle the market scheme was found.
|
||||
* <p>
|
||||
* It uses {@link #openIntentInApp(Context, Intent, boolean)} to open market scheme
|
||||
* and {@link #openUrlInBrowser(Context, String, boolean)} to open Google Play Store
|
||||
* web URL with false for the boolean param.
|
||||
* It uses {@link #openIntentInApp(Context, Intent)} to open market scheme and {@link
|
||||
* #openUrlInBrowser(Context, String)} to open Google Play Store web URL.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param packageId the package id of the app to be installed
|
||||
*/
|
||||
public static void installApp(@NonNull final Context context, final String packageId) {
|
||||
// Try market scheme
|
||||
final boolean marketSchemeResult = openIntentInApp(context, new Intent(Intent.ACTION_VIEW,
|
||||
final Intent marketSchemeIntent = new Intent(Intent.ACTION_VIEW,
|
||||
Uri.parse("market://details?id=" + packageId))
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK), false);
|
||||
if (!marketSchemeResult) {
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
if (!tryOpenIntentInApp(context, marketSchemeIntent)) {
|
||||
// Fall back to Google Play Store Web URL (F-Droid can handle it)
|
||||
openUrlInBrowser(context,
|
||||
"https://play.google.com/store/apps/details?id=" + packageId, false);
|
||||
openUrlInApp(context, "https://play.google.com/store/apps/details?id=" + packageId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Open the url with the system default browser.
|
||||
* Open the url with the system default browser. If no browser is set as default, falls back to
|
||||
* {@link #openAppChooser(Context, Intent, boolean)}.
|
||||
* <p>
|
||||
* If no browser is set as default, fallbacks to
|
||||
* {@link #openAppChooser(Context, Intent, boolean)}
|
||||
* This function selects the package to open based on which apps respond to the {@code http://}
|
||||
* schema alone, which should exclude special non-browser apps that are can handle the url (e.g.
|
||||
* the official YouTube app).
|
||||
* <p>
|
||||
* Therefore <b>please prefer {@link #openUrlInApp(Context, String)}</b>, that handles package
|
||||
* resolution in a standard way, unless this is the action of an explicit "Open in browser"
|
||||
* button.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param url the url to browse
|
||||
* @param httpDefaultBrowserTest the boolean to set if the test for the default browser will be
|
||||
* for HTTP protocol or for the created intent
|
||||
* @return true if the URL can be opened or false if it cannot
|
||||
*/
|
||||
public static boolean openUrlInBrowser(@NonNull final Context context,
|
||||
final String url,
|
||||
final boolean httpDefaultBrowserTest) {
|
||||
final String defaultPackageName;
|
||||
**/
|
||||
public static void openUrlInBrowser(@NonNull final Context context, final String url) {
|
||||
// Resolve using a generic http://, so we are sure to get a browser and not e.g. the yt app.
|
||||
// Note that this requires the `http` schema to be added to `<queries>` in the manifest.
|
||||
final ResolveInfo defaultBrowserInfo;
|
||||
final Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://"));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
defaultBrowserInfo = context.getPackageManager().resolveActivity(browserIntent,
|
||||
PackageManager.ResolveInfoFlags.of(PackageManager.MATCH_DEFAULT_ONLY));
|
||||
} else {
|
||||
defaultBrowserInfo = context.getPackageManager().resolveActivity(browserIntent,
|
||||
PackageManager.MATCH_DEFAULT_ONLY);
|
||||
}
|
||||
|
||||
if (defaultBrowserInfo == null) {
|
||||
// No app installed to open a web url
|
||||
Toast.makeText(context, R.string.no_app_to_open_intent, Toast.LENGTH_LONG).show();
|
||||
return;
|
||||
}
|
||||
|
||||
final String defaultBrowserPackage = defaultBrowserInfo.activityInfo.packageName;
|
||||
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
|
||||
if (httpDefaultBrowserTest) {
|
||||
defaultPackageName = getDefaultAppPackageName(context, new Intent(Intent.ACTION_VIEW,
|
||||
Uri.parse("http://")).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
} else {
|
||||
defaultPackageName = getDefaultAppPackageName(context, intent);
|
||||
}
|
||||
|
||||
if (defaultPackageName.equals("android")) {
|
||||
if (defaultBrowserPackage.equals("android")) {
|
||||
// No browser set as default (doesn't work on some devices)
|
||||
openAppChooser(context, intent, true);
|
||||
} else {
|
||||
try {
|
||||
// will be empty on Android 12+
|
||||
if (!defaultPackageName.isEmpty()) {
|
||||
intent.setPackage(defaultPackageName);
|
||||
}
|
||||
intent.setPackage(defaultBrowserPackage);
|
||||
context.startActivity(intent);
|
||||
} catch (final ActivityNotFoundException e) {
|
||||
// Not a browser but an app chooser because of OEMs changes
|
||||
@ -102,59 +109,54 @@ public final class ShareUtils {
|
||||
openAppChooser(context, intent, true);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Open the url with the system default browser.
|
||||
* <p>
|
||||
* If no browser is set as default, fallbacks to
|
||||
* {@link #openAppChooser(Context, Intent, boolean)}
|
||||
* <p>
|
||||
* This calls {@link #openUrlInBrowser(Context, String, boolean)} with true
|
||||
* for the boolean parameter
|
||||
* Open a url with the system default app using {@link Intent#ACTION_VIEW}, showing a toast in
|
||||
* case of failure.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param url the url to browse
|
||||
* @return true if the URL can be opened or false if it cannot be
|
||||
**/
|
||||
public static boolean openUrlInBrowser(@NonNull final Context context, final String url) {
|
||||
return openUrlInBrowser(context, url, true);
|
||||
* @param url the url to open
|
||||
*/
|
||||
public static void openUrlInApp(@NonNull final Context context, final String url) {
|
||||
openIntentInApp(context, new Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
}
|
||||
|
||||
/**
|
||||
* Open an intent with the system default app.
|
||||
* <p>
|
||||
* The intent can be of every type, excepted a web intent for which
|
||||
* {@link #openUrlInBrowser(Context, String, boolean)} should be used.
|
||||
* <p>
|
||||
* If no app can open the intent, a toast with the message {@code No app on your device can
|
||||
* open this} is shown.
|
||||
* Use {@link #openIntentInApp(Context, Intent)} to show a toast in case of failure.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param intent the intent to open
|
||||
* @param showToast a boolean to set if a toast is displayed to user when no app is installed
|
||||
* to open the intent (true) or not (false)
|
||||
* @return true if the intent can be opened or false if it cannot be
|
||||
* @return true if the intent could be opened successfully, false otherwise
|
||||
*/
|
||||
public static boolean openIntentInApp(@NonNull final Context context,
|
||||
@NonNull final Intent intent,
|
||||
final boolean showToast) {
|
||||
final String defaultPackageName = getDefaultAppPackageName(context, intent);
|
||||
public static boolean tryOpenIntentInApp(@NonNull final Context context,
|
||||
@NonNull final Intent intent) {
|
||||
try {
|
||||
context.startActivity(intent);
|
||||
} catch (final ActivityNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (defaultPackageName.isEmpty()) {
|
||||
// No app installed to open the intent
|
||||
if (showToast) {
|
||||
/**
|
||||
* Open an intent with the system default app, showing a toast in case of failure.
|
||||
* <p>
|
||||
* Use {@link #tryOpenIntentInApp(Context, Intent)} if you don't want the toast. Use {@link
|
||||
* #openUrlInApp(Context, String)} as a shorthand for {@link Intent#ACTION_VIEW} with urls.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param intent the intent to
|
||||
*/
|
||||
public static void openIntentInApp(@NonNull final Context context,
|
||||
@NonNull final Intent intent) {
|
||||
if (!tryOpenIntentInApp(context, intent)) {
|
||||
Toast.makeText(context, R.string.no_app_to_open_intent, Toast.LENGTH_LONG)
|
||||
.show();
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -206,31 +208,6 @@ public final class ShareUtils {
|
||||
context.startActivity(chooserIntent);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the default app package name.
|
||||
* <p>
|
||||
* If no app is set as default, it will return "android" (not on some devices because some
|
||||
* OEMs changed the app chooser).
|
||||
* <p>
|
||||
* If no app is installed on user's device to handle the intent, it will return an empty string.
|
||||
*
|
||||
* @param context the context to use
|
||||
* @param intent the intent to get default app
|
||||
* @return the package name of the default app, an empty string if there's no app installed to
|
||||
* handle the intent or the app chooser if there's no default
|
||||
*/
|
||||
private static String getDefaultAppPackageName(@NonNull final Context context,
|
||||
@NonNull final Intent intent) {
|
||||
final ResolveInfo resolveInfo = context.getPackageManager().resolveActivity(intent,
|
||||
PackageManager.MATCH_DEFAULT_ONLY);
|
||||
|
||||
if (resolveInfo == null) {
|
||||
return "";
|
||||
} else {
|
||||
return resolveInfo.activityInfo.packageName;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Open the android share sheet to share a content.
|
||||
*
|
||||
|
@ -30,7 +30,7 @@ final class UrlLongPressClickableSpan extends LongPressClickableSpan {
|
||||
public void onClick(@NonNull final View view) {
|
||||
if (!InternalUrlsHandler.handleUrlDescriptionTimestamp(
|
||||
disposables, context, url)) {
|
||||
ShareUtils.openUrlInBrowser(context, url, false);
|
||||
ShareUtils.openUrlInApp(context, url);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package us.shandian.giga.ui.adapter;
|
||||
|
||||
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
|
||||
import static android.content.Intent.FLAG_GRANT_PREFIX_URI_PERMISSION;
|
||||
import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
|
||||
import static us.shandian.giga.get.DownloadMission.ERROR_CONNECT_HOST;
|
||||
@ -345,16 +344,7 @@ public class MissionAdapter extends Adapter<ViewHolder> implements Handler.Callb
|
||||
intent.setDataAndType(resolveShareableUri(mission), mimeType);
|
||||
intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
|
||||
intent.addFlags(FLAG_GRANT_PREFIX_URI_PERMISSION);
|
||||
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
|
||||
intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
|
||||
if (intent.resolveActivity(mContext.getPackageManager()) != null) {
|
||||
ShareUtils.openIntentInApp(mContext, intent, false);
|
||||
} else {
|
||||
Toast.makeText(mContext, R.string.toast_no_player, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
ShareUtils.openIntentInApp(mContext, intent);
|
||||
}
|
||||
|
||||
private void shareFile(Mission mission) {
|
||||
|
@ -288,7 +288,6 @@
|
||||
<string name="invalid_file">الملف غير موجود أو الإذن بالقراءة أو الكتابة إليه غير موجود</string>
|
||||
<string name="no_streams_available_download">لا يوجد بث متاح للتنزيل</string>
|
||||
<string name="one_item_deleted">تم حذف عنصر واحد.</string>
|
||||
<string name="toast_no_player">لم يتم تثبيت أي تطبيق لتشغيل هذا الملف</string>
|
||||
<string name="app_license">NewPipe هو برنامج مفتوح المصدر وبحقوق متروكة: يمكنك استخدام الكود ودراسته وتحسينه كما شئت. وعلى وجه التحديد يمكنك إعادة توزيعه / أو تعديله تحت شروط رخصة GNU العمومية والتي نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة، أو (باختيارك) أي إصدار أحدث.</string>
|
||||
<string name="title_last_played">آخر ما تم تشغيله</string>
|
||||
<string name="title_most_played">الأكثر تشغيلا</string>
|
||||
|
@ -588,7 +588,6 @@
|
||||
<string name="play_queue_remove">Sil</string>
|
||||
<string name="app_description">Android\'də pulsuz yüngül yayımlayıcı.</string>
|
||||
<string name="copyright">© %1$s, %2$s tərəfindən %3$s altında</string>
|
||||
<string name="toast_no_player">Bu faylı oynatmaq üçün heç bir tətbiq quraşdırılmayıb</string>
|
||||
<string name="settings_category_downloads_title">Endirmə</string>
|
||||
<string name="msg_popup_permission">Bu icazə, ani görüntü rejimində
|
||||
\naçmaq üçün lazımdır</string>
|
||||
|
@ -425,7 +425,6 @@
|
||||
<string name="privacy_policy_encouragement">El proyeutu de NewPipe toma mui en serio la privacidá. Poro, l\'aplicación nun recueye nengún datu ensin el to consentimientu.
|
||||
\nLa política de privacidá de NewPipe desplica en detalle los datos que s\'unvien y atroxen cuando unvies un informe de casque.</string>
|
||||
<string name="app_description">Un aplicación llibre pa ver/sentir plataformes de tresmisión n\'Android.</string>
|
||||
<string name="toast_no_player">Nun hai nenguna aplicación pa reproducir esti ficheru</string>
|
||||
<string name="settings_file_replacement_character_title">Caráuteres de troquéu</string>
|
||||
<string name="settings_file_replacement_character_summary">Los caráuteres que nun son válidos van trocase por esti valor</string>
|
||||
<string name="recaptcha_done_button">Fecho</string>
|
||||
|
@ -214,7 +214,6 @@
|
||||
<string name="copyright">© %1$s tomonidan %2$s gacha %3$s</string>
|
||||
<string name="title_licenses">Uchinchi tomon litsenziyalari</string>
|
||||
<string name="title_activity_about">NewPipe haqida</string>
|
||||
<string name="toast_no_player">Ushbu faylni ijro etish uchun dastur o\'rnatilmagan</string>
|
||||
<string name="charset_most_special_characters">Ko\'pchilik maxsus belgilar</string>
|
||||
<string name="charset_letters_and_digits">Yozuvlar va raqamlar</string>
|
||||
<string name="settings_file_replacement_character_title">O\'zgartirish belgisi</string>
|
||||
|
@ -210,7 +210,6 @@
|
||||
<string name="settings_file_replacement_character_title">Сімвал для замены</string>
|
||||
<string name="charset_letters_and_digits">Літары і лічбы</string>
|
||||
<string name="charset_most_special_characters">Большасць спецзнакаў</string>
|
||||
<string name="toast_no_player">Прыкладанне для прайгравання гэтага файла не ўстаноўлена</string>
|
||||
<string name="title_activity_about">Аб NewPipe</string>
|
||||
<string name="title_licenses">Іншыя ліцэнзіі</string>
|
||||
<string name="copyright" formatted="true">© %1$s %2$s пад ліцэнзіяй %3$s</string>
|
||||
|
@ -191,7 +191,6 @@
|
||||
<string name="no_subscribers">Няма абонати</string>
|
||||
<string name="create">Създай</string>
|
||||
<string name="dismiss">Откажи</string>
|
||||
<string name="toast_no_player">Няма инсталирано приложение, което да изпълни този файл</string>
|
||||
<string name="copyright" formatted="true">© %1$s от %2$s под лиценза %3$s</string>
|
||||
<string name="contribution_title">Съдействайте</string>
|
||||
<string name="contribution_encouragement">За всичко, което се сетите: превод, промени по дизайна, изчистване на кода или много сериозни промени по кода – помощта е винаги добре дошла. Колкото повече развитие, толкова по-добре!</string>
|
||||
|
@ -303,7 +303,6 @@
|
||||
<string name="notification_action_0_title">প্রথম ক্রিয়া বোতাম</string>
|
||||
<string name="notification_scale_to_square_image_title">থাম্বনেল ১:১ অনুপাতে সেট করো</string>
|
||||
<string name="systems_language">সিস্টেম ডিফল্ট</string>
|
||||
<string name="toast_no_player">এ ফাইলটি চালানোর জন্য কোন অ্যাপ ইন্সটলকৃত নেই</string>
|
||||
<string name="bookmark_playlist">প্লেলিস্ট বুকমার্ক করুন</string>
|
||||
<string name="feed_use_dedicated_fetch_method_title">"যখন পর্যাপ্ত নিবেদিত ফিড থেকে ডাটা সংগ্রহ করুন"</string>
|
||||
<string name="feed_update_threshold_option_always_update">সবসময় হালনগাদ করুন</string>
|
||||
|
@ -491,7 +491,6 @@
|
||||
<string name="feed_update_threshold_summary">শেষ হালনাগাদের পর একটি সাবস্ক্রিপশনের আগের সময় সেকেলে বিবেচিত — %s</string>
|
||||
<string name="feed_group_dialog_delete_message">তুমি কি এ গ্রুপটি মুছতে চাও\?</string>
|
||||
<string name="website_encouragement">আরও তথ্য এবং খবরের জন্য নিউপাইপ ওয়েবসাইট দেখো।</string>
|
||||
<string name="toast_no_player">এ ফাইলটি চালানোর জন্য কোন অ্যাপ ইন্সটলকৃত নেই</string>
|
||||
<string name="override_current_data">এতে তোমার বর্তমান অবস্থা সরানো হবে।</string>
|
||||
<string name="could_not_import_all_files">সতর্কতা: সব তথ্য আনা যায়নি।</string>
|
||||
<string name="copyright">© %3$s এর মাধ্যমে %2$s দিয়ে %1$s</string>
|
||||
|
@ -299,7 +299,6 @@
|
||||
<string name="no_streams_available_download">No hi ha vídeos que es puguin baixar</string>
|
||||
<string name="caption_setting_title">Subtítols</string>
|
||||
<string name="caption_setting_description">Modifica la mida i el fons dels subtítols. Cal reiniciar l\'aplicació per aplicar els canvis</string>
|
||||
<string name="toast_no_player">No s\'ha trobat cap aplicació instal·lada que pugui reproduir aquest fitxer</string>
|
||||
<string name="clear_views_history_title">Neteja l\'historial de reproduccions</string>
|
||||
<string name="clear_views_history_summary">Neteja l\'historial dels vídeos reproduïts i les posicions de reproducció</string>
|
||||
<string name="delete_view_history_alert">Voleu suprimir tot l\'historial de reproduccions\?</string>
|
||||
|
@ -319,7 +319,6 @@
|
||||
<string name="preferred_open_action_settings_summary">کرداری بنەڕەتی لەکاتی کردنەوەی بابەتدا — %s</string>
|
||||
<string name="select_a_kiosk">هکیۆسکێک دیار بکە</string>
|
||||
<string name="conferences">کۆنفرانسەکان</string>
|
||||
<string name="toast_no_player">هیچ بهرنامهیهك دانەمەزراوە بۆ لێدانی ئەم فایله</string>
|
||||
<string name="open_in_popup_mode">كردنهوه له دۆخی پهنجهره</string>
|
||||
<string name="limit_mobile_data_usage_title">سنووری قەبارە لەکاتی بەکارهێنانی ڕایهڵهی مۆبایل</string>
|
||||
<string name="drawer_close">داخستنی پلیکانە</string>
|
||||
|
@ -302,7 +302,6 @@
|
||||
<string name="preferred_open_action_settings_summary">Výchozí chování při otevírání obsahu — %s</string>
|
||||
<string name="caption_setting_title">Titulky</string>
|
||||
<string name="caption_setting_description">Upravuje velikost textu titulků a styly pozadí. Změny se projeví po restartu aplikace</string>
|
||||
<string name="toast_no_player">K přehrání tohoto souboru chybí vhodná aplikace</string>
|
||||
<string name="clear_views_history_title">Vymazat historii sledování</string>
|
||||
<string name="clear_views_history_summary">Vymaže historii přehraných streamů pozic playbacku</string>
|
||||
<string name="delete_view_history_alert">Vymazat celkovou historii sledování\?</string>
|
||||
|
@ -213,7 +213,6 @@
|
||||
<string name="settings_file_replacement_character_title">Erstatningstegn</string>
|
||||
<string name="charset_letters_and_digits">Bogstaver og cifre</string>
|
||||
<string name="charset_most_special_characters">De fleste specialtegn</string>
|
||||
<string name="toast_no_player">Der ingen app installeret der kan afspille denne fil</string>
|
||||
<string name="title_activity_about">Om NewPipe</string>
|
||||
<string name="title_licenses">Tredjepartslicenser</string>
|
||||
<string name="copyright" formatted="true">© %1$s af %2$s under %3$s</string>
|
||||
|
@ -301,7 +301,6 @@
|
||||
<string name="preferred_open_action_settings_summary">Standardaktion beim Öffnen von Inhalten — %s</string>
|
||||
<string name="caption_setting_title">Untertitel</string>
|
||||
<string name="caption_setting_description">Textgröße und Hintergrund der Untertitel im Player anpassen. Erfordert Neustart der App</string>
|
||||
<string name="toast_no_player">Keine App zum Abspielen dieser Datei installiert</string>
|
||||
<string name="clear_views_history_title">Wiedergabeverlauf löschen</string>
|
||||
<string name="clear_views_history_summary">Den Verlauf der wiedergegebenen Streams und die Wiedergabepositionen löschen</string>
|
||||
<string name="delete_view_history_alert">Den ganzen Wiedergabeverlauf löschen\?</string>
|
||||
|
@ -210,7 +210,6 @@
|
||||
<string name="settings_file_replacement_character_summary">Οι μη έγκυροι χαρακτήρες αντικαθίστανται με αυτήν την τιμή</string>
|
||||
<string name="settings_file_replacement_character_title">Αντικαταστάτης χαρακτήρας</string>
|
||||
<string name="charset_most_special_characters">Οι περισσότεροι ειδικοί χαρακτήρες</string>
|
||||
<string name="toast_no_player">Δεν υπάρχει εγκατεστημένη εφαρμογή για την αναπαραγωγή αυτού του αρχείου</string>
|
||||
<string name="title_activity_about">Σχετικά με το NewPipe</string>
|
||||
<string name="title_licenses">Άδειες Τρίτων</string>
|
||||
<string name="copyright" formatted="true">© %1$s από %2$s υπό %3$s</string>
|
||||
|
@ -187,7 +187,6 @@
|
||||
<string name="metadata_cache_wipe_summary">Vakigi tutajn kaŝmemorigitajn retpaĝajn datumojn</string>
|
||||
<string name="metadata_cache_wipe_complete_notice">Kaŝmemorojn de metadatumojn vakigis</string>
|
||||
<string name="no_streams_available_download">Neniuj torentoj haveblaj por elŝuti</string>
|
||||
<string name="toast_no_player">Neniu apo instalita por ludi ĉi tiun dosieron</string>
|
||||
<string name="clear_views_history_title">Forviŝi vidohistorion</string>
|
||||
<string name="clear_views_history_summary">Forviŝi la historion de viditaj filmetojn kaj ludajn poziciojn</string>
|
||||
<string name="delete_view_history_alert">Ĉu vi volas forviŝi la tutan historion \?</string>
|
||||
|
@ -301,7 +301,6 @@
|
||||
<string name="no_streams_available_download">No hay streams disponibles para descargar</string>
|
||||
<string name="preferred_open_action_settings_title">Acción de apertura preferida</string>
|
||||
<string name="preferred_open_action_settings_summary">Acción predefinida al abrir contenido: %s</string>
|
||||
<string name="toast_no_player">No se encontró ninguna aplicación que reproduzca este archivo</string>
|
||||
<string name="caption_setting_title">Subtítulos</string>
|
||||
<string name="caption_setting_description">Modificar la escala de texto de los subtítulos y los estilos de fondo. Requiere reiniciar la aplicación para que surta efecto</string>
|
||||
<string name="clear_views_history_title">Vaciar historial de reproducciones</string>
|
||||
|
@ -200,7 +200,6 @@
|
||||
<string name="settings_file_replacement_character_title">Asendustähemärk</string>
|
||||
<string name="charset_letters_and_digits">Tähed ja numbrid</string>
|
||||
<string name="charset_most_special_characters">Erimärgid</string>
|
||||
<string name="toast_no_player">Selle faili esitamiseks puudub rakendus</string>
|
||||
<string name="title_activity_about">NewPipe rakendusest</string>
|
||||
<string name="title_licenses">Kolmanda osapoole litsentsid</string>
|
||||
<string name="tab_about">Rakenduse teave ja KKK</string>
|
||||
|
@ -243,7 +243,6 @@
|
||||
<string name="dismiss">Baztertu</string>
|
||||
<string name="rename">Aldatu izena</string>
|
||||
<string name="one_item_deleted">Elementu 1 ezabatuta.</string>
|
||||
<string name="toast_no_player">Ez dago fitxategi hau erreproduzitzeko aplikaziorik instalatuta</string>
|
||||
<string name="title_last_played">Jotako azkena</string>
|
||||
<string name="title_most_played">Ikusiena</string>
|
||||
<string name="export_complete_toast">Esportatuta</string>
|
||||
|
@ -176,7 +176,6 @@
|
||||
<string name="settings_file_replacement_character_title">نویسه جایگزین</string>
|
||||
<string name="charset_letters_and_digits">حروف و اعداد</string>
|
||||
<string name="charset_most_special_characters">مهمترین نویسههای خاص</string>
|
||||
<string name="toast_no_player">کارهای برای پخش این پرونده نصب نشده است</string>
|
||||
<string name="title_activity_about">درباره نیوپایپ</string>
|
||||
<string name="tab_about">درباره و سوالاتمتداول</string>
|
||||
<string name="tab_licenses">پروانهها</string>
|
||||
|
@ -240,7 +240,6 @@
|
||||
<string name="dismiss">Hylkää</string>
|
||||
<string name="rename">Nimeä uudelleen</string>
|
||||
<string name="one_item_deleted">1 poistettu.</string>
|
||||
<string name="toast_no_player">Ohjelmaa tämän toistamiseen ei ole asennettu</string>
|
||||
<string name="privacy_policy_title">NewPipen tietosuojakäytäntö</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe ottaa yksityisyytesi tosissaan. Siksi se ei kerää sinulta mitään tietoja ilman lupaasi.
|
||||
\nNewPipen tietosuojakäytännössä selitetään tarkasti mitä tietoja lähetetään tai tallennetaan virheraportin yhteydessä.</string>
|
||||
|
@ -302,7 +302,6 @@
|
||||
<string name="caption_setting_title">Sous-titres</string>
|
||||
<string name="caption_setting_description">Modifier la taille du texte et les styles d’arrière-plan des sous-titres du lecteur. Le redémarrage de l’application est requis pour appliquer les changements</string>
|
||||
<string name="playback_pitch">Ton</string>
|
||||
<string name="toast_no_player">Aucune application installée pour lire ce fichier</string>
|
||||
<string name="clear_views_history_title">Effacer l’historique des vues</string>
|
||||
<string name="clear_views_history_summary">Supprime l’historique des flux lus et des positions de reprise de lecture</string>
|
||||
<string name="delete_view_history_alert">Voulez-vous supprimer entièrement l’historique des vues \?</string>
|
||||
|
@ -206,7 +206,6 @@
|
||||
<string name="settings_file_replacement_character_title">Carácter de substitución</string>
|
||||
<string name="charset_letters_and_digits">Letras e díxitos</string>
|
||||
<string name="charset_most_special_characters">A maioría dos caracteres especiais</string>
|
||||
<string name="toast_no_player">Non hai ningún aplicativo instalado para reproducir este ficheiro</string>
|
||||
<string name="title_activity_about">Sobre o NewPipe</string>
|
||||
<string name="title_licenses">Licenzas de terceiros</string>
|
||||
<string name="copyright" formatted="true">© %1$s de %2$s, so %3$s</string>
|
||||
|
@ -225,7 +225,6 @@
|
||||
<string name="dismiss">התעלמות</string>
|
||||
<string name="rename">שינוי שם</string>
|
||||
<string name="one_item_deleted">פריט אחד נמחק.</string>
|
||||
<string name="toast_no_player">לא מותקן יישומון שמתאים לנגינת הקובץ הזה</string>
|
||||
<string name="export_complete_toast">הייצוא הסתיים</string>
|
||||
<string name="import_complete_toast">הייבוא הסתיים</string>
|
||||
<string name="no_valid_zip_file">אין קובץ ZIP תקין</string>
|
||||
|
@ -275,7 +275,6 @@
|
||||
<string name="error_occurred_detail">एक भूल हुई: %1$s</string>
|
||||
<string name="no_streams_available_download">डाउनलोड करने के लिए कोई स्ट्रीम उपलब्ध नही है</string>
|
||||
<string name="one_item_deleted">एक चीज़ साफ कर दी गई।</string>
|
||||
<string name="toast_no_player">इस फ़ाइल को चलाने के लिए कोई ऐप स्थापित नही है</string>
|
||||
<string name="privacy_policy_title">न्यूपाइप की गोपनीयता नीति</string>
|
||||
<string name="privacy_policy_encouragement">न्यूपाइप परियोजना आपकी गोपनीयता को बहोत गंभीर रूप से लेता है। इसलिए, ऐप आपकी अनुमति के बिना कोई डेटा जमा नही करता।
|
||||
\nन्यूपाइप की गोपनीयता नीति विस्तार से समज़ाती है कि कोनसा डेटा भेजा या संग्रह किया जाता है जब आप क्रेश विवरण भेजते है।</string>
|
||||
|
@ -250,7 +250,6 @@
|
||||
<string name="dismiss">Odbaci</string>
|
||||
<string name="rename">Preimenuj</string>
|
||||
<string name="one_item_deleted">1 stavka izbrisana.</string>
|
||||
<string name="toast_no_player">Nijedan program nije instaliran za reprodukciju ove datoteke</string>
|
||||
<string name="give_back">Vrati</string>
|
||||
<string name="website_encouragement">Posjeti NewPipe web-stranicu za više informacija i vijesti.</string>
|
||||
<string name="privacy_policy_title">NewPipe pravila o privatnosti</string>
|
||||
|
@ -200,7 +200,6 @@
|
||||
<string name="settings_file_replacement_character_title">Csere karakter</string>
|
||||
<string name="charset_letters_and_digits">Betűk és számok</string>
|
||||
<string name="charset_most_special_characters">Legtöbb speciális karakter</string>
|
||||
<string name="toast_no_player">Nincs a fájl lejátszásához szükséges alkalmazás telepítve</string>
|
||||
<string name="title_activity_about">A NewPipe névjegye</string>
|
||||
<string name="tab_about">Névjegy és GYIK</string>
|
||||
<string name="tab_licenses">Licencek</string>
|
||||
|
@ -255,7 +255,6 @@
|
||||
<string name="search_history_deleted">Riwayat pencarian dihapus</string>
|
||||
<string name="no_streams_available_download">Tidak ada video yang tersedia untuk diunduh</string>
|
||||
<string name="one_item_deleted">1 item dihapus.</string>
|
||||
<string name="toast_no_player">Tidak ada aplikasi terpasang untuk memutar berkas ini</string>
|
||||
<string name="tab_bookmarks">Daftar Putar</string>
|
||||
<string name="auto_queue_title">Putar otomatis video berikutnya</string>
|
||||
<string name="channel_unsubscribed">Berhenti berlanggan channel</string>
|
||||
|
@ -253,7 +253,6 @@
|
||||
<string name="recaptcha_solve">Leysa</string>
|
||||
<string name="recaptcha_done_button">Lokið</string>
|
||||
<string name="recaptcha_request_toast">Beðið eftir þraut reCAPTCHA</string>
|
||||
<string name="toast_no_player">Ekkert forrit er uppsett til að spila þessa skrá</string>
|
||||
<string name="title_licenses">Leyfi þriðja aðila</string>
|
||||
<string name="tab_licenses">Hugbúnaðarleyfi</string>
|
||||
<string name="copyright">© %1$s • %2$s • %3$s</string>
|
||||
|
@ -302,7 +302,6 @@
|
||||
<string name="preferred_open_action_settings_summary">Azione predefinita all\'apertura del contenuto — %s</string>
|
||||
<string name="caption_setting_title">Sottotitoli</string>
|
||||
<string name="caption_setting_description">Modifica dimensione e stile dei sottotitoli. Riavviare per applicare le modifiche</string>
|
||||
<string name="toast_no_player">Nessuna app installata per riprodurre questo file</string>
|
||||
<string name="clear_views_history_title">Elimina la cronologia delle visualizzazioni</string>
|
||||
<string name="clear_views_history_summary">Elimina la cronologia degli elementi riprodotti e le posizioni di riproduzione</string>
|
||||
<string name="delete_view_history_alert">Eliminare la cronologia delle visualizzazioni\?</string>
|
||||
|
@ -245,7 +245,6 @@
|
||||
<string name="clear_search_history_title">検索履歴を消去</string>
|
||||
<string name="clear_search_history_summary">検索キーワードの履歴を削除します</string>
|
||||
<string name="search_history_deleted">検索履歴を削除しました</string>
|
||||
<string name="toast_no_player">このファイルを再生するためのアプリがインストールされていません</string>
|
||||
<string name="import_settings">設定もインポートしますか?</string>
|
||||
<string name="caption_setting_title">字幕</string>
|
||||
<string name="channels">チャンネル</string>
|
||||
|
@ -633,7 +633,6 @@
|
||||
<string name="settings_file_charset_title">დაშვებული სიმბოლოები ფაილის სახელებში</string>
|
||||
<string name="settings_file_replacement_character_summary">არასწორი სიმბოლოები ჩანაცვლებულია ამ მნიშვნელობით</string>
|
||||
<string name="tab_about">შესახებ & ხშირად დასმული კითხვები</string>
|
||||
<string name="toast_no_player">ამ ფაილის დასაკრავად აპი არ არის დაინსტალირებული</string>
|
||||
<string name="title_licenses">მესამე მხარის ლიცენზიები</string>
|
||||
<string name="copyright">© %1$s მიერ %2$s %3$s-ის ქვეშ</string>
|
||||
<string name="donation_encouragement">NewPipe შემუშავებულია მოხალისეების მიერ, რომლებიც ატარებენ თავისუფალ დროს და მოგაქვთ საუკეთესო მომხმარებლის გამოცდილება. დაეხმარეთ დეველოპერებს, გააუმჯობესონ NewPipe, სანამ ფინჯანი ყავით ტკბებიან.</string>
|
||||
|
@ -538,7 +538,6 @@
|
||||
<string name="contribution_title">Paraxwe dayin</string>
|
||||
<string name="app_description">Li Android-ê veguhastina ronahiya sivik.</string>
|
||||
<string name="title_activity_about">Derbarê NewPipe</string>
|
||||
<string name="toast_no_player">Ji bo lîstina vê pelê tu bername nehat saz kirin</string>
|
||||
<string name="charset_most_special_characters">Pir karakterên taybetî</string>
|
||||
<string name="charset_letters_and_digits">Name û reqem</string>
|
||||
<string name="settings_file_replacement_character_title">Karaktera guheztinê</string>
|
||||
|
@ -289,7 +289,6 @@
|
||||
<string name="playback_pitch">피치</string>
|
||||
<string name="unhook_checkbox">영상과 소리 분리 (왜곡이 발생할 수 있음)</string>
|
||||
<string name="no_streams_available_download">다운로드 가능한 스트림이 없습니다</string>
|
||||
<string name="toast_no_player">이 파일을 재생할 수 있는 플레이어 앱이 없습니다</string>
|
||||
<string name="preferred_open_action_settings_title">선호하는 열기 동작</string>
|
||||
<string name="preferred_open_action_settings_summary">컨텐츠를 열 때 사용할 기본 동작 — %s</string>
|
||||
<string name="caption_setting_title">자막</string>
|
||||
|
@ -256,7 +256,6 @@
|
||||
<string name="no_streams_available_download">هیچ پەخشێک نییە بۆ دابەزاندن</string>
|
||||
<string name="caption_setting_title">ژێرنووسەکان</string>
|
||||
<string name="caption_setting_description">بەهۆی گۆڕانکاری لە شێوەی ژێرنووسکردنەکە. پێویستە ئەپەکە دابخەیت و دیسانەوە بیکەیتەوە.</string>
|
||||
<string name="toast_no_player">هیچ ئەپێک دانەمەزراوە بۆ کارپێکردنی ئەم فایلە</string>
|
||||
<string name="clear_views_history_title">سڕینەوەی مێژووی تەماشاکردن</string>
|
||||
<string name="clear_views_history_summary">مێژوو دەسڕێتەوە لەگەڵ ڤیدیۆ کارپێکراوەکان و شوێنی لیستە ڤیدیۆییەکان</string>
|
||||
<string name="delete_view_history_alert">تەواوی مێژووی تەماشاکردن بسڕدرێتەوە؟</string>
|
||||
|
@ -512,7 +512,6 @@
|
||||
<string name="privacy_policy_encouragement">NewPipe į jūsų privatumą žiūri labai rimtai. Programa be jūsų sutikimo nerenka jokių duomenų.
|
||||
\nNewPipe privatumo politika išsamiai parodo kokie duomenys siunčiami ir saugomi pranešant apie problemą.</string>
|
||||
<string name="privacy_policy_title">NewPipe privatumo politika</string>
|
||||
<string name="toast_no_player">Šio failo atkūrimui nėra įdiegtos programos</string>
|
||||
<string name="recaptcha_done_button">Atlikta</string>
|
||||
<string name="recaptcha_solve">Išspręsta</string>
|
||||
<string name="subtitle_activity_recaptcha">Paspauskite \"atlikta\" kai išspręsta</string>
|
||||
|
@ -71,7 +71,6 @@
|
||||
<string name="tab_about">Par</string>
|
||||
<string name="title_licenses">Trešo pušu Licences</string>
|
||||
<string name="title_activity_about">Par NewPipe</string>
|
||||
<string name="toast_no_player">Nav instalētu aplikāciju, lai atskaņotu šo failu</string>
|
||||
<string name="charset_most_special_characters">Lielākā daļa īpašo rakstzīmju</string>
|
||||
<string name="charset_letters_and_digits">Burti un cipari</string>
|
||||
<string name="settings_file_replacement_character_title">Aizvietošanas rakstzīme</string>
|
||||
|
@ -300,7 +300,6 @@
|
||||
<string name="search_history_deleted">Избришана е историјата на пребарувања.</string>
|
||||
<string name="no_streams_available_download">Нема стримови за симнување</string>
|
||||
<string name="one_item_deleted">1 ставка избришана.</string>
|
||||
<string name="toast_no_player">Нема апликација за пуштање на овој фајл</string>
|
||||
<string name="app_license">NewPipe е „copyleft“ слободен софтвер: Можеш да ја користиш, истражуваш и подобруваш по твоја желба. Можеш да ја редистрибуираш и/или да ја промениш под условите на GNU GPL лиценцата, публикувана од фондацијата FSF - или верзија 3 од лиценцата, или (по можност) понова верзија.</string>
|
||||
<string name="import_settings">Дали сакаш да се внесат и подесувањата?</string>
|
||||
<string name="preferred_open_action_settings_title">Претпочитана акција за „отворање“</string>
|
||||
|
@ -125,7 +125,6 @@
|
||||
<string name="copyright" formatted="true">%3$s ന്റെ കീഴിൽ %2$s ന്റെ ©%1$s</string>
|
||||
<string name="title_licenses">തേർഡ്-പാർട്ടി ലൈസൻസുകൾ</string>
|
||||
<string name="title_activity_about">ന്യൂപൈപ്പിനെക്കുറിച്ച്</string>
|
||||
<string name="toast_no_player">ഈ ഫയൽ പ്ലേ ചെയ്യാൻ കഴിയുന്ന ഒരു അപ്പും ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല</string>
|
||||
<string name="charset_most_special_characters">പ്രത്യേക അടയാളങ്ങൾ</string>
|
||||
<string name="charset_letters_and_digits">അക്ഷരങ്ങളും അക്കങ്ങളും</string>
|
||||
<string name="settings_file_replacement_character_title">പകരം ഉപയോഗിക്കാവുന്ന അടയാളം</string>
|
||||
|
@ -218,7 +218,6 @@
|
||||
<string name="settings_file_replacement_character_title">Karakter pengganti</string>
|
||||
<string name="charset_letters_and_digits">Huruf dan angka</string>
|
||||
<string name="charset_most_special_characters">Karakter yang paling istimewa</string>
|
||||
<string name="toast_no_player">Tiada app dipasang untuk memainkan fail ini</string>
|
||||
<string name="title_activity_about">Tentang NewPipe</string>
|
||||
<string name="title_licenses">Lesen Pihak Ketiga</string>
|
||||
<string name="copyright" formatted="true">© %1$s oleh %2$s di bawah %3$s</string>
|
||||
|
@ -282,7 +282,6 @@
|
||||
<string name="delete_search_history_alert">Slett hele søkehistorikken\?</string>
|
||||
<string name="search_history_deleted">Søkehistorikken er slettet</string>
|
||||
<string name="one_item_deleted">Ett element slettet.</string>
|
||||
<string name="toast_no_player">Ingen app installert for å spille av denne filen</string>
|
||||
<string name="caption_setting_title">Undertekster</string>
|
||||
<string name="caption_setting_description">Endre spillerens undertekststørrelse og bakgrunnsstiler. Krever omstart av appen for å tre i kraft</string>
|
||||
<string name="app_license">NewPipe er copyleft fri programvare: Du kan bruke, studere og forbedre den etter egen vilje. Spesifikt kan du redistribuere og/eller modifisere den i henhold til vilkårene gitt i GNU General Public-lisensen, som er publisert av Free Software Foundation, enten versjon 3 av lisensen, eller (etter eget ønske) enhver senere versjon.</string>
|
||||
|
@ -225,7 +225,6 @@
|
||||
<string name="settings_file_replacement_character_title">प्रतिस्थापन वर्ण</string>
|
||||
<string name="charset_letters_and_digits">अक्षर र अंक</string>
|
||||
<string name="charset_most_special_characters">सबै विशेष वर्णहरु</string>
|
||||
<string name="toast_no_player">कुनै अनुप्रयोग यो फाइल खेल्न स्थापित</string>
|
||||
<string name="title_activity_about">न्यू पाइपको बारेमा</string>
|
||||
<string name="title_licenses">तेस्रो-पक्ष इजाजत पत्र</string>
|
||||
<string name="copyright" formatted="true">©%1$s को %2$s द्वारा %3$s अन्तर्गत</string>
|
||||
|
@ -194,7 +194,6 @@
|
||||
<string name="settings_file_replacement_character_title">Vervangend teken</string>
|
||||
<string name="charset_letters_and_digits">Letters en cijfers</string>
|
||||
<string name="charset_most_special_characters">Meeste speciale tekens</string>
|
||||
<string name="toast_no_player">Er is geen app geïnstalleerd die dit bestand kan afspelen</string>
|
||||
<string name="title_activity_about">Over NewPipe</string>
|
||||
<string name="title_licenses">Derdepartijlicenties</string>
|
||||
<string name="copyright" formatted="true">© %1$s door %2$s, uitgebracht onder de %3$s</string>
|
||||
|
@ -299,7 +299,6 @@
|
||||
<string name="no_streams_available_download">Geen streams beschikbaar voor downloaden</string>
|
||||
<string name="caption_setting_title">Ondertitels</string>
|
||||
<string name="caption_setting_description">Ondertitelgrootte en -achtergrondstijlen wijzigen. Vereist een herstart van de app</string>
|
||||
<string name="toast_no_player">Er is geen app geïnstalleerd die dit bestand kan afspelen</string>
|
||||
<string name="clear_views_history_title">Kijkgeschiedenis wissen</string>
|
||||
<string name="clear_views_history_summary">Verwijdert de geschiedenis van bekeken video\'s en afspeelposities</string>
|
||||
<string name="delete_view_history_alert">De gehele kijkgeschiedenis wissen\?</string>
|
||||
|
@ -542,7 +542,6 @@
|
||||
<string name="no_subscribers">କୌଣସି ଗ୍ରାହକ ନାହାଁନ୍ତି</string>
|
||||
<string name="create">ସୃଷ୍ଟି କରନ୍ତୁ</string>
|
||||
<string name="msg_running_detail">ବିବରଣୀ ପାଇଁ ଟ୍ୟାପ୍ କରନ୍ତୁ</string>
|
||||
<string name="toast_no_player">ଏହି ଫାଇଲ୍ ଚଲାଇବା ପାଇଁ କୌଣସି ଆପ୍ ସଂସ୍ଥାପିତ ହୋଇନାହିଁ</string>
|
||||
<string name="rename">ନାମ ପରିବର୍ତ୍ତନ କରନ୍ତୁ</string>
|
||||
<string name="msg_wait">ଦୟାକରି ଅପେକ୍ଷା କର…</string>
|
||||
<string name="no_dir_yet">ଏପର୍ଯ୍ୟନ୍ତ କୌଣସି ଡାଉନଲୋଡ୍ ଫୋଲ୍ଡର ସେଟ୍ ହୋଇନାହିଁ, ବର୍ତ୍ତମାନ ଡିଫଲ୍ଟ ଡାଉନଲୋଡ୍ ଫୋଲ୍ଡର ବାଛନ୍ତୁ</string>
|
||||
|
@ -201,7 +201,6 @@
|
||||
<string name="settings_file_replacement_character_title">ਵਟਾਂਦਰਾ ਚਿੰਨ</string>
|
||||
<string name="charset_letters_and_digits">ਅੱਖਰ ਅਤੇ ਅੰਕ</string>
|
||||
<string name="charset_most_special_characters">ਬਹੁਤੇ ਖ਼ਾਸ ਅੱਖਰ</string>
|
||||
<string name="toast_no_player">ਇਸ ਫਾਈਲ ਨੂੰ ਚਲਾਉਣ ਲਈ ਕੋਈ ਐਪ ਇੰਸਟਾਲ ਨਹੀਂ ਹੈ</string>
|
||||
<string name="title_activity_about">ਨਿਊਪਾਈਪ ਬਾਰੇ</string>
|
||||
<string name="title_licenses">ਤੀਜੀ ਧਿਰ ਦੇ ਲਾਈਸੈਂਸ</string>
|
||||
<string name="copyright" formatted="true">© %1$s ਵਲੋਂ %2$s, %3$s ਅਧੀਨ</string>
|
||||
|
@ -314,7 +314,6 @@
|
||||
<string name="delete_search_history_alert">Usunąć całą historię wyszukiwania\?</string>
|
||||
<string name="search_history_deleted">Usunięto historię wyszukiwania</string>
|
||||
<string name="one_item_deleted">Usunięto jedną pozycję</string>
|
||||
<string name="toast_no_player">Brak zainstalowanej aplikacji do odtworzenia tego pliku</string>
|
||||
<string name="app_license">NewPipe jest wolnym i bezpłatnym oprogramowaniem: Możesz używać, udostępniać i ulepszać je do woli. W szczególności możesz je redystrybuować i/lub modyfikować zgodnie z warunkami GNU General Public License, opublikowanej przez Free Software Fundation, w wersji 3 albo (według Twojego wyboru) jakiejkolwiek późniejszej wersji.</string>
|
||||
<string name="import_settings">Czy chcesz zaimportować również ustawienia?</string>
|
||||
<string name="privacy_policy_title">Polityka prywatności NewPipe</string>
|
||||
|
@ -301,7 +301,6 @@
|
||||
<string name="drawer_close">Fechar gaveta</string>
|
||||
<string name="caption_setting_title">Legendas</string>
|
||||
<string name="caption_setting_description">Mudar tamanho da legenda e estilos de plano de fundo. Requer reiniciar o app para ter efeito</string>
|
||||
<string name="toast_no_player">Nenhum app instalado para reproduzir este arquivo</string>
|
||||
<string name="clear_views_history_title">Excluir histórico de vídeo</string>
|
||||
<string name="clear_views_history_summary">Exclui o histórico de vídeos e as posições de reprodução</string>
|
||||
<string name="delete_view_history_alert">Excluir todo o histórico de vídeo\?</string>
|
||||
|
@ -227,7 +227,6 @@
|
||||
<string name="feed_update_threshold_title">Limite de atualização da fonte</string>
|
||||
<string name="ok">OK</string>
|
||||
<string name="subscription_update_failed">Não foi possível atualizar a subscrição</string>
|
||||
<string name="toast_no_player">Não existe uma aplicação para reproduzir este ficheiro</string>
|
||||
<string name="remove_watched_popup_yes_and_partially_watched_videos">Sim e também os vídeos parcialmente vistos</string>
|
||||
<string name="short_million">M</string>
|
||||
<string name="no_playlist_bookmarked_yet">Ainda não há listas de reprodução favoritas</string>
|
||||
|
@ -297,7 +297,6 @@
|
||||
<string name="delete_search_history_alert">Remover todo o histórico de pesquisas\?</string>
|
||||
<string name="search_history_deleted">Histórico de pesquisa removido</string>
|
||||
<string name="one_item_deleted">1 item eliminado.</string>
|
||||
<string name="toast_no_player">Não existe uma aplicação para reproduzir este ficheiro</string>
|
||||
<string name="donation_encouragement">NewPipe é desenvolvido por voluntários que utilizam o seu tempo livre para nos proporcionar a melhor experiência. Retribua para ajudar os programadores a tornarem NewPipe ainda melhor.</string>
|
||||
<string name="give_back">Contribuir</string>
|
||||
<string name="privacy_policy_title">Política de privacidade do NewPipe</string>
|
||||
|
@ -246,7 +246,6 @@
|
||||
<string name="create">Creați</string>
|
||||
<string name="dismiss">Respingeți</string>
|
||||
<string name="rename">Redenumiţi</string>
|
||||
<string name="toast_no_player">Nici o aplicație instalată pentru a reda acest fișier</string>
|
||||
<string name="donation_title">Donaţi</string>
|
||||
<string name="import_settings">De asemenea, doriți să importați setări?</string>
|
||||
<string name="name">Nume</string>
|
||||
|
@ -311,7 +311,6 @@
|
||||
<string name="preferred_open_action_settings_summary">При открытии ссылки на контент — %s</string>
|
||||
<string name="no_streams_available_download">Нет потоков для загрузки</string>
|
||||
<string name="caption_setting_title">Субтитры</string>
|
||||
<string name="toast_no_player">Приложение для воспроизведения этого файла не установлено</string>
|
||||
<string name="caption_setting_description">Изменить размер текста и стиль субтитров. Нужен перезапуск</string>
|
||||
<string name="clear_views_history_title">Очистить историю</string>
|
||||
<string name="delete_view_history_alert">Удалить всю историю просмотров\?</string>
|
||||
|
@ -109,7 +109,6 @@
|
||||
<string name="copyright">© %1$s de %2$s cun litzèntzia %3$s</string>
|
||||
<string name="title_licenses">Litzèntzias de tertzas partes</string>
|
||||
<string name="title_activity_about">In subra de NewPipe</string>
|
||||
<string name="toast_no_player">Peruna aplicatzione installada pro pòdere riproduire custu documentu</string>
|
||||
<string name="charset_most_special_characters">Majoria de sos caràteres ispetziales</string>
|
||||
<string name="charset_letters_and_digits">Lìteras e tzifras</string>
|
||||
<string name="settings_file_replacement_character_title">Caràtere de remplasamentu</string>
|
||||
|
@ -262,7 +262,6 @@
|
||||
<string name="file_name_empty_error">Názov súboru nesme byť prázdny</string>
|
||||
<string name="error_occurred_detail">Nastala chyba: %1$s</string>
|
||||
<string name="no_streams_available_download">Žiadne streamy nie sú k dispozícii na prevzatie</string>
|
||||
<string name="toast_no_player">Prehrávač pre daný typ súboru nebol nájdený</string>
|
||||
<string name="preferred_open_action_settings_title">Preferovaná akcia \'otvoriť\'</string>
|
||||
<string name="preferred_open_action_settings_summary">Predvolená akcia pri otváraní obsahu — %s</string>
|
||||
<string name="caption_auto_generated">Automaticky vygenerované</string>
|
||||
|
@ -362,7 +362,6 @@
|
||||
\nPolitika zasebnosti NewPipe-a podrobno pojasnjuje, kateri podatki so poslani in shranjeni, ko pošljete poročilo o zrušitvi.</string>
|
||||
<string name="give_back">Pomagaj</string>
|
||||
<string name="donation_encouragement">NewPipe razvijajo prostovoljci, ki preživljajo svoj prosti čas, da vam prinašajo najboljšo uporabniško izkušnjo. Pomagajte razvijalcem pri izdelavi še boljšega NewPipe-a medtem ko uživajo skodelico kave.</string>
|
||||
<string name="toast_no_player">Za predvajanje te datoteke ni nameščena nobena aplikacija</string>
|
||||
<string name="subtitle_activity_recaptcha">Pritisni \"končano\" ko je rešena</string>
|
||||
<string name="one_item_deleted">Odstranjen 1 element.</string>
|
||||
<string name="msg_calculating_hash">Izračun zgoščevalne funkcije je v teku</string>
|
||||
|
@ -183,7 +183,6 @@
|
||||
<string name="copyright">© %1$s sameeyay %2$s ayagoo raacaya %3$s</string>
|
||||
<string name="title_licenses">Laysimada gacanta sadexaad</string>
|
||||
<string name="title_activity_about">Kusaabsan NewPipe</string>
|
||||
<string name="toast_no_player">Shaygan app fura kuuguma jiro</string>
|
||||
<string name="charset_most_special_characters">Xarfaha gaarka ah kuwa ugu badan</string>
|
||||
<string name="charset_letters_and_digits">Xarfaha iyo godadka</string>
|
||||
<string name="settings_file_replacement_character_title">Xarafka lagu baddalayo</string>
|
||||
|
@ -250,7 +250,6 @@
|
||||
<string name="copyright" formatted="true">© %1$s nga %2$s nën %3$s</string>
|
||||
<string name="title_licenses">Licensat e palëve të treta</string>
|
||||
<string name="title_activity_about">Rreth NewPipe</string>
|
||||
<string name="toast_no_player">Nuk ka aplikacion të instaluar që mund ta luajë këtë skedar</string>
|
||||
<string name="charset_most_special_characters">Shumica e karaktereve speciale</string>
|
||||
<string name="charset_letters_and_digits">Shkronjat dhe numrat</string>
|
||||
<string name="settings_file_replacement_character_title">Karakteri zëvendësues</string>
|
||||
|
@ -389,7 +389,6 @@
|
||||
<string name="privacy_policy_encouragement">Пројекат ЊуПајп врло озбиљно схвата вашу приватност. Стога апликација не прикупља никакве податке без вашег пристанка.
|
||||
\nПолитика приватности ЊуПајпа детаљно објашњава који се подаци шаљу и чувају када пошаљете извештај о паду апликације.</string>
|
||||
<string name="privacy_policy_title">Политика приватности ЊуПајпа</string>
|
||||
<string name="toast_no_player">Нема апликације за пуштање овог фајла</string>
|
||||
<string name="recaptcha_done_button">Готово</string>
|
||||
<string name="recaptcha_solve">Реши</string>
|
||||
<string name="subtitle_activity_recaptcha">Притисните „Готово“ кад решите</string>
|
||||
|
@ -242,7 +242,6 @@
|
||||
<string name="dismiss">Avfärda</string>
|
||||
<string name="rename">Byt namn</string>
|
||||
<string name="one_item_deleted">1 objekt borttaget.</string>
|
||||
<string name="toast_no_player">Ingen app installerad för att spela upp filen</string>
|
||||
<string name="privacy_policy_title">NewPipes sekretesspolicy</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe-projektet tar din integritet på största allvar. Appen samlar därför inte in några uppgifter utan ditt medgivande.
|
||||
\nNewPipes sekretesspolicy förklarar i detalj vad för data som skickas och lagras när du skickar en kraschrapport.</string>
|
||||
|
@ -325,7 +325,6 @@
|
||||
<string name="error_report_channel_name">లోపనివేదన నోటిఫికేషన్</string>
|
||||
<string name="undo">చెరుపు</string>
|
||||
<string name="main_page_content_swipe_remove">వాటిని తీసివేయడానికి వాటిని స్వైప్ చేయండి</string>
|
||||
<string name="toast_no_player">ఈ ఫైల్ని ప్లే చేయడానికి యాప్ ఏదీ ఇన్స్టాల్ చేయబడలేదు</string>
|
||||
<string name="website_encouragement">మరింత సమాచారం మరియు వార్తల కోసం NewPipe వెబ్సైట్ని సందర్శించండి.</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe ప్రాజెక్ట్ మీ గోప్యతను చాలా తీవ్రంగా పరిగణిస్తుంది. కాబట్టి, మీ సమ్మతి లేకుండా యాప్ ఎలాంటి డేటాను సేకరించదు.
|
||||
\nNewPipe యొక్క గోప్యతా విధానం మీరు క్రాష్ నివేదికను పంపినప్పుడు ఏ డేటా పంపబడుతుందో మరియు నిల్వ చేయబడుతుందో వివరంగా వివరిస్తుంది.</string>
|
||||
|
@ -207,7 +207,6 @@
|
||||
<string name="settings_file_replacement_character_title">อักขระทดแทน</string>
|
||||
<string name="charset_letters_and_digits">ตัวอักษรและตัวเลข</string>
|
||||
<string name="charset_most_special_characters">อักขระพิเศษส่วนใหญ่</string>
|
||||
<string name="toast_no_player">ไม่มีแอพที่ติดตั้งเพื่อให้เล่นไฟล์นี้ได้</string>
|
||||
<string name="title_activity_about">เกี่ยวกับ NewPipe</string>
|
||||
<string name="title_licenses">สัญญาอนุญาตของบุคคลที่สาม</string>
|
||||
<string name="copyright" formatted="true">© %1$s โดย %2$s ภายใต้ %3$s</string>
|
||||
|
@ -295,7 +295,6 @@
|
||||
<string name="preferred_open_action_settings_summary">Paylaşma ekranında tanımlı eylem — %s</string>
|
||||
<string name="caption_setting_title">Alt yazılar</string>
|
||||
<string name="caption_setting_description">Oynatıcı alt yazı metin ölçeğini ve arka plan biçimini değiştirin. Etkili olması için uygulamayı yeniden başlatma gerektirir</string>
|
||||
<string name="toast_no_player">Bu dosyayı oynatmak için herhangi bir uygulama yüklü değil</string>
|
||||
<string name="clear_views_history_title">İzleme geçmişini temizle</string>
|
||||
<string name="clear_views_history_summary">Oynatılan akışların geçmişini ve kalınan oynatım konumlarını siler</string>
|
||||
<string name="delete_view_history_alert">İzleme geçmişinin tamamı silinsin mi\?</string>
|
||||
|
@ -307,7 +307,6 @@
|
||||
<string name="preferred_open_action_settings_summary">Типова дія під час відкриття вмісту — %s</string>
|
||||
<string name="caption_setting_title">Субтитри</string>
|
||||
<string name="caption_setting_description">Зміна висоти тексту субтитрів та стилів тла. Потребує перезапуску застосунку</string>
|
||||
<string name="toast_no_player">Не встановлено застосунків для відтворення цього файлу</string>
|
||||
<string name="clear_views_history_title">Очистити історію переглядів</string>
|
||||
<string name="clear_views_history_summary">Видаляє історію відтворень і позицій відтворення</string>
|
||||
<string name="delete_view_history_alert">Видалити всю історію переглядів\?</string>
|
||||
|
@ -294,7 +294,6 @@
|
||||
<string name="unhook_checkbox">غیر مربوط (مسخ کا سبب بن سکتا ہے)</string>
|
||||
<string name="caption_setting_title">عنوانات</string>
|
||||
<string name="caption_setting_description">پلیئر کیپشن ٹیکسٹ اسکیل اور بیک گراونڈ اسٹائل میں ترمیم کریں۔ اثر لینے کیلئے ایپ کو دوبارہ شروع کرنا ضروری ہے۔</string>
|
||||
<string name="toast_no_player">اس فائل کو چلانے کے لئے کوئی ایپ انسٹال نہیں ہے</string>
|
||||
<string name="clear_views_history_title">دیکھنے کی سرگزشت صاف کریں</string>
|
||||
<string name="clear_views_history_summary">چلائے گئے سلسلوں اور پلے بیک پوزیشنز کی سرگزشت کو حذف کیا گیا</string>
|
||||
<string name="delete_view_history_alert">دیکھے جانے کی تمام سرگزشت حذف کریں؟</string>
|
||||
|
@ -215,7 +215,6 @@
|
||||
<string name="settings_file_replacement_character_title">Ký tự thay thế</string>
|
||||
<string name="charset_letters_and_digits">Chỉ chữ cái và chữ số</string>
|
||||
<string name="charset_most_special_characters">Hầu hết các ký tự đặc biệt</string>
|
||||
<string name="toast_no_player">Không có ứng dụng nào được cài đặt để phát tệp này</string>
|
||||
<string name="donation_title">Đóng góp</string>
|
||||
<string name="donation_encouragement">NewPipe được phát triển bởi các tình nguyện viên dành thời gian và tâm huyết của mình để mang lại cho bạn trải nghiệm tốt nhất. Đóng góp một chút xiền để giúp chúng tôi làm NewPipe tốt hơn nữa (Nếu bạn muốn).</string>
|
||||
<string name="give_back">Đôn Nét</string>
|
||||
|
@ -106,7 +106,6 @@
|
||||
<string name="create">新建</string>
|
||||
<string name="dismiss">退出</string>
|
||||
<string name="rename">重命名</string>
|
||||
<string name="toast_no_player">未安装可播放此文件的应用程序</string>
|
||||
<string name="one_item_deleted">已删除一个项目。</string>
|
||||
<string name="main_page_content_summary">自定义主页显示的标签页</string>
|
||||
<string name="list_view_mode">列表视图模式</string>
|
||||
|
@ -324,7 +324,6 @@
|
||||
<string name="no_dir_yet">未設定下載資料夾,請立即揀選預設嘅下載資料夾</string>
|
||||
<string name="one_item_deleted">刪除咗 1 個項目。</string>
|
||||
<string name="recaptcha_solve">執執佢</string>
|
||||
<string name="toast_no_player">未裝 app 嚟播放呢個檔案</string>
|
||||
<string name="recaptcha_done_button">搞掂</string>
|
||||
<string name="privacy_policy_encouragement">NewPipe 專案非常著重您嘅私隱。因此,呢個 app 未得您同意係唔會收集任何資料。
|
||||
\nNewPipe 嘅私隱政策,詳述當您傳送彈 app 報告時,有咩資料會傳送同保存。</string>
|
||||
|
@ -293,7 +293,6 @@
|
||||
<string name="no_streams_available_download">沒有可供下載的串流</string>
|
||||
<string name="caption_setting_title">字幕</string>
|
||||
<string name="caption_setting_description">調整播放器字幕文字大小與背景樣式。必須重新啟動應用程式才會生效</string>
|
||||
<string name="toast_no_player">未安裝可播放此檔案的應用程式</string>
|
||||
<string name="clear_views_history_title">清除觀看歷史</string>
|
||||
<string name="clear_views_history_summary">刪除播放過的串流與播放位置歷史</string>
|
||||
<string name="delete_view_history_alert">刪除所有觀看歷史記錄?</string>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="fdroid_vlc_url">https://f-droid.org/packages/org.videolan.vlc/</string>
|
||||
<string name="rss_button_title">RSS</string>
|
||||
<string name="vlc_package">org.videolan.vlc</string>
|
||||
<string name="kore_package">org.xbmc.kore</string>
|
||||
<string name="peertube_instance_list_url">https://joinpeertube.org/instances#instances-list</string>
|
||||
<string name="notification_channel_id">newpipe</string>
|
||||
|
@ -345,7 +345,6 @@
|
||||
<string name="settings_file_replacement_character_title">Replacement character</string>
|
||||
<string name="charset_letters_and_digits">Letters and digits</string>
|
||||
<string name="charset_most_special_characters">Most special characters</string>
|
||||
<string name="toast_no_player">No app installed to play this file</string>
|
||||
<!-- About -->
|
||||
<string name="title_activity_about">About NewPipe</string>
|
||||
<string name="title_licenses">Third-party Licenses</string>
|
||||
|
Loading…
Reference in New Issue
Block a user