Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.27.3 (1000) #11712

Merged
merged 101 commits into from
Nov 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
f4fb960
Migrate to non-transitive R classes
Stypox Mar 28, 2024
d9d6fff
Update README.md
praharaj-ashutosh Apr 26, 2024
9e4ac2e
Merge pull request #11003 from ashutosh001/dev
Stypox Apr 26, 2024
879d7a2
Fix github worklow for Android tests (#11014)
snaik20 Apr 28, 2024
8267d32
Fix compilation error when parsing unsupported file format
AbdeltwabMF Apr 30, 2024
b74cab6
Adjust the playlist bookmark item layout for RTL languages
AbdeltwabMF Apr 30, 2024
cf21b9f
Revert "Fix compilation error when parsing unsupported file format"
AbdeltwabMF May 1, 2024
e37336e
Merge pull request #10918 from Stypox/non-transitive-r
Stypox May 8, 2024
7204407
Fix RSS button visibility
snaik20 May 12, 2024
4613934
Convert comment touch listener to a lambda
Isira-Seneviratne May 15, 2024
c02ceda
Use layout constraints instead of static height
AbdeltwabMF May 18, 2024
e48ce5a
Update PrettyTime to 5.0.8
moontoaster May 23, 2024
8645618
Merge pull request #11094 from moontoaster/update-prettytime-to-fix-u…
TobiGr May 23, 2024
3e3d1fd
Merge pull request #11075 from Isira-Seneviratne/Comment-touch-lambda
Isira-Seneviratne May 25, 2024
2a3d133
Add missing Peertube instance subscribeto.me to the links Newpipe han…
May 27, 2024
8583c48
fixes #11093
aryn-ydv May 28, 2024
e1bf67c
Update README.md
shrimprugbysnowowl Jun 7, 2024
71822a4
Update README.md
shrimprugbysnowowl Jun 7, 2024
c795214
Merge pull request #11112 from aryn-ydv/extend-playlist-description
TobiGr Jun 17, 2024
a2d93b3
Merge pull request #11110 from Neznak/add-peertube-instance
TobiGr Jun 17, 2024
0c7a91f
Merge pull request #11067 from snaik20/fix_rss_button_visibility
TobiGr Jun 17, 2024
e64c01d
Remove kotlin restriction
EricDriussi Jun 24, 2024
4eeea7b
Merge pull request #11209 from EricDriussi/kotlin-contributing
Stypox Jun 25, 2024
2ac0d1f
add NP icon for Android Studio's NewUI
theScrabi Jul 2, 2024
1f30985
Run CI on pull requests to refactor branch, too
Stypox Jul 2, 2024
5e5e77f
Merge pull request #11230 from TeamNewPipe/idea_icon
TobiGr Jul 3, 2024
26dd86e
Use Android's elapsed time formatting
Isira-Seneviratne Jul 7, 2024
07c63f7
Update documentation
Isira-Seneviratne Jul 7, 2024
ad6b676
Update README.pt_BR.md (#11275)
tag27 Jul 13, 2024
72e9f7f
Merge branch 'master' into dev
Stypox Jul 15, 2024
0e8303f
Update Matrix room link, and prioritise it (#11350)
opusforlife2 Jul 25, 2024
51ee2f8
Merge branch 'master' into dev
Stypox Jul 25, 2024
38c823a
Remove outdated returnActivity test code
Two-Ai Aug 10, 2024
fad3120
Merge pull request #11428 from Two-Ai/remove-returnActivity-test
TobiGr Aug 14, 2024
035c394
Fixing the 404 page not found, when clicking on "contribution notes" …
Stackoverflow-addict Aug 30, 2024
063568b
Fixed playlist order between "Bookmarked Playlists" list and "add to …
nicholasala Sep 26, 2024
eb9f300
Fix seekbar preview crashes (#11584)
Thompson3142 Oct 10, 2024
781a69d
Chanegd related videos enqueue modal to attach to parent fragment ins…
rmtilde Oct 16, 2024
b14f658
Added comments to explain changes
rmtilde Oct 16, 2024
678f0a7
Merge pull request #1 from rmtilde/fix-related-items-enqueue-on-video…
rmtilde Oct 17, 2024
53edd05
Project now runs
u7656655 Oct 17, 2024
0cf4732
Fix UI crash when user navigates away before the download dialog appears
elvakang Oct 19, 2024
2eb2567
Revert "Project now runs"
elvakang Oct 19, 2024
ee15a72
Fix build failing locally due to outdated kotlin version
litetex Oct 22, 2024
8106ba6
CI: Use Java 21
litetex Oct 22, 2024
d80b6a7
Use working Extractor version
litetex Oct 22, 2024
ea0da5f
Delete symlink
litetex Oct 22, 2024
b1d4b66
Replace symlink with original
litetex Oct 22, 2024
9384365
Update Gradle to latest version
litetex Oct 22, 2024
2482615
Fix Android Gradle plugin warning
litetex Oct 22, 2024
2e96b65
Replaced ``Icepick`` with ``Bridge`` and ``Android-State``
litetex Oct 23, 2024
3a28651
Merge pull request #11636 from litetex/fix-build-2024-10
Stypox Oct 23, 2024
63bc982
Merge branch 'TeamNewPipe:dev' into fixing-ui-crash-11468
elvakang Oct 24, 2024
1ed4928
Add comment for fragment lifecycle checks before showing DownloadDialog
elvakang Oct 24, 2024
0190bce
Fix line length violation
elvakang Oct 24, 2024
1996c11
Merge branch 'TeamNewPipe:dev' into fix-related-items-enque-popup-crash
rmtilde Oct 26, 2024
fef4001
Added not null check for thumbnail URL before performing comparison
u7656655 Oct 27, 2024
05a87da
Merge pull request #11651 from u7656655/fix-addtoplaylist-crash
TobiGr Oct 27, 2024
f4baf46
Update app/src/main/java/org/schabi/newpipe/info_list/dialog/StreamDi…
TobiGr Oct 27, 2024
ba1e9c8
Update comment
Thompson3142 Oct 24, 2024
2396154
Formatting changes (back to original)
Thompson3142 Oct 27, 2024
cdac50b
Merge pull request #11596 from Thompson3142/fix_scrubbing_seekbar_pre…
TobiGr Oct 27, 2024
c855069
Make it possible control the version code and name
litetex Oct 27, 2024
94f992a
Merge pull request #11656 from litetex/better-control-over-version
TobiGr Oct 27, 2024
734b6e2
Add null-safe SharedPreferences.getStringSafe
Two-Ai Aug 30, 2024
64ad05d
Merge pull request #11629 from Two-Ai/kotlin-getStringSafe
TobiGr Oct 27, 2024
90404a2
Merge pull request #11621 from u7656655/fixing-ui-crash-11468
TobiGr Nov 2, 2024
66ec596
Update app/src/main/java/org/schabi/newpipe/fragments/list/videos/Rel…
rmtilde Nov 3, 2024
c0b36b8
Merge pull request #11614 from rmtilde/fix-related-items-enque-popup-…
TobiGr Nov 3, 2024
1193b02
Update user agent to Firefox ESR128
TobiGr Jul 11, 2024
f08e078
Merge pull request #11566 from nicholasala/fix/#10993-strange-playlis…
Stypox Nov 10, 2024
fe1c538
Update README.md
TobiGr Nov 11, 2024
7c18d4d
Update README.md
TobiGr Nov 11, 2024
0009613
Merge pull request #11140 from shrimprugbysnowowl/dev
TobiGr Nov 11, 2024
0ac5a26
Update README.md
VishramKidPG123 Nov 12, 2024
cb30072
Remove history dialog override so clicking "Start playing in the back…
codyit Nov 12, 2024
544b302
Merge pull request #11694 from VishramKidPG123/fix-typo-in-readme
Stypox Nov 12, 2024
a229ab6
Merge pull request #11696 from codyit/history-remove-dialog-override
Stypox Nov 12, 2024
6fe417a
Merge pull request #11024 from AbdeltwabMF/fix/rtl_lang_adjustment_bo…
Stypox Nov 14, 2024
bcd4579
Translated using Weblate (Hebrew)
weblate Nov 12, 2024
986cd52
Fix crash because of no height set on playlist bookmark
Stypox Nov 16, 2024
b43031f
Ellipsize uploader text in playlist bookmark
Stypox Nov 16, 2024
1f39523
Update NewPipeExtractor
Stypox Nov 16, 2024
e6c03bf
Merge pull request #11711 from Stypox/prepare-for-0.27.3
Stypox Nov 17, 2024
4ba961f
Translated using Weblate (Hungarian)
mdvhimself Nov 15, 2024
970ef93
Merge branch 'origin/dev' into Weblate.
weblate Nov 17, 2024
a962e6d
Add changelog for v0.27.3 (1000)
Stypox Nov 17, 2024
cf870ad
Release v0.27.3 (1000)
Stypox Nov 17, 2024
3c8d81a
add README.fr.md
KaGaster Mar 19, 2024
06d25b0
Merge pull request #11244 from Isira-Seneviratne/Android-elapsed-time
Stypox Nov 18, 2024
841471b
Merge pull request #10892 from KaGaster/el-koko
Stypox Nov 18, 2024
9f2f219
Merge branch 'dev' into release-0.27.3
Stypox Nov 18, 2024
10e7a5c
Merge pull request #11268 from TeamNewPipe/user-agent
Stypox Nov 18, 2024
8bf24e6
Merge branch 'dev' into release-0.27.3
Stypox Nov 18, 2024
33b96d2
Throttle loading subscriptions feed to avoid YouTube rate limits
Stypox Nov 24, 2024
726c12e
Only throttle YouTube feed loading
Stypox Nov 24, 2024
acf2e88
Merge pull request #11743 from TeamNewPipe/slower-feed
Stypox Nov 24, 2024
dc3f556
Add support for secondary audio track type
AudricV Nov 5, 2024
1255817
Merge pull request #11714 from AudricV/yt_more-audio-track-types-support
Stypox Nov 24, 2024
661e615
Update NewPipeExtractor to v0.24.3
Stypox Nov 24, 2024
a79bc3d
Translated using Weblate (Italian)
weblate Nov 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 3 additions & 7 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,6 @@ You'll see *exactly* what is sent, be able to add **your comments**, and then se
* Create PRs that cover only **one specific issue/solution/bug**. Do not create PRs that are huge monoliths and could have been split into multiple independent contributions.
* NewPipe uses [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) to fetch data from services. If you need to change something there, you must test your changes in NewPipe. Telling NewPipe to use your extractor version can be accomplished by editing the `app/build.gradle` file: the comments under the "NewPipe libraries" section of `dependencies` will help you out.

### Kotlin in NewPipe
* NewPipe will remain mostly Java for time being
* Contributions containing a simple conversion from Java to Kotlin should be avoided. Conversions to Kotlin should only be done if Kotlin actually brings improvements like bug fixes or better performance which are not, or only with much more effort, implementable in Java. The core team sees Java as an easier to learn and generally well adopted programming language.

### Creating a Pull Request (PR)

* Make changes on a **separate branch** with a meaningful name, not on the _master_ branch or the _dev_ branch. This is commonly known as *feature branch workflow*. You may then send your changes as a pull request (PR) on GitHub.
Expand Down Expand Up @@ -83,6 +79,6 @@ The [ktlint](https://github.com/pinterest/ktlint) plugin does the same job as ch

## Communication

* The #newpipe channel on Libera Chat (`ircs://irc.libera.chat:6697/newpipe`) has the core team and other developers in it. [Click here for webchat](https://web.libera.chat/#newpipe)!
* You can also use a Matrix account to join the NewPipe channel at [#newpipe:libera.chat](https://matrix.to/#/#newpipe:libera.chat). Some convenient clients, available both for phone and desktop, are listed at that link.
* You can post your suggestions, changes, ideas etc. on either GitHub or IRC.
* You can use a Matrix account to join the NewPipe channel at [#newpipe:matrix.newpipe-ev.de](https://matrix.to/#/#newpipe:matrix.newpipe-ev.de). Some convenient clients, available both for phone and desktop, are listed at that link.
* Alternatively, the #newpipe channel on Libera Chat (`ircs://irc.libera.chat:6697/newpipe`) can also be joined, as it is bridged to the Matrix room. [Click here for webchat](https://web.libera.chat/#newpipe)!
* You can post your suggestions, changes, ideas etc. on either GitHub or Matrix (including via IRC).
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ contact_links:
- name: ❓ Question
url: https://github.com/TeamNewPipe/NewPipe/discussions/new?category=questions
about: Ask about anything NewPipe-related
- name: 💬 Matrix
url: https://matrix.to/#/#newpipe:matrix.newpipe-ev.de
about: Chat with us via Matrix for quick Q/A
- name: 💬 IRC
url: https://web.libera.chat/#newpipe
about: Chat with us via IRC for quick Q/A
- name: 💬 Matrix
url: https://matrix.to/#/#newpipe:libera.chat
about: Chat with us via Matrix for quick Q/A
22 changes: 14 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
branches:
- dev
- master
- refactor
- release**
paths-ignore:
- 'README.md'
Expand Down Expand Up @@ -46,10 +47,10 @@ jobs:
BRANCH: ${{ github.head_ref }}
run: git checkout -B "$BRANCH"

- name: set up JDK 17
- name: set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: "temurin"
cache: 'gradle'

Expand All @@ -63,8 +64,7 @@ jobs:
path: app/build/outputs/apk/debug/*.apk

test-android:
# macos has hardware acceleration. See android-emulator-runner action
runs-on: macos-latest
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
matrix:
Expand All @@ -82,10 +82,16 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: set up JDK 17
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: "temurin"
cache: 'gradle'

Expand Down Expand Up @@ -115,10 +121,10 @@ jobs:
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis

- name: Set up JDK 17
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: "temurin"
cache: 'gradle'

Expand Down
21 changes: 21 additions & 0 deletions .idea/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 12 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,20 +96,28 @@ Also, since they are free and open source software, neither the app nor the Extr
## Installation and updates
You can install NewPipe using one of the following methods:
1. Add our custom repo to F-Droid and install it from there. The instructions are here: https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
2. Download the APK from [GitHub Releases](https://github.com/TeamNewPipe/NewPipe/releases) and install it.
2. Download the APK from [GitHub Releases](https://github.com/TeamNewPipe/NewPipe/releases), [compare the signing key](#apk-info) and install it.
3. Update via F-Droid. This is the slowest method of getting updates, as F-Droid must recognize changes, build the APK itself, sign it, and then push the update to users.
4. Build a debug APK yourself. This is the fastest way to get new features on your device, but is much more complicated, so we recommend using one of the other methods.
5. If you're interested in a specific feature or bugfix provided in a Pull Request in this repo, you can also download its APK from within the PR. Read the PR description for instructions. The great thing about PR-specific APKs is that they're installed side-by-side the official app, so you don't have to worry about losing your data or messing anything up.

We recommend method 1 for most users. APKs installed using method 1 or 2 are compatible with each other (meaning that if you installed NewPipe using either method 1 or 2, you can also update NewPipe using the other), but not with those installed using method 3. This is due to the same signing key (ours) being used for 1 and 2, but a different signing key (F-Droid's) being used for 3. Building a debug APK using method 4 excludes a key entirely. Signing keys help ensure that a user isn't tricked into installing a malicious update to an app. When using method 5, each APK is signed with a different random key supplied by GitHub Actions, so you cannot even update it. You will have to backup and restore the app data each time you wish to use a new APK.

In the meanwhile, if you want to switch sources for some reason (e.g. NewPipe's core functionality breaks and F-Droid doesn't have the latest update yet), we recommend following this procedure:
1. Back up your data via Settings > Content > Export Database so you keep your history, subscriptions, and playlists
1. Back up your data via Settings > Backup and Restore > Export Database so you keep your history, subscriptions, and playlists
2. Uninstall NewPipe
3. Download the APK from the new source and install it
4. Import the data from step 1 via Settings > Content > Import Database
4. Import the data from step 1 via Settings > Backup and Restore > Import Database

<b>Note: when you're importing a database into the official app, always make sure that it is the one you exported _from_ the official app. If you import a database exported from an APK other than the official app, it may break things. Such an action is unsupported, and you should only do so when you're absolutely certain you know what you're doing.</b>
> [!Note]
> When you're importing a database into the official app, always make sure that it is the one you exported _from_ the official app. If you import a database exported from an APK other than the official app, it may break things. Such an action is unsupported, and you should only do so when you're absolutely certain you know what you're doing.

### APK Info

This is the SHA fingerprint of NewPipe's signing key to verify downloaded APKs which are signed by us. The fingerprint is also available on [NewPipe's website](https://newpipe.net#download). This is relevant for method 2.
```
CB:84:06:9B:D6:81:16:BA:FA:E5:EE:4E:E5:B0:8A:56:7A:A6:D8:98:40:4E:7C:B1:2F:9E:75:6D:F5:CF:5C:AB
```

## Contribution
Whether you have ideas, translations, design changes, code cleaning, or even major code changes, help is always welcome. The app gets better and better with each contribution, no matter how big or small! If you'd like to get involved, check our [contribution notes](.github/CONTRIBUTING.md).
Expand Down
25 changes: 18 additions & 7 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,15 @@ android {
resValue "string", "app_name", "NewPipe"
minSdk 21
targetSdk 33
versionCode 999
versionName "0.27.2"
if (System.properties.containsKey('versionCodeOverride')) {
versionCode System.getProperty('versionCodeOverride') as Integer
} else {
versionCode 1000
}
versionName "0.27.3"
if (System.properties.containsKey('versionNameSuffix')) {
versionNameSuffix System.getProperty('versionNameSuffix')
}

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Expand Down Expand Up @@ -92,6 +99,7 @@ android {

buildFeatures {
viewBinding true
buildConfig true
}

packagingOptions {
Expand All @@ -112,7 +120,7 @@ ext {
androidxRoomVersion = '2.6.1'
androidxWorkVersion = '2.8.1'

icepickVersion = '3.2.0'
stateSaverVersion = '1.4.1'
exoPlayerVersion = '2.18.7'
googleAutoServiceVersion = '1.1.1'
groupieVersion = '2.10.1'
Expand Down Expand Up @@ -198,7 +206,9 @@ dependencies {
// name and the commit hash with the commit hash of the (pushed) commit you want to test
// This works thanks to JitPack: https://jitpack.io/
implementation 'com.github.TeamNewPipe:nanojson:1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751'
implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.24.2'
// WORKAROUND: if you get errors with the NewPipeExtractor dependency, replace `v0.24.3` with
// the corresponding commit hash, since JitPack is sometimes buggy
implementation 'com.github.TeamNewPipe:NewPipeExtractor:v0.24.3'
implementation 'com.github.TeamNewPipe:NoNonsense-FilePicker:5.0.0'

/** Checkstyle **/
Expand Down Expand Up @@ -234,8 +244,9 @@ dependencies {

/** Third-party libraries **/
// Instance state boilerplate elimination
implementation "frankiesardo:icepick:${icepickVersion}"
kapt "frankiesardo:icepick-processor:${icepickVersion}"
implementation 'com.github.livefront:bridge:v2.0.2'
implementation "com.evernote:android-state:$stateSaverVersion"
kapt "com.evernote:android-state-processor:$stateSaverVersion"

// HTML parser
implementation "org.jsoup:jsoup:1.17.2"
Expand Down Expand Up @@ -282,7 +293,7 @@ dependencies {
implementation "com.jakewharton.rxbinding4:rxbinding:4.0.0"

// Date and time formatting
implementation "org.ocpsoft.prettytime:prettytime:5.0.7.Final"
implementation "org.ocpsoft.prettytime:prettytime:5.0.8.Final"

/** Debugging **/
// Memory leak detection
Expand Down
9 changes: 0 additions & 9 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,6 @@
## Rules for ExoPlayer
-keep class com.google.android.exoplayer2.** { *; }

## Rules for Icepick. Copy pasted from https://github.com/frankiesardo/icepick
-dontwarn icepick.**
-keep class icepick.** { *; }
-keep class **$$Icepick { *; }
-keepclasseswithmembernames class * {
@icepick.* <fields>;
}
-keepnames class * { @icepick.State *;}

## Rules for OkHttp. Copy pasted from https://github.com/square/okhttp
-dontwarn okhttp3.**
-dontwarn okio.**
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,7 @@
<data android:host="tilvids.com" />
<data android:host="video.lqdn.fr" />
<data android:host="video.ploud.fr" />
<data android:host="subscribeto.me" />

<data android:pathPrefix="/videos/" /> <!-- it contains playlists -->
<data android:pathPrefix="/w/" /> <!-- short video URLs -->
Expand Down
6 changes: 4 additions & 2 deletions app/src/main/java/org/schabi/newpipe/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@
import org.schabi.newpipe.extractor.downloader.Downloader;
import org.schabi.newpipe.ktx.ExceptionUtils;
import org.schabi.newpipe.settings.NewPipeSettings;
import org.schabi.newpipe.util.BridgeStateSaverInitializer;
import org.schabi.newpipe.util.Localization;
import org.schabi.newpipe.util.image.ImageStrategy;
import org.schabi.newpipe.util.image.PicassoHelper;
import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver;
import org.schabi.newpipe.util.image.ImageStrategy;
import org.schabi.newpipe.util.image.PicassoHelper;
import org.schabi.newpipe.util.image.PreferredImageQuality;

import java.io.IOException;
Expand Down Expand Up @@ -101,6 +102,7 @@ public void onCreate() {
Localization.getPreferredContentCountry(this));
Localization.initPrettyTime(Localization.resolvePrettyTime(getApplicationContext()));

BridgeStateSaverInitializer.init(this);
StateSaver.init(this);
initNotificationChannels();

Expand Down
9 changes: 5 additions & 4 deletions app/src/main/java/org/schabi/newpipe/BaseFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;

import icepick.Icepick;
import icepick.State;
import com.evernote.android.state.State;
import com.livefront.bridge.Bridge;


public abstract class BaseFragment extends Fragment {
protected final String TAG = getClass().getSimpleName() + "@" + Integer.toHexString(hashCode());
Expand Down Expand Up @@ -48,7 +49,7 @@ public void onCreate(final Bundle savedInstanceState) {
+ "savedInstanceState = [" + savedInstanceState + "]");
}
super.onCreate(savedInstanceState);
Icepick.restoreInstanceState(this, savedInstanceState);
Bridge.restoreInstanceState(this, savedInstanceState);
if (savedInstanceState != null) {
onRestoreInstanceState(savedInstanceState);
}
Expand All @@ -70,7 +71,7 @@ public void onViewCreated(@NonNull final View rootView, final Bundle savedInstan
@Override
public void onSaveInstanceState(@NonNull final Bundle outState) {
super.onSaveInstanceState(outState);
Icepick.saveInstanceState(this, outState);
Bridge.saveInstanceState(this, outState);
}

protected void onRestoreInstanceState(@NonNull final Bundle savedInstanceState) {
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/org/schabi/newpipe/DownloaderImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

public final class DownloaderImpl extends Downloader {
public static final String USER_AGENT =
"Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0";
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0";
public static final String YOUTUBE_RESTRICTED_MODE_COOKIE_KEY =
"youtube_restricted_mode_key";
public static final String YOUTUBE_RESTRICTED_MODE_COOKIE = "PREF=f2=8000000";
Expand Down
9 changes: 5 additions & 4 deletions app/src/main/java/org/schabi/newpipe/RouterActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.PreferenceManager;

import com.evernote.android.state.State;
import com.livefront.bridge.Bridge;

import org.schabi.newpipe.database.stream.model.StreamEntity;
import org.schabi.newpipe.databinding.ListRadioIconItemBinding;
import org.schabi.newpipe.databinding.SingleChoiceDialogViewBinding;
Expand Down Expand Up @@ -98,8 +101,6 @@
import java.util.Optional;
import java.util.function.Consumer;

import icepick.Icepick;
import icepick.State;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.core.Single;
Expand Down Expand Up @@ -152,7 +153,7 @@ protected void onCreate(final Bundle savedInstanceState) {
getWindow().setAttributes(params);

super.onCreate(savedInstanceState);
Icepick.restoreInstanceState(this, savedInstanceState);
Bridge.restoreInstanceState(this, savedInstanceState);

// FragmentManager will take care to recreate (Playlist|Download)Dialog when screen rotates
// We used to .setOnDismissListener(dialog -> finish()); when creating these DialogFragments
Expand Down Expand Up @@ -197,7 +198,7 @@ protected void onStop() {
@Override
protected void onSaveInstanceState(@NonNull final Bundle outState) {
super.onSaveInstanceState(outState);
Icepick.saveInstanceState(this, outState);
Bridge.saveInstanceState(this, outState);
}

@Override
Expand Down
8 changes: 6 additions & 2 deletions app/src/main/java/org/schabi/newpipe/about/AboutActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,12 @@ class AboutActivity : AppCompatActivity() {
"https://github.com/lisawray/groupie", StandardLicenses.MIT
),
SoftwareComponent(
"Icepick", "2015", "Frankie Sardo",
"https://github.com/frankiesardo/icepick", StandardLicenses.EPL1
"Android-State", "2018", "Evernote",
"https://github.com/Evernote/android-state", StandardLicenses.EPL1
),
SoftwareComponent(
"Bridge", "2021", "Livefront",
"https://github.com/livefront/bridge", StandardLicenses.APACHE2
),
SoftwareComponent(
"Jsoup", "2009 - 2020", "Jonathan Hedley",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,6 @@ default Flowable<List<PlaylistStreamEntity>> listByService(final int serviceId)
+ " AND :streamUrl = :streamUrl"

+ " GROUP BY " + JOIN_PLAYLIST_ID
+ " ORDER BY " + PLAYLIST_DISPLAY_INDEX)
+ " ORDER BY " + PLAYLIST_DISPLAY_INDEX + ", " + PLAYLIST_NAME)
Flowable<List<PlaylistDuplicatesEntry>> getPlaylistDuplicatesMetadata(String streamUrl);
}
Loading
Loading