From cf377c2591f06d834ee7bbfe54252ec7bf985d32 Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Mon, 3 Feb 2020 10:35:50 +0100 Subject: [PATCH 001/195] Fix bug causing crashes when sharing a downloaded file. --- .../giga/ui/adapter/MissionAdapter.java | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java index 852c29835b0..c2d3a9b9e83 100644 --- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java +++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java @@ -341,17 +341,7 @@ private void viewWithFileProvider(Mission mission) { if (BuildConfig.DEBUG) Log.v(TAG, "Mime: " + mimeType + " package: " + BuildConfig.APPLICATION_ID + ".provider"); - Uri uri; - - if (mission.storage.isDirect()) { - uri = FileProvider.getUriForFile( - mContext, - BuildConfig.APPLICATION_ID + ".provider", - new File(URI.create(mission.storage.getUri().toString())) - ); - } else { - uri = mission.storage.getUri(); - } + Uri uri = resolveShareableUri(mission); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); @@ -379,11 +369,30 @@ private void shareFile(Mission mission) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType(resolveMimeType(mission)); - intent.putExtra(Intent.EXTRA_STREAM, mission.storage.getUri()); + intent.putExtra(Intent.EXTRA_STREAM, resolveShareableUri(mission)); + intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION); mContext.startActivity(Intent.createChooser(intent, null)); } + /** + * Returns an Uri which can be shared to other applications. + * + * @see + * https://stackoverflow.com/questions/38200282/android-os-fileuriexposedexception-file-storage-emulated-0-test-txt-exposed + */ + private Uri resolveShareableUri(Mission mission) { + if (mission.storage.isDirect()) { + return FileProvider.getUriForFile( + mContext, + BuildConfig.APPLICATION_ID + ".provider", + new File(URI.create(mission.storage.getUri().toString())) + ); + } else { + return mission.storage.getUri(); + } + } + private static String resolveMimeType(@NonNull Mission mission) { String mimeType; From 91bd0be39eb8b8fd3315005efeaee729f4dd7bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Allan=20Nordh=C3=B8y?= Date: Mon, 17 Feb 2020 14:54:45 +0100 Subject: [PATCH 002/195] Spelling: Some devices are incompatible --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1a70d9eaa13..2329f1a77ad 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -590,7 +590,7 @@ You will be asked where to save each download You will be asked where to save each download.\nChoose SAF if you want to download to an external SD card Use SAF - The \'Storage Access Framework\' allows downloads to an external SD card.\nNote: some devices are incompatible + The \'Storage Access Framework\' allows downloads to an external SD card.\nSome devices are incompatible Choose an instance App language System default From 01dcf550cfd6f5e5b0d8f72779f118bea3622028 Mon Sep 17 00:00:00 2001 From: Poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Sat, 22 Feb 2020 19:56:56 -0800 Subject: [PATCH 003/195] Update issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 38 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 24 ++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000000..32fa3e03ead --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a bug report to help us improve +title: "[BUG]" +labels: bug +assignees: '' + +--- + + +### Steps to reproduce +Steps to reproduce the behavior: +1. Go to '...' +2. Press on '....' +3. Swipe down to '....' + +### Expected behavior +Tell us what you expected to happen. + +### Actual behaviour +Tell us what happens instead + +### Screenshots/-recording +If applicable, add screenshots or a screen recording to help explain your problem. Github should support uploading them directly in the issue field. If your file is too big, feel free to paste a link from a image/video hoster here instead. + +### Logs +If your bug includes a crash, please head over to the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/). Copy the result. Paste it between the code tags: +here diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000000..a0bde3dc0c4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[Feature]" +labels: enhancement +assignees: '' + +--- + +#### Is your feature request related to a problem? Please describe. +A clear and concise description of what the problem is. +Ex. *I want to do X, but there is no way to do it.* + +#### Describe the solution you'd like +A clear and concise description of what you want to happen. +Ex. *I think it would be nice if you would add feature Y so it will make it easier.* + +#### Describe alternatives you've considered +A clear and concise description of any alternative solutions or features you've considered. +Ex. *I considered Z, but that didn't work because...* + +#### Additional context +Add any other context or screenshots about the feature request here. +Ex. *Here's a photo of my cat!* From 495b495f27ced0191ef89b7625577b99ae87d9be Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Sat, 22 Feb 2020 20:03:38 -0800 Subject: [PATCH 004/195] deleting old template --- .github/ISSUE_TEMPLATE.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 8073503adea..00000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,3 +0,0 @@ -- [ ] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them. -- [ ] I checked if the issue/feature exists in the latest version. -- [ ] I did use the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/) to paste bug reports. From 30f66d012e53a8d13ee8a448f2229162ed8c3df6 Mon Sep 17 00:00:00 2001 From: Poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Sat, 22 Feb 2020 20:16:14 -0800 Subject: [PATCH 005/195] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index d0e58680ac1..ea06e601a82 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1 +1,19 @@ + + +#### long description of the changes in your PR +*Now you can make videos* + +#### Fixes the following issue(s) + +- #1234 + +#### Relies on the following changes + +- #1234 + +#### Testing apk + +debug.zip + +#### Agreement - [ ] I carefully read the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) and agree to them. From a3bce7f7caf14f034fd550870bcbeaf5d04dee5e Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 23 Feb 2020 09:46:42 +0100 Subject: [PATCH 006/195] Change app id based on current git branch This enables to install multiple builds from different branches at once --- app/build.gradle | 11 ++++++++++- app/src/debug/AndroidManifest.xml | 17 ----------------- app/src/main/res/values/strings.xml | 1 - 3 files changed, 10 insertions(+), 19 deletions(-) delete mode 100644 app/src/debug/AndroidManifest.xml diff --git a/app/build.gradle b/app/build.gradle index c2bceab9e60..36a712cc393 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,6 +9,7 @@ android { defaultConfig { applicationId "org.schabi.newpipe" + resValue "string", "app_name", "NewPipe" minSdkVersion 19 targetSdkVersion 28 versionCode 840 @@ -28,7 +29,15 @@ android { debug { multiDexEnabled true debuggable true - applicationIdSuffix ".debug" + + def workingBranch = "git rev-parse --abbrev-ref HEAD".execute().text.trim() + if (workingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") { + applicationIdSuffix ".debug" + resValue "string", "app_name", "NewPipe Debug" + } else { + applicationIdSuffix ".debug." + workingBranch.replaceAll("[^A-Za-z]+", "") + resValue "string", "app_name", "NewPipe " + workingBranch + } } } diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml deleted file mode 100644 index a16d6796a63..00000000000 --- a/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 148a339a943..bcbfcd6d07f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,5 @@ - NewPipe Tap \"Search\" to get started %1$s views Published on %1$s From 030e5ab894ed576e9e63332c6b08cdda090eade6 Mon Sep 17 00:00:00 2001 From: Stypox Date: Sun, 23 Feb 2020 20:56:56 +0100 Subject: [PATCH 007/195] Add comment to gradle --- app/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle b/app/build.gradle index 36a712cc393..2329a7a0e9c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,6 +30,7 @@ android { multiDexEnabled true debuggable true + // suffix the app id and the app name with git branch name def workingBranch = "git rev-parse --abbrev-ref HEAD".execute().text.trim() if (workingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") { applicationIdSuffix ".debug" From dc6a0e3eec32d21eddd10fe4bdd4147140d7f79a Mon Sep 17 00:00:00 2001 From: karol Date: Sun, 23 Feb 2020 21:28:40 +0100 Subject: [PATCH 008/195] mute-button added to activity_main_player.xml's --- .../activity_main_player.xml | 18 ++++++++++++++++++ .../main/res/layout/activity_main_player.xml | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/app/src/main/res/layout-large-land/activity_main_player.xml b/app/src/main/res/layout-large-land/activity_main_player.xml index 8e11b99f36e..10fda556a23 100644 --- a/app/src/main/res/layout-large-land/activity_main_player.xml +++ b/app/src/main/res/layout-large-land/activity_main_player.xml @@ -389,6 +389,24 @@ android:background="?attr/selectableItemBackground" android:contentDescription="@string/switch_to_background" tools:ignore="RtlHardcoded"/> + + + + + Date: Sun, 23 Feb 2020 22:32:23 +0100 Subject: [PATCH 009/195] mute-button implementation in main player --- .../org/schabi/newpipe/player/BasePlayer.java | 14 ++++++++++++ .../newpipe/player/MainVideoPlayer.java | 22 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 46ca3921dfe..79496388c96 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -532,6 +532,20 @@ public void onShuffleClicked() { if (simpleExoPlayer == null) return; simpleExoPlayer.setShuffleModeEnabled(!simpleExoPlayer.getShuffleModeEnabled()); } + /*////////////////////////////////////////////////////////////////////////// + // Mute / Unmute + //////////////////////////////////////////////////////////////////////////*/ + + public void onMuteUnmuteButtonClicled(){ + if (DEBUG) Log.d(TAG, "onMuteUnmuteButtonClicled() called"); + + if (simpleExoPlayer.getVolume() != 0) { + simpleExoPlayer.setVolume(0); + } + else { + simpleExoPlayer.setVolume(1); + } + } /*////////////////////////////////////////////////////////////////////////// // Progress Updates diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index 3340f110723..18412b6cdc3 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -40,6 +40,7 @@ import androidx.core.app.ActivityCompat; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.content.res.AppCompatResources; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.ItemTouchHelper; import android.util.DisplayMetrics; @@ -446,6 +447,7 @@ private class VideoPlayerImpl extends VideoPlayer { private ImageButton toggleOrientationButton; private ImageButton switchPopupButton; private ImageButton switchBackgroundButton; + private ImageButton muteButton; private RelativeLayout windowRootLayout; private View secondaryControls; @@ -482,6 +484,7 @@ public void initViews(View rootView) { this.shareButton = rootView.findViewById(R.id.share); this.toggleOrientationButton = rootView.findViewById(R.id.toggleOrientation); this.switchBackgroundButton = rootView.findViewById(R.id.switchBackground); + this.muteButton = rootView.findViewById(R.id.switchMute); this.switchPopupButton = rootView.findViewById(R.id.switchPopup); this.queueLayout = findViewById(R.id.playQueuePanel); @@ -533,6 +536,7 @@ public void initListeners() { shareButton.setOnClickListener(this); toggleOrientationButton.setOnClickListener(this); switchBackgroundButton.setOnClickListener(this); + muteButton.setOnClickListener(this); switchPopupButton.setOnClickListener(this); getRootView().addOnLayoutChangeListener((view, l, t, r, b, ol, ot, or, ob) -> { @@ -670,6 +674,21 @@ public void onPlayBackgroundButtonClicked() { destroy(); finish(); } + @Override + public void onMuteUnmuteButtonClicled() { + super.onMuteUnmuteButtonClicled(); + setMuteIcon(); + } + + public void setMuteIcon() { + if (simpleExoPlayer.getVolume() == 0){ + muteButton.setColorFilter(ContextCompat.getColor(context, R.color.white)); + } + + else { + muteButton.setColorFilter(ContextCompat.getColor(context, R.color.gray)); + } + } @Override @@ -708,6 +727,9 @@ public void onClick(View v) { } else if (v.getId() == switchBackgroundButton.getId()) { onPlayBackgroundButtonClicked(); + } else if (v.getId() == muteButton.getId()) { + onMuteUnmuteButtonClicled(); + } else if (v.getId() == closeButton.getId()) { onPlaybackShutdown(); return; From cc559dc9ce181fef19946667bfe4a9b5e827ee8d Mon Sep 17 00:00:00 2001 From: karol Date: Sun, 23 Feb 2020 22:55:34 +0100 Subject: [PATCH 010/195] isMuted() added --- .../java/org/schabi/newpipe/player/BasePlayer.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 79496388c96..2fe04c9d1da 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -538,13 +538,11 @@ public void onShuffleClicked() { public void onMuteUnmuteButtonClicled(){ if (DEBUG) Log.d(TAG, "onMuteUnmuteButtonClicled() called"); + simpleExoPlayer.setVolume(isMuted() ? 1 : 0); + } - if (simpleExoPlayer.getVolume() != 0) { - simpleExoPlayer.setVolume(0); - } - else { - simpleExoPlayer.setVolume(1); - } + public boolean isMuted(){ + return simpleExoPlayer.getVolume() == 0; } /*////////////////////////////////////////////////////////////////////////// From 2a63f2a3a633b18d87f4874f11d6961ad2e5a907 Mon Sep 17 00:00:00 2001 From: karol Date: Sun, 23 Feb 2020 23:31:30 +0100 Subject: [PATCH 011/195] mute-buton in queue layout and logic, but no icon change --- .../newpipe/player/ServicePlayerActivity.java | 8 +++++- .../activity_player_queue_control.xml | 27 ++++++++++++++----- .../layout/activity_player_queue_control.xml | 18 ++++++++++++- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 7aa2be05d24..034746a2b9f 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -83,6 +83,7 @@ public abstract class ServicePlayerActivity extends AppCompatActivity private TextView seekDisplay; private ImageButton repeatButton; + private ImageButton muteButton; private ImageButton backwardButton; private ImageButton playPauseButton; private ImageButton forwardButton; @@ -305,6 +306,7 @@ private void buildSeekBar() { private void buildControls() { repeatButton = rootView.findViewById(R.id.control_repeat); + muteButton = rootView.findViewById(R.id.control_mute); backwardButton = rootView.findViewById(R.id.control_backward); playPauseButton = rootView.findViewById(R.id.control_play_pause); forwardButton = rootView.findViewById(R.id.control_forward); @@ -314,6 +316,7 @@ private void buildControls() { progressBar = rootView.findViewById(R.id.control_progress_bar); repeatButton.setOnClickListener(this); + muteButton.setOnClickListener(this); backwardButton.setOnClickListener(this); playPauseButton.setOnClickListener(this); forwardButton.setOnClickListener(this); @@ -446,6 +449,9 @@ public void onClick(View view) { if (view.getId() == repeatButton.getId()) { player.onRepeatClicked(); + } else if (view.getId() == muteButton.getId()) { + player.onMuteUnmuteButtonClicled(); + } else if (view.getId() == backwardButton.getId()) { player.onPlayPrevious(); @@ -661,7 +667,7 @@ private void onPlayModeChanged(final int repeatMode, final boolean shuffled) { final int shuffleAlpha = shuffled ? 255 : 77; shuffleButton.setImageAlpha(shuffleAlpha); } - + private void onPlaybackParameterChanged(final PlaybackParameters parameters) { if (parameters != null) { playbackSpeedButton.setText(formatSpeed(parameters.speed)); diff --git a/app/src/main/res/layout-land/activity_player_queue_control.xml b/app/src/main/res/layout-land/activity_player_queue_control.xml index 6468c6784bd..0277c28b522 100644 --- a/app/src/main/res/layout-land/activity_player_queue_control.xml +++ b/app/src/main/res/layout-land/activity_player_queue_control.xml @@ -192,7 +192,7 @@ android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_centerVertical="true" - android:layout_toLeftOf="@+id/control_repeat" + android:layout_toLeftOf="@+id/control_mute" android:gravity="center" android:minWidth="50dp" android:text="1x" @@ -201,13 +201,30 @@ android:background="?attr/selectableItemBackground" tools:ignore="HardcodedText,RtlHardcoded"/> + + - + + Date: Sun, 23 Feb 2020 23:44:16 +0100 Subject: [PATCH 012/195] icon change implemented in queque --- .../schabi/newpipe/player/BackgroundPlayer.java | 6 ++++++ .../schabi/newpipe/player/PopupVideoPlayer.java | 6 ++++++ .../newpipe/player/ServicePlayerActivity.java | 14 +++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java index 9e23d9145f2..25a9f3be3d5 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java @@ -398,6 +398,12 @@ public void onShuffleClicked() { updatePlayback(); } + @Override + public void onMuteUnmuteButtonClicled() { + super.onMuteUnmuteButtonClicled(); + updatePlayback(); + } + @Override public void onUpdateProgress(int currentProgress, int duration, int bufferPercent) { updateProgress(currentProgress, duration, bufferPercent); diff --git a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java index fc14e8d5102..88d2279361f 100644 --- a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java @@ -607,6 +607,12 @@ public void onShuffleClicked() { updatePlayback(); } + @Override + public void onMuteUnmuteButtonClicled() { + super.onMuteUnmuteButtonClicled(); + updatePlayback(); + } + @Override public void onUpdateProgress(int currentProgress, int duration, int bufferPercent) { updateProgress(currentProgress, duration, bufferPercent); diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 034746a2b9f..a3d8dde8d00 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -7,6 +7,7 @@ import android.os.IBinder; import android.provider.Settings; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.appcompat.widget.Toolbar; @@ -22,6 +23,7 @@ import android.widget.ProgressBar; import android.widget.SeekBar; import android.widget.TextView; +import android.widget.Toast; import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; @@ -560,6 +562,7 @@ public void onPlaybackUpdate(int state, int repeatMode, boolean shuffled, Playba onPlayModeChanged(repeatMode, shuffled); onPlaybackParameterChanged(parameters); onMaybePlaybackAdapterChanged(); + onMaybeMuteChanged(); } @Override @@ -667,7 +670,7 @@ private void onPlayModeChanged(final int repeatMode, final boolean shuffled) { final int shuffleAlpha = shuffled ? 255 : 77; shuffleButton.setImageAlpha(shuffleAlpha); } - + private void onPlaybackParameterChanged(final PlaybackParameters parameters) { if (parameters != null) { playbackSpeedButton.setText(formatSpeed(parameters.speed)); @@ -682,4 +685,13 @@ private void onMaybePlaybackAdapterChanged() { itemsList.setAdapter(maybeNewAdapter); } } + + private void onMaybeMuteChanged(){ + if (player.isMuted()) { + muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.white)); + } + else { + muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.gray)); + } + } } From 01c1fa0393df8e856129b59b0869ddfb1128d0ee Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+poolitzer@users.noreply.github.com> Date: Sun, 23 Feb 2020 16:16:18 -0800 Subject: [PATCH 013/195] B0pol suggested improvements --- .github/ISSUE_TEMPLATE/bug_report.md | 8 +++++--- .github/ISSUE_TEMPLATE/feature_request.md | 5 +++++ .github/PULL_REQUEST_TEMPLATE.md | 14 +++++++++----- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 32fa3e03ead..d4e0ea9b733 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -16,9 +16,10 @@ To make it easier for us to help you please enter detailed information below. Please note, we only support the latest version of NewPipe and master branch. Please make sure to upgrade & recreate the issue on the latest -version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in you app (left sidebar, about) +version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in you app (To check you version, press on the three line menu on the left, click on "About", and you will see your current version.) --> ### Steps to reproduce + Steps to reproduce the behavior: 1. Go to '...' 2. Press on '....' @@ -34,5 +35,6 @@ Tell us what happens instead If applicable, add screenshots or a screen recording to help explain your problem. Github should support uploading them directly in the issue field. If your file is too big, feel free to paste a link from a image/video hoster here instead. ### Logs -If your bug includes a crash, please head over to the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/). Copy the result. Paste it between the code tags: -here +If your bug includes a crash, please head over to the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/). Copy the result. Paste it here: + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index a0bde3dc0c4..e39fc5f0731 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -22,3 +22,8 @@ Ex. *I considered Z, but that didn't work because...* #### Additional context Add any other context or screenshots about the feature request here. Ex. *Here's a photo of my cat!* + +#### Why do you/everyone wants this feature +Convince us! How does it change your NewPipe experience and/or your life? +The better this paragraph is, the more likely a developer will think about developing it + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ea06e601a82..570d0777823 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,15 +1,19 @@ - + -#### long description of the changes in your PR +#### What is it? +- [ ] Bug fix +- [ ] Feature + +#### Long description of the changes in your PR *Now you can make videos* #### Fixes the following issue(s) -- #1234 +- #### Relies on the following changes - -- #1234 + +- #### Testing apk From 1d9ffffc497108614a18b877f9017d12d053187f Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Mon, 24 Feb 2020 14:18:48 -0800 Subject: [PATCH 014/195] Minor improvements --- .github/ISSUE_TEMPLATE/bug_report.md | 9 +++++---- .github/ISSUE_TEMPLATE/feature_request.md | 13 +++++++------ .github/PULL_REQUEST_TEMPLATE.md | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index d4e0ea9b733..8b5f10f08ef 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -15,8 +15,9 @@ Use this template to notify us if you found a bug. To make it easier for us to help you please enter detailed information below. Please note, we only support the latest version of NewPipe and -master branch. Please make sure to upgrade & recreate the issue on the latest -version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in you app (To check you version, press on the three line menu on the left, click on "About", and you will see your current version.) +master branch. Please make sure to upgrade & recreate the issue on the latest version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in you app (To check you version, press on the three line menu on the left, click on "About", and you will see your current version). + +P.S.: Our [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) might be a nice document to read before you fill out the report :) --> ### Steps to reproduce @@ -29,7 +30,7 @@ Steps to reproduce the behavior: Tell us what you expected to happen. ### Actual behaviour -Tell us what happens instead +Tell us what happens instead. ### Screenshots/-recording If applicable, add screenshots or a screen recording to help explain your problem. Github should support uploading them directly in the issue field. If your file is too big, feel free to paste a link from a image/video hoster here instead. @@ -37,4 +38,4 @@ If applicable, add screenshots or a screen recording to help explain your proble ### Logs If your bug includes a crash, please head over to the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/). Copy the result. Paste it here: - + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index e39fc5f0731..8453f99ba1c 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -6,24 +6,25 @@ labels: enhancement assignees: '' --- - + #### Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. -Ex. *I want to do X, but there is no way to do it.* +Example: *I want to do X, but there is no way to do it.* #### Describe the solution you'd like A clear and concise description of what you want to happen. -Ex. *I think it would be nice if you would add feature Y so it will make it easier.* +Example: *I think it would be nice if you would add feature Y so it will make it easier.* #### Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered. -Ex. *I considered Z, but that didn't work because...* +Example: *I considered Z, but that didn't work because...* #### Additional context Add any other context or screenshots about the feature request here. -Ex. *Here's a photo of my cat!* +Example: *Here's a photo of my cat!* #### Why do you/everyone wants this feature Convince us! How does it change your NewPipe experience and/or your life? -The better this paragraph is, the more likely a developer will think about developing it +The better this paragraph is, the more likely a developer will think about developing it. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 570d0777823..43a6c0c4db3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,7 +16,7 @@ - #### Testing apk - + debug.zip #### Agreement From d9a8e4d7971b6ed63bcd42d7318faa7ac0ee843a Mon Sep 17 00:00:00 2001 From: Poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Wed, 26 Feb 2020 19:50:11 -0800 Subject: [PATCH 015/195] NewPipe is an app though :( And its our app! Co-Authored-By: Tobias Groza --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 43a6c0c4db3..978adc1002f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ - + #### What is it? - [ ] Bug fix From 40f54aea5353cdcfc52a533665a5d495364c3a91 Mon Sep 17 00:00:00 2001 From: karol Date: Thu, 27 Feb 2020 22:30:18 +0100 Subject: [PATCH 016/195] mute intent send between main-bckgrnd-popup players --- .../newpipe/player/BackgroundPlayer.java | 12 +++++------- .../org/schabi/newpipe/player/BasePlayer.java | 18 ++++++++++++------ .../schabi/newpipe/player/MainVideoPlayer.java | 8 +++++--- .../newpipe/player/PopupVideoPlayer.java | 3 ++- .../newpipe/player/ServicePlayerActivity.java | 3 ++- .../schabi/newpipe/util/NavigationHelper.java | 6 ++++-- 6 files changed, 30 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java index 25a9f3be3d5..b020f234b21 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java @@ -30,16 +30,16 @@ import android.graphics.Bitmap; import android.os.Build; import android.os.IBinder; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import androidx.core.app.NotificationCompat; - import android.preference.PreferenceManager; import android.util.Log; import android.view.View; import android.widget.RemoteViews; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; +import androidx.core.app.NotificationCompat; + import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.source.MediaSource; @@ -341,7 +341,6 @@ public void initPlayer(boolean playOnReady) { @Override public void handleIntent(final Intent intent) { super.handleIntent(intent); - resetNotification(); if (bigNotRemoteView != null) bigNotRemoteView.setProgressBar(R.id.notificationProgressBar, 100, 0, false); @@ -389,7 +388,6 @@ public void onLoadingFailed(String imageUri, View view, FailReason failReason) { @Override public void onPrepared(boolean playWhenReady) { super.onPrepared(playWhenReady); - simpleExoPlayer.setVolume(1f); } @Override diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index 2fe04c9d1da..ce2f94e0d58 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -153,6 +153,8 @@ public abstract class BasePlayer implements public static final String START_PAUSED = "start_paused"; @NonNull public static final String SELECT_ON_APPEND = "select_on_append"; + @NonNull + public static final String IS_MUTED = "is_muted"; /*////////////////////////////////////////////////////////////////////////// // Playback @@ -275,6 +277,7 @@ public void handleIntent(Intent intent) { final float playbackPitch = intent.getFloatExtra(PLAYBACK_PITCH, getPlaybackPitch()); final boolean playbackSkipSilence = intent.getBooleanExtra(PLAYBACK_SKIP_SILENCE, getPlaybackSkipSilence()); + final boolean isMuted = intent.getBooleanExtra(IS_MUTED, isMuted()); // seek to timestamp if stream is already playing if (simpleExoPlayer != null @@ -283,7 +286,7 @@ public void handleIntent(Intent intent) { && playQueue.getItem() != null && queue.getItem().getUrl().equals(playQueue.getItem().getUrl()) && queue.getItem().getRecoveryPosition() != PlayQueueItem.RECOVERY_UNSET - ) { + ) { simpleExoPlayer.seekTo(playQueue.getIndex(), queue.getItem().getRecoveryPosition()); return; @@ -293,7 +296,7 @@ public void handleIntent(Intent intent) { stateLoader = recordManager.loadStreamState(item) .observeOn(AndroidSchedulers.mainThread()) .doFinally(() -> initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence, - /*playOnInit=*/true)) + /*playOnInit=*/true, isMuted)) .subscribe( state -> queue.setRecovery(queue.getIndex(), state.getProgressTime()), error -> { @@ -306,7 +309,7 @@ public void handleIntent(Intent intent) { } // Good to go... initPlayback(queue, repeatMode, playbackSpeed, playbackPitch, playbackSkipSilence, - /*playOnInit=*/!intent.getBooleanExtra(START_PAUSED, false)); + /*playOnInit=*/!intent.getBooleanExtra(START_PAUSED, false), isMuted); } protected void initPlayback(@NonNull final PlayQueue queue, @@ -314,7 +317,8 @@ protected void initPlayback(@NonNull final PlayQueue queue, final float playbackSpeed, final float playbackPitch, final boolean playbackSkipSilence, - final boolean playOnReady) { + final boolean playOnReady, + final boolean isMuted) { destroyPlayer(); initPlayer(playOnReady); setRepeatMode(repeatMode); @@ -327,6 +331,8 @@ protected void initPlayback(@NonNull final PlayQueue queue, if (playQueueAdapter != null) playQueueAdapter.dispose(); playQueueAdapter = new PlayQueueAdapter(context, playQueue); + + if (isMuted) simpleExoPlayer.setVolume(0); } public void destroyPlayer() { @@ -536,12 +542,12 @@ public void onShuffleClicked() { // Mute / Unmute //////////////////////////////////////////////////////////////////////////*/ - public void onMuteUnmuteButtonClicled(){ + public void onMuteUnmuteButtonClicled() { if (DEBUG) Log.d(TAG, "onMuteUnmuteButtonClicled() called"); simpleExoPlayer.setVolume(isMuted() ? 1 : 0); } - public boolean isMuted(){ + public boolean isMuted() { return simpleExoPlayer.getVolume() == 0; } diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index 18412b6cdc3..0f7a7dcf912 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -219,7 +219,7 @@ protected void onResume() { playerImpl.setPlaybackQuality(playerState.getPlaybackQuality()); playerImpl.initPlayback(playerState.getPlayQueue(), playerState.getRepeatMode(), playerState.getPlaybackSpeed(), playerState.getPlaybackPitch(), - playerState.isPlaybackSkipSilence(), playerState.wasPlaying()); + playerState.isPlaybackSkipSilence(), playerState.wasPlaying(), playerImpl.isMuted()); } } @@ -642,7 +642,8 @@ public void onFullScreenButtonClicked() { this.getPlaybackSkipSilence(), this.getPlaybackQuality(), false, - !isPlaying() + !isPlaying(), + isMuted() ); context.startService(intent); @@ -666,7 +667,8 @@ public void onPlayBackgroundButtonClicked() { this.getPlaybackSkipSilence(), this.getPlaybackQuality(), false, - !isPlaying() + !isPlaying(), + isMuted() ); context.startService(intent); diff --git a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java index 88d2279361f..ff35aecb9cc 100644 --- a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java @@ -571,7 +571,8 @@ public void onFullScreenButtonClicked() { this.getPlaybackSkipSilence(), this.getPlaybackQuality(), false, - !isPlaying() + !isPlaying(), + isMuted() ); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index a3d8dde8d00..bb5593f09e0 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -197,7 +197,8 @@ protected Intent getSwitchIntent(final Class clazz) { this.player.getPlaybackSkipSilence(), null, false, - false + false, + this.player.isMuted() ).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) .putExtra(BasePlayer.START_PAUSED, !this.player.isPlaying()); } diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index a19aa92ae2d..98264e1bf8e 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -110,13 +110,15 @@ public static Intent getPlayerIntent(@NonNull final Context context, final boolean playbackSkipSilence, @Nullable final String playbackQuality, final boolean resumePlayback, - final boolean startPaused) { + final boolean startPaused, + final boolean isMuted) { return getPlayerIntent(context, targetClazz, playQueue, playbackQuality, resumePlayback) .putExtra(BasePlayer.REPEAT_MODE, repeatMode) .putExtra(BasePlayer.PLAYBACK_SPEED, playbackSpeed) .putExtra(BasePlayer.PLAYBACK_PITCH, playbackPitch) .putExtra(BasePlayer.PLAYBACK_SKIP_SILENCE, playbackSkipSilence) - .putExtra(BasePlayer.START_PAUSED, startPaused); + .putExtra(BasePlayer.START_PAUSED, startPaused) + .putExtra(BasePlayer.IS_MUTED, isMuted); } public static void playOnMainPlayer(final Context context, final PlayQueue queue, final boolean resumePlayback) { From 0400fcb10609950c4b79b97ac104e0388c2aae8c Mon Sep 17 00:00:00 2001 From: karol Date: Thu, 27 Feb 2020 23:30:17 +0100 Subject: [PATCH 017/195] mute icon in main refactored --- .../newpipe/player/MainVideoPlayer.java | 56 +++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index 0f7a7dcf912..d7b51877162 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -34,6 +34,7 @@ import android.os.Handler; import android.preference.PreferenceManager; import android.provider.Settings; + import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -43,6 +44,7 @@ import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.ItemTouchHelper; + import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; @@ -115,7 +117,8 @@ public final class MainVideoPlayer extends AppCompatActivity private SharedPreferences defaultPreferences; - @Nullable private PlayerState playerState; + @Nullable + private PlayerState playerState; private boolean isInMultiWindow; private boolean isBackPressed; @@ -129,11 +132,13 @@ public final class MainVideoPlayer extends AppCompatActivity protected void onCreate(@Nullable Bundle savedInstanceState) { assureCorrectAppLanguage(this); super.onCreate(savedInstanceState); - if (DEBUG) Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]"); + if (DEBUG) + Log.d(TAG, "onCreate() called with: savedInstanceState = [" + savedInstanceState + "]"); defaultPreferences = PreferenceManager.getDefaultSharedPreferences(this); ThemeHelper.setTheme(this); getWindow().setBackgroundDrawable(new ColorDrawable(Color.BLACK)); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) getWindow().setStatusBarColor(Color.BLACK); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) + getWindow().setStatusBarColor(Color.BLACK); setVolumeControlStream(AudioManager.STREAM_MUSIC); WindowManager.LayoutParams lp = getWindow().getAttributes(); @@ -142,7 +147,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { hideSystemUi(); setContentView(R.layout.activity_main_player); - playerImpl = new VideoPlayerImpl(this); + playerImpl = new VideoPlayerImpl(this); playerImpl.setup(findViewById(android.R.id.content)); if (savedInstanceState != null && savedInstanceState.get(KEY_SAVED_STATE) != null) { @@ -247,7 +252,7 @@ protected void onSaveInstanceState(Bundle outState) { if (playerImpl == null) return; playerImpl.setRecovery(); - if(!playerImpl.gotDestroyed()) { + if (!playerImpl.gotDestroyed()) { playerState = createPlayerState(); } StateSaver.tryToSave(isChangingConfigurations(), null, outState, this); @@ -395,6 +400,16 @@ protected void setShuffleButton(final ImageButton shuffleButton, final boolean s shuffleButton.setImageAlpha(shuffleAlpha); } + protected void setMuteButton(final ImageButton muteButton, final boolean isMuted) { + if (isMuted) { + muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.white)); + } else { + muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.gray)); + + } + } + + private boolean isInMultiWindow() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && isInMultiWindowMode(); } @@ -494,7 +509,7 @@ public void initViews(View rootView) { titleTextView.setSelected(true); channelTextView.setSelected(true); boolean showKodiButton = PreferenceManager.getDefaultSharedPreferences(this.context).getBoolean( - this.context.getString(R.string.show_play_with_kodi_key), false); + this.context.getString(R.string.show_play_with_kodi_key), false); kodiButton.setVisibility(showKodiButton ? View.VISIBLE : View.GONE); getRootView().setKeepScreenOn(true); @@ -676,20 +691,11 @@ public void onPlayBackgroundButtonClicked() { destroy(); finish(); } + @Override public void onMuteUnmuteButtonClicled() { super.onMuteUnmuteButtonClicled(); - setMuteIcon(); - } - - public void setMuteIcon() { - if (simpleExoPlayer.getVolume() == 0){ - muteButton.setColorFilter(ContextCompat.getColor(context, R.color.white)); - } - - else { - muteButton.setColorFilter(ContextCompat.getColor(context, R.color.gray)); - } + updatePlaybackButtons(); } @@ -736,7 +742,7 @@ public void onClick(View v) { onPlaybackShutdown(); return; } else if (v.getId() == kodiButton.getId()) { - onKodiShare(); + onKodiShare(); } if (getCurrentState() != STATE_COMPLETED) { @@ -785,7 +791,7 @@ private void onShareClicked() { // share video at the current time (youtube.com/watch?v=ID&t=SECONDS) ShareUtils.shareUrl(MainVideoPlayer.this, playerImpl.getVideoTitle(), - playerImpl.getVideoUrl() + "&t=" + String.valueOf(playerImpl.getPlaybackSeekBar().getProgress()/1000)); + playerImpl.getVideoUrl() + "&t=" + String.valueOf(playerImpl.getPlaybackSeekBar().getProgress() / 1000)); } private void onScreenRotationClicked() { @@ -978,6 +984,7 @@ private void updatePlaybackButtons() { setRepeatModeButton(repeatButton, getRepeatMode()); setShuffleButton(shuffleButton, playQueue.isShuffled()); + setMuteButton(muteButton, playerImpl.isMuted()); } private void buildQueue() { @@ -1018,7 +1025,7 @@ public void onMove(int sourceIndex, int targetIndex) { @Override public void onSwiped(int index) { - if(index != -1) playQueue.remove(index); + if (index != -1) playQueue.remove(index); } }; } @@ -1097,7 +1104,8 @@ private class PlayerGestureListener extends GestureDetector.SimpleOnGestureListe @Override public boolean onDoubleTap(MotionEvent e) { - if (DEBUG) Log.d(TAG, "onDoubleTap() called with: e = [" + e + "]" + "rawXy = " + e.getRawX() + ", " + e.getRawY() + ", xy = " + e.getX() + ", " + e.getY()); + if (DEBUG) + Log.d(TAG, "onDoubleTap() called with: e = [" + e + "]" + "rawXy = " + e.getRawX() + ", " + e.getRawY() + ", xy = " + e.getX() + ", " + e.getY()); if (e.getX() > playerImpl.getRootView().getWidth() * 2 / 3) { playerImpl.onFastForward(); @@ -1193,7 +1201,8 @@ public boolean onScroll(MotionEvent initialEvent, MotionEvent movingEvent, float layoutParams.screenBrightness = currentProgressPercent; getWindow().setAttributes(layoutParams); - if (DEBUG) Log.d(TAG, "onScroll().brightnessControl, currentBrightness = " + currentProgressPercent); + if (DEBUG) + Log.d(TAG, "onScroll().brightnessControl, currentBrightness = " + currentProgressPercent); final int resId = currentProgressPercent < 0.25 ? R.drawable.ic_brightness_low_white_72dp @@ -1232,7 +1241,8 @@ private void onScrollEnd() { @Override public boolean onTouch(View v, MotionEvent event) { //noinspection PointlessBooleanExpression - if (DEBUG && false) Log.d(TAG, "onTouch() called with: v = [" + v + "], event = [" + event + "]"); + if (DEBUG && false) + Log.d(TAG, "onTouch() called with: v = [" + v + "], event = [" + event + "]"); gestureDetector.onTouchEvent(event); if (event.getAction() == MotionEvent.ACTION_UP && isMoving) { isMoving = false; From 46165f4a4f38353edebad49790f36717d9f3ae76 Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+poolitzer@users.noreply.github.com> Date: Fri, 28 Feb 2020 15:32:14 -0800 Subject: [PATCH 018/195] adding version section to bug report --- .github/ISSUE_TEMPLATE/bug_report.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index d4e0ea9b733..ad436f64f2a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -18,6 +18,11 @@ Please note, we only support the latest version of NewPipe and master branch. Please make sure to upgrade & recreate the issue on the latest version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in you app (To check you version, press on the three line menu on the left, click on "About", and you will see your current version.) --> +### Version + +- + + ### Steps to reproduce Steps to reproduce the behavior: From ee75909c80d399d03d548127ecc2454740ae5b51 Mon Sep 17 00:00:00 2001 From: karol Date: Sun, 1 Mar 2020 13:02:20 +0100 Subject: [PATCH 019/195] set mute button in main player from other player --- .../java/org/schabi/newpipe/player/MainVideoPlayer.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index d7b51877162..cad165ab657 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -695,7 +695,7 @@ public void onPlayBackgroundButtonClicked() { @Override public void onMuteUnmuteButtonClicled() { super.onMuteUnmuteButtonClicled(); - updatePlaybackButtons(); + setMuteButton(muteButton, playerImpl.isMuted()); } @@ -785,6 +785,7 @@ private void onMoreOptionsClicked() { animateView(secondaryControls, SLIDE_AND_ALPHA, !isMoreControlsVisible, DEFAULT_CONTROLS_DURATION); showControls(DEFAULT_CONTROLS_DURATION); + setMuteButton(muteButton, playerImpl.isMuted()); } private void onShareClicked() { @@ -984,7 +985,6 @@ private void updatePlaybackButtons() { setRepeatModeButton(repeatButton, getRepeatMode()); setShuffleButton(shuffleButton, playQueue.isShuffled()); - setMuteButton(muteButton, playerImpl.isMuted()); } private void buildQueue() { @@ -1090,6 +1090,10 @@ public ImageButton getRepeatButton() { return repeatButton; } + public ImageButton getMuteButton() { + return muteButton; + } + public ImageButton getPlayPauseButton() { return playPauseButton; } From a6fcb70d1275e8a1fbc3f712b9152233b1fe8bb1 Mon Sep 17 00:00:00 2001 From: karol Date: Sun, 1 Mar 2020 16:42:46 +0100 Subject: [PATCH 020/195] fix typo --- .../java/org/schabi/newpipe/player/BackgroundPlayer.java | 4 ++-- app/src/main/java/org/schabi/newpipe/player/BasePlayer.java | 2 +- .../java/org/schabi/newpipe/player/MainVideoPlayer.java | 6 +++--- .../java/org/schabi/newpipe/player/PopupVideoPlayer.java | 4 ++-- .../org/schabi/newpipe/player/ServicePlayerActivity.java | 3 +-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java index b020f234b21..dbf27ea7c0b 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java @@ -397,8 +397,8 @@ public void onShuffleClicked() { } @Override - public void onMuteUnmuteButtonClicled() { - super.onMuteUnmuteButtonClicled(); + public void onMuteUnmuteButtonClicked() { + super.onMuteUnmuteButtonClicked(); updatePlayback(); } diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index ce2f94e0d58..adffefa6ee6 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -542,7 +542,7 @@ public void onShuffleClicked() { // Mute / Unmute //////////////////////////////////////////////////////////////////////////*/ - public void onMuteUnmuteButtonClicled() { + public void onMuteUnmuteButtonClicked() { if (DEBUG) Log.d(TAG, "onMuteUnmuteButtonClicled() called"); simpleExoPlayer.setVolume(isMuted() ? 1 : 0); } diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index cad165ab657..63d95e74f48 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -693,8 +693,8 @@ public void onPlayBackgroundButtonClicked() { } @Override - public void onMuteUnmuteButtonClicled() { - super.onMuteUnmuteButtonClicled(); + public void onMuteUnmuteButtonClicked() { + super.onMuteUnmuteButtonClicked(); setMuteButton(muteButton, playerImpl.isMuted()); } @@ -736,7 +736,7 @@ public void onClick(View v) { onPlayBackgroundButtonClicked(); } else if (v.getId() == muteButton.getId()) { - onMuteUnmuteButtonClicled(); + onMuteUnmuteButtonClicked(); } else if (v.getId() == closeButton.getId()) { onPlaybackShutdown(); diff --git a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java index ff35aecb9cc..b7638eda742 100644 --- a/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/PopupVideoPlayer.java @@ -609,8 +609,8 @@ public void onShuffleClicked() { } @Override - public void onMuteUnmuteButtonClicled() { - super.onMuteUnmuteButtonClicled(); + public void onMuteUnmuteButtonClicked() { + super.onMuteUnmuteButtonClicked(); updatePlayback(); } diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index bb5593f09e0..c0a8d2bfda5 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -23,7 +23,6 @@ import android.widget.ProgressBar; import android.widget.SeekBar; import android.widget.TextView; -import android.widget.Toast; import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.Player; @@ -453,7 +452,7 @@ public void onClick(View view) { player.onRepeatClicked(); } else if (view.getId() == muteButton.getId()) { - player.onMuteUnmuteButtonClicled(); + player.onMuteUnmuteButtonClicked(); } else if (view.getId() == backwardButton.getId()) { player.onPlayPrevious(); From 5257c5a0a89bf683cabf4a7cbfcb9a01f020c00b Mon Sep 17 00:00:00 2001 From: B0pol Date: Sat, 29 Feb 2020 17:28:58 +0000 Subject: [PATCH 021/195] Translated using Weblate (Esperanto) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-eo/strings.xml | 62 +++++++++++++------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 4a6fcdfab65..6f7779a816a 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -38,8 +38,8 @@ Ŝatoj Malŝatoj Uzi la programon Tor - Neniu elsendlflua ludilo trovita. Ĉu vi volas instali la aplikaĵon VLC\? - La aplikaĵo Kore ne estas trovita. Ĉu instali ĝin? + Neniu elsendlflua ludilo trovita. Ĉu instali la aplikaĵon VLC\? + Ĉu instali la mankan aplikaĵon Kore\? Montri la sekvan filmeton kaj similajn filmetojn Ĉiuj bildetoj ne ŝargeblas La subskribo de la ligilo de la filmeto ne malĉifreblas @@ -58,19 +58,19 @@ Elektu lokon por konservi elŝutitajn filmetojn Elektu lokon por konservi elŝutitajn muzikojn Enhavo - Signali eraron per retpoŝto - SIGNALI + Signali tion eraron retpoŝte + Signali Informoj: Vian komenton (angle): Detaloj: Signali eraron Filmeto Reprovi - Premi serĉon por komenci + Premi \"Serĉi\" por komenci Neniu elsendlflua ludilo trovita (instalu VLC por ludi ĝin). Malfermi en ŝprucfenestran modon - Forigas aŭdon ĉe KELKAJ rezolucioj - NewPipe ŝprucfenestran modon + Forigas aŭdon ĉe kelkaj rezolucioj + Ŝprucfenestran modon Aboni Abonita Kanalo malabonita @@ -89,7 +89,7 @@ Ludas filmeton kiam NewPipe vokas el alia programo Defaŭlta rezolucio de la ŝprucfenestra ludilo Montri pli altajn rezoluciojn - Nur kelkaj aparatoj subtenas ludi 2K / 4K filmetojn + Nur kelkaj aparatoj povas ludi 2K / 4K filmetojn Defaŭlta fomato de filmeto Nigra Memoru ŝprucfenestran grandecon kaj pozicion @@ -100,10 +100,10 @@ Ne povis konstrui la dosierujon de elŝuto Nunaj filmetoj ne estas ankoraŭ subtenataj Enhavo limigita al aĝo - Montri limigitan al aĝo filmeto. Permesanta tian materialon eblas el Parametroj. + Montri limigitan al aĝo filmeto. Postaj ŝanĝoj eblas ĉe la agordoj. Ne povis tute analizi la retejon Ne povis akiri ajnan torenton - NUNA + Nuna Elŝutoj Elŝutoj Erarosignalo @@ -130,7 +130,7 @@ Ŝprucfenestro Regrandiganta Kontrolo de gesto de ludilo - Uzu gestojn por kontroli la brilon kaj volumenon de la ludilo + Uzi gestojn por kontroli la brilon kaj volumenon Serĉi sugestojn Montri sugestojn kiam serĉanto Plej bona rezolucio @@ -138,7 +138,7 @@ Elŝuti Leteroj kaj ciferoj Plej specialaj karakteroj - Rekomenci en fokusa gajno + Ludrekomenci Daŭrigi la ludon post la interrompaĵoj (ekzemple telefonadoj) Serĉa historio Konservi la historio de serĉo lokale @@ -156,7 +156,7 @@ Supro 50 Nova & varma Montri la indiko « Tenu por aldoni » - Montri indikon kiam la fona aŭ ŝprucfenestra butono estas premita en la retpaĝo de dalatadoj de la filmeto + Montri indikon premante la fona aŭ la ŝprucfenestra butono en filmeta \"Detaloj:\" Viciĝita en la fona ludilo Viciĝita en ŝprucfenestra ludilo Ludi ĉiujn @@ -205,7 +205,7 @@ Ne povis forviŝi ludliston. Malcimigi Auto-vico sekva fluo - Aŭto-aldoni rilatan enhavon kiam ludanta la lasta enhavo en malrepetita atendovico + Daŭrigi finanta (malripetanta) atendovico aldonante rilata enhavo Dosiero Tia dosierujo ne ekzistas Tia dosiero/enhavo ne ekzistas @@ -246,9 +246,9 @@ Nova ongleto Elektu ongleton Kontrolo de volumena gesto - Uzu gestojn por kontroli la volumon de la ludilo + Uzi gestojn por kontroli la volumon Kontrolo de gesto de brilo - Uzu gestojn por kontroli la brilon de la ludilo + Uzi gestojn por kontroli la brilon Ĝisdatigoj Dosiero forviŝita Sciigo por ĝisdatigi apon @@ -264,11 +264,11 @@ Eventoj Konferencoj Montri komentojn - Malebligu por malvidigi komentojn + Malŝati por malvidigi komentojn Aŭtoludo - Komentoj - + %s komento + %s komentoj Ne povis ŝarĝi komentojn Fermi @@ -291,8 +291,8 @@ Oni petos vin kie konservi ĉion elŝutaĵon. \nElektu AFM se vi volas elŝuti al ekstera SD-karto Uzu AFM - La Atinga Framo al la Memoro ebligas elŝuti al ekstera SD-karto. -\nKomento: kelkaj aparatoj ne kongruas + La \"Atinga Framo al la Memoro\" ebligas elŝuti al ekstera SD-karto. +\nKomento: kelkaj aparatoj malkongruas Forviŝi ludajn poziciojn Forviŝi la totalon de ludaj pozicioj Ĉu vi volas forviŝi ĉiujn ludajn poziciojn \? @@ -302,7 +302,7 @@ Kio okazis: Kio:\\nPeto:\\nEnhavlingvo:\\nServo:\\nGMT Horo:\\nPako:\\nVersio:\\nOperaciumo versio: Aŭdio - Permeso por atingi la konservon rifuzita + Permesi la konservadon unue Uzantosignalo Komenci Paŭzigi @@ -377,7 +377,7 @@ Komenci ludi ĉi tie Komenci ludi fone Donaci - NewPipe estas programadita par volontuoj, elspezante tempo por alporti vin la plej bona sperto. Redoni por helpi programistojn plibonigi NewPipe dum ĝuante tason da kafo. + NewPipe estas programadita par volontuoj, elspezante lia tempo por alporti vin la plej bona uzanta sperto. Redoni por helpi programistojn plibonigi NewPipe dum ili ĝuas tason da kafo. Redoni Retejo Viziti la retejon de NewPipe por pli da informoj kaj novaĵoj. @@ -409,7 +409,7 @@ Zomi Io aperos ĉi tie baldaŭ ;D Aŭtomate generita - Ebligi LeakCanary + LeakCanary La monitorado de la memorlikadoj povas frostigi la apon dum la hejta dumpingo Signali ekster-vivciklajn erarojn Perforti signalante neenretigaj Rx esceptoj eksere la fragmento aŭ aktiveco vivciklo post dispono @@ -455,10 +455,10 @@ Plirapidigi dum silentoj Paŝo Restarigi - Uzante defaŭltajn ongletojn, eraro ludante savajn ongletojn + Ne povis legi konservitajn ongletoj, tial uzante la defaŭltajn Restaŭri la defaŭltojn - Ĉu vi volas restaŭri la defaŭltojn \? - Kalkulo de abonantoj malhavebla + Ĉu vi volas restaŭri la defaŭltojn valorojn\? + Abonantoj kalkulo malhaveblas Kioj ongletoj estas montritaj en la ĉefpaĝo Elektaĵo Ĝisdatigoj @@ -486,7 +486,7 @@ La celloko-dosierujo ne povas esti kreita La dosiero ne povas esti kreita Permeso rifuzita kaŭze de la sistemo - Sekura konekto malsukcesis + Ne povis establi sekuran konekton Ne povis trovi la servilon Ne povas konektiĝi al la servilo La servilo ne sendas datumojn @@ -519,7 +519,7 @@ Rapida antaŭen / posten daŭron Instancoj de PeerTube Elekti viajn preferitajn instancojn de PeerTube - Trovu la instancojn kiu vi povus ŝati ĉe %s + Trovu la instancojn ke vi ŝatas ĉe %s Aldoni instanco Eniri la ligilon de la instanco Ne povis validigi instanco @@ -532,8 +532,8 @@ Reakiranta Ne povas reakiri tion elŝuton Elektu instancon - Enablu bildeta filmeton ĉe ŝlosita ekrano - Uzante la fona ludilo, bildeta filmeto vidiĝos ĉe ŝlosita ekrano + Bildeta filmeton ĉe ŝlosita ekrano + Bildeta filmeto estas montrita ĉe ŝlosita ekrano uzante la fona ludilo Forviŝi la historion de elŝutoj Forviŝi elŝutitajn dosierojn %1$s elŝutoj forviŝitaj From deafe93e6c0c6b313adcbc9bc7f0554e2851283f Mon Sep 17 00:00:00 2001 From: Igor Nedoboy Date: Sat, 29 Feb 2020 21:30:34 +0000 Subject: [PATCH 022/195] Translated using Weblate (Russian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-ru/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 7c7965f80fd..1a94ebb1fd8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -552,7 +552,7 @@ Видео %s секунд - - + + \ No newline at end of file From ca2e9d4afa43c365619e58b9818a2ee7d6e2b22e Mon Sep 17 00:00:00 2001 From: B0pol Date: Sat, 29 Feb 2020 17:51:26 +0000 Subject: [PATCH 023/195] Translated using Weblate (French) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e004a8ea171..fccfbc38776 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -428,7 +428,7 @@ Grille Auto Changer de vue - Une mise à jour de NewPipe est disponible ! + Une mise à jour de NewPipe est disponible ! Appuyer pour télécharger Terminé En attente From add08ead149afc1c31328eb767ba3d40b782de6a Mon Sep 17 00:00:00 2001 From: wb9688 Date: Mon, 2 Mar 2020 17:58:48 +0100 Subject: [PATCH 024/195] Accept music.youtube.com in manifest --- app/src/main/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7ca04eed0b3..d0e20413738 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -146,6 +146,7 @@ + From e7063b2c69fbfed7b28ccd8e8d0732b2b1ccef8f Mon Sep 17 00:00:00 2001 From: KOK ASiiK Date: Mon, 2 Mar 2020 02:00:34 +0000 Subject: [PATCH 025/195] Translated using Weblate (Indonesian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-in/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 40a4e65a930..450076b3552 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -395,7 +395,7 @@ Nihil Minimalkan ke pemutar latar belakang Minimalkan ke pemutar popup - Henti subscribe + Unsubscribe Tab Baru Pilih Tab Tema From 667a52427e8b8838bb24b7cdb2369eabd58b0c8a Mon Sep 17 00:00:00 2001 From: Dani Pragustia Date: Mon, 2 Mar 2020 17:55:47 +0000 Subject: [PATCH 026/195] Translated using Weblate (Indonesian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-in/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 450076b3552..4712a91d19e 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -228,7 +228,7 @@ Geser untuk ubah urutan Tidak ada subscriber - %s subscriber + %s subscribers Belum ditonton @@ -304,7 +304,7 @@ Diplaylist Thumbnail playlist diubah. Tidak bisa menghapus playlist. - Tidak ada Takarir + Tanpa Teks Pas Isi Perbesar @@ -339,7 +339,7 @@ Apakah anda juga ingin mengimpor pengaturan\? Tindakan \'buka\' yang diinginkan Tindakan baku ketika membuka konten — %s - Takarir + Teks Ubah skala teks takarir pemutar dan gaya latar belakang. Perlu memulai ulang apl. Pemantauan kebocoran memori dapat menyebabkan apl menjadi tidak responsif saat heap dumping Laporkan galat out-of-lifecycle From 92f4010e8ee16f0ebebad91e9d217fa20e2e0418 Mon Sep 17 00:00:00 2001 From: Stypox Date: Mon, 2 Mar 2020 20:50:35 +0100 Subject: [PATCH 027/195] Add more checks to prevent build failures in gradle branch suffix - Add function `getGitWorkingBranch` that returns the current working branch, and "" if it could not be determined (either because git is not installed or because the directory is not a git repo). - Make sure normalizedWorkingBranch is not empty (leading to an invalid app id terminating with `.`) - Make normalizedWorkingBranch lowercase - Add comments --- app/build.gradle | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2329a7a0e9c..61929173ef0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,6 +3,24 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' + +static String getGitWorkingBranch() { + try { + def gitProcess = "git rev-parse --abbrev-ref HEAD".execute() + gitProcess.waitFor() + if (gitProcess.exitValue() == 0) { + return gitProcess.text.trim() + } else { + // not a git repository + return "" + } + } catch (IOException ignored) { + // git was not found + return "" + } +} + + android { compileSdkVersion 28 buildToolsVersion '28.0.3' @@ -31,12 +49,14 @@ android { debuggable true // suffix the app id and the app name with git branch name - def workingBranch = "git rev-parse --abbrev-ref HEAD".execute().text.trim() - if (workingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") { + def workingBranch = getGitWorkingBranch() + def normalizedWorkingBranch = workingBranch.replaceAll("[^A-Za-z]+", "").toLowerCase() + if (normalizedWorkingBranch.isEmpty() || workingBranch == "master" || workingBranch == "dev") { + // default values when branch name could not be determined or is master or dev applicationIdSuffix ".debug" resValue "string", "app_name", "NewPipe Debug" } else { - applicationIdSuffix ".debug." + workingBranch.replaceAll("[^A-Za-z]+", "") + applicationIdSuffix ".debug." + normalizedWorkingBranch resValue "string", "app_name", "NewPipe " + workingBranch } } From 92ee51b8db64b4ba6d4dfb22a925af2b4a37dd02 Mon Sep 17 00:00:00 2001 From: karol Date: Mon, 2 Mar 2020 21:12:02 +0100 Subject: [PATCH 028/195] resolved issues --- .../java/org/schabi/newpipe/player/BackgroundPlayer.java | 1 + .../main/java/org/schabi/newpipe/player/BasePlayer.java | 2 +- .../java/org/schabi/newpipe/player/MainVideoPlayer.java | 7 +------ .../org/schabi/newpipe/player/ServicePlayerActivity.java | 7 +------ 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java index dbf27ea7c0b..4eaa2a73bf8 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BackgroundPlayer.java @@ -341,6 +341,7 @@ public void initPlayer(boolean playOnReady) { @Override public void handleIntent(final Intent intent) { super.handleIntent(intent); + resetNotification(); if (bigNotRemoteView != null) bigNotRemoteView.setProgressBar(R.id.notificationProgressBar, 100, 0, false); diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index adffefa6ee6..a71671e7b09 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -332,7 +332,7 @@ protected void initPlayback(@NonNull final PlayQueue queue, if (playQueueAdapter != null) playQueueAdapter.dispose(); playQueueAdapter = new PlayQueueAdapter(context, playQueue); - if (isMuted) simpleExoPlayer.setVolume(0); + simpleExoPlayer.setVolume(isMuted ? 0 : 1); } public void destroyPlayer() { diff --git a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java index 63d95e74f48..d74a739cfd8 100644 --- a/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/MainVideoPlayer.java @@ -401,12 +401,7 @@ protected void setShuffleButton(final ImageButton shuffleButton, final boolean s } protected void setMuteButton(final ImageButton muteButton, final boolean isMuted) { - if (isMuted) { - muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.white)); - } else { - muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.gray)); - - } + muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), isMuted ? R.color.white : R.color.gray)); } diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index c0a8d2bfda5..10b202e4c5d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -687,11 +687,6 @@ private void onMaybePlaybackAdapterChanged() { } private void onMaybeMuteChanged(){ - if (player.isMuted()) { - muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.white)); - } - else { - muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), R.color.gray)); - } + muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), player.isMuted() ? R.color.white : R.color.gray)); } } From 07d1faf544037de0178b368ece3ee2dd964557de Mon Sep 17 00:00:00 2001 From: bopol Date: Wed, 12 Feb 2020 02:05:34 +0100 Subject: [PATCH 029/195] Links support for mediaccc and shortened invidious --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2a7e039b302..4bc36a4c765 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ dependencies { exclude module: 'support-annotations' }) - implementation 'com.github.TeamNewPipe:NewPipeExtractor:6446abc6d' + implementation 'com.github.B0pol:NewPipeExtractor:6180226' testImplementation 'junit:junit:4.12' testImplementation 'org.mockito:mockito-core:2.23.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7ca04eed0b3..bd3724770ef 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -247,6 +247,7 @@ + @@ -277,8 +278,26 @@ - + + + + + + + + + + + + + + + + + + + From 124340175a81f8aa244fac41f51bce4d40760b00 Mon Sep 17 00:00:00 2001 From: bopol Date: Wed, 12 Feb 2020 20:41:59 +0100 Subject: [PATCH 030/195] remove redundant code --- app/src/main/AndroidManifest.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bd3724770ef..8dfeb03cc58 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -244,15 +244,7 @@ - - - - - - - - From c79f09c119f156cddc574850f79b97a1d9eb9fb0 Mon Sep 17 00:00:00 2001 From: karol Date: Mon, 2 Mar 2020 22:52:58 +0100 Subject: [PATCH 031/195] mute button in actionbar, no color change --- .../org/schabi/newpipe/player/ServicePlayerActivity.java | 3 +++ app/src/main/res/menu/menu_play_queue.xml | 7 +++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 11 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 10b202e4c5d..9099c992783 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -164,6 +164,9 @@ public boolean onOptionsItemSelected(MenuItem item) { case R.id.action_append_playlist: appendAllToPlaylist(); return true; + case R.id.action_mute: + player.onMuteUnmuteButtonClicked(); + return true; case R.id.action_system_audio: startActivity(new Intent(Settings.ACTION_SOUND_SETTINGS)); return true; diff --git a/app/src/main/res/menu/menu_play_queue.xml b/app/src/main/res/menu/menu_play_queue.xml index be6cea46cff..fc3fd07a8e0 100644 --- a/app/src/main/res/menu/menu_play_queue.xml +++ b/app/src/main/res/menu/menu_play_queue.xml @@ -10,6 +10,13 @@ android:visible="true" app:showAsAction="ifRoom"/> + + Rename Name Add To Playlist + Mute Set as Playlist Thumbnail Bookmark Playlist Remove Bookmark From 840bb29c542c797123eede58c15b3482a7e47bb6 Mon Sep 17 00:00:00 2001 From: karol Date: Tue, 3 Mar 2020 00:01:19 +0100 Subject: [PATCH 032/195] icon color change in action bar --- .../newpipe/player/ServicePlayerActivity.java | 25 ++++++++++++++++--- .../res/drawable/ic_volume_off_gray_24dp.xml | 5 ++++ 2 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/ic_volume_off_gray_24dp.xml diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 9099c992783..75107a7e411 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -3,15 +3,19 @@ import android.content.ComponentName; import android.content.Intent; import android.content.ServiceConnection; +import android.content.res.TypedArray; +import android.graphics.drawable.Drawable; import android.os.Bundle; import android.os.IBinder; import android.provider.Settings; + import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.appcompat.widget.Toolbar; import androidx.recyclerview.widget.ItemTouchHelper; + import android.util.Log; import android.view.Menu; import android.view.MenuItem; @@ -94,6 +98,8 @@ public abstract class ServicePlayerActivity extends AppCompatActivity private TextView playbackSpeedButton; private TextView playbackPitchButton; + private Menu menu; + //////////////////////////////////////////////////////////////////////////// // Abstracts //////////////////////////////////////////////////////////////////////////// @@ -147,8 +153,10 @@ protected void onResume() { @Override public boolean onCreateOptionsMenu(Menu menu) { + this.menu = menu; getMenuInflater().inflate(R.menu.menu_play_queue, menu); getMenuInflater().inflate(getPlayerOptionMenuResource(), menu); + onMaybeMuteChanged(); return true; } @@ -174,8 +182,8 @@ public boolean onOptionsItemSelected(MenuItem item) { this.player.setRecovery(); getApplicationContext().sendBroadcast(getPlayerShutdownIntent()); getApplicationContext().startActivity( - getSwitchIntent(MainVideoPlayer.class) - .putExtra(BasePlayer.START_PAUSED, !this.player.isPlaying()) + getSwitchIntent(MainVideoPlayer.class) + .putExtra(BasePlayer.START_PAUSED, !this.player.isPlaying()) ); return true; } @@ -218,7 +226,7 @@ private void bind() { } private void unbind() { - if(serviceBound) { + if (serviceBound) { unbindService(serviceConnection); serviceBound = false; stopPlayerListener(); @@ -689,7 +697,16 @@ private void onMaybePlaybackAdapterChanged() { } } - private void onMaybeMuteChanged(){ + private void onMaybeMuteChanged() { muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), player.isMuted() ? R.color.white : R.color.gray)); + + if (menu != null) { + MenuItem item = menu.findItem(R.id.action_mute); + TypedArray a = getTheme().obtainStyledAttributes(R.style.Theme_AppCompat, new int[]{R.attr.volume_off}); + int attributeResourceId = a.getResourceId(0, 0); + Drawable drawableMuted = getResources().getDrawable(attributeResourceId); + Drawable drawableUnmuted = getResources().getDrawable(R.drawable.ic_volume_off_gray_24dp); + item.setIcon(player.isMuted() ? drawableMuted : drawableUnmuted); + } } } diff --git a/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml b/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml new file mode 100644 index 00000000000..156ee53bb43 --- /dev/null +++ b/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml @@ -0,0 +1,5 @@ + + + From afebd9b724da0c090319d8fba53baa2f791df9f9 Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+poolitzer@users.noreply.github.com> Date: Mon, 2 Mar 2020 16:38:23 -0800 Subject: [PATCH 033/195] improvements --- .github/ISSUE_TEMPLATE/bug_report.md | 3 +-- .github/ISSUE_TEMPLATE/feature_request.md | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 188dd8b42f3..1b28d3d793d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -14,8 +14,7 @@ Use this template to notify us if you found a bug. To make it easier for us to help you please enter detailed information below. -Please note, we only support the latest version of NewPipe and -master branch. Please make sure to upgrade & recreate the issue on the latest version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in you app (To check you version, press on the three line menu on the left, click on "About", and you will see your current version). +Please note, we only support the latest version of NewPipe and master branch. Please make sure to upgrade & recreate the issue on the latest version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start, make sure its version is the same as in your app (to check your version, open the left drawer and click on "About"). P.S.: Our [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) might be a nice document to read before you fill out the report :) --> diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 8453f99ba1c..a6262ad7b45 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -18,7 +18,7 @@ Example: *I think it would be nice if you would add feature Y so it will make it #### Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered. -Example: *I considered Z, but that didn't work because...* +Example: *I considered Z, but that didn't turn out to be a good idea because...* #### Additional context Add any other context or screenshots about the feature request here. From 08dffad16055b3cd889a98548dbe6efbec87a348 Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+poolitzer@users.noreply.github.com> Date: Mon, 2 Mar 2020 20:52:50 -0800 Subject: [PATCH 034/195] opus4improvements --- .github/ISSUE_TEMPLATE/bug_report.md | 16 ++++++++-------- .github/ISSUE_TEMPLATE/feature_request.md | 8 ++++---- .github/PULL_REQUEST_TEMPLATE.md | 11 +++++++---- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 1b28d3d793d..19e8a9fbe0a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,23 +8,23 @@ assignees: '' --- ### Version - + - -### Steps to reproduce - +### Steps to reproduce the bug + Steps to reproduce the behavior: 1. Go to '...' 2. Press on '....' @@ -36,10 +36,10 @@ Tell us what you expected to happen. ### Actual behaviour Tell us what happens instead. -### Screenshots/-recording -If applicable, add screenshots or a screen recording to help explain your problem. Github should support uploading them directly in the issue field. If your file is too big, feel free to paste a link from a image/video hoster here instead. +### Screenshots/Screen records +If applicable, add screenshots or a screen recording to help explain your problem. Github should support uploading them directly in the issue field. If your file is too big, feel free to paste a link from an image/video hoster here instead. ### Logs If your bug includes a crash, please head over to the [incredible bugreport to markdown converter](https://teamnewpipe.github.io/CrashReportToMarkdown/). Copy the result. Paste it here: - + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index a6262ad7b45..b461675bd69 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -8,13 +8,13 @@ assignees: '' --- -#### Is your feature request related to a problem? Please describe. +#### Is your feature request related to a problem? Please describe it A clear and concise description of what the problem is. Example: *I want to do X, but there is no way to do it.* #### Describe the solution you'd like A clear and concise description of what you want to happen. -Example: *I think it would be nice if you would add feature Y so it will make it easier.* +Example: *I think it would be nice if you add feature Y which makes X possible.* #### Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered. @@ -24,7 +24,7 @@ Example: *I considered Z, but that didn't turn out to be a good idea because...* Add any other context or screenshots about the feature request here. Example: *Here's a photo of my cat!* -#### Why do you/everyone wants this feature +#### How will you/everyone benefit from this feature? Convince us! How does it change your NewPipe experience and/or your life? -The better this paragraph is, the more likely a developer will think about developing it. +The better this paragraph is, the more likely a developer will think about working on it. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 978adc1002f..40dd5d616ef 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,14 +1,17 @@ - + #### What is it? - [ ] Bug fix - [ ] Feature #### Long description of the changes in your PR -*Now you can make videos* + +- record videos +- create clones +- take over the world #### Fixes the following issue(s) - + - #### Relies on the following changes @@ -16,7 +19,7 @@ - #### Testing apk - + debug.zip #### Agreement From d265382ddfcf4b45482b0548715544f9664c239b Mon Sep 17 00:00:00 2001 From: Poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Mon, 2 Mar 2020 20:56:03 -0800 Subject: [PATCH 035/195] missed this because GitHub thought its funny to hide it for a reason. Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/feature_request.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index b461675bd69..946bfb4c6b0 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -16,7 +16,7 @@ Example: *I want to do X, but there is no way to do it.* A clear and concise description of what you want to happen. Example: *I think it would be nice if you add feature Y which makes X possible.* -#### Describe alternatives you've considered +#### (Optional) Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered. Example: *I considered Z, but that didn't turn out to be a good idea because...* @@ -27,4 +27,3 @@ Example: *Here's a photo of my cat!* #### How will you/everyone benefit from this feature? Convince us! How does it change your NewPipe experience and/or your life? The better this paragraph is, the more likely a developer will think about working on it. - From 3f118a72392247579867eb12df8632aaad4bf427 Mon Sep 17 00:00:00 2001 From: Poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Mon, 2 Mar 2020 21:08:34 -0800 Subject: [PATCH 036/195] appending dots Co-Authored-By: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> --- .github/PULL_REQUEST_TEMPLATE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 40dd5d616ef..9a1193767dd 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -15,11 +15,11 @@ - #### Relies on the following changes - + - #### Testing apk - + debug.zip #### Agreement From 57504acd0017b2825ecbb68a4ff7bec9c7f64fdc Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Sat, 29 Feb 2020 11:23:21 +0100 Subject: [PATCH 037/195] If inexact seekt is used, hide 5,15,25 seconds seek duration options when opening settings --- .../settings/VideoAudioSettingsFragment.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index d5f46fb220b..5476158c4d1 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -11,6 +11,8 @@ import com.google.android.material.snackbar.Snackbar; +import java.util.LinkedList; +import java.util.List; import org.schabi.newpipe.R; import org.schabi.newpipe.util.PermissionHelper; @@ -26,19 +28,28 @@ public void onCreate(@Nullable Bundle savedInstanceState) { Resources res = getResources(); String[] durationsValues = res.getStringArray(R.array.seek_duration_value); String[] durationsDescriptions = res.getStringArray(R.array.seek_duration_description); + List durationsValResult = new LinkedList<>(); + List durationsDesResult = new LinkedList<>(); int currentDurationValue; + final boolean inexactSeek = getPreferenceManager().getSharedPreferences() + .getBoolean(res.getString(R.string.use_inexact_seek_key), false); + for (int i = 0; i < durationsDescriptions.length; i++) { currentDurationValue = Integer.parseInt(durationsValues[i]) / 1000; - try { - durationsDescriptions[i] = String.format( + if (inexactSeek && currentDurationValue % 10 != 5) { + try { + durationsValResult.add(durationsValues[i]); + durationsDesResult.add(String.format( res.getQuantityString(R.plurals.dynamic_seek_duration_description, currentDurationValue), - currentDurationValue); - } catch (Resources.NotFoundException ignored) { - //if this happens, the translation is missing, and the english string will be displayed instead + currentDurationValue)); + } catch (Resources.NotFoundException ignored) { + //if this happens, the translation is missing, and the english string will be displayed instead + } } } ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key)); - durations.setEntries(durationsDescriptions); + durations.setEntryValues(durationsValResult.toArray(new CharSequence[0])); + durations.setEntries(durationsDesResult.toArray(new CharSequence[0])); listener = (sharedPreferences, s) -> { @@ -62,7 +73,6 @@ public void onCreate(@Nullable Bundle savedInstanceState) { }; } - @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.video_audio_settings); From 446380433804c1c38213c37562d8d34151caca3b Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Sat, 29 Feb 2020 11:53:04 +0100 Subject: [PATCH 038/195] Update seek options on inexact seek option change. Reset to 10 seconds when previous value is not valid anymore --- .../settings/VideoAudioSettingsFragment.java | 66 +++++++++++-------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index 5476158c4d1..20e68078acc 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -24,32 +24,7 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //initializing R.array.seek_duration_description to display the translation of seconds - Resources res = getResources(); - String[] durationsValues = res.getStringArray(R.array.seek_duration_value); - String[] durationsDescriptions = res.getStringArray(R.array.seek_duration_description); - List durationsValResult = new LinkedList<>(); - List durationsDesResult = new LinkedList<>(); - int currentDurationValue; - final boolean inexactSeek = getPreferenceManager().getSharedPreferences() - .getBoolean(res.getString(R.string.use_inexact_seek_key), false); - - for (int i = 0; i < durationsDescriptions.length; i++) { - currentDurationValue = Integer.parseInt(durationsValues[i]) / 1000; - if (inexactSeek && currentDurationValue % 10 != 5) { - try { - durationsValResult.add(durationsValues[i]); - durationsDesResult.add(String.format( - res.getQuantityString(R.plurals.dynamic_seek_duration_description, currentDurationValue), - currentDurationValue)); - } catch (Resources.NotFoundException ignored) { - //if this happens, the translation is missing, and the english string will be displayed instead - } - } - } - ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key)); - durations.setEntryValues(durationsValResult.toArray(new CharSequence[0])); - durations.setEntries(durationsDesResult.toArray(new CharSequence[0])); + updateSeekOptions(); listener = (sharedPreferences, s) -> { @@ -69,10 +44,49 @@ public void onCreate(@Nullable Bundle savedInstanceState) { .show(); } + } else if (s.equals(getString(R.string.use_inexact_seek_key))) { + updateSeekOptions(); } }; } + /** + * Update fast-forward/-rewind seek duration options according to language and inexact seek setting. + * Exoplayer can't seek 5 seconds in audio when using inexact seek. + */ + private void updateSeekOptions() { + //initializing R.array.seek_duration_description to display the translation of seconds + final Resources res = getResources(); + final String[] durationsValues = res.getStringArray(R.array.seek_duration_value); + final List displayedDurationValues = new LinkedList<>(); + final List displayedDescriptionValues = new LinkedList<>(); + int currentDurationValue; + final boolean inexactSeek = getPreferenceManager().getSharedPreferences() + .getBoolean(res.getString(R.string.use_inexact_seek_key), false); + + for (String durationsValue : durationsValues) { + currentDurationValue = Integer.parseInt(durationsValue) / 1000; + if (inexactSeek && currentDurationValue % 10 == 5) { + continue; + } + try { + displayedDurationValues.add(durationsValue); + displayedDescriptionValues.add(String.format( + res.getQuantityString(R.plurals.dynamic_seek_duration_description, + currentDurationValue), + currentDurationValue)); + } catch (Resources.NotFoundException ignored) { + //if this happens, the translation is missing, and the english string will be displayed instead + } + } + final ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key)); + durations.setEntryValues(displayedDurationValues.toArray(new CharSequence[0])); + durations.setEntries(displayedDescriptionValues.toArray(new CharSequence[0])); + if (Integer.parseInt(durations.getValue()) / 1000 % 10 == 5) { + durations.setValueIndex(0); + } + } + @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { addPreferencesFromResource(R.xml.video_audio_settings); From 288a61895cde2c271ae80c7b927a0200ca1480c9 Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Sat, 29 Feb 2020 11:58:41 +0100 Subject: [PATCH 039/195] Update inexact seek summary --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 42b4b77c594..f7fe9c2b22a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -71,7 +71,7 @@ Remember popup size and position Remember last size and position of popup Use fast inexact seek - Inexact seek allows the player to seek to positions faster with reduced precision + Inexact seek allows the player to seek to positions faster with reduced precision. Seeking for 5, 15 or 25 seconds doesn\'t work with this. Fast-forward/-rewind seek duration Load thumbnails Show comments From 6a42714326dbd42dabdf4b072cf25396fa4da529 Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Mon, 2 Mar 2020 19:52:42 +0100 Subject: [PATCH 040/195] Round seek duration up instead of setting it to 10 seconds --- .../schabi/newpipe/settings/VideoAudioSettingsFragment.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index 20e68078acc..05c9ca9fcd0 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -82,8 +82,9 @@ private void updateSeekOptions() { final ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key)); durations.setEntryValues(displayedDurationValues.toArray(new CharSequence[0])); durations.setEntries(displayedDescriptionValues.toArray(new CharSequence[0])); - if (Integer.parseInt(durations.getValue()) / 1000 % 10 == 5) { - durations.setValueIndex(0); + final int selectedDuration = Integer.parseInt(durations.getValue()); + if (selectedDuration / 1000 % 10 == 5) { + durations.setValue(Integer.toString(selectedDuration + 5 * 1000)); } } From 7d3b21582cc94b3954d88d57ec3c186712396a78 Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Mon, 2 Mar 2020 19:54:08 +0100 Subject: [PATCH 041/195] Use DateUtils constant for 1000 --- .../newpipe/settings/VideoAudioSettingsFragment.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index 05c9ca9fcd0..134285a41c3 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -6,6 +6,7 @@ import android.os.Bundle; import android.provider.Settings; +import android.text.format.DateUtils; import androidx.annotation.Nullable; import androidx.preference.ListPreference; @@ -65,7 +66,8 @@ private void updateSeekOptions() { .getBoolean(res.getString(R.string.use_inexact_seek_key), false); for (String durationsValue : durationsValues) { - currentDurationValue = Integer.parseInt(durationsValue) / 1000; + currentDurationValue = + Integer.parseInt(durationsValue) / (int) DateUtils.SECOND_IN_MILLIS; if (inexactSeek && currentDurationValue % 10 == 5) { continue; } @@ -83,8 +85,9 @@ private void updateSeekOptions() { durations.setEntryValues(displayedDurationValues.toArray(new CharSequence[0])); durations.setEntries(displayedDescriptionValues.toArray(new CharSequence[0])); final int selectedDuration = Integer.parseInt(durations.getValue()); - if (selectedDuration / 1000 % 10 == 5) { - durations.setValue(Integer.toString(selectedDuration + 5 * 1000)); + if (selectedDuration / (int) DateUtils.SECOND_IN_MILLIS % 10 == 5) { + durations.setValue( + Integer.toString(selectedDuration + 5 * (int) DateUtils.SECOND_IN_MILLIS)); } } From e3fff4356a5c7cc4138f9a4dde954cf2bdea03ef Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Mon, 2 Mar 2020 20:15:54 +0100 Subject: [PATCH 042/195] Show a toast when seek duration was rounded up --- .../settings/VideoAudioSettingsFragment.java | 13 +++++++++++-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index 134285a41c3..f68fc5e239c 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -7,6 +7,7 @@ import android.provider.Settings; import android.text.format.DateUtils; +import android.widget.Toast; import androidx.annotation.Nullable; import androidx.preference.ListPreference; @@ -86,8 +87,16 @@ private void updateSeekOptions() { durations.setEntries(displayedDescriptionValues.toArray(new CharSequence[0])); final int selectedDuration = Integer.parseInt(durations.getValue()); if (selectedDuration / (int) DateUtils.SECOND_IN_MILLIS % 10 == 5) { - durations.setValue( - Integer.toString(selectedDuration + 5 * (int) DateUtils.SECOND_IN_MILLIS)); + final int newDuration = selectedDuration / (int) DateUtils.SECOND_IN_MILLIS + 5; + durations.setValue(Integer.toString(newDuration * (int) DateUtils.SECOND_IN_MILLIS)); + + Toast toast = Toast.makeText(getContext(), + getString(R.string.new_seek_duration_toast) + " " + String.format( + res.getQuantityString(R.plurals.dynamic_seek_duration_description, + newDuration), + newDuration), + Toast.LENGTH_LONG); + toast.show(); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f7fe9c2b22a..6152221c0dd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,6 +593,7 @@ App language System default %s seconds + Due to ExoPlayer contraints the seek duration was set to %s seconds From efb67b0fd4e98fe5e99b6d323a4d8686bc6c06f7 Mon Sep 17 00:00:00 2001 From: Xiang Rong Lin <41164160+XiangRongLin@users.noreply.github.com> Date: Tue, 3 Mar 2020 19:50:50 +0100 Subject: [PATCH 043/195] Change toast string resource to be useable with different languages --- .../newpipe/settings/VideoAudioSettingsFragment.java | 11 +++++------ app/src/main/res/values/strings.xml | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index f68fc5e239c..27ae4d3aaf9 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -82,6 +82,7 @@ private void updateSeekOptions() { //if this happens, the translation is missing, and the english string will be displayed instead } } + final ListPreference durations = (ListPreference) findPreference(getString(R.string.seek_duration_key)); durations.setEntryValues(displayedDurationValues.toArray(new CharSequence[0])); durations.setEntries(displayedDescriptionValues.toArray(new CharSequence[0])); @@ -90,12 +91,10 @@ private void updateSeekOptions() { final int newDuration = selectedDuration / (int) DateUtils.SECOND_IN_MILLIS + 5; durations.setValue(Integer.toString(newDuration * (int) DateUtils.SECOND_IN_MILLIS)); - Toast toast = Toast.makeText(getContext(), - getString(R.string.new_seek_duration_toast) + " " + String.format( - res.getQuantityString(R.plurals.dynamic_seek_duration_description, - newDuration), - newDuration), - Toast.LENGTH_LONG); + Toast toast = Toast + .makeText(getContext(), + getString(R.string.new_seek_duration_toast, newDuration), + Toast.LENGTH_LONG); toast.show(); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6152221c0dd..e46bef4e8a3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,7 +593,7 @@ App language System default %s seconds - Due to ExoPlayer contraints the seek duration was set to + Due to ExoPlayer contraints the seek duration was set to %d seconds %s seconds From f7ef7a18ac764f53c7b2a748af43a34a252abe90 Mon Sep 17 00:00:00 2001 From: XiangRongLin <41164160+XiangRongLin@users.noreply.github.com> Date: Tue, 3 Mar 2020 21:41:15 +0100 Subject: [PATCH 044/195] Update app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java Co-Authored-By: Stypox --- .../schabi/newpipe/settings/VideoAudioSettingsFragment.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index 27ae4d3aaf9..d4897ecaab3 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -72,8 +72,9 @@ private void updateSeekOptions() { if (inexactSeek && currentDurationValue % 10 == 5) { continue; } + + displayedDurationValues.add(durationsValue); try { - displayedDurationValues.add(durationsValue); displayedDescriptionValues.add(String.format( res.getQuantityString(R.plurals.dynamic_seek_duration_description, currentDurationValue), From 4bb6a146e8212af975d9c1acd1bbd3cf51fa6af6 Mon Sep 17 00:00:00 2001 From: Stypox Date: Tue, 3 Mar 2020 21:51:46 +0100 Subject: [PATCH 045/195] Update app/src/main/res/values/strings.xml --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e46bef4e8a3..2e5b1d75cf9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,7 +593,7 @@ App language System default %s seconds - Due to ExoPlayer contraints the seek duration was set to %d seconds + Due to ExoPlayer constraints the seek duration was set to %d seconds %s seconds From 9b65b000dbd2bdcff3ad381e10088462b3e6d84a Mon Sep 17 00:00:00 2001 From: Dani Pragustia Date: Mon, 2 Mar 2020 17:59:04 +0000 Subject: [PATCH 046/195] Translated using Weblate (Indonesian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-in/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 4712a91d19e..2efe3e01240 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -395,7 +395,7 @@ Nihil Minimalkan ke pemutar latar belakang Minimalkan ke pemutar popup - Unsubscribe + Berhenti berlangganan Tab Baru Pilih Tab Tema From e421d47b231e0226a616607c4e946c1607ebd87c Mon Sep 17 00:00:00 2001 From: IQBAL AL FATAH Date: Wed, 4 Mar 2020 08:55:04 +0000 Subject: [PATCH 047/195] Translated using Weblate (Indonesian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-in/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 2efe3e01240..050134c6aa0 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -5,13 +5,13 @@ Dipublikasikan tanggal %1$s Pasang Batal - Buka di peramban + Buka di browser Bagikan Unduh - Cari - Pengaturan + Telusuri + Setelan Bagikan dengan - Pilih peramban + Pilih browser Gunakan pemutar video eksternal Gunakan pemutar audio eksternal Folder unduhan video @@ -46,7 +46,7 @@ Tampilkan video yang dibatasi usia. Bisa diubah nanti dari pengaturan. Galat jaringan Tidak bisa memuat semua thumbnail - Maksud anda: %1$s\? + Apakah yang kamu maksud: %1$s\? rotasi Langsung Unduhan @@ -116,7 +116,7 @@ T Ya Nanti - Buka di mode popup + Buka dalam mode popup Izin ini dibutuhkan untuk \nmembuka di mode popup Mode popup From e1fb8831deacfcf3287ecfc039aed71c6f997889 Mon Sep 17 00:00:00 2001 From: AioiLight Date: Tue, 3 Mar 2020 08:26:56 +0000 Subject: [PATCH 048/195] Translated using Weblate (Japanese) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-ja/strings.xml | 32 +++++++++++++++----------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index adaaa382887..f49c5b60405 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1,7 +1,7 @@ %1$s に公開 - 動画プレイヤーが見つかりません。VLC を入手しますか? + 動画プレイヤーが見つかりません。VLC をインストールしますか? 入手 キャンセル ブラウザで開く @@ -18,7 +18,7 @@ 動画ファイルをダウンロードするフォルダーを選択して下さい デフォルトの解像度 Kodi で再生 - Koreが見つかりません。Kore を入手しますか? + Kore をインストールしますか? \"Kodi で再生\" オプションを表示 Kodi メディアセンター経由で動画を再生するための設定を表示します 音声 @@ -75,13 +75,13 @@ 動画 音声 再試行 - ストレージへのアクセスが拒否されました + 初めにストレージへのアクセスを許可する 自動再生 NewPipe が他のアプリから呼び出された時、動画を再生します。 不具合を報告 利用者レポートを送る 生放送 - 開始するには検索をタップ + 開始するには \"検索\" をタップ 開始 一時停止 再生 @@ -120,13 +120,13 @@ ポップアップモードで開く ポップアップモードで開くには \n権限の許可が必要です - NewPipe ポップアップモード + ポップアップモード ポップアップモードで再生中 無効 デフォルトの動画形式 デフォルトのポップアップ解像度 高い解像度で表示 - 2K/4K ビデオの再生は一部のデバイスのみサポートしています + 2K/4K ビデオの再生は一部のデバイスのみ再生できます バックグラウンド ポップアップ フィルター @@ -170,10 +170,10 @@ 検索した履歴を記憶します 視聴履歴 再生した履歴を記憶します - オーディオフォーカス復帰で再開する + 再生の再開 電話などによる中断の後、再生を再開します プレイヤー - 動画の詳細ページで、背景またはポップアップボタンが押されたときにヒントを表示する + 動画の詳細ページで、\"バックグラウンド\" または \"ポップアップ\" ボタンが押されたときにヒントを表示する 動作 履歴とキャッシュ プレイリスト @@ -325,12 +325,12 @@ おおまかなシーク おおまかなシークを使用すると、正確さが下がりますが高速なシークが可能になります すべてのサムネイルの読み込みと保存を無効化します、このオプションを切り替えるとメモリおよびディスク上の画像キャッシュがクリアされます。 - 繰り返しではないキューの再生後、関連動画を自動的にキューに追加します + キューに関連動画を追加し続けて、再生を続ける(リピートしない場合) すべての再生履歴を削除しますか? すべての検索履歴を削除しますか? このファイル/コンテンツはありません - %s を登録しています + %s が登録しています 視聴なし @@ -375,7 +375,7 @@ 何もしない バックグラウンドに変更 ポップアップに変更 - LeakCanary を有効にする + LeakCanary メモリリークの監視は、ヒープダンピング時にアプリが無反応になる原因となります ライフサイクルエラーの報告 破棄されたフラグメントまたはアクティビティの、ライフサイクル範囲外での配信不能なRx例外を強制的に報告します @@ -453,7 +453,7 @@ ファイルを削除しました アプリの更新通知 外部 SD カードにダウンロードできません。ダウンロードフォルダーの場所をリセットしますか\? - デフォルトのタブを使用します。保存されたタブの読み込みエラーが発生しました + 保存されたタブを読み込めないため、デフォルトのタブを使用します メインページに表示されるタブ 新しいバージョンが利用可能なときにアプリの更新を確認する通知を表示します 従量制課金ネットワークの割り込み @@ -462,7 +462,7 @@ 無効にするとコメントの表示を停止します 自動再生 - コメント + %s コメント コメントはありません コメントを読み込めませんでした @@ -525,7 +525,7 @@ 修復中 ダウンロードが修復できません インスタンスを選択 - ロック画面の動画サムネイルを有効にする + ロック画面の動画サムネイル バックグラウンドプレイヤーを使用中、ロック画面に動画のサムネイルが表示されるようになります ダウンロード履歴を消去 ダウンロードしたファイルを消去 @@ -536,4 +536,8 @@ システムの既定 解けたら \"完了\" を押してください 完了 + 動画 + + %s 秒 + \ No newline at end of file From 6962882e75e839a58c12ef874d0e574f942fb205 Mon Sep 17 00:00:00 2001 From: Sylke Vicious Date: Tue, 3 Mar 2020 14:55:44 +0000 Subject: [PATCH 049/195] Translated using Weblate (Italian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-it/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2607ab210be..d36d03a6160 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -218,13 +218,13 @@ Feed Iscrizioni Canale Personalizzato Seleziona Canale - Nessuna Iscrizione + Ancora nessuna iscrizione ad un canale Seleziona Contenuto Locandina Tendenze Top 50 New & hot - Mostra Suggerimento \"Tieni Premuto per Accocodare\" + Mostra suggerimento \"Tieni premuto per accodare\" Nei \"Dettagli\" dei video, mostra suggerimento alla pressione dei pulsanti per la riproduzione Popup o in Sottofondo Accoda in Sottofondo Accodato in Popup @@ -352,7 +352,7 @@ Tieni presente che questa operazione può consumare una grande quantità di traffico dati. \n \nVuoi continuare? - Carica Copertine + Carica miniature Disabilita per prevenire il caricamento delle anteprime, risparmiando dati e memoria. La modifica di questa opzione cancellerà la cache delle immagini in memoria e sul disco. Cache immagini svuotata Pulisci Cache Metadati @@ -533,8 +533,8 @@ recupero Impossibile recuperare questo download Scegli un\'Istanza - Copertina sulla Schermata di Blocco - La copertina del video verrà mostrata nella schermata di blocco, durante la riproduzione in sottofondo. + Miniatura del video sulla schermata di blocco + La miniatura del video verrà mostrata nella schermata di blocco, durante la riproduzione in sottofondo Svuota Cronologia Download Elimina File Scaricati %1$s download eliminati @@ -546,6 +546,6 @@ Video %s secondi - + \ No newline at end of file From ebdf48899fd0a8a3555bd3415fdb3fd11bc9d121 Mon Sep 17 00:00:00 2001 From: "Mohd. A" <1mohd@pm.me> Date: Tue, 3 Mar 2020 09:52:17 +0000 Subject: [PATCH 050/195] Translated using Weblate (Arabic) Currently translated at 98.3% (524 of 533 strings) --- app/src/main/res/values-ar/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 469c131779d..0407e183650 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -94,7 +94,7 @@ تذكر حجم النافذة و وضعها تذكر آخر مكان و حجم للنافذة المنبثقة اعدادات إيماءة المشغل - استخدم إيماءات التحكم في سطوع وصوت المشغل + استخدم الإيماءات للتحكم في سطوع وصوت المشغل اقتراحات البحث عرض الاقتراحات عند البحث سجل البحث @@ -111,7 +111,7 @@ تم وضعه على قائمة الانتظار في مشغل الخلفية تم وضعه على قائمة الانتظار في مشغل النافذة المنبثقة محتوى مقيد بحسب العمر - "إظهار الفيديو المقيد بحسب العمر. يمكن السماح باستخدام هذه المواد من \"الإعدادات\"." + إظهار الفيديو المقيد بحسب العمر. التغييرات المستقبلية ممكنة من \"الإعدادات\". بث مباشر تقرير خطأ قائمة التشغيل @@ -205,7 +205,7 @@ إذا كانت لديك أفكار؛ أو ترجمة، أو تغييرات تخص التصميم، أو تنظيف و تحسين الشفرة البرمجية ، أو تعديلات عميقة عليها، فتذكر أنّ مساعدتك دائما موضع ترحيب. وكلما أتممنا شيئا كلما كان ذلك أفضل ! عرض على GitHub تبرع - يتم تطوير NewPipe من قبل متطوعين يقضون وقت فراغهم لتقديم أفضل تجربة لك. حان الوقت لرد المساعدة مع المطورين وجعل NewPipe أكثر و أفضل بينما تستمتع بفنجان من القهوة. + يتم تطوير NewPipe من قبل متطوعين يقضون وقت فراغهم لتقديم أفضل تجربة لك. حان الوقت لرد المساعدة مع المطورين وجعل NewPipe أكثر و أفضل بينما يستمتعون بفنجان من القهوة. تبرع موقع الويب قم بزيارة موقع NewPipe لمزيد من المعلومات والمستجدات. @@ -417,7 +417,7 @@ إلغاء الاشتراك علامة تبويب جديدة اختر علامة التبويب - استخدم إيماءات التحكم في سطوع وصوت المشغل + استخدم إيماءات التحكم في صوت المشغل التحكم بالإيماءات السطوع استخدام الإيماءات للتحكم في سطوع المشغل التحديثات @@ -463,7 +463,7 @@ لا يمكن إنشاء الملف لا يمكن إنشاء المجلد الوجهة تم رفضها من قبل النظام - فشل اتصال الأمن + فشل الاتصال الآمن تعذر العثور على الخادم لا يمكن الاتصال بالخادم الخادم لايقوم بإرسال البيانات @@ -556,8 +556,8 @@ لا يمكن استرداد هذا التنزيل اختيار مثيل ابحث عن مثيلات الخوادم التي تناسبك على %s - تمكين قفل شاشة الصور المصغرة الفيديو - عند استخدام مشغل الخلفية ، سيتم عرض صورة مصغرة للفيديو على شاشة القفل + تمكين صورة العرض للفيديو في شاشة القفل + عند استخدام مشغل الخلفية، سيتم عرض صورة العرض للفيديو على شاشة القفل تنظيف تاريخ التحميل حذف الملفات التي تم تنزيلها التنزيلات %1$s المحذوفة @@ -569,10 +569,10 @@ الفيديوهات %s ثوانٍ - - - - - + + + + + \ No newline at end of file From 371280ff766b0335b70acb12005ab27279c3f5eb Mon Sep 17 00:00:00 2001 From: IQBAL AL FATAH Date: Wed, 4 Mar 2020 09:09:51 +0000 Subject: [PATCH 051/195] Translated using Weblate (Indonesian) Currently translated at 100.0% (533 of 533 strings) --- app/src/main/res/values-in/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 050134c6aa0..55745122032 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -395,7 +395,7 @@ Nihil Minimalkan ke pemutar latar belakang Minimalkan ke pemutar popup - Berhenti berlangganan + Berhenti Subscribe Tab Baru Pilih Tab Tema From 5c559e4cc6172d1a99f0d944cd759cf5da486593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isak=20Holmstr=C3=B6m?= Date: Wed, 4 Mar 2020 05:31:01 +0000 Subject: [PATCH 052/195] Translated using Weblate (Swedish) Currently translated at 86.8% (463 of 533 strings) --- app/src/main/res/values-sv/strings.xml | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 68aeca87ca9..5290517abeb 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -18,7 +18,7 @@ Använd extern videospelare Tar bort ljud vid VISSA upplösningar Använd extern ljudspelare - NewPipe popup-läge + Popup-läge Bakgrund Extrafönster Mapp för nerladdning av video @@ -112,7 +112,7 @@ Spara sökfrågor lokalt Visningshistorik Håll koll på videor som du tittat på - Återuppta när fokus återfås + Återuppta spelning Fortsätta spela efter avbrott (t.ex. telefonsamtal) Visa \"Håll för att lägga till\" tips Visa tips när bakgrunds- eller popup-knappen trycks på sidan för videodetaljer @@ -458,7 +458,7 @@ Kommentarer - Inaktivera för att sluta visa kommentarer + Inaktivera för att inte visa kommentarer Återuppta uppspelning Återställ den senaste uppspelningspositionen Positioner i listor @@ -468,4 +468,15 @@ Snabb spola -framåt/-bakåt Aktivera video på låsskärmen När bakgrundsspelaren används så visas videon på låsskärmen + Visa positionindikationer i listor + Radera uppspelningspositioner + PeerTube-instanser + Välj din favorit PeerTube-instans + Hitta instanser du gillar på %s + Lägg till instans + Fyll i instans-URL + Kunde inte validera instans + Enbart HTTPS-URL stöds + Instansen finns redan + Videos \ No newline at end of file From 7da11206dabeed73509efa19f6258a6f5c679a1d Mon Sep 17 00:00:00 2001 From: opusforlife2 <53176348+opusforlife2@users.noreply.github.com> Date: Wed, 4 Mar 2020 18:41:41 +0530 Subject: [PATCH 053/195] Relocate two settings from Appearance to Content --- app/src/main/res/xml/appearance_settings.xml | 13 ------------- app/src/main/res/xml/content_settings.xml | 13 +++++++++++++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/xml/appearance_settings.xml b/app/src/main/res/xml/appearance_settings.xml index b5f222130c7..31be267af9a 100644 --- a/app/src/main/res/xml/appearance_settings.xml +++ b/app/src/main/res/xml/appearance_settings.xml @@ -13,12 +13,6 @@ android:summary="%s" android:title="@string/theme_title"/> - - - - diff --git a/app/src/main/res/xml/content_settings.xml b/app/src/main/res/xml/content_settings.xml index 8fe8a66af8a..fd87de9efb5 100644 --- a/app/src/main/res/xml/content_settings.xml +++ b/app/src/main/res/xml/content_settings.xml @@ -31,6 +31,13 @@ android:summary="%s" android:title="@string/default_content_country_title"/> + + + + Date: Wed, 4 Mar 2020 18:37:04 +0100 Subject: [PATCH 054/195] mute icon change in action bar --- .../newpipe/player/ServicePlayerActivity.java | 12 ++------- .../res/drawable/ic_volume_off_gray_24dp.xml | 13 ++++++--- .../activity_player_queue_control.xml | 27 +++++-------------- .../layout/activity_player_queue_control.xml | 18 +------------ 4 files changed, 19 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 75107a7e411..07cdd73da5a 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -88,7 +88,6 @@ public abstract class ServicePlayerActivity extends AppCompatActivity private TextView seekDisplay; private ImageButton repeatButton; - private ImageButton muteButton; private ImageButton backwardButton; private ImageButton playPauseButton; private ImageButton forwardButton; @@ -319,7 +318,6 @@ private void buildSeekBar() { private void buildControls() { repeatButton = rootView.findViewById(R.id.control_repeat); - muteButton = rootView.findViewById(R.id.control_mute); backwardButton = rootView.findViewById(R.id.control_backward); playPauseButton = rootView.findViewById(R.id.control_play_pause); forwardButton = rootView.findViewById(R.id.control_forward); @@ -329,7 +327,6 @@ private void buildControls() { progressBar = rootView.findViewById(R.id.control_progress_bar); repeatButton.setOnClickListener(this); - muteButton.setOnClickListener(this); backwardButton.setOnClickListener(this); playPauseButton.setOnClickListener(this); forwardButton.setOnClickListener(this); @@ -462,10 +459,7 @@ public void onClick(View view) { if (view.getId() == repeatButton.getId()) { player.onRepeatClicked(); - } else if (view.getId() == muteButton.getId()) { - player.onMuteUnmuteButtonClicked(); - - } else if (view.getId() == backwardButton.getId()) { + } else if (view.getId() == backwardButton.getId()) { player.onPlayPrevious(); } else if (view.getId() == playPauseButton.getId()) { @@ -698,9 +692,7 @@ private void onMaybePlaybackAdapterChanged() { } private void onMaybeMuteChanged() { - muteButton.setColorFilter(ContextCompat.getColor(getApplicationContext(), player.isMuted() ? R.color.white : R.color.gray)); - - if (menu != null) { + if (menu != null && player != null) { MenuItem item = menu.findItem(R.id.action_mute); TypedArray a = getTheme().obtainStyledAttributes(R.style.Theme_AppCompat, new int[]{R.attr.volume_off}); int attributeResourceId = a.getResourceId(0, 0); diff --git a/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml b/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml index 156ee53bb43..ade6bfec252 100644 --- a/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml +++ b/app/src/main/res/drawable/ic_volume_off_gray_24dp.xml @@ -1,5 +1,10 @@ - - + + diff --git a/app/src/main/res/layout-land/activity_player_queue_control.xml b/app/src/main/res/layout-land/activity_player_queue_control.xml index 0277c28b522..6468c6784bd 100644 --- a/app/src/main/res/layout-land/activity_player_queue_control.xml +++ b/app/src/main/res/layout-land/activity_player_queue_control.xml @@ -192,7 +192,7 @@ android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_centerVertical="true" - android:layout_toLeftOf="@+id/control_mute" + android:layout_toLeftOf="@+id/control_repeat" android:gravity="center" android:minWidth="50dp" android:text="1x" @@ -201,30 +201,13 @@ android:background="?attr/selectableItemBackground" tools:ignore="HardcodedText,RtlHardcoded"/> - - + - - Date: Wed, 4 Mar 2020 18:53:17 +0100 Subject: [PATCH 055/195] mute/unmute text change in action bar --- .../org/schabi/newpipe/player/ServicePlayerActivity.java | 8 +++++++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 07cdd73da5a..e7700351e47 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -459,7 +459,7 @@ public void onClick(View view) { if (view.getId() == repeatButton.getId()) { player.onRepeatClicked(); - } else if (view.getId() == backwardButton.getId()) { + } else if (view.getId() == backwardButton.getId()) { player.onPlayPrevious(); } else if (view.getId() == playPauseButton.getId()) { @@ -694,6 +694,12 @@ private void onMaybePlaybackAdapterChanged() { private void onMaybeMuteChanged() { if (menu != null && player != null) { MenuItem item = menu.findItem(R.id.action_mute); + + //Change the mute-button item in ActionBar + //1) Text change: + item.setTitle(player.isMuted() ? R.string.unmute : R.string.mute); + + //2) Icon change accordingly to current App Theme TypedArray a = getTheme().obtainStyledAttributes(R.style.Theme_AppCompat, new int[]{R.attr.volume_off}); int attributeResourceId = a.getResourceId(0, 0); Drawable drawableMuted = getResources().getDrawable(attributeResourceId); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2f0803e1a37..773614263b1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -449,6 +449,7 @@ Name Add To Playlist Mute + Unmute Set as Playlist Thumbnail Bookmark Playlist Remove Bookmark From 2ca580dc1639d9eb7e4c87600dbacc8bce22a16c Mon Sep 17 00:00:00 2001 From: Poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Wed, 4 Mar 2020 20:21:44 -0800 Subject: [PATCH 056/195] minor improvements of sentences Co-Authored-By: Stypox --- .github/ISSUE_TEMPLATE/bug_report.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 19e8a9fbe0a..0137335e4c1 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -14,7 +14,7 @@ Use this template to notify us if you found a bug. To make it easier for us to help you please enter detailed information below. -Please note, we only support the latest version of NewPipe and the master branch. Please make sure to upgrade & recreate the issue on the latest version prior to opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start. Make sure its version is the same as in your app (to check your version, open the left drawer and click on "About"). +Please note, we only support the latest version of NewPipe and the master branch. Make sure to upgrade & reproduce the problem on the latest version before opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start. Make sure its version is the same as in your app (to check your version, open the left drawer and click on "About"). P.S.: Our [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) might be a nice document to read before you fill out the report :) --> @@ -24,7 +24,7 @@ P.S.: Our [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/ ### Steps to reproduce the bug - + Steps to reproduce the behavior: 1. Go to '...' 2. Press on '....' From 4e37a762d2fa4336f804e1f0a57743751dffd0d3 Mon Sep 17 00:00:00 2001 From: poolitzer <25934244+Poolitzer@users.noreply.github.com> Date: Wed, 4 Mar 2020 20:31:36 -0800 Subject: [PATCH 057/195] Further minor improvements --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 0137335e4c1..85a0583445a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -14,7 +14,7 @@ Use this template to notify us if you found a bug. To make it easier for us to help you please enter detailed information below. -Please note, we only support the latest version of NewPipe and the master branch. Make sure to upgrade & reproduce the problem on the latest version before opening an issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is a good start. Make sure its version is the same as in your app (to check your version, open the left drawer and click on "About"). +Please note, we only support the latest version of NewPipe and the master branch. Make sure you have that version installed. If you don't, upgrade & reproduce the problem before opening the issue. The release page (https://github.com/TeamNewPipe/NewPipe/releases/latest) is the go-to place to get this version. In order to check your app version, open the left drawer and click on "About". P.S.: Our [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/HEAD/.github/CONTRIBUTING.md) might be a nice document to read before you fill out the report :) --> From 55d7be0b2fb9e08402e28a560cdc63fe787d3afb Mon Sep 17 00:00:00 2001 From: karol Date: Thu, 5 Mar 2020 19:07:46 +0100 Subject: [PATCH 058/195] null risk issue --- app/src/main/java/org/schabi/newpipe/player/BasePlayer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java index a71671e7b09..08fdb9258ba 100644 --- a/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java +++ b/app/src/main/java/org/schabi/newpipe/player/BasePlayer.java @@ -277,7 +277,7 @@ public void handleIntent(Intent intent) { final float playbackPitch = intent.getFloatExtra(PLAYBACK_PITCH, getPlaybackPitch()); final boolean playbackSkipSilence = intent.getBooleanExtra(PLAYBACK_SKIP_SILENCE, getPlaybackSkipSilence()); - final boolean isMuted = intent.getBooleanExtra(IS_MUTED, isMuted()); + final boolean isMuted = intent.getBooleanExtra(IS_MUTED, simpleExoPlayer == null ? false : isMuted()); // seek to timestamp if stream is already playing if (simpleExoPlayer != null From ecb1b45280951599c636d7600af95f5d89570172 Mon Sep 17 00:00:00 2001 From: Mauricio Colli Date: Sat, 7 Mar 2020 15:55:55 -0300 Subject: [PATCH 059/195] Fix visual glitch when exiting the app --- .../main/res/values-v21/styles_services.xml | 24 +++++++++---------- app/src/main/res/values/styles.xml | 17 ------------- app/src/main/res/values/styles_services.xml | 24 +++++++++---------- 3 files changed, 24 insertions(+), 41 deletions(-) diff --git a/app/src/main/res/values-v21/styles_services.xml b/app/src/main/res/values-v21/styles_services.xml index 176bc1f5183..1c725f88715 100644 --- a/app/src/main/res/values-v21/styles_services.xml +++ b/app/src/main/res/values-v21/styles_services.xml @@ -1,69 +1,69 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values/styles_services.xml b/app/src/main/res/values/styles_services.xml index 28490d7c6aa..013690b44fa 100644 --- a/app/src/main/res/values/styles_services.xml +++ b/app/src/main/res/values/styles_services.xml @@ -1,31 +1,31 @@ - - - - - - - - - - - - @@ -127,15 +165,53 @@ @drawable/ic_pause_white_24dp @drawable/ic_settings_update_white @drawable/ic_done_white_24dp + @drawable/ic_refresh_white_24dp + @drawable/ic_computer_white_24dp + @drawable/ic_videogame_white_24dp + @drawable/ic_music_note_white_24dp + @drawable/ic_stars_white_24dp + @drawable/ic_sports_white_24dp + @drawable/ic_money_white_24dp + @drawable/ic_person_white_24dp + @drawable/ic_people_white_24dp + @drawable/ic_heart_white_24dp + @drawable/ic_kids_white_24dp + @drawable/ic_fastfood_white_24dp + @drawable/ic_car_white_24dp + @drawable/ic_motorcycle_white_24dp + @drawable/ic_trending_up_white_24dp + @drawable/ic_school_white_24dp + @drawable/ic_asterisk_white_24dp + @drawable/ic_emoticon_white_24dp + @drawable/ic_edit_white_24dp + @drawable/ic_explore_white_24dp + @drawable/ic_fitness_white_24dp + @drawable/ic_restaurant_white_24dp + @drawable/ic_mic_white_24dp + @drawable/ic_radio_white_24dp + @drawable/ic_shopping_cart_white_24dp + @drawable/ic_watch_later_white_24dp + @drawable/ic_work_white_24dp + @drawable/ic_movie_white_24dp + @drawable/ic_pets_white_24dp + @drawable/ic_world_white_24dp + @drawable/ic_sunny_white_24dp + @drawable/ic_telescope_white_24dp + @drawable/ic_megaphone_white_24dp @color/dark_separator_color @color/dark_contrast_background_color @drawable/dark_checked_selector + @drawable/dark_focused_selector @color/dark_queue_background_color @drawable/toolbar_shadow_dark @drawable/dark_selector @color/dark_ripple_color @drawable/progress_youtube_horizontal_dark + @color/dark_card_item_background_color + @color/dark_card_item_contrast_color + @color/dark_border_color + @drawable/dashed_border_dark @style/PreferenceThemeOverlay.v14.Material @@ -148,6 +224,11 @@ @color/black_separator_color @color/black_contrast_background_color + + @color/black_card_item_background_color + @color/black_card_item_contrast_color + @color/black_border_color + @drawable/dashed_border_black @@ -167,6 +248,22 @@ @color/dark_dialog_background_color + + + +