merged upstream/dev
This commit is contained in:
commit
df6bae4712
31 changed files with 405 additions and 56 deletions
|
@ -209,6 +209,29 @@
|
||||||
<data android:pathPrefix="/user/"/>
|
<data android:pathPrefix="/user/"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<!-- Invidious filter -->
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.VIEW"/>
|
||||||
|
<action android:name="android.media.action.MEDIA_PLAY_FROM_SEARCH"/>
|
||||||
|
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
|
<category android:name="android.intent.category.BROWSABLE"/>
|
||||||
|
|
||||||
|
<data android:scheme="http"/>
|
||||||
|
<data android:scheme="https"/>
|
||||||
|
<data android:host="invidio.us"/>
|
||||||
|
<data android:host="www.invidio.us"/>
|
||||||
|
<!-- video prefix -->
|
||||||
|
<data android:pathPrefix="/embed/"/>
|
||||||
|
<data android:pathPrefix="/watch"/>
|
||||||
|
<!-- channel prefix -->
|
||||||
|
<data android:pathPrefix="/channel/"/>
|
||||||
|
<data android:pathPrefix="/user/"/>
|
||||||
|
<!-- playlist prefix -->
|
||||||
|
<data android:pathPrefix="/playlist"/>
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
<!-- Soundcloud filter -->
|
<!-- Soundcloud filter -->
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW"/>
|
<action android:name="android.intent.action.VIEW"/>
|
||||||
|
|
|
@ -52,6 +52,7 @@ import org.schabi.newpipe.ReCaptchaActivity;
|
||||||
import org.schabi.newpipe.download.DownloadDialog;
|
import org.schabi.newpipe.download.DownloadDialog;
|
||||||
import org.schabi.newpipe.extractor.InfoItem;
|
import org.schabi.newpipe.extractor.InfoItem;
|
||||||
import org.schabi.newpipe.extractor.NewPipe;
|
import org.schabi.newpipe.extractor.NewPipe;
|
||||||
|
import org.schabi.newpipe.extractor.ServiceList;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException;
|
import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
import org.schabi.newpipe.extractor.exceptions.ExtractionException;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
|
@ -366,7 +367,8 @@ public class VideoDetailFragment
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case R.id.detail_controls_download:
|
case R.id.detail_controls_download:
|
||||||
if (PermissionHelper.checkStoragePermissions(activity, PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) {
|
if (PermissionHelper.checkStoragePermissions(activity,
|
||||||
|
PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) {
|
||||||
this.openDownloadDialog();
|
this.openDownloadDialog();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -624,13 +626,13 @@ public class VideoDetailFragment
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case R.id.menu_item_share: {
|
case R.id.menu_item_share: {
|
||||||
if (currentInfo != null) {
|
if (currentInfo != null) {
|
||||||
shareUrl(currentInfo.getName(), currentInfo.getUrl());
|
shareUrl(currentInfo.getName(), currentInfo.getOriginalUrl());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case R.id.menu_item_openInBrowser: {
|
case R.id.menu_item_openInBrowser: {
|
||||||
if (currentInfo != null) {
|
if (currentInfo != null) {
|
||||||
openUrlInBrowser(currentInfo.getUrl());
|
openUrlInBrowser(currentInfo.getOriginalUrl());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -668,10 +670,16 @@ public class VideoDetailFragment
|
||||||
boolean isExternalPlayerEnabled = PreferenceManager.getDefaultSharedPreferences(activity)
|
boolean isExternalPlayerEnabled = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||||
.getBoolean(activity.getString(R.string.use_external_video_player_key), false);
|
.getBoolean(activity.getString(R.string.use_external_video_player_key), false);
|
||||||
|
|
||||||
sortedVideoStreams = ListHelper.getSortedStreamVideosList(activity, info.getVideoStreams(), info.getVideoOnlyStreams(), false);
|
sortedVideoStreams = ListHelper.getSortedStreamVideosList(
|
||||||
|
activity,
|
||||||
|
info.getVideoStreams(),
|
||||||
|
info.getVideoOnlyStreams(),
|
||||||
|
false);
|
||||||
selectedVideoStreamIndex = ListHelper.getDefaultResolutionIndex(activity, sortedVideoStreams);
|
selectedVideoStreamIndex = ListHelper.getDefaultResolutionIndex(activity, sortedVideoStreams);
|
||||||
|
|
||||||
final StreamItemAdapter<VideoStream, Stream> streamsAdapter = new StreamItemAdapter<>(activity, new StreamSizeWrapper<>(sortedVideoStreams, activity), isExternalPlayerEnabled);
|
final StreamItemAdapter<VideoStream, Stream> streamsAdapter =
|
||||||
|
new StreamItemAdapter<>(activity,
|
||||||
|
new StreamSizeWrapper<>(sortedVideoStreams, activity), isExternalPlayerEnabled);
|
||||||
spinnerToolbar.setAdapter(streamsAdapter);
|
spinnerToolbar.setAdapter(streamsAdapter);
|
||||||
spinnerToolbar.setSelection(selectedVideoStreamIndex);
|
spinnerToolbar.setSelection(selectedVideoStreamIndex);
|
||||||
spinnerToolbar.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
spinnerToolbar.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@ -696,17 +704,17 @@ public class VideoDetailFragment
|
||||||
*/
|
*/
|
||||||
protected final LinkedList<StackItem> stack = new LinkedList<>();
|
protected final LinkedList<StackItem> stack = new LinkedList<>();
|
||||||
|
|
||||||
public void clearHistory() {
|
|
||||||
stack.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void pushToStack(int serviceId, String videoUrl, String name) {
|
public void pushToStack(int serviceId, String videoUrl, String name) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "pushToStack() called with: serviceId = [" + serviceId + "], videoUrl = [" + videoUrl + "], name = [" + name + "]");
|
Log.d(TAG, "pushToStack() called with: serviceId = ["
|
||||||
|
+ serviceId + "], videoUrl = [" + videoUrl + "], name = [" + name + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.size() > 0 && stack.peek().getServiceId() == serviceId && stack.peek().getUrl().equals(videoUrl)) {
|
if (stack.size() > 0
|
||||||
Log.d(TAG, "pushToStack() called with: serviceId == peek.serviceId = [" + serviceId + "], videoUrl == peek.getUrl = [" + videoUrl + "]");
|
&& stack.peek().getServiceId() == serviceId
|
||||||
|
&& stack.peek().getUrl().equals(videoUrl)) {
|
||||||
|
Log.d(TAG, "pushToStack() called with: serviceId == peek.serviceId = ["
|
||||||
|
+ serviceId + "], videoUrl == peek.getUrl = [" + videoUrl + "]");
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "pushToStack() wasn't equal");
|
Log.d(TAG, "pushToStack() wasn't equal");
|
||||||
|
@ -737,7 +745,11 @@ public class VideoDetailFragment
|
||||||
// Get stack item from the new top
|
// Get stack item from the new top
|
||||||
StackItem peek = stack.peek();
|
StackItem peek = stack.peek();
|
||||||
|
|
||||||
selectAndLoadVideo(peek.getServiceId(), peek.getUrl(), !TextUtils.isEmpty(peek.getTitle()) ? peek.getTitle() : "");
|
selectAndLoadVideo(peek.getServiceId(),
|
||||||
|
peek.getUrl(),
|
||||||
|
!TextUtils.isEmpty(peek.getTitle())
|
||||||
|
? peek.getTitle()
|
||||||
|
: "");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -757,10 +769,10 @@ public class VideoDetailFragment
|
||||||
}
|
}
|
||||||
|
|
||||||
public void prepareAndHandleInfo(final StreamInfo info, boolean scrollToTop) {
|
public void prepareAndHandleInfo(final StreamInfo info, boolean scrollToTop) {
|
||||||
if (DEBUG)
|
if (DEBUG) Log.d(TAG, "prepareAndHandleInfo() called with: info = ["
|
||||||
Log.d(TAG, "prepareAndHandleInfo() called with: info = [" + info + "], scrollToTop = [" + scrollToTop + "]");
|
+ info + "], scrollToTop = [" + scrollToTop + "]");
|
||||||
|
|
||||||
setInitialData(info.getServiceId(), info.getOriginalUrl(), info.getName());
|
setInitialData(info.getServiceId(), info.getUrl(), info.getName());
|
||||||
pushToStack(serviceId, url, name);
|
pushToStack(serviceId, url, name);
|
||||||
showLoading();
|
showLoading();
|
||||||
initTabs();
|
initTabs();
|
||||||
|
@ -1042,7 +1054,7 @@ public class VideoDetailFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pushToStack(serviceId, url, name);
|
//pushToStack(serviceId, url, name);
|
||||||
|
|
||||||
animateView(thumbnailPlayButton, true, 200);
|
animateView(thumbnailPlayButton, true, 200);
|
||||||
videoTitleTextView.setText(name);
|
videoTitleTextView.setText(name);
|
||||||
|
@ -1093,11 +1105,13 @@ public class VideoDetailFragment
|
||||||
|
|
||||||
if (info.getDuration() > 0) {
|
if (info.getDuration() > 0) {
|
||||||
detailDurationView.setText(Localization.getDurationString(info.getDuration()));
|
detailDurationView.setText(Localization.getDurationString(info.getDuration()));
|
||||||
detailDurationView.setBackgroundColor(ContextCompat.getColor(activity, R.color.duration_background_color));
|
detailDurationView.setBackgroundColor(
|
||||||
|
ContextCompat.getColor(activity, R.color.duration_background_color));
|
||||||
animateView(detailDurationView, true, 100);
|
animateView(detailDurationView, true, 100);
|
||||||
} else if (info.getStreamType() == StreamType.LIVE_STREAM) {
|
} else if (info.getStreamType() == StreamType.LIVE_STREAM) {
|
||||||
detailDurationView.setText(R.string.duration_live);
|
detailDurationView.setText(R.string.duration_live);
|
||||||
detailDurationView.setBackgroundColor(ContextCompat.getColor(activity, R.color.live_duration_background_color));
|
detailDurationView.setBackgroundColor(
|
||||||
|
ContextCompat.getColor(activity, R.color.live_duration_background_color));
|
||||||
animateView(detailDurationView, true, 100);
|
animateView(detailDurationView, true, 100);
|
||||||
} else {
|
} else {
|
||||||
detailDurationView.setVisibility(View.GONE);
|
detailDurationView.setVisibility(View.GONE);
|
||||||
|
@ -1154,20 +1168,28 @@ public class VideoDetailFragment
|
||||||
|
|
||||||
|
|
||||||
public void openDownloadDialog() {
|
public void openDownloadDialog() {
|
||||||
try {
|
try {
|
||||||
DownloadDialog downloadDialog = DownloadDialog.newInstance(currentInfo);
|
DownloadDialog downloadDialog = DownloadDialog.newInstance(currentInfo);
|
||||||
downloadDialog.setVideoStreams(sortedVideoStreams);
|
downloadDialog.setVideoStreams(sortedVideoStreams);
|
||||||
downloadDialog.setAudioStreams(currentInfo.getAudioStreams());
|
downloadDialog.setAudioStreams(currentInfo.getAudioStreams());
|
||||||
downloadDialog.setSelectedVideoStream(selectedVideoStreamIndex);
|
downloadDialog.setSelectedVideoStream(selectedVideoStreamIndex);
|
||||||
downloadDialog.setSubtitleStreams(currentInfo.getSubtitles());
|
downloadDialog.setSubtitleStreams(currentInfo.getSubtitles());
|
||||||
|
|
||||||
downloadDialog.show(activity.getSupportFragmentManager(), "downloadDialog");
|
downloadDialog.show(activity.getSupportFragmentManager(), "downloadDialog");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Toast.makeText(activity,
|
ErrorActivity.ErrorInfo info = ErrorActivity.ErrorInfo.make(UserAction.UI_ERROR,
|
||||||
R.string.could_not_setup_download_menu,
|
ServiceList.all()
|
||||||
Toast.LENGTH_LONG).show();
|
.get(currentInfo
|
||||||
e.printStackTrace();
|
.getServiceId())
|
||||||
}
|
.getServiceInfo()
|
||||||
|
.getName(), "",
|
||||||
|
R.string.could_not_setup_download_menu);
|
||||||
|
|
||||||
|
ErrorActivity.reportError(getActivity(),
|
||||||
|
e,
|
||||||
|
getActivity().getClass(),
|
||||||
|
getActivity().findViewById(android.R.id.content), info);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*//////////////////////////////////////////////////////////////////////////
|
/*//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -233,10 +233,10 @@ public class ChannelFragment extends BaseListInfoFragment<ChannelInfo> {
|
||||||
openRssFeed();
|
openRssFeed();
|
||||||
break;
|
break;
|
||||||
case R.id.menu_item_openInBrowser:
|
case R.id.menu_item_openInBrowser:
|
||||||
openUrlInBrowser(url);
|
openUrlInBrowser(currentInfo.getOriginalUrl());
|
||||||
break;
|
break;
|
||||||
case R.id.menu_item_share:
|
case R.id.menu_item_share:
|
||||||
shareUrl(name, url);
|
shareUrl(name, currentInfo.getOriginalUrl());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
|
|
|
@ -104,8 +104,13 @@ public class SearchFragment
|
||||||
// this three represet the current search query
|
// this three represet the current search query
|
||||||
@State
|
@State
|
||||||
protected String searchString;
|
protected String searchString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* No content filter should add like contentfilter = all
|
||||||
|
* be aware of this when implementing an extractor.
|
||||||
|
*/
|
||||||
@State
|
@State
|
||||||
protected String[] contentFilter;
|
protected String[] contentFilter = new String[0];
|
||||||
@State
|
@State
|
||||||
protected String sortFilter;
|
protected String sortFilter;
|
||||||
|
|
||||||
|
@ -335,7 +340,7 @@ public class SearchFragment
|
||||||
|| (searchEditText != null && !TextUtils.isEmpty(searchEditText.getText()))) {
|
|| (searchEditText != null && !TextUtils.isEmpty(searchEditText.getText()))) {
|
||||||
search(!TextUtils.isEmpty(searchString)
|
search(!TextUtils.isEmpty(searchString)
|
||||||
? searchString
|
? searchString
|
||||||
: searchEditText.getText().toString(), new String[0], "");
|
: searchEditText.getText().toString(), this.contentFilter, "");
|
||||||
} else {
|
} else {
|
||||||
if (searchEditText != null) {
|
if (searchEditText != null) {
|
||||||
searchEditText.setText("");
|
searchEditText.setText("");
|
||||||
|
@ -736,6 +741,7 @@ public class SearchFragment
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void loadMoreItems() {
|
protected void loadMoreItems() {
|
||||||
|
if(nextPageUrl == null || nextPageUrl.isEmpty()) return;
|
||||||
isLoading.set(true);
|
isLoading.set(true);
|
||||||
showListFooter(true);
|
showListFooter(true);
|
||||||
if (searchDisposable != null) searchDisposable.dispose();
|
if (searchDisposable != null) searchDisposable.dispose();
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package org.schabi.newpipe.player.playback;
|
package org.schabi.newpipe.player.playback;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.v4.media.MediaDescriptionCompat;
|
import android.support.v4.media.MediaDescriptionCompat;
|
||||||
|
import android.support.v4.media.MediaMetadataCompat;
|
||||||
|
|
||||||
import org.schabi.newpipe.player.BasePlayer;
|
import org.schabi.newpipe.player.BasePlayer;
|
||||||
import org.schabi.newpipe.player.mediasession.MediaSessionCallback;
|
import org.schabi.newpipe.player.mediasession.MediaSessionCallback;
|
||||||
|
@ -54,6 +56,12 @@ public class BasePlayerMediaSession implements MediaSessionCallback {
|
||||||
.setTitle(item.getTitle())
|
.setTitle(item.getTitle())
|
||||||
.setSubtitle(item.getUploader());
|
.setSubtitle(item.getUploader());
|
||||||
|
|
||||||
|
// set additional metadata for A2DP/AVRCP
|
||||||
|
Bundle additionalMetadata = new Bundle();
|
||||||
|
additionalMetadata.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, item.getUploader());
|
||||||
|
additionalMetadata.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, item.getDuration());
|
||||||
|
descriptionBuilder.setExtras(additionalMetadata);
|
||||||
|
|
||||||
final Uri thumbnailUri = Uri.parse(item.getThumbnailUrl());
|
final Uri thumbnailUri = Uri.parse(item.getThumbnailUrl());
|
||||||
if (thumbnailUri != null) descriptionBuilder.setIconUri(thumbnailUri);
|
if (thumbnailUri != null) descriptionBuilder.setIconUri(thumbnailUri);
|
||||||
|
|
||||||
|
|
|
@ -94,15 +94,17 @@ public class VideoPlaybackResolver implements PlaybackResolver {
|
||||||
// Below are auxiliary media sources
|
// Below are auxiliary media sources
|
||||||
|
|
||||||
// Create subtitle sources
|
// Create subtitle sources
|
||||||
for (final SubtitlesStream subtitle : info.getSubtitles()) {
|
if(info.getSubtitles() != null) {
|
||||||
final String mimeType = PlayerHelper.subtitleMimeTypesOf(subtitle.getFormat());
|
for (final SubtitlesStream subtitle : info.getSubtitles()) {
|
||||||
if (mimeType == null) continue;
|
final String mimeType = PlayerHelper.subtitleMimeTypesOf(subtitle.getFormat());
|
||||||
|
if (mimeType == null) continue;
|
||||||
|
|
||||||
final Format textFormat = Format.createTextSampleFormat(null, mimeType,
|
final Format textFormat = Format.createTextSampleFormat(null, mimeType,
|
||||||
SELECTION_FLAG_AUTOSELECT, PlayerHelper.captionLanguageOf(context, subtitle));
|
SELECTION_FLAG_AUTOSELECT, PlayerHelper.captionLanguageOf(context, subtitle));
|
||||||
final MediaSource textSource = dataSource.getSampleMediaSourceFactory()
|
final MediaSource textSource = dataSource.getSampleMediaSourceFactory()
|
||||||
.createMediaSource(Uri.parse(subtitle.getURL()), textFormat, TIME_UNSET);
|
.createMediaSource(Uri.parse(subtitle.getURL()), textFormat, TIME_UNSET);
|
||||||
mediaSources.add(textSource);
|
mediaSources.add(textSource);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaSources.size() == 1) {
|
if (mediaSources.size() == 1) {
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.schabi.newpipe.extractor.Info;
|
||||||
import org.schabi.newpipe.extractor.InfoItem;
|
import org.schabi.newpipe.extractor.InfoItem;
|
||||||
import org.schabi.newpipe.extractor.ListExtractor.InfoItemsPage;
|
import org.schabi.newpipe.extractor.ListExtractor.InfoItemsPage;
|
||||||
import org.schabi.newpipe.extractor.NewPipe;
|
import org.schabi.newpipe.extractor.NewPipe;
|
||||||
|
import org.schabi.newpipe.extractor.SuggestionExtractor;
|
||||||
import org.schabi.newpipe.extractor.channel.ChannelInfo;
|
import org.schabi.newpipe.extractor.channel.ChannelInfo;
|
||||||
import org.schabi.newpipe.extractor.comments.CommentsInfo;
|
import org.schabi.newpipe.extractor.comments.CommentsInfo;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException;
|
import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException;
|
||||||
|
@ -47,6 +48,7 @@ import org.schabi.newpipe.report.UserAction;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InterruptedIOException;
|
import java.io.InterruptedIOException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import io.reactivex.Maybe;
|
import io.reactivex.Maybe;
|
||||||
|
@ -96,10 +98,13 @@ public final class ExtractorHelper {
|
||||||
public static Single<List<String>> suggestionsFor(final int serviceId,
|
public static Single<List<String>> suggestionsFor(final int serviceId,
|
||||||
final String query) {
|
final String query) {
|
||||||
checkServiceId(serviceId);
|
checkServiceId(serviceId);
|
||||||
return Single.fromCallable(() ->
|
return Single.fromCallable(() -> {
|
||||||
NewPipe.getService(serviceId)
|
SuggestionExtractor extractor = NewPipe.getService(serviceId)
|
||||||
.getSuggestionExtractor()
|
.getSuggestionExtractor();
|
||||||
.suggestionList(query));
|
return extractor != null
|
||||||
|
? extractor.suggestionList(query)
|
||||||
|
: Collections.emptyList();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Single<StreamInfo> getStreamInfo(final int serviceId,
|
public static Single<StreamInfo> getStreamInfo(final int serviceId,
|
||||||
|
|
|
@ -31,6 +31,8 @@ public class KioskTranslator {
|
||||||
return c.getString(R.string.top_50);
|
return c.getString(R.string.top_50);
|
||||||
case "New & hot":
|
case "New & hot":
|
||||||
return c.getString(R.string.new_and_hot);
|
return c.getString(R.string.new_and_hot);
|
||||||
|
case "conferences":
|
||||||
|
return c.getString(R.string.conferences);
|
||||||
default:
|
default:
|
||||||
return kioskId;
|
return kioskId;
|
||||||
}
|
}
|
||||||
|
@ -44,6 +46,8 @@ public class KioskTranslator {
|
||||||
return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_hot);
|
return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_hot);
|
||||||
case "New & hot":
|
case "New & hot":
|
||||||
return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_hot);
|
return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_hot);
|
||||||
|
case "conferences":
|
||||||
|
return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_hot);
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,11 @@ public class ServiceHelper {
|
||||||
case 0:
|
case 0:
|
||||||
return R.drawable.place_holder_youtube;
|
return R.drawable.place_holder_youtube;
|
||||||
case 1:
|
case 1:
|
||||||
return R.drawable.place_holder_circle;
|
return R.drawable.place_holder_cloud;
|
||||||
|
case 2:
|
||||||
|
return R.drawable.place_holder_gadse;
|
||||||
default:
|
default:
|
||||||
return R.drawable.service;
|
return R.drawable.place_holder_circle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +40,8 @@ public class ServiceHelper {
|
||||||
case "playlists": return c.getString(R.string.playlists);
|
case "playlists": return c.getString(R.string.playlists);
|
||||||
case "tracks": return c.getString(R.string.tracks);
|
case "tracks": return c.getString(R.string.tracks);
|
||||||
case "users": return c.getString(R.string.users);
|
case "users": return c.getString(R.string.users);
|
||||||
|
case "conferences" : return c.getString(R.string.conferences);
|
||||||
|
case "events" : return c.getString(R.string.events);
|
||||||
default: return filter;
|
default: return filter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,8 @@ import io.reactivex.schedulers.Schedulers;
|
||||||
import us.shandian.giga.util.Utility;
|
import us.shandian.giga.util.Utility;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A list adapter for a list of {@link Stream streams}, currently supporting {@link VideoStream} and {@link AudioStream}.
|
* A list adapter for a list of {@link Stream streams},
|
||||||
|
* currently supporting {@link VideoStream}, {@link AudioStream} and {@link SubtitlesStream}
|
||||||
*/
|
*/
|
||||||
public class StreamItemAdapter<T extends Stream, U extends Stream> extends BaseAdapter {
|
public class StreamItemAdapter<T extends Stream, U extends Stream> extends BaseAdapter {
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
@ -110,7 +111,10 @@ public class StreamItemAdapter<T extends Stream, U extends Stream> extends BaseA
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (stream instanceof AudioStream) {
|
} else if (stream instanceof AudioStream) {
|
||||||
qualityString = ((AudioStream) stream).getAverageBitrate() + "kbps";
|
AudioStream audioStream = ((AudioStream) stream);
|
||||||
|
qualityString = audioStream.getAverageBitrate() > 0
|
||||||
|
? audioStream.getAverageBitrate() + "kbps"
|
||||||
|
: audioStream.getFormat().getName();
|
||||||
} else if (stream instanceof SubtitlesStream) {
|
} else if (stream instanceof SubtitlesStream) {
|
||||||
qualityString = ((SubtitlesStream) stream).getDisplayLanguageName();
|
qualityString = ((SubtitlesStream) stream).getDisplayLanguageName();
|
||||||
if (((SubtitlesStream) stream).isAutoGenerated()) {
|
if (((SubtitlesStream) stream).isAutoGenerated()) {
|
||||||
|
@ -154,8 +158,10 @@ public class StreamItemAdapter<T extends Stream, U extends Stream> extends BaseA
|
||||||
private final long[] streamSizes;
|
private final long[] streamSizes;
|
||||||
private final String unknownSize;
|
private final String unknownSize;
|
||||||
|
|
||||||
public StreamSizeWrapper(List<T> streamsList, Context context) {
|
public StreamSizeWrapper(List<T> sL, Context context) {
|
||||||
this.streamsList = streamsList;
|
this.streamsList = sL != null
|
||||||
|
? sL
|
||||||
|
: Collections.emptyList();
|
||||||
this.streamSizes = new long[streamsList.size()];
|
this.streamSizes = new long[streamsList.size()];
|
||||||
this.unknownSize = context == null ? "--.-" : context.getString(R.string.unknown_content);
|
this.unknownSize = context == null ? "--.-" : context.getString(R.string.unknown_content);
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,9 @@ public class ThemeHelper {
|
||||||
else if (selectedTheme.equals(darkTheme)) themeName = "DarkTheme";
|
else if (selectedTheme.equals(darkTheme)) themeName = "DarkTheme";
|
||||||
|
|
||||||
themeName += "." + service.getServiceInfo().getName();
|
themeName += "." + service.getServiceInfo().getName();
|
||||||
int resourceId = context.getResources().getIdentifier(themeName, "style", context.getPackageName());
|
int resourceId = context
|
||||||
|
.getResources()
|
||||||
|
.getIdentifier(themeName, "style", context.getPackageName());
|
||||||
|
|
||||||
if (resourceId > 0) {
|
if (resourceId > 0) {
|
||||||
return resourceId;
|
return resourceId;
|
||||||
|
|
BIN
app/src/main/res/drawable-nodpi/place_holder_cloud.png
Normal file
BIN
app/src/main/res/drawable-nodpi/place_holder_cloud.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.8 KiB |
BIN
app/src/main/res/drawable-nodpi/place_holder_gadse.png
Normal file
BIN
app/src/main/res/drawable-nodpi/place_holder_gadse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
12
app/src/main/res/drawable-v23/splash_background.xml
Normal file
12
app/src/main/res/drawable-v23/splash_background.xml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:drawable="@color/light_youtube_primary_color"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:width="80dp"
|
||||||
|
android:height="80dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:drawable="@drawable/splash_forground"/>
|
||||||
|
</layer-list>
|
7
app/src/main/res/drawable/splash_background.xml
Normal file
7
app/src/main/res/drawable/splash_background.xml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:drawable="@color/dark_background_color"/>
|
||||||
|
|
||||||
|
</layer-list>
|
10
app/src/main/res/drawable/splash_forground.xml
Normal file
10
app/src/main/res/drawable/splash_forground.xml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="100dp"
|
||||||
|
android:height="100dp"
|
||||||
|
android:viewportWidth="100"
|
||||||
|
android:viewportHeight="100">
|
||||||
|
<path
|
||||||
|
android:pathData="m23.909,10.211v78.869c0,0 7.7,-4.556 12.4,-7.337V67.477,56.739 31.686c0,0 3.707,2.173 8.948,5.24 6.263,3.579 14.57,8.565 21.473,12.655 -9.358,5.483 -16.8,9.876 -22.496,13.234V77.053C57.974,68.927 75.176,58.762 90.762,49.581 75.551,40.634 57.144,29.768 43.467,21.715 31.963,14.94 23.909,10.211 23.909,10.211Z"
|
||||||
|
android:strokeWidth="1.2782383"
|
||||||
|
android:fillColor="#ffffff"/>
|
||||||
|
</vector>
|
|
@ -31,4 +31,22 @@
|
||||||
<item name="colorAccent">@color/dark_soundcloud_accent_color</item>
|
<item name="colorAccent">@color/dark_soundcloud_accent_color</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Media.ccc -->
|
||||||
|
<style name="LightTheme.MediaCCC" parent="LightTheme.Switchable">
|
||||||
|
<item name="colorPrimary">@color/light_media_ccc_primary_color</item>
|
||||||
|
<item name="colorPrimaryDark">@color/light_media_ccc_statusbar_color</item>
|
||||||
|
<item name="colorAccent">@color/light_media_ccc_accent_color</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="DarkTheme.MediaCCC" parent="DarkTheme.Switchable">
|
||||||
|
<item name="colorPrimary">@color/dark_media_ccc_primary_color</item>
|
||||||
|
<item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item>
|
||||||
|
<item name="colorAccent">@color/dark_media_ccc_accent_color</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="BlackTheme.MediaCCC" parent="BlackTheme.Switchable">
|
||||||
|
<item name="colorPrimary">@color/dark_media_ccc_primary_color</item>
|
||||||
|
<item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item>
|
||||||
|
<item name="colorAccent">@color/dark_media_ccc_accent_color</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
|
@ -22,4 +22,15 @@
|
||||||
<color name="dark_soundcloud_accent_color">#FFFFFF</color>
|
<color name="dark_soundcloud_accent_color">#FFFFFF</color>
|
||||||
<color name="dark_soundcloud_statusbar_color">#ff9100</color>
|
<color name="dark_soundcloud_statusbar_color">#ff9100</color>
|
||||||
|
|
||||||
|
<!-- Media.CCC -->
|
||||||
|
<color name="light_media_ccc_primary_color">#9e9e9e</color>
|
||||||
|
<color name="light_media_ccc_dark_color">#616161</color>
|
||||||
|
<color name="light_media_ccc_accent_color">#000000</color>
|
||||||
|
<color name="light_media_ccc_statusbar_color">#afafaf</color>
|
||||||
|
|
||||||
|
<color name="dark_media_ccc_primary_color">#9e9e9e</color>
|
||||||
|
<color name="dark_media_ccc_dark_color">#616161</color>
|
||||||
|
<color name="dark_media_ccc_accent_color">#FFFFFF</color>
|
||||||
|
<color name="dark_media_ccc_statusbar_color">#afafaf</color>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
|
@ -141,6 +141,7 @@
|
||||||
<string name="comments">Comments</string>
|
<string name="comments">Comments</string>
|
||||||
<string name="tracks">Tracks</string>
|
<string name="tracks">Tracks</string>
|
||||||
<string name="users">Users</string>
|
<string name="users">Users</string>
|
||||||
|
<string name="events">Events</string>
|
||||||
<string name="yes">Yes</string>
|
<string name="yes">Yes</string>
|
||||||
<string name="later">Later</string>
|
<string name="later">Later</string>
|
||||||
<string name="disabled">Disabled</string>
|
<string name="disabled">Disabled</string>
|
||||||
|
@ -408,6 +409,7 @@
|
||||||
<string name="trending">Trending</string>
|
<string name="trending">Trending</string>
|
||||||
<string name="top_50">Top 50</string>
|
<string name="top_50">Top 50</string>
|
||||||
<string name="new_and_hot">New & hot</string>
|
<string name="new_and_hot">New & hot</string>
|
||||||
|
<string name="conferences">Conferences</string>
|
||||||
<string name="service_kiosk_string" translatable="false">%1$s/%2$s</string>
|
<string name="service_kiosk_string" translatable="false">%1$s/%2$s</string>
|
||||||
|
|
||||||
<!-- Play Queue -->
|
<!-- Play Queue -->
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<item name="colorPrimaryDark">@android:color/transparent</item>
|
<item name="colorPrimaryDark">@android:color/transparent</item>
|
||||||
<item name="colorAccent">@android:color/transparent</item>
|
<item name="colorAccent">@android:color/transparent</item>
|
||||||
|
|
||||||
<item name="android:windowBackground">@color/dark_background_color</item>
|
<item name="android:windowBackground">@drawable/splash_background</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- Base themes -->
|
<!-- Base themes -->
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
<style name="BlackTheme.YouTube" parent="BlackTheme.Switchable">
|
<style name="BlackTheme.YouTube" parent="BlackTheme.Switchable">
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- SoundCloud -->
|
<!-- SoundCloud -->
|
||||||
<style name="LightTheme.SoundCloud" parent="LightTheme.Switchable">
|
<style name="LightTheme.SoundCloud" parent="LightTheme.Switchable">
|
||||||
<item name="colorPrimary">@color/light_soundcloud_primary_color</item>
|
<item name="colorPrimary">@color/light_soundcloud_primary_color</item>
|
||||||
|
@ -28,4 +29,23 @@
|
||||||
<item name="colorAccent">@color/dark_soundcloud_accent_color</item>
|
<item name="colorAccent">@color/dark_soundcloud_accent_color</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Media.ccc -->
|
||||||
|
<style name="LightTheme.MediaCCC" parent="LightTheme.Switchable">
|
||||||
|
<item name="colorPrimary">@color/light_media_ccc_primary_color</item>
|
||||||
|
<item name="colorPrimaryDark">@color/light_media_ccc_statusbar_color</item>
|
||||||
|
<item name="colorAccent">@color/light_media_ccc_accent_color</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="DarkTheme.MediaCCC" parent="DarkTheme.Switchable">
|
||||||
|
<item name="colorPrimary">@color/dark_media_ccc_primary_color</item>
|
||||||
|
<item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item>
|
||||||
|
<item name="colorAccent">@color/dark_media_ccc_accent_color</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="BlackTheme.MediaCCC" parent="BlackTheme.Switchable">
|
||||||
|
<item name="colorPrimary">@color/dark_media_ccc_primary_color</item>
|
||||||
|
<item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item>
|
||||||
|
<item name="colorAccent">@color/dark_media_ccc_accent_color</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
|
@ -1,9 +1,11 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:title="@string/settings_category_appearance_title">
|
android:title="@string/settings_category_appearance_title">
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_theme_value"
|
android:defaultValue="@string/default_theme_value"
|
||||||
android:entries="@array/theme_description_list"
|
android:entries="@array/theme_description_list"
|
||||||
android:entryValues="@array/theme_values_list"
|
android:entryValues="@array/theme_values_list"
|
||||||
|
@ -12,17 +14,20 @@
|
||||||
android:title="@string/theme_title"/>
|
android:title="@string/theme_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/show_next_video_key"
|
android:key="@string/show_next_video_key"
|
||||||
android:title="@string/show_next_and_similar_title"/>
|
android:title="@string/show_next_and_similar_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/show_hold_to_append_key"
|
android:key="@string/show_hold_to_append_key"
|
||||||
android:title="@string/show_hold_to_append_title"
|
android:title="@string/show_hold_to_append_title"
|
||||||
android:summary="@string/show_hold_to_append_summary"/>
|
android:summary="@string/show_hold_to_append_summary"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/list_view_mode_value"
|
android:defaultValue="@string/list_view_mode_value"
|
||||||
android:entries="@array/list_view_mode_description"
|
android:entries="@array/list_view_mode_description"
|
||||||
android:entryValues="@array/list_view_mode_values"
|
android:entryValues="@array/list_view_mode_values"
|
||||||
|
@ -31,11 +36,13 @@
|
||||||
android:title="@string/list_view_mode"/>
|
android:title="@string/list_view_mode"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:key="@string/caption_settings_key"
|
android:key="@string/caption_settings_key"
|
||||||
android:title="@string/caption_setting_title"
|
android:title="@string/caption_setting_title"
|
||||||
android:summary="@string/caption_setting_description"/>
|
android:summary="@string/caption_setting_description"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.tabs.ChooseTabsFragment"
|
android:fragment="org.schabi.newpipe.settings.tabs.ChooseTabsFragment"
|
||||||
android:summary="@string/main_page_content_summary"
|
android:summary="@string/main_page_content_summary"
|
||||||
android:key="@string/main_page_content_key"
|
android:key="@string/main_page_content_key"
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:title="@string/content">
|
android:title="@string/content">
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_country_value"
|
android:defaultValue="@string/default_country_value"
|
||||||
android:entries="@array/country_names"
|
android:entries="@array/country_names"
|
||||||
android:entryValues="@array/country_codes"
|
android:entryValues="@array/country_codes"
|
||||||
|
@ -11,6 +13,7 @@
|
||||||
android:title="@string/default_content_country_title"/>
|
android:title="@string/default_content_country_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_language_value"
|
android:defaultValue="@string/default_language_value"
|
||||||
android:entries="@array/language_names"
|
android:entries="@array/language_names"
|
||||||
android:entryValues="@array/language_codes"
|
android:entryValues="@array/language_codes"
|
||||||
|
@ -19,17 +22,20 @@
|
||||||
android:title="@string/content_language_title"/>
|
android:title="@string/content_language_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/show_age_restricted_content"
|
android:key="@string/show_age_restricted_content"
|
||||||
android:title="@string/show_age_restricted_content_title"/>
|
android:title="@string/show_age_restricted_content_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/show_search_suggestions_key"
|
android:key="@string/show_search_suggestions_key"
|
||||||
android:summary="@string/show_search_suggestions_summary"
|
android:summary="@string/show_search_suggestions_summary"
|
||||||
android:title="@string/show_search_suggestions_title"/>
|
android:title="@string/show_search_suggestions_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/download_thumbnail_key"
|
android:key="@string/download_thumbnail_key"
|
||||||
android:title="@string/download_thumbnail_title"
|
android:title="@string/download_thumbnail_title"
|
||||||
|
@ -42,11 +48,13 @@
|
||||||
android:summary="@string/show_comments_summary"/>
|
android:summary="@string/show_comments_summary"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:summary="@string/import_data_summary"
|
android:summary="@string/import_data_summary"
|
||||||
android:key="@string/import_data"
|
android:key="@string/import_data"
|
||||||
android:title="@string/import_data_title"/>
|
android:title="@string/import_data_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:title="@string/export_data_title"
|
android:title="@string/export_data_title"
|
||||||
android:key="@string/export_data"
|
android:key="@string/export_data"
|
||||||
android:summary="@string/export_data_summary"/>
|
android:summary="@string/export_data_summary"/>
|
||||||
|
|
|
@ -1,16 +1,19 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:key="general_preferences"
|
android:key="general_preferences"
|
||||||
android:title="@string/settings_category_debug_title">
|
android:title="@string/settings_category_debug_title">
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/allow_heap_dumping_key"
|
android:key="@string/allow_heap_dumping_key"
|
||||||
android:title="@string/enable_leak_canary_title"
|
android:title="@string/enable_leak_canary_title"
|
||||||
android:summary="@string/enable_leak_canary_summary"/>
|
android:summary="@string/enable_leak_canary_summary"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/allow_disposed_exceptions_key"
|
android:key="@string/allow_disposed_exceptions_key"
|
||||||
android:title="@string/enable_disposed_exceptions_title"
|
android:title="@string/enable_disposed_exceptions_title"
|
||||||
|
|
|
@ -1,21 +1,25 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:title="@string/settings_category_downloads_title">
|
android:title="@string/settings_category_downloads_title">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:dialogTitle="@string/download_path_dialog_title"
|
android:dialogTitle="@string/download_path_dialog_title"
|
||||||
android:key="@string/download_path_key"
|
android:key="@string/download_path_key"
|
||||||
android:summary="@string/download_path_summary"
|
android:summary="@string/download_path_summary"
|
||||||
android:title="@string/download_path_title"/>
|
android:title="@string/download_path_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:dialogTitle="@string/download_path_audio_dialog_title"
|
android:dialogTitle="@string/download_path_audio_dialog_title"
|
||||||
android:key="@string/download_path_audio_key"
|
android:key="@string/download_path_audio_key"
|
||||||
android:summary="@string/download_path_audio_summary"
|
android:summary="@string/download_path_audio_summary"
|
||||||
android:title="@string/download_path_audio_title"/>
|
android:title="@string/download_path_audio_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_file_charset_value"
|
android:defaultValue="@string/default_file_charset_value"
|
||||||
android:entries="@array/settings_filename_charset_name"
|
android:entries="@array/settings_filename_charset_name"
|
||||||
android:entryValues="@array/settings_filename_charset"
|
android:entryValues="@array/settings_filename_charset"
|
||||||
|
@ -24,12 +28,14 @@
|
||||||
android:title="@string/settings_file_charset_title"/>
|
android:title="@string/settings_file_charset_title"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/settings_file_replacement_character_default_value"
|
android:defaultValue="@string/settings_file_replacement_character_default_value"
|
||||||
android:key="@string/settings_file_replacement_character_key"
|
android:key="@string/settings_file_replacement_character_key"
|
||||||
android:summary="@string/settings_file_replacement_character_summary"
|
android:summary="@string/settings_file_replacement_character_summary"
|
||||||
android:title="@string/settings_file_replacement_character_title"/>
|
android:title="@string/settings_file_replacement_character_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/downloads_maximum_retry_default"
|
android:defaultValue="@string/downloads_maximum_retry_default"
|
||||||
android:entries="@array/downloads_maximum_retry_list"
|
android:entries="@array/downloads_maximum_retry_list"
|
||||||
android:entryValues="@array/downloads_maximum_retry_list"
|
android:entryValues="@array/downloads_maximum_retry_list"
|
||||||
|
@ -38,6 +44,7 @@
|
||||||
android:title="@string/max_retry_msg" />
|
android:title="@string/max_retry_msg" />
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/downloads_cross_network"
|
android:key="@string/downloads_cross_network"
|
||||||
android:summary="@string/pause_downloads_on_mobile_desc"
|
android:summary="@string/pause_downloads_on_mobile_desc"
|
||||||
|
|
|
@ -1,32 +1,38 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:key="general_preferences"
|
android:key="general_preferences"
|
||||||
android:title="@string/settings_category_history_title">
|
android:title="@string/settings_category_history_title">
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/enable_watch_history_key"
|
android:key="@string/enable_watch_history_key"
|
||||||
android:summary="@string/enable_watch_history_summary"
|
android:summary="@string/enable_watch_history_summary"
|
||||||
android:title="@string/enable_watch_history_title"/>
|
android:title="@string/enable_watch_history_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/enable_search_history_key"
|
android:key="@string/enable_search_history_key"
|
||||||
android:summary="@string/enable_search_history_summary"
|
android:summary="@string/enable_search_history_summary"
|
||||||
android:title="@string/enable_search_history_title"/>
|
android:title="@string/enable_search_history_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:key="@string/metadata_cache_wipe_key"
|
android:key="@string/metadata_cache_wipe_key"
|
||||||
android:summary="@string/metadata_cache_wipe_summary"
|
android:summary="@string/metadata_cache_wipe_summary"
|
||||||
android:title="@string/metadata_cache_wipe_title"/>
|
android:title="@string/metadata_cache_wipe_title"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:key="@string/clear_views_history_key"
|
android:key="@string/clear_views_history_key"
|
||||||
android:title="@string/clear_views_history_title"
|
android:title="@string/clear_views_history_title"
|
||||||
android:summary="@string/clear_views_history_summary"/>
|
android:summary="@string/clear_views_history_summary"/>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:key="@string/clear_search_history_key"
|
android:key="@string/clear_search_history_key"
|
||||||
android:title="@string/clear_search_history_title"
|
android:title="@string/clear_search_history_title"
|
||||||
android:summary="@string/clear_search_history_summary"/>
|
android:summary="@string/clear_search_history_summary"/>
|
||||||
|
|
|
@ -1,41 +1,49 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:key="general_preferences"
|
android:key="general_preferences"
|
||||||
android:title="@string/settings">
|
android:title="@string/settings">
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.VideoAudioSettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.VideoAudioSettingsFragment"
|
||||||
android:icon="?attr/audio"
|
android:icon="?attr/audio"
|
||||||
android:title="@string/settings_category_video_audio_title"/>
|
android:title="@string/settings_category_video_audio_title"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.DownloadSettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.DownloadSettingsFragment"
|
||||||
android:icon="?attr/download"
|
android:icon="?attr/download"
|
||||||
android:title="@string/settings_category_downloads_title"/>
|
android:title="@string/settings_category_downloads_title"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.AppearanceSettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.AppearanceSettingsFragment"
|
||||||
android:icon="?attr/palette"
|
android:icon="?attr/palette"
|
||||||
android:title="@string/settings_category_appearance_title"/>
|
android:title="@string/settings_category_appearance_title"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.HistorySettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.HistorySettingsFragment"
|
||||||
android:icon="?attr/history"
|
android:icon="?attr/history"
|
||||||
android:title="@string/settings_category_history_title"/>
|
android:title="@string/settings_category_history_title"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.ContentSettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.ContentSettingsFragment"
|
||||||
android:icon="?attr/language"
|
android:icon="?attr/language"
|
||||||
android:title="@string/content"/>
|
android:title="@string/content"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.UpdateSettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.UpdateSettingsFragment"
|
||||||
android:icon="?attr/ic_settings_update"
|
android:icon="?attr/ic_settings_update"
|
||||||
android:title="@string/settings_category_updates_title"
|
android:title="@string/settings_category_updates_title"
|
||||||
android:key="update_pref_screen_key"/>
|
android:key="update_pref_screen_key"/>
|
||||||
|
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:fragment="org.schabi.newpipe.settings.DebugSettingsFragment"
|
android:fragment="org.schabi.newpipe.settings.DebugSettingsFragment"
|
||||||
android:icon="?attr/bug"
|
android:icon="?attr/bug"
|
||||||
android:title="@string/settings_category_debug_title"
|
android:title="@string/settings_category_debug_title"
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:key="general_preferences"
|
android:key="general_preferences"
|
||||||
android:title="@string/settings_category_updates_title">
|
android:title="@string/settings_category_updates_title">
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/update_app_key"
|
android:key="@string/update_app_key"
|
||||||
android:title="@string/updates_setting_title"
|
android:title="@string/updates_setting_title"
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:title="@string/settings_category_video_audio_title">
|
android:title="@string/settings_category_video_audio_title">
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_resolution_value"
|
android:defaultValue="@string/default_resolution_value"
|
||||||
android:entries="@array/resolution_list_description"
|
android:entries="@array/resolution_list_description"
|
||||||
android:entryValues="@array/resolution_list_values"
|
android:entryValues="@array/resolution_list_values"
|
||||||
|
@ -12,6 +14,7 @@
|
||||||
android:title="@string/default_resolution_title"/>
|
android:title="@string/default_resolution_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_popup_resolution_value"
|
android:defaultValue="@string/default_popup_resolution_value"
|
||||||
android:entries="@array/resolution_list_description"
|
android:entries="@array/resolution_list_description"
|
||||||
android:entryValues="@array/resolution_list_values"
|
android:entryValues="@array/resolution_list_values"
|
||||||
|
@ -20,6 +23,7 @@
|
||||||
android:title="@string/default_popup_resolution_title"/>
|
android:title="@string/default_popup_resolution_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/limit_mobile_data_usage_value"
|
android:defaultValue="@string/limit_mobile_data_usage_value"
|
||||||
android:entries="@array/limit_data_usage_description_list"
|
android:entries="@array/limit_data_usage_description_list"
|
||||||
android:entryValues="@array/limit_data_usage_values_list"
|
android:entryValues="@array/limit_data_usage_values_list"
|
||||||
|
@ -28,12 +32,14 @@
|
||||||
android:title="@string/limit_mobile_data_usage_title" />
|
android:title="@string/limit_mobile_data_usage_title" />
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/show_higher_resolutions_key"
|
android:key="@string/show_higher_resolutions_key"
|
||||||
android:summary="@string/show_higher_resolutions_summary"
|
android:summary="@string/show_higher_resolutions_summary"
|
||||||
android:title="@string/show_higher_resolutions_title"/>
|
android:title="@string/show_higher_resolutions_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_video_format_value"
|
android:defaultValue="@string/default_video_format_value"
|
||||||
android:entries="@array/video_format_description_list"
|
android:entries="@array/video_format_description_list"
|
||||||
android:entryValues="@array/video_format_values_list"
|
android:entryValues="@array/video_format_values_list"
|
||||||
|
@ -42,6 +48,7 @@
|
||||||
android:title="@string/default_video_format_title"/>
|
android:title="@string/default_video_format_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/default_audio_format_value"
|
android:defaultValue="@string/default_audio_format_value"
|
||||||
android:entries="@array/audio_format_description_list"
|
android:entries="@array/audio_format_description_list"
|
||||||
android:entryValues="@array/audio_format_values_list"
|
android:entryValues="@array/audio_format_values_list"
|
||||||
|
@ -50,21 +57,25 @@
|
||||||
android:title="@string/default_audio_format_title" />
|
android:title="@string/default_audio_format_title" />
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:layout="@layout/settings_category_header_layout"
|
android:layout="@layout/settings_category_header_layout"
|
||||||
android:title="@string/settings_category_player_title">
|
android:title="@string/settings_category_player_title">
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/use_external_video_player_key"
|
android:key="@string/use_external_video_player_key"
|
||||||
android:summary="@string/use_external_video_player_summary"
|
android:summary="@string/use_external_video_player_summary"
|
||||||
android:title="@string/use_external_video_player_title"/>
|
android:title="@string/use_external_video_player_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/use_external_audio_player_key"
|
android:key="@string/use_external_audio_player_key"
|
||||||
android:title="@string/use_external_audio_player_title"/>
|
android:title="@string/use_external_audio_player_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/show_play_with_kodi_key"
|
android:key="@string/show_play_with_kodi_key"
|
||||||
android:summary="@string/show_play_with_kodi_summary"
|
android:summary="@string/show_play_with_kodi_summary"
|
||||||
|
@ -77,6 +88,7 @@
|
||||||
android:title="@string/settings_category_player_behavior_title">
|
android:title="@string/settings_category_player_behavior_title">
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/preferred_open_action_default"
|
android:defaultValue="@string/preferred_open_action_default"
|
||||||
android:entries="@array/preferred_open_action_description_list"
|
android:entries="@array/preferred_open_action_description_list"
|
||||||
android:entryValues="@array/preferred_open_action_values_list"
|
android:entryValues="@array/preferred_open_action_values_list"
|
||||||
|
@ -85,6 +97,7 @@
|
||||||
android:title="@string/preferred_open_action_settings_title"/>
|
android:title="@string/preferred_open_action_settings_title"/>
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="@string/minimize_on_exit_value"
|
android:defaultValue="@string/minimize_on_exit_value"
|
||||||
android:entries="@array/minimize_on_exit_action_description"
|
android:entries="@array/minimize_on_exit_action_description"
|
||||||
android:entryValues="@array/minimize_on_exit_action_key"
|
android:entryValues="@array/minimize_on_exit_action_key"
|
||||||
|
@ -93,36 +106,42 @@
|
||||||
android:title="@string/minimize_on_exit_title"/>
|
android:title="@string/minimize_on_exit_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/auto_queue_key"
|
android:key="@string/auto_queue_key"
|
||||||
android:summary="@string/auto_queue_summary"
|
android:summary="@string/auto_queue_summary"
|
||||||
android:title="@string/auto_queue_title"/>
|
android:title="@string/auto_queue_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/resume_on_audio_focus_gain_key"
|
android:key="@string/resume_on_audio_focus_gain_key"
|
||||||
android:summary="@string/resume_on_audio_focus_gain_summary"
|
android:summary="@string/resume_on_audio_focus_gain_summary"
|
||||||
android:title="@string/resume_on_audio_focus_gain_title"/>
|
android:title="@string/resume_on_audio_focus_gain_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/volume_gesture_control_key"
|
android:key="@string/volume_gesture_control_key"
|
||||||
android:summary="@string/volume_gesture_control_summary"
|
android:summary="@string/volume_gesture_control_summary"
|
||||||
android:title="@string/volume_gesture_control_title"/>
|
android:title="@string/volume_gesture_control_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/brightness_gesture_control_key"
|
android:key="@string/brightness_gesture_control_key"
|
||||||
android:summary="@string/brightness_gesture_control_summary"
|
android:summary="@string/brightness_gesture_control_summary"
|
||||||
android:title="@string/brightness_gesture_control_title"/>
|
android:title="@string/brightness_gesture_control_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="@string/popup_remember_size_pos_key"
|
android:key="@string/popup_remember_size_pos_key"
|
||||||
android:summary="@string/popup_remember_size_pos_summary"
|
android:summary="@string/popup_remember_size_pos_summary"
|
||||||
android:title="@string/popup_remember_size_pos_title"/>
|
android:title="@string/popup_remember_size_pos_title"/>
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="@string/use_inexact_seek_key"
|
android:key="@string/use_inexact_seek_key"
|
||||||
android:summary="@string/use_inexact_seek_summary"
|
android:summary="@string/use_inexact_seek_summary"
|
||||||
|
|
60
assets/media_gadse.svg
Normal file
60
assets/media_gadse.svg
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="45.658001"
|
||||||
|
height="45.658001"
|
||||||
|
viewBox="0 0 12.080347 12.080406"
|
||||||
|
version="1.1"
|
||||||
|
id="svg6"
|
||||||
|
sodipodi:docname="media_gadse.svg"
|
||||||
|
inkscape:version="0.92.3 (2405546, 2018-03-11)"
|
||||||
|
inkscape:export-filename="/home/the-scrabi/Projects/NewPipe/assets/media_gadse.svg.png"
|
||||||
|
inkscape:export-xdpi="1076"
|
||||||
|
inkscape:export-ydpi="1076">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs10" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1366"
|
||||||
|
inkscape:window-height="737"
|
||||||
|
id="namedview8"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="7.6782421"
|
||||||
|
inkscape:cx="-1.1928166"
|
||||||
|
inkscape:cy="24.349191"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg6" />
|
||||||
|
<path
|
||||||
|
d="m 6.0768689,0.5299995 c -3.2341126,5.5189e-4 -5.85589584,2.6218874 -5.85700002,5.8559999 -1.8224e-4,0.7096349 0.12857558,1.4133981 0.38,2.077 0.086,-0.224 0.184,-0.444 0.308,-0.65 0.064,-0.105 0.13300002,-0.206 0.18000002,-0.32 0.051001,-0.1118859 0.06229,-0.2378274 0.032,-0.357 -0.022811,-0.065881 -0.056623,-0.1274188 -0.1,-0.182 -0.04,-0.056 -0.087,-0.11 -0.12400002,-0.168 -0.0973187,-0.1496106 -0.13809421,-0.3290228 -0.115,-0.506 0.0249628,-0.1774484 0.11915931,-0.3377983 0.26200002,-0.446 0.1294714,-0.092188 0.2862622,-0.1379925 0.445,-0.13 0.052534,0.00149 0.10479,0.00819 0.156,0.02 0.2053261,0.054599 0.3876405,0.1738048 0.52,0.34 0.165,0.202 0.262,0.457 0.286,0.717 0.024,0.26 -0.024,0.525 -0.124,0.766 -0.18,0.432 -0.52,0.78 -0.707,1.208 -0.152,0.35 -0.196,0.74 -0.175,1.122 0.003,0.035 0.008,0.07 0.01,0.106 0.4507334,0.5770346 1.0056516,1.0644546 1.636,1.4370006 -0.038078,-0.316572 -0.057112,-0.635146 -0.057,-0.954 0,-0.254 0.014,-0.5070006 0.038,-0.7570006 -0.1559054,-0.101895 -0.2893089,-0.2346178 -0.392,-0.39 -0.177,-0.28 -0.21,-0.635 -0.138,-0.96 0.073,-0.323 0.245,-0.618 0.45,-0.878 0.343398,-0.4301031 0.7823519,-0.7742129 1.282,-1.005 -0.014,-0.02 -0.03,-0.04 -0.04,-0.056 -0.1827732,-0.2976652 -0.2917986,-0.6346839 -0.318,-0.983 -0.026,-0.35 0.03,-0.703 0.052,-1.053 0.017,-0.245 0.018,-0.49 0.032,-0.735 0.017,-0.285 0.05,-0.568 0.13,-0.84 0.03,-0.1 0.065,-0.198 0.12,-0.284 0.065809,-0.1019387 0.159529,-0.1828158 0.27,-0.233 0.1103449,-0.046895 0.2319198,-0.060789 0.35,-0.04 0.1,0.022 0.192,0.072 0.273,0.134 0.082,0.062 0.152,0.138 0.218,0.215 0.1881609,0.2215513 0.3461975,0.4670124 0.47,0.73 0.1633637,-0.025246 0.3296363,-0.025246 0.493,0 0.1237511,-0.2630161 0.2817919,-0.5084837 0.47,-0.73 0.066,-0.078 0.136,-0.153 0.217,-0.215 0.079958,-0.064114 0.1732297,-0.1095538 0.273,-0.133 0.1189329,-0.024401 0.2425425,-0.010394 0.353,0.04 0.1097052,0.050551 0.2026866,0.1313891 0.268,0.233 0.057,0.086 0.092,0.184 0.12,0.283 0.08,0.272 0.115,0.556 0.132,0.84 0.014,0.244 0.015,0.49 0.032,0.734 0.023,0.35 0.08,0.702 0.052,1.053 -0.026083,0.3486523 -0.1351111,0.6860228 -0.318,0.984 -0.014,0.023 -0.03,0.044 -0.046,0.066 0.11,0.126 0.27,0.232 0.406,0.278 0.1529159,0.049547 0.3164474,0.056461 0.473,0.02 0.086478,-0.019618 0.1687655,-0.054497 0.243,-0.103 0.07379,-0.047833 0.135419,-0.1122013 0.18,-0.188 0.049414,-0.096424 0.078676,-0.2018999 0.086,-0.31 0.03,-0.275 0,-0.553 -0.024,-0.83 -0.015,-0.178 -0.028,-0.36 0.012,-0.535 0.023795,-0.1205425 0.082982,-0.2312563 0.17,-0.318 0.059653,-0.054775 0.1317196,-0.09424 0.21,-0.115 0.078274,-0.02067 0.1599513,-0.025095 0.24,-0.013 0.1733921,0.025417 0.3282341,0.1222381 0.4270001,0.267 0.05299,0.082963 0.08965,0.1752835 0.108,0.272 0.02,0.097 0.027,0.195 0.032,0.294 0.02,0.343 0.018,0.687 0.008,1.03 -0.008,0.302 -0.025,0.61 -0.145,0.886 -0.154,0.353 -0.4660001,0.617 -0.8000001,0.806 -0.2264625,0.1268843 -0.4675832,0.2256162 -0.718,0.294 0.2220702,0.7271828 0.3333186,1.4836724 0.33,2.2440006 -6.104e-4,0.320918 -0.020647,0.641504 -0.06,0.96 C 10.838809,10.373192 11.935418,8.4567876 11.937869,6.3849994 11.936213,3.1493244 9.3115436,0.52778961 6.0758689,0.5299995 Z"
|
||||||
|
id="path2"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
style="fill:#ffffff"
|
||||||
|
sodipodi:nodetypes="cccccccccccccscccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.9 KiB |
67
assets/pure_logo.svg
Normal file
67
assets/pure_logo.svg
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
version="1.1"
|
||||||
|
x="0px"
|
||||||
|
y="0px"
|
||||||
|
viewBox="0 0 100 100"
|
||||||
|
style="enable-background:new 0 0 100 100;"
|
||||||
|
xml:space="preserve"
|
||||||
|
id="svg12"
|
||||||
|
sodipodi:docname="NP logo v2.svg"
|
||||||
|
inkscape:version="0.92.3 (2405546, 2018-03-11)"><metadata
|
||||||
|
id="metadata18"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs16">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</defs><sodipodi:namedview
|
||||||
|
pagecolor="#9f9f9f"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1366"
|
||||||
|
inkscape:window-height="740"
|
||||||
|
id="namedview14"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="1.668772"
|
||||||
|
inkscape:cx="63.900143"
|
||||||
|
inkscape:cy="31.160181"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg12" />
|
||||||
|
<style
|
||||||
|
type="text/css"
|
||||||
|
id="style2">
|
||||||
|
.st0{fill:#CD201F;}
|
||||||
|
.st1{fill:#FFFFFF;}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke-width:1.2782383"
|
||||||
|
d="m 23.90906,10.210574 v 78.8688 c 0,0 7.70042,-4.556206 12.400409,-7.337388 V 67.476647 56.738946 31.685975 c 0,0 3.706891,2.172506 8.947669,5.240278 6.263367,3.579067 14.570418,8.564696 21.472905,12.655059 -9.358315,5.482649 -16.799873,9.875994 -22.496496,13.23426 V 77.053449 C 57.973932,68.927101 75.175728,58.76222 90.76192,49.581312 75.550885,40.633643 57.144253,29.76762 43.467104,21.714718 31.962959,14.940056 23.90906,10.210574 23.90906,10.210574 Z"
|
||||||
|
id="XMLID_19_"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
|
||||||
|
<g
|
||||||
|
id="Vonalak">
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
Loading…
Reference in a new issue