mirror of https://codeberg.org/gitnex/GitNex.git
Support pdf files in file viewer (#259)
auto convert EOL this fix it for me fix layout implement support for pdf files in file viewer Co-authored-by: 6543 <6543@obermui.de> Reviewed-on: https://gitea.com/gitnex/GitNex/pulls/259 Reviewed-by: 6543 <6543@noreply.gitea.io>
This commit is contained in:
parent
ec62e3cebf
commit
1293e8be27
|
@ -0,0 +1 @@
|
||||||
|
* text=auto eol=lf
|
|
@ -89,5 +89,6 @@ Open source libraries
|
||||||
- Apache/commons-io
|
- Apache/commons-io
|
||||||
- Caverock/androidsvg
|
- Caverock/androidsvg
|
||||||
- Droidsonroids.gif/android-gif-drawable
|
- Droidsonroids.gif/android-gif-drawable
|
||||||
|
- Barteksc/AndroidPdfViewer
|
||||||
|
|
||||||
[Follow me on Fediverse - mastodon.social/@mmarif](https://mastodon.social/@mmarif)
|
[Follow me on Fediverse - mastodon.social/@mmarif](https://mastodon.social/@mmarif)
|
||||||
|
|
|
@ -23,12 +23,12 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
def lifecycle_version = "2.2.0-rc03"
|
def lifecycle_version = "2.2.0"
|
||||||
final def markwon_version = "4.1.1"
|
final def markwon_version = "4.1.1"
|
||||||
|
|
||||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
implementation "androidx.appcompat:appcompat:1.1.0"
|
implementation "androidx.appcompat:appcompat:1.1.0"
|
||||||
implementation "com.google.android.material:material:1.2.0-alpha03"
|
implementation "com.google.android.material:material:1.2.0-alpha04"
|
||||||
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
|
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
|
||||||
implementation "androidx.legacy:legacy-support-v4:1.0.0"
|
implementation "androidx.legacy:legacy-support-v4:1.0.0"
|
||||||
testImplementation "junit:junit:4.12"
|
testImplementation "junit:junit:4.12"
|
||||||
|
@ -69,4 +69,5 @@ dependencies {
|
||||||
implementation "commons-io:commons-io:2.6"
|
implementation "commons-io:commons-io:2.6"
|
||||||
implementation "com.github.chrisbanes:PhotoView:2.3.0"
|
implementation "com.github.chrisbanes:PhotoView:2.3.0"
|
||||||
implementation "com.pddstudio:highlightjs-android:1.5.0"
|
implementation "com.pddstudio:highlightjs-android:1.5.0"
|
||||||
|
implementation "com.github.barteksc:android-pdf-viewer:3.2.0-beta.1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,8 @@ import android.widget.TextView;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
|
import com.github.barteksc.pdfviewer.PDFView;
|
||||||
|
import com.github.barteksc.pdfviewer.util.FitPolicy;
|
||||||
import com.github.chrisbanes.photoview.PhotoView;
|
import com.github.chrisbanes.photoview.PhotoView;
|
||||||
import com.pddstudio.highlightjs.HighlightJsView;
|
import com.pddstudio.highlightjs.HighlightJsView;
|
||||||
import com.pddstudio.highlightjs.models.Theme;
|
import com.pddstudio.highlightjs.models.Theme;
|
||||||
|
@ -44,6 +46,8 @@ public class FileViewActivity extends AppCompatActivity {
|
||||||
final Context ctx = this;
|
final Context ctx = this;
|
||||||
private ProgressBar mProgressBar;
|
private ProgressBar mProgressBar;
|
||||||
private byte[] imageData;
|
private byte[] imageData;
|
||||||
|
private PDFView pdfView;
|
||||||
|
private byte[] decodedPdf;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -68,6 +72,7 @@ public class FileViewActivity extends AppCompatActivity {
|
||||||
imageView = findViewById(R.id.imageView);
|
imageView = findViewById(R.id.imageView);
|
||||||
singleFileContents.setVisibility(View.GONE);
|
singleFileContents.setVisibility(View.GONE);
|
||||||
mProgressBar = findViewById(R.id.progress_bar);
|
mProgressBar = findViewById(R.id.progress_bar);
|
||||||
|
pdfView = findViewById(R.id.pdfView);
|
||||||
|
|
||||||
String singleFileName = getIntent().getStringExtra("singleFileName");
|
String singleFileName = getIntent().getStringExtra("singleFileName");
|
||||||
|
|
||||||
|
@ -140,6 +145,33 @@ public class FileViewActivity extends AppCompatActivity {
|
||||||
singleCodeContents.setShowLineNumbers(true);
|
singleCodeContents.setShowLineNumbers(true);
|
||||||
singleCodeContents.setSource(appUtil.decodeBase64(response.body().getContent()));
|
singleCodeContents.setSource(appUtil.decodeBase64(response.body().getContent()));
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (appUtil.pdfExtension(fileExtension)) { // file is pdf
|
||||||
|
|
||||||
|
imageView.setVisibility(View.GONE);
|
||||||
|
singleFileContents.setVisibility(View.GONE);
|
||||||
|
singleCodeContents.setVisibility(View.GONE);
|
||||||
|
pdfView.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
decodedPdf = Base64.decode(response.body().getContent(), Base64.DEFAULT);
|
||||||
|
pdfView.fromBytes(decodedPdf)
|
||||||
|
.enableSwipe(true)
|
||||||
|
.swipeHorizontal(false)
|
||||||
|
.enableDoubletap(true)
|
||||||
|
.defaultPage(0)
|
||||||
|
.enableAnnotationRendering(false)
|
||||||
|
.password(null)
|
||||||
|
.scrollHandle(null)
|
||||||
|
.enableAntialiasing(true)
|
||||||
|
.spacing(0)
|
||||||
|
.autoSpacing(true)
|
||||||
|
.pageFitPolicy(FitPolicy.WIDTH)
|
||||||
|
.fitEachPage(true)
|
||||||
|
.pageSnap(false)
|
||||||
|
.pageFling(true)
|
||||||
|
.nightMode(true)
|
||||||
|
.load();
|
||||||
|
|
||||||
}
|
}
|
||||||
else { // file type not known - plain text view
|
else { // file type not known - plain text view
|
||||||
|
|
||||||
|
|
|
@ -224,6 +224,14 @@ public class AppUtil {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean pdfExtension(String ext) {
|
||||||
|
|
||||||
|
String[] extValues = new String[] {"pdf"};
|
||||||
|
|
||||||
|
return Arrays.asList(extValues).contains(ext);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public Boolean imageExtension(String ext) {
|
public Boolean imageExtension(String ext) {
|
||||||
|
|
||||||
String[] extValues = new String[] {"jpg", "jpeg", "gif", "png", "ico"};
|
String[] extValues = new String[] {"jpg", "jpeg", "gif", "png", "ico"};
|
||||||
|
|
|
@ -71,6 +71,22 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_marginTop="55dp"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/colorPrimary"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.github.barteksc.pdfviewer.PDFView
|
||||||
|
android:id="@+id/pdfView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/black"
|
||||||
|
android:visibility="visible" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<com.pddstudio.highlightjs.HighlightJsView
|
<com.pddstudio.highlightjs.HighlightJsView
|
||||||
android:id="@+id/singleCodeContents"
|
android:id="@+id/singleCodeContents"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
Loading…
Reference in New Issue