From 9a1da5cc75610c9a8e969b4ddff31011173312b1 Mon Sep 17 00:00:00 2001 From: 59436419 Date: Thu, 26 Jan 2017 12:07:41 +0530 Subject: [PATCH 1/5] Made changes for ICS and JB --- .../java/org/schabi/newpipe/ChannelActivity.java | 5 +++-- .../java/org/schabi/newpipe/ThemableActivity.java | 12 +++++------- .../schabi/newpipe/settings/SettingsActivity.java | 7 ++++--- app/src/main/res/layout/activity_error.xml | 4 ++-- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/ChannelActivity.java b/app/src/main/java/org/schabi/newpipe/ChannelActivity.java index 71e02c197..e64605218 100644 --- a/app/src/main/java/org/schabi/newpipe/ChannelActivity.java +++ b/app/src/main/java/org/schabi/newpipe/ChannelActivity.java @@ -73,8 +73,9 @@ public class ChannelActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { - if (Objects.equals(PreferenceManager.getDefaultSharedPreferences(this) - .getString("theme", getResources().getString(R.string.light_theme_title)), getResources().getString(R.string.dark_theme_title))) { + if (PreferenceManager.getDefaultSharedPreferences(this) + .getString("theme", getResources().getString(R.string.light_theme_title)). + equals(getResources().getString(R.string.dark_theme_title))) { setTheme(R.style.DarkTheme_NoActionBar); } super.onCreate(savedInstanceState); diff --git a/app/src/main/java/org/schabi/newpipe/ThemableActivity.java b/app/src/main/java/org/schabi/newpipe/ThemableActivity.java index 425801676..81789ec1c 100644 --- a/app/src/main/java/org/schabi/newpipe/ThemableActivity.java +++ b/app/src/main/java/org/schabi/newpipe/ThemableActivity.java @@ -1,21 +1,19 @@ package org.schabi.newpipe; +import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; -import java.util.Objects; - -import static org.schabi.newpipe.R.attr.theme; - public class ThemableActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - if (Objects.equals(PreferenceManager.getDefaultSharedPreferences(this) - .getString("theme", getResources().getString(R.string.light_theme_title)), getResources().getString(R.string.dark_theme_title))) { - setTheme(R.style.DarkTheme); + if (PreferenceManager.getDefaultSharedPreferences(this) + .getString("theme", getResources().getString(R.string.light_theme_title)). + equals(getResources().getString(R.string.dark_theme_title))) { + setTheme(R.style.DarkTheme); } } } \ No newline at end of file diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java index be4dbfc03..7765f9653 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java @@ -46,9 +46,10 @@ public class SettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceBundle) { - if (Objects.equals(PreferenceManager.getDefaultSharedPreferences(this) - .getString("theme", getResources().getString(R.string.light_theme_title)), getResources().getString(R.string.dark_theme_title))) { - setTheme(R.style.DarkTheme); + if (PreferenceManager.getDefaultSharedPreferences(this) + .getString("theme", getResources().getString(R.string.light_theme_title)). + equals(getResources().getString(R.string.dark_theme_title))) { + setTheme(R.style.DarkTheme); } getDelegate().installViewFactory(); getDelegate().onCreate(savedInstanceBundle); diff --git a/app/src/main/res/layout/activity_error.xml b/app/src/main/res/layout/activity_error.xml index 478c5218c..891dfe548 100644 --- a/app/src/main/res/layout/activity_error.xml +++ b/app/src/main/res/layout/activity_error.xml @@ -42,7 +42,7 @@ android:id="@+id/errorMessageView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="?android:attr/colorAccent" + android:textColor="?attr/colorAccent" android:text="@string/info_labels"/> Date: Tue, 31 Jan 2017 10:58:53 +0100 Subject: [PATCH 2/5] update support Framework --- app/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 87e7b79e1..dcdb87191 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,10 +32,10 @@ android { dependencies { testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:25.1.0' - compile 'com.android.support:support-v4:25.1.0' - compile 'com.android.support:design:25.1.0' - compile 'com.android.support:recyclerview-v7:25.1.0' + compile 'com.android.support:appcompat-v7:25.1.1' + compile 'com.android.support:support-v4:25.1.1' + compile 'com.android.support:design:25.1.1' + compile 'com.android.support:recyclerview-v7:25.1.1' compile 'org.jsoup:jsoup:1.8.3' compile 'org.mozilla:rhino:1.7.7' compile 'info.guardianproject.netcipher:netcipher:1.2' From 140b480f8293353280084c634392a349c2e9b27a Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 31 Jan 2017 12:22:54 +0100 Subject: [PATCH 3/5] url signature fix * fixed stacktrace * changed player url * took regex fix from youtube-dl final fix taken from youtube-dl --- .../org/schabi/newpipe/detail/StreamInfoWorker.java | 5 ++++- .../java/org/schabi/newpipe/extractor/Parser.java | 12 ++++++++++-- .../services/youtube/YoutubeStreamExtractor.java | 7 ++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/detail/StreamInfoWorker.java b/app/src/main/java/org/schabi/newpipe/detail/StreamInfoWorker.java index dd1ae9f5a..17a4572bd 100644 --- a/app/src/main/java/org/schabi/newpipe/detail/StreamInfoWorker.java +++ b/app/src/main/java/org/schabi/newpipe/detail/StreamInfoWorker.java @@ -125,10 +125,13 @@ public class StreamInfoWorker { e.printStackTrace(); } catch (YoutubeStreamExtractor.DecryptException de) { // custom service related exceptions + ErrorActivity.reportError(h, a, de, VideoItemDetailFragment.class, null, + ErrorActivity.ErrorInfo.make(ErrorActivity.REQUESTED_STREAM, + service.getServiceInfo().name, videoUrl, R.string.youtube_signature_decryption_error)); h.post(new Runnable() { @Override public void run() { - onStreamInfoReceivedListener.onError(R.string.youtube_signature_decryption_error); + a.finish(); } }); de.printStackTrace(); diff --git a/app/src/main/java/org/schabi/newpipe/extractor/Parser.java b/app/src/main/java/org/schabi/newpipe/extractor/Parser.java index b68d01fa7..8e70f751c 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/Parser.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/Parser.java @@ -42,15 +42,23 @@ public class Parser { } public static String matchGroup1(String pattern, String input) throws RegexException { + return matchGroup(pattern, input, 1); + } + + public static String matchGroup(String pattern, String input, int group) throws RegexException { Pattern pat = Pattern.compile(pattern); Matcher mat = pat.matcher(input); boolean foundMatch = mat.find(); if (foundMatch) { - return mat.group(1); + return mat.group(group); } else { //Log.e(TAG, "failed to find pattern \""+pattern+"\" inside of \""+input+"\""); - throw new RegexException("failed to find pattern \""+pattern+" inside of "+input+"\""); + if(input.length() > 1024) { + throw new RegexException("failed to find pattern \""+pattern); + } else { + throw new RegexException("failed to find pattern \"" + pattern + " inside of " + input + "\""); + } } } diff --git a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java index 63642e973..6dd0daa7c 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java @@ -791,10 +791,15 @@ public class YoutubeStreamExtractor extends StreamExtractor { try { Downloader downloader = NewPipe.getDownloader(); + if(!playerUrl.contains("https://youtube.com")) { + //sometimes the https://youtube.com part does not get send with + //than we have to add it by hand + playerUrl = "https://youtube.com" + playerUrl; + } String playerCode = downloader.download(playerUrl); decryptionFuncName = - Parser.matchGroup1("\\.sig\\|\\|([a-zA-Z0-9$]+)\\(", playerCode); + Parser.matchGroup("([\"\\'])signature\\1\\s*,\\s*([a-zA-Z0-9$]+)\\(", playerCode, 2); String functionPattern = "(" + decryptionFuncName.replace("$", "\\$") From 7257cdacc8e4b30d524a1c8d4d130af3b4299cb9 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 31 Jan 2017 18:23:22 +0100 Subject: [PATCH 4/5] fix background button problem --- .../schabi/newpipe/detail/VideoItemDetailFragment.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/detail/VideoItemDetailFragment.java b/app/src/main/java/org/schabi/newpipe/detail/VideoItemDetailFragment.java index 8efd549a2..eb75dfa6d 100644 --- a/app/src/main/java/org/schabi/newpipe/detail/VideoItemDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/detail/VideoItemDetailFragment.java @@ -144,6 +144,7 @@ public class VideoItemDetailFragment extends Fragment { TextView similarTitle = (TextView) activity.findViewById(R.id.detail_similar_title); Button backgroundButton = (Button) activity.findViewById(R.id.detail_stream_thumbnail_window_background_button); + View thumbnailView = activity.findViewById(R.id.detail_thumbnail_view); View topView = activity.findViewById(R.id.detailTopView); Button channelButton = (Button) activity.findViewById(R.id.channel_button); @@ -275,6 +276,14 @@ public class VideoItemDetailFragment extends Fragment { } }); + //todo: make backgroundButton handle this + thumbnailView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + playVideo(info); + } + }); + if (info.channel_url != null && info.channel_url != "") { channelButton.setOnClickListener(new View.OnClickListener() { @Override From 082c6128ade7600a1f1913ac2a853bda2a8fabe3 Mon Sep 17 00:00:00 2001 From: Christian Schabesberger Date: Tue, 31 Jan 2017 18:28:47 +0100 Subject: [PATCH 5/5] moved on to 0.8.9 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index dcdb87191..488012afc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "org.schabi.newpipe" minSdkVersion 15 targetSdkVersion 25 - versionCode 22 - versionName "0.8.8" + versionCode 23 + versionName "0.8.9" } buildTypes { release {