diff --git a/app/src/main/java/org/schabi/newpipe/streams/io/SharpInputStream.java b/app/src/main/java/org/schabi/newpipe/streams/io/SharpInputStream.java index 4b871d1dc..956e9865c 100644 --- a/app/src/main/java/org/schabi/newpipe/streams/io/SharpInputStream.java +++ b/app/src/main/java/org/schabi/newpipe/streams/io/SharpInputStream.java @@ -5,6 +5,10 @@ import androidx.annotation.NonNull; import java.io.IOException; import java.io.InputStream; +/** + * Simply wraps a readable {@link SharpStream} allowing it to be used with built-in Java stuff that + * supports {@link InputStream}. + */ public class SharpInputStream extends InputStream { private final SharpStream stream; diff --git a/app/src/main/java/org/schabi/newpipe/streams/io/SharpOutputStream.java b/app/src/main/java/org/schabi/newpipe/streams/io/SharpOutputStream.java index 23a2393a8..76e394312 100644 --- a/app/src/main/java/org/schabi/newpipe/streams/io/SharpOutputStream.java +++ b/app/src/main/java/org/schabi/newpipe/streams/io/SharpOutputStream.java @@ -5,6 +5,10 @@ import androidx.annotation.NonNull; import java.io.IOException; import java.io.OutputStream; +/** + * Simply wraps a writable {@link SharpStream} allowing it to be used with built-in Java stuff that + * supports {@link OutputStream}. + */ public class SharpOutputStream extends OutputStream { private final SharpStream stream; diff --git a/app/src/main/java/org/schabi/newpipe/streams/io/SharpStream.java b/app/src/main/java/org/schabi/newpipe/streams/io/SharpStream.java index 9b4f79047..849c7c051 100644 --- a/app/src/main/java/org/schabi/newpipe/streams/io/SharpStream.java +++ b/app/src/main/java/org/schabi/newpipe/streams/io/SharpStream.java @@ -5,7 +5,14 @@ import java.io.Flushable; import java.io.IOException; /** - * Based on C#'s Stream class. + * Based on C#'s Stream class. SharpStream is a wrapper around the 2 different APIs for SAF + * ({@link us.shandian.giga.io.FileStreamSAF}) and non-SAF ({@link us.shandian.giga.io.FileStream}). + * It has both input and output like in C#, while in Java those are usually different classes. + * {@link SharpInputStream} and {@link SharpOutputStream} are simple classes that wrap + * {@link SharpStream} and extend respectively {@link java.io.InputStream} and + * {@link java.io.OutputStream}, since unfortunately a class can only extend one class, so that a + * sharp stream can be used with built-in Java stuff that supports {@link java.io.InputStream} + * or {@link java.io.OutputStream}. */ public abstract class SharpStream implements Closeable, Flushable { public abstract int read() throws IOException;