diff --git a/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java b/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java index 866b0b66..2e793c37 100644 --- a/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java +++ b/app/src/main/java/com/yausername/youtubedl_android_example/CommandExampleActivity.java @@ -41,14 +41,14 @@ public class CommandExampleActivity extends AppCompatActivity implements View.On private ProgressBar pbLoading; private boolean running = false; - private CompositeDisposable compositeDisposable = new CompositeDisposable(); + private final CompositeDisposable compositeDisposable = new CompositeDisposable(); - private DownloadProgressCallback callback = new DownloadProgressCallback() { + private final DownloadProgressCallback callback = new DownloadProgressCallback() { @Override - public void onProgressUpdate(float progress, long etaInSeconds) { + public void onProgressUpdate(float progress, long etaInSeconds, String line) { runOnUiThread(() -> { progressBar.setProgress((int) progress); - tvCommandStatus.setText(String.valueOf(progress) + "% (ETA " + String.valueOf(etaInSeconds) + " seconds)"); + tvCommandStatus.setText(line); } ); } diff --git a/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java b/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java index 2dc6c1db..8c87a7fe 100644 --- a/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java +++ b/app/src/main/java/com/yausername/youtubedl_android_example/DownloadingExampleActivity.java @@ -47,10 +47,10 @@ public class DownloadingExampleActivity extends AppCompatActivity implements Vie private final DownloadProgressCallback callback = new DownloadProgressCallback() { @Override - public void onProgressUpdate(float progress, long etaInSeconds) { + public void onProgressUpdate(float progress, long etaInSeconds, String line) { runOnUiThread(() -> { progressBar.setProgress((int) progress); - tvDownloadStatus.setText(String.valueOf(progress) + "% (ETA " + String.valueOf(etaInSeconds) + " seconds)"); + tvDownloadStatus.setText(line); } ); } diff --git a/app/src/main/res/layout/activity_downloading_example.xml b/app/src/main/res/layout/activity_downloading_example.xml index df52c02e..754f3a6c 100644 --- a/app/src/main/res/layout/activity_downloading_example.xml +++ b/app/src/main/res/layout/activity_downloading_example.xml @@ -63,7 +63,7 @@ android:layout_height="wrap_content" android:layout_marginTop="30dp" android:text="@string/start" - android:textSize="20sp" + android:textSize="16sp" app:layout_constraintTop_toBottomOf="@+id/tv_command_scroller" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java b/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java index 52ead183..15b253c8 100644 --- a/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java +++ b/library/src/main/java/com/yausername/youtubedl_android/DownloadProgressCallback.java @@ -1,5 +1,5 @@ package com.yausername.youtubedl_android; public interface DownloadProgressCallback { - void onProgressUpdate(float progress, long etaInSeconds); + void onProgressUpdate(float progress, long etaInSeconds, String line); } diff --git a/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java b/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java index 1407b6f4..9ca2fb6e 100644 --- a/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java +++ b/library/src/main/java/com/yausername/youtubedl_android/StreamGobbler.java @@ -6,11 +6,12 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.nio.charset.StandardCharsets; class StreamGobbler extends Thread { - private InputStream stream; - private StringBuffer buffer; + private final InputStream stream; + private final StringBuffer buffer; private static final String TAG = "StreamGobbler"; @@ -22,7 +23,7 @@ public StreamGobbler(StringBuffer buffer, InputStream stream) { public void run() { try { - Reader in = new InputStreamReader(stream, "UTF-8"); + Reader in = new InputStreamReader(stream, StandardCharsets.UTF_8); int nextChar; while ((nextChar = in.read()) != -1) { this.buffer.append((char) nextChar); diff --git a/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java b/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java index 95c60e3c..9c93f9c5 100644 --- a/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java +++ b/library/src/main/java/com/yausername/youtubedl_android/StreamProcessExtractor.java @@ -6,6 +6,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; +import java.nio.charset.StandardCharsets; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -13,11 +14,11 @@ class StreamProcessExtractor extends Thread { private static final int GROUP_PERCENT = 1; private static final int GROUP_MINUTES = 2; private static final int GROUP_SECONDS = 3; - private InputStream stream; - private StringBuffer buffer; + private final InputStream stream; + private final StringBuffer buffer; private final DownloadProgressCallback callback; - private Pattern p = Pattern.compile("\\[download\\]\\s+(\\d+\\.\\d)% .* ETA (\\d+):(\\d+)"); + private final Pattern p = Pattern.compile("\\[download\\]\\s+(\\d+\\.\\d)% .* ETA (\\d+):(\\d+)"); private static final String TAG = "StreamProcessExtractor"; @@ -30,7 +31,7 @@ public StreamProcessExtractor(StringBuffer buffer, InputStream stream, DownloadP public void run() { try { - Reader in = new InputStreamReader(stream, "UTF-8"); + Reader in = new InputStreamReader(stream, StandardCharsets.UTF_8); StringBuilder currentLine = new StringBuilder(); int nextChar; while ((nextChar = in.read()) != -1) { @@ -53,7 +54,7 @@ private void processOutputLine(String line) { if (m.matches()) { float progress = Float.parseFloat(m.group(GROUP_PERCENT)); long eta = convertToSeconds(m.group(GROUP_MINUTES), m.group(GROUP_SECONDS)); - callback.onProgressUpdate(progress, eta); + callback.onProgressUpdate(progress, eta, line); } } diff --git a/library/src/main/res/raw/yt_dlp.zip b/library/src/main/res/raw/yt_dlp.zip index 6d699cea..ec789d2f 100644 Binary files a/library/src/main/res/raw/yt_dlp.zip and b/library/src/main/res/raw/yt_dlp.zip differ