diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index be8a0ca80..4b0ca4811 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -13,6 +13,7 @@ Do not report crashes in the GitHub issue tracker. NewPipe has an automated cras
* Check whether your issue/feature is already fixed/implemented
* If you are an Android/Java developer, you are always welcome to fix/implement an issue/a feature yourself. PRs welcome!
* We use English for development. Issues in other languages will be closed and ignored.
+* Please only add *one* issue at a time. Do not put multiple issues into one thread.
## Bug Fixing
* If you want to help NewPipe to become free of bugs (this is our utopic goal for NewPipe), you can send us an email to tnp@newpipe.schabi.org to let me know that you intend to help. We'll send you further instructions. You may, on request, register at our [Sentry](https://sentry.schabi.org) instance (see section "Crash reporting" for more information.
diff --git a/.travis.yml b/.travis.yml
index fad605996..e0fcfb82b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,9 +10,6 @@ android:
# The SDK version used to compile NewPipe
- android-26
- # Additional components
- - extra-android-m2repository
-
script: ./gradlew -Dorg.gradle.jvmargs=-Xmx1536m assembleDebug lintDebug testDebugUnitTest
licenses:
diff --git a/README.md b/README.md
index ff53078c7..a127b10a5 100644
--- a/README.md
+++ b/README.md
@@ -1,34 +1,32 @@
+
+
WARNING: PUTTING NEWPIPE OR ANY FORK OF IT INTO GOOGLE PLAYSTORE VIOLATES THEIR TERMS OF CONDITIONS.
-# NewPipe
-NewPipe: A free lightweight YouTube frontend for Android.
-
-[![NewPipe](app/src/main/res/mipmap-xhdpi/ic_launcher.png)](https://newpipe.schabi.org)
-[![F-Droid](https://f-droid.org/wiki/images/0/06/F-Droid-button_get-it-on.png)](https://f-droid.org/packages/org.schabi.newpipe/)
-
-
-Project status:
-[![Translation Status](https://hosted.weblate.org/widgets/NewPipe/-/svg-badge.svg)](https://hosted.weblate.org/engage/NewPipe/)
-[![Build Status](https://travis-ci.org/TeamNewPipe/NewPipe.svg)](https://travis-ci.org/TeamNewPipe/NewPipe)
-
-## Donate
-![Bitcoin](https://bitcoin.org/img/icons/logotop.svg)
-![BitcoinQR](assets/16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh.png)
-
-`16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh`
-
## Screenshots
-[](screenshots/screenshot_1.png)
-[](screenshots/screenshot_2.png)
-[](screenshots/screenshot_3.png)
-[](screenshots/screenshot_4.png)
-[](screenshots/screenshot_5.png)
-[](screenshots/screenshot_6.png)
-[](screenshots/screenshot_7.png)
-[](screenshots/screenshot_8.png)
-[](screenshots/screenshot_9.png)
-
+[](screenshots/shot_1.png)
+[](screenshots/shot_2.png)
+[](screenshots/shot_3.png)
+[](screenshots/shot_4.png)
+[](screenshots/shot_5.png)
+[](screenshots/shot_6.png)
+[](screenshots/shot_7.png)
+[](screenshots/shot_8.png)
+[](screenshots/shot_9.png)
+[](screenshots/shot_10.png)
## Description
@@ -39,7 +37,7 @@ NewPipe does not use any Google framework libraries, or the YouTube API. It only
* Search videos
* Display general information about a video
* Watch YouTube videos
-* Listen to YouTube videos (experimental)
+* Listen to YouTube videos
* Popup mode (floating player)
* Select the streaming player to watch the video with
* Download videos
@@ -47,21 +45,23 @@ NewPipe does not use any Google framework libraries, or the YouTube API. It only
* Open a video in Kodi
* Show Next/Related videos
* Search YouTube in a specific language
-* Watch age restricted material
+* Watch/Block age restricted material
* Display general information about channels
* Search channels
* Watch videos from a channel
* Orbot/Tor support (not yet directly)
* 1080p/2k/4k support
+* View history
+* Subscribe to channels
+* Search history
+* Search/Watch Playlists
### Coming Features
+* Multiservice support (eg. SoundCloud)
* Bookmarks
-* View history
-* Search history
-* Subscribe to channels
-* Search/Watch Playlists
-* Queeing videos
+* Watch as queues Playlists
+* Queuing videos
* Subtitles support
* livestream support
* ... and many more
@@ -75,6 +75,22 @@ The more is done the better it gets!
If you'd like to get involved, check our [contribution notes](.github/CONTRIBUTING.md).
+## Donate
+If you like NewPipe we'd be happy about a donation. You can either donate via Bitcoin or BountySource. For further information about donating to NewPipe, please visit our [website](https://newpipe.schabi.org/donate/).
+
+
+
+
+
+
16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh
+
+
+
+
+
+
+
+
## License
[![GNU GPLv3 Image](https://www.gnu.org/graphics/gplv3-127x51.png)](http://www.gnu.org/licenses/gpl-3.0.en.html)
diff --git a/app/build.gradle b/app/build.gradle
index 742b00d4b..8bb0d19b2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -26,6 +26,9 @@ android {
debuggable true
applicationIdSuffix ".debug"
}
+ beta {
+ applicationIdSuffix ".beta"
+ }
}
lintOptions {
@@ -44,7 +47,7 @@ dependencies {
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2') {
exclude module: 'support-annotations'
}
-
+
compile 'com.github.TeamNewPipe:NewPipeExtractor:7fffef5'
testCompile 'junit:junit:4.12'
@@ -62,7 +65,7 @@ dependencies {
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.github.nirhart:parallaxscroll:1.0'
- compile 'com.nononsenseapps:filepicker:3.0.0'
+ compile 'com.nononsenseapps:filepicker:3.0.1'
compile 'com.google.android.exoplayer:exoplayer:r2.5.1'
debugCompile 'com.facebook.stetho:stetho:1.5.0'
diff --git a/app/src/beta/AndroidManifest.xml b/app/src/beta/AndroidManifest.xml
new file mode 100644
index 000000000..dd390a318
--- /dev/null
+++ b/app/src/beta/AndroidManifest.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/beta/res/mipmap-hdpi/ic_launcher.png b/app/src/beta/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 000000000..73c65771d
Binary files /dev/null and b/app/src/beta/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/beta/res/mipmap-mdpi/ic_launcher.png b/app/src/beta/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 000000000..6f5eeeee1
Binary files /dev/null and b/app/src/beta/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/beta/res/mipmap-xhdpi/ic_launcher.png b/app/src/beta/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 000000000..e871a3ea9
Binary files /dev/null and b/app/src/beta/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/beta/res/mipmap-xxhdpi/ic_launcher.png b/app/src/beta/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 000000000..e38901a86
Binary files /dev/null and b/app/src/beta/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 000000000..1cf7e64be
Binary files /dev/null and b/app/src/beta/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 826ae4f44..8ae994de7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -88,10 +88,14 @@
+ android:theme="@style/FilePickerThemeDark">
+
+
+
+
+
suggestionPublisher = PublishSubject.create();
private Disposable searchDisposable;
private Disposable suggestionWorkerDisposable;
+ private CompositeDisposable disposables = new CompositeDisposable();
private SuggestionListAdapter suggestionListAdapter;
@@ -149,6 +153,7 @@ public class SearchFragment extends BaseListFragment() {
+ @Override
+ public Intent call() throws Exception {
+ return NavigationHelper.getIntentByLink(activity, service, query);
+ }
+ })
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Consumer() {
+ @Override
+ public void accept(Intent intent) throws Exception {
+ getFragmentManager().popBackStackImmediate();
+ activity.startActivity(intent);
+ }
+ }, new Consumer() {
+ @Override
+ public void accept(Throwable throwable) throws Exception {
+ showError(getString(R.string.url_not_supported_toast), false);
+ hideLoading();
+ }
+ }));
+ return;
+ }
+ } catch (Exception e) {
+ // Exception occurred, it's not a url
+ }
+
hideSoftKeyboard(searchEditText);
this.searchQuery = query;
this.currentPage = 0;
@@ -532,6 +570,7 @@ public class SearchFragment extends BaseListFragment
+
+
+
+
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 000000000..a95153a1f
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 000000000..bccfaff0e
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 000000000..65ced7a8b
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 000000000..b7b42cbff
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 000000000..4ce448946
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml
new file mode 100644
index 000000000..1633e193a
--- /dev/null
+++ b/app/src/main/res/values/ic_launcher_background.xml
@@ -0,0 +1,4 @@
+
+
+ #CD201F
+
diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml
index c779e8216..76cd10681 100644
--- a/app/src/main/res/values/settings_keys.xml
+++ b/app/src/main/res/values/settings_keys.xml
@@ -51,7 +51,7 @@
MPEG-4WebM
- 3GPP
+ 3GP@string/video_mp4_key
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6663177e6..fa37f0e5d 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -109,23 +109,47 @@
@color/video_overlay_color
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/app/src/test/java/us/shandian/giga/get/get/DownloadManagerImplTest.java b/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java
similarity index 84%
rename from app/src/test/java/us/shandian/giga/get/get/DownloadManagerImplTest.java
rename to app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java
index a7242ba10..6ff702273 100644
--- a/app/src/test/java/us/shandian/giga/get/get/DownloadManagerImplTest.java
+++ b/app/src/test/java/us/shandian/giga/get/DownloadManagerImplTest.java
@@ -1,4 +1,4 @@
-package us.shandian.giga.get.get;
+package us.shandian.giga.get;
import org.junit.Ignore;
import org.junit.Test;
@@ -153,4 +153,34 @@ public class DownloadManagerImplTest {
assertSame(missions.get(1), downloadManager.getMission(1));
}
+ @Test
+ public void sortByTimestamp() throws Exception {
+ ArrayList downloadMissions = new ArrayList<>();
+ DownloadMission mission = new DownloadMission();
+ mission.timestamp = 0;
+
+ DownloadMission mission1 = new DownloadMission();
+ mission1.timestamp = Integer.MAX_VALUE + 1L;
+
+ DownloadMission mission2 = new DownloadMission();
+ mission2.timestamp = 2L * Integer.MAX_VALUE ;
+
+ DownloadMission mission3 = new DownloadMission();
+ mission3.timestamp = 2L * Integer.MAX_VALUE + 5L;
+
+
+ downloadMissions.add(mission3);
+ downloadMissions.add(mission1);
+ downloadMissions.add(mission2);
+ downloadMissions.add(mission);
+
+
+ DownloadManagerImpl.sortByTimestamp(downloadMissions);
+
+ assertEquals(mission, downloadMissions.get(0));
+ assertEquals(mission1, downloadMissions.get(1));
+ assertEquals(mission2, downloadMissions.get(2));
+ assertEquals(mission3, downloadMissions.get(3));
+ }
+
}
\ No newline at end of file
diff --git a/assets/BETA_new_pipe_icon_5.svg b/assets/BETA_new_pipe_icon_5.svg
new file mode 100644
index 000000000..9406f2469
--- /dev/null
+++ b/assets/BETA_new_pipe_icon_5.svg
@@ -0,0 +1,546 @@
+
+
diff --git a/assets/16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh.png b/assets/bitcoin_qr_code.png
similarity index 100%
rename from assets/16A9J59ahMRqkLSZjhYj33n9j3fMztFxnh.png
rename to assets/bitcoin_qr_code.png
diff --git a/assets/bountysource_qr_code.png b/assets/bountysource_qr_code.png
new file mode 100644
index 000000000..4fe03236a
Binary files /dev/null and b/assets/bountysource_qr_code.png differ
diff --git a/build.gradle b/build.gradle
index 52a96908f..5c494fe59 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,6 +3,7 @@
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
@@ -16,7 +17,7 @@ allprojects {
repositories {
jcenter()
maven { url 'https://jitpack.io' }
- maven { url 'https://maven.google.com' }
+ google()
maven { url 'https://clojars.org/repo' }
}
}
diff --git a/screenshots/screenshot_1.png b/screenshots/screenshot_1.png
deleted file mode 100644
index f2fd046bc..000000000
Binary files a/screenshots/screenshot_1.png and /dev/null differ
diff --git a/screenshots/screenshot_2.png b/screenshots/screenshot_2.png
deleted file mode 100644
index 6330e420d..000000000
Binary files a/screenshots/screenshot_2.png and /dev/null differ
diff --git a/screenshots/screenshot_3.png b/screenshots/screenshot_3.png
deleted file mode 100644
index e6477b2cc..000000000
Binary files a/screenshots/screenshot_3.png and /dev/null differ
diff --git a/screenshots/screenshot_4.png b/screenshots/screenshot_4.png
deleted file mode 100644
index ea9d8b1c7..000000000
Binary files a/screenshots/screenshot_4.png and /dev/null differ
diff --git a/screenshots/screenshot_5.png b/screenshots/screenshot_5.png
deleted file mode 100644
index c8ddb9fa7..000000000
Binary files a/screenshots/screenshot_5.png and /dev/null differ
diff --git a/screenshots/screenshot_6.png b/screenshots/screenshot_6.png
deleted file mode 100644
index d4d5122eb..000000000
Binary files a/screenshots/screenshot_6.png and /dev/null differ
diff --git a/screenshots/screenshot_7.png b/screenshots/screenshot_7.png
deleted file mode 100644
index 9a1e71385..000000000
Binary files a/screenshots/screenshot_7.png and /dev/null differ
diff --git a/screenshots/screenshot_8.png b/screenshots/screenshot_8.png
deleted file mode 100644
index 3e73bb358..000000000
Binary files a/screenshots/screenshot_8.png and /dev/null differ
diff --git a/screenshots/screenshot_9.png b/screenshots/screenshot_9.png
deleted file mode 100644
index d76c53f73..000000000
Binary files a/screenshots/screenshot_9.png and /dev/null differ
diff --git a/screenshots/shot_1.png b/screenshots/shot_1.png
new file mode 100644
index 000000000..986f201a1
Binary files /dev/null and b/screenshots/shot_1.png differ
diff --git a/screenshots/shot_10.png b/screenshots/shot_10.png
new file mode 100644
index 000000000..7e840d6dd
Binary files /dev/null and b/screenshots/shot_10.png differ
diff --git a/screenshots/shot_2.png b/screenshots/shot_2.png
new file mode 100644
index 000000000..10c70b54d
Binary files /dev/null and b/screenshots/shot_2.png differ
diff --git a/screenshots/shot_3.png b/screenshots/shot_3.png
new file mode 100644
index 000000000..7e3af77c1
Binary files /dev/null and b/screenshots/shot_3.png differ
diff --git a/screenshots/shot_4.png b/screenshots/shot_4.png
new file mode 100644
index 000000000..cdaf96153
Binary files /dev/null and b/screenshots/shot_4.png differ
diff --git a/screenshots/shot_5.png b/screenshots/shot_5.png
new file mode 100644
index 000000000..64c0a164d
Binary files /dev/null and b/screenshots/shot_5.png differ
diff --git a/screenshots/shot_6.png b/screenshots/shot_6.png
new file mode 100644
index 000000000..8a7af3c16
Binary files /dev/null and b/screenshots/shot_6.png differ
diff --git a/screenshots/shot_7.png b/screenshots/shot_7.png
new file mode 100644
index 000000000..d6a9b1ce2
Binary files /dev/null and b/screenshots/shot_7.png differ
diff --git a/screenshots/shot_8.png b/screenshots/shot_8.png
new file mode 100644
index 000000000..5fe620d00
Binary files /dev/null and b/screenshots/shot_8.png differ
diff --git a/screenshots/shot_9.png b/screenshots/shot_9.png
new file mode 100644
index 000000000..b4d51b7e0
Binary files /dev/null and b/screenshots/shot_9.png differ