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 852c29835..c2d3a9b9e 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 @@ public class MissionAdapter extends Adapter implements Handler.Callb 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 @@ public class MissionAdapter extends Adapter implements Handler.Callb 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 1a70d9eaa..2329f1a77 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 000000000..32fa3e03e --- /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 000000000..a0bde3dc0 --- /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 8073503ad..000000000 --- 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 d0e58680a..ea06e601a 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 c2bceab9e..36a712cc3 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 a16d6796a..000000000 --- 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 148a339a9..bcbfcd6d0 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 36a712cc3..2329a7a0e 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 8e11b99f3..10fda556a 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 46ca3921d..79496388c 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 abstract class BasePlayer implements 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 3340f1107..18412b6cd 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.annotation.Nullable; 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 @@ public final class MainVideoPlayer extends AppCompatActivity private ImageButton toggleOrientationButton; private ImageButton switchPopupButton; private ImageButton switchBackgroundButton; + private ImageButton muteButton; private RelativeLayout windowRootLayout; private View secondaryControls; @@ -482,6 +484,7 @@ public final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity } 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 79496388c..2fe04c9d1 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 abstract class BasePlayer implements 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 7aa2be05d..034746a2b 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 6468c6784..0277c28b5 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 9e23d9145..25a9f3be3 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 final class BackgroundPlayer extends Service { 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 fc14e8d51..88d227936 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 final class PopupVideoPlayer extends Service { 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 034746a2b..a3d8dde8d 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.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; @@ -22,6 +23,7 @@ import android.widget.PopupMenu; 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 abstract class ServicePlayerActivity extends AppCompatActivity onPlayModeChanged(repeatMode, shuffled); onPlaybackParameterChanged(parameters); onMaybePlaybackAdapterChanged(); + onMaybeMuteChanged(); } @Override @@ -667,7 +670,7 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 32fa3e03e..d4e0ea9b7 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 a0bde3dc0..e39fc5f07 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 ea06e601a..570d07778 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 d4e0ea9b7..8b5f10f08 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 e39fc5f07..8453f99ba 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 570d07778..43a6c0c4d 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 43a6c0c4d..978adc100 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 25a9f3be3..b020f234b 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.content.res.Resources; 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 final class BackgroundPlayer extends Service { @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 final class BackgroundPlayer extends Service { @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 2fe04c9d1..ce2f94e0d 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 abstract class BasePlayer implements 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 abstract class BasePlayer implements && 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 abstract class BasePlayer implements 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 abstract class BasePlayer implements } // 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 @@ public abstract class BasePlayer implements 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 @@ public abstract class BasePlayer implements if (playQueueAdapter != null) playQueueAdapter.dispose(); playQueueAdapter = new PlayQueueAdapter(context, playQueue); + + if (isMuted) simpleExoPlayer.setVolume(0); } public void destroyPlayer() { @@ -536,12 +542,12 @@ public abstract class BasePlayer implements // 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 18412b6cd..0f7a7dcf9 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 @@ public final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity this.getPlaybackSkipSilence(), this.getPlaybackQuality(), false, - !isPlaying() + !isPlaying(), + isMuted() ); context.startService(intent); @@ -666,7 +667,8 @@ public final class MainVideoPlayer extends AppCompatActivity 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 88d227936..ff35aecb9 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 final class PopupVideoPlayer extends Service { 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 a3d8dde8d..bb5593f09 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 a19aa92ae..98264e1bf 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 class NavigationHelper { 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 0f7a7dcf9..d7b518771 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.Bundle; 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.appcompat.content.res.AppCompatResources; 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 @@ public final class MainVideoPlayer extends AppCompatActivity 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 @@ public final class MainVideoPlayer extends AppCompatActivity if (playerImpl == null) return; playerImpl.setRecovery(); - if(!playerImpl.gotDestroyed()) { + if (!playerImpl.gotDestroyed()) { playerState = createPlayerState(); } StateSaver.tryToSave(isChangingConfigurations(), null, outState, this); @@ -395,6 +400,16 @@ public final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity 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 final class MainVideoPlayer extends AppCompatActivity onPlaybackShutdown(); return; } else if (v.getId() == kodiButton.getId()) { - onKodiShare(); + onKodiShare(); } if (getCurrentState() != STATE_COMPLETED) { @@ -785,7 +791,7 @@ public final class MainVideoPlayer extends AppCompatActivity // 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 @@ public final class MainVideoPlayer extends AppCompatActivity setRepeatModeButton(repeatButton, getRepeatMode()); setShuffleButton(shuffleButton, playQueue.isShuffled()); + setMuteButton(muteButton, playerImpl.isMuted()); } private void buildQueue() { @@ -1018,7 +1025,7 @@ public final class MainVideoPlayer extends AppCompatActivity @Override public void onSwiped(int index) { - if(index != -1) playQueue.remove(index); + if (index != -1) playQueue.remove(index); } }; } @@ -1097,7 +1104,8 @@ public final class MainVideoPlayer extends AppCompatActivity @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 final class MainVideoPlayer extends AppCompatActivity 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 @@ public final class MainVideoPlayer extends AppCompatActivity @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 d4e0ea9b7..ad436f64f 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 d7b518771..cad165ab6 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 final class MainVideoPlayer extends AppCompatActivity @Override public void onMuteUnmuteButtonClicled() { super.onMuteUnmuteButtonClicled(); - updatePlaybackButtons(); + setMuteButton(muteButton, playerImpl.isMuted()); } @@ -785,6 +785,7 @@ public final class MainVideoPlayer extends AppCompatActivity animateView(secondaryControls, SLIDE_AND_ALPHA, !isMoreControlsVisible, DEFAULT_CONTROLS_DURATION); showControls(DEFAULT_CONTROLS_DURATION); + setMuteButton(muteButton, playerImpl.isMuted()); } private void onShareClicked() { @@ -984,7 +985,6 @@ public final class MainVideoPlayer extends AppCompatActivity setRepeatModeButton(repeatButton, getRepeatMode()); setShuffleButton(shuffleButton, playQueue.isShuffled()); - setMuteButton(muteButton, playerImpl.isMuted()); } private void buildQueue() { @@ -1090,6 +1090,10 @@ public final class MainVideoPlayer extends AppCompatActivity 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 b020f234b..dbf27ea7c 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 final class BackgroundPlayer extends Service { } @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 ce2f94e0d..adffefa6e 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 abstract class BasePlayer implements // 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 cad165ab6..63d95e74f 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 final class MainVideoPlayer extends AppCompatActivity } @Override - public void onMuteUnmuteButtonClicled() { - super.onMuteUnmuteButtonClicled(); + public void onMuteUnmuteButtonClicked() { + super.onMuteUnmuteButtonClicked(); setMuteButton(muteButton, playerImpl.isMuted()); } @@ -736,7 +736,7 @@ public final class MainVideoPlayer extends AppCompatActivity 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 ff35aecb9..b7638eda7 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 final class PopupVideoPlayer extends Service { } @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 bb5593f09..c0a8d2bfd 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.PopupMenu; 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 abstract class ServicePlayerActivity extends AppCompatActivity 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 4a6fcdfab..6f7779a81 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 7c7965f80..1a94ebb1f 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 e004a8ea1..fccfbc387 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 7ca04eed0..d0e204137 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 40a4e65a9..450076b35 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 450076b35..4712a91d1 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 2329a7a0e..61929173e 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 dbf27ea7c..4eaa2a73b 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 final class BackgroundPlayer extends Service { @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 adffefa6e..a71671e7b 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 @@ public abstract class BasePlayer implements 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 63d95e74f..d74a739cf 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 @@ public final class MainVideoPlayer extends AppCompatActivity } 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 c0a8d2bfd..10b202e4c 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity } 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 2a7e039b3..4bc36a4c7 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 7ca04eed0..bd3724770 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 bd3724770..8dfeb03cc 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 10b202e4c..9099c9927 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 abstract class ServicePlayerActivity extends AppCompatActivity 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 be6cea46c..fc3fd07a8 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 9099c9927..75107a7e4 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 @@ package org.schabi.newpipe.player; 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity @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 abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity } private void unbind() { - if(serviceBound) { + if (serviceBound) { unbindService(serviceConnection); serviceBound = false; stopPlayerListener(); @@ -689,7 +697,16 @@ public abstract class ServicePlayerActivity extends AppCompatActivity } } - 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 000000000..156ee53bb --- /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 188dd8b42..1b28d3d79 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 8453f99ba..a6262ad7b 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 1b28d3d79..19e8a9fbe 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 a6262ad7b..b461675bd 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 978adc100..40dd5d616 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 b461675bd..946bfb4c6 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 40dd5d616..9a1193767 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 d5f46fb22..5476158c4 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 androidx.preference.ListPreference; 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 class VideoAudioSettingsFragment extends BasePreferenceFragment { 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 class VideoAudioSettingsFragment extends BasePreferenceFragment { }; } - @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 5476158c4..20e68078a 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 class VideoAudioSettingsFragment extends BasePreferenceFragment { .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 42b4b77c5..f7fe9c2b2 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 20e68078a..05c9ca9fc 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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { 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 05c9ca9fc..134285a41 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.Build; 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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { .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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { 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 134285a41..f68fc5e23 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.os.Bundle; 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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { 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 f7fe9c2b2..6152221c0 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 f68fc5e23..27ae4d3aa 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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { //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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { 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 6152221c0..e46bef4e8 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 27ae4d3aa..d4897ecaa 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 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment { 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 e46bef4e8..2e5b1d75c 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 4712a91d1..2efe3e012 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 2efe3e012..050134c6a 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 adaaa3828..f49c5b604 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 2607ab210..d36d03a61 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 469c13177..0407e1836 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 050134c6a..557451220 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 68aeca87c..5290517ab 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 b5f222130..31be267af 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 8fe8a66af..fd87de9ef 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 75107a7e4..07cdd73da 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity } 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 156ee53bb..ade6bfec2 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 0277c28b5..6468c6784 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 07cdd73da..e7700351e 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 abstract class ServicePlayerActivity extends AppCompatActivity 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 @@ public abstract class ServicePlayerActivity extends AppCompatActivity 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 2f0803e1a..773614263 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 19e8a9fbe..0137335e4 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 0137335e4..85a058344 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 a71671e7b..08fdb9258 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 abstract class BasePlayer implements 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 176bc1f51..1c725f887 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 28490d7c6..013690b44 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 + + + +