Skip to content

Commit

Permalink
Merge pull request #166 from TomTasche/development
Browse files Browse the repository at this point in the history
3.2.5
  • Loading branch information
TomTasche authored Mar 21, 2020
2 parents 7bfb1b1 + cbc0c24 commit 0d03db4
Show file tree
Hide file tree
Showing 58 changed files with 321 additions and 305 deletions.
6 changes: 3 additions & 3 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 1 addition & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,5 @@ add_library(odr-core SHARED ${SRC})
option (ODR_TEST "" OFF)
set(ODR_TEST OFF)

# cryptopp: do not build cryptopp-object (causes error in Android build)
option(USE_INTERMEDIATE_OBJECTS_TARGET "" OFF)
set(USE_INTERMEDIATE_OBJECTS_TARGET OFF)

add_subdirectory(OpenDocument.core)
target_link_libraries(odr-core odrlib)
target_link_libraries(odr-core odr)
2 changes: 1 addition & 1 deletion OpenDocument.core
13 changes: 10 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ android {
multiDexEnabled true

vectorDrawables.useSupportLibrary = true

externalNativeBuild {
cmake {
targets "odr-core"
}
}

}

dexOptions {
Expand Down Expand Up @@ -74,10 +81,10 @@ dependencies {
})

implementation 'com.google.firebase:firebase-storage:19.1.1'
implementation 'com.google.firebase:firebase-auth:19.2.0'
implementation 'com.google.firebase:firebase-ads:18.3.0'
implementation 'com.google.firebase:firebase-auth:19.3.0'
implementation 'com.google.firebase:firebase-ads:19.0.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.google.firebase:firebase-core:17.2.2'
implementation 'com.google.firebase:firebase-core:17.2.3'
implementation 'com.google.firebase:firebase-perf:19.0.5'

implementation 'androidx.multidex:multidex:2.0.1'
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="at.tomtasche.reader"
android:installLocation="auto"
android:versionCode="122"
android:versionName="3.2.4"
android:versionCode="123"
android:versionName="3.2.5"
tools:ignore="GoogleAppIndexingWarning">

<!-- added by HelpCrunch SDK otherwise -->
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/cpp/CoreWrapper.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "CoreWrapper.h"

#include <odr/OpenDocumentReader.h>
#include <odr/TranslationConfig.h>
#include <odr/FileMeta.h>
#include <odr/Config.h>
#include <odr/Meta.h>

JNIEXPORT jobject JNICALL
Java_at_tomtasche_reader_background_CoreWrapper_parseNative(JNIEnv *env, jobject instance, jobject options)
Expand Down Expand Up @@ -66,7 +66,7 @@ Java_at_tomtasche_reader_background_CoreWrapper_parseNative(JNIEnv *env, jobject
jfieldID editableField = env->GetFieldID(optionsClass, "editable", "Z");
jboolean editable = env->GetBooleanField(options, editableField);

odr::TranslationConfig config = {};
odr::Config config = {};
config.editable = editable;
config.entryCount = 1;
config.tableLimitRows = 10000;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ public void loadSync(Options options) {

callOnSuccess(result);
} catch (Throwable e) {
e.printStackTrace();

if (e instanceof wvWare.PasswordRequiredException || e instanceof wvWare.WrongPasswordException) {
e = new EncryptedDocumentException();
}
Expand Down
92 changes: 90 additions & 2 deletions app/src/main/java/at/tomtasche/reader/background/FileLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
import android.content.Context;
import android.net.Uri;
import android.os.Handler;
import android.os.Parcel;
import android.os.Parcelable;

import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.perf.metrics.Trace;

import java.io.File;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

Expand Down Expand Up @@ -103,6 +106,9 @@ public void run() {
}

void callOnError(Result result, Throwable t) {
crashManager.log(result.loaderType.name() + " failed");
crashManager.log(t);

mainHandler.post(new Runnable() {
@Override
public void run() {
Expand All @@ -127,7 +133,19 @@ public void run() {
});
}

public static class Options {
public static class Options implements Parcelable {

public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {

public Options createFromParcel(Parcel in) {
return new Options(in);
}

public Options[] newArray(int size) {
return new Options[size];
}
};

public Uri originalUri;
public Uri cacheUri;
public boolean persistentUri;
Expand All @@ -141,14 +159,84 @@ public static class Options {

public boolean limit;
public boolean translatable;

public Options() {
}

public Options(Parcel parcel) {
originalUri = parcel.readParcelable(null);
cacheUri = parcel.readParcelable(null);
persistentUri = ParcelUtil.readBoolean(parcel);
fileExists = ParcelUtil.readBoolean(parcel);
filename = parcel.readString();
fileType = parcel.readString();
fileExtension = parcel.readString();
password = parcel.readString();
limit = ParcelUtil.readBoolean(parcel);
translatable = ParcelUtil.readBoolean(parcel);
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeParcelable(originalUri, 0);
parcel.writeParcelable(cacheUri, 0);
ParcelUtil.writeBoolean(parcel, persistentUri);
ParcelUtil.writeBoolean(parcel, fileExists);
parcel.writeString(filename);
parcel.writeString(fileType);
parcel.writeString(fileExtension);
parcel.writeString(password);
ParcelUtil.writeBoolean(parcel, limit);
ParcelUtil.writeBoolean(parcel, translatable);
}
}

public class Result {
public static class Result implements Parcelable {

public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {

public Result createFromParcel(Parcel in) {
return new Result(in);
}

public Result[] newArray(int size) {
return new Result[size];
}
};

public LoaderType loaderType;
public Options options;

public List<String> partTitles = new LinkedList<>();
public List<Uri> partUris = new LinkedList<>();

public Result() {
}

public Result(Parcel parcel) {
loaderType = LoaderType.valueOf(parcel.readString());
options = parcel.readParcelable(getClass().getClassLoader());
parcel.readList(partTitles, null);
parcel.readList(partUris, null);
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(loaderType.name());
parcel.writeParcelable(options, 0);
parcel.writeList(partTitles);
parcel.writeList(partUris);
}
}

public interface FileLoaderListener {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ private boolean initMagicFromAssets() {
return MagicApi.loadFromBytes(buffer, MagicApi.MAGIC_MIME_TYPE | MagicApi.MAGIC_COMPRESS_TRANSP) == 0;
}
} catch (Throwable e) {
e.printStackTrace();
crashManager.log(e);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
crashManager.log(e);
}
}
}
Expand Down Expand Up @@ -101,10 +101,10 @@ public void loadSync(Options options) {
fileCursor.close();
}
} catch (Exception e) {
e.printStackTrace();

// "URI does not contain a valid access token." or
// "Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it."

crashManager.log(e);
}

if (filename == null) {
Expand All @@ -126,7 +126,7 @@ public void loadSync(Options options) {
type = MagicApi.magicFile(cachedFile.getAbsolutePath());
}
} catch (Throwable e) {
e.printStackTrace();
crashManager.log(e);
}

if (type == null) {
Expand All @@ -138,7 +138,7 @@ public void loadSync(Options options) {
type = URLConnection.guessContentTypeFromName(filename);
} catch (Exception e) {
// Samsung S7 Edge crashes with java.lang.StringIndexOutOfBoundsException
e.printStackTrace();
crashManager.log(e);
}
}

Expand All @@ -151,7 +151,7 @@ public void loadSync(Options options) {
tempStream.close();
}
} catch (Exception e) {
e.printStackTrace();
crashManager.log(e);
}
}

Expand All @@ -177,14 +177,12 @@ public void loadSync(Options options) {
try {
RecentDocumentsUtil.addRecentDocument(context, filename, uri);
} catch (IOException e) {
e.printStackTrace();
crashManager.log(e);
}
}

callOnSuccess(result);
} catch (Throwable e) {
e.printStackTrace();

options.fileType = "N/A";

callOnError(result, e);
Expand All @@ -201,7 +199,7 @@ public void run() {
try {
MagicApi.close();
} catch (Throwable e) {
e.printStackTrace();
crashManager.log(e);
}
}
});
Expand Down
14 changes: 0 additions & 14 deletions app/src/main/java/at/tomtasche/reader/background/OdfLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,9 @@

import android.content.Context;
import android.net.Uri;
import android.os.Environment;
import android.os.Handler;
import android.webkit.MimeTypeMap;

import java.io.File;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeoutException;

import at.tomtasche.reader.nonfree.AnalyticsManager;
import at.tomtasche.reader.nonfree.CrashManager;

public class OdfLoader extends FileLoader {

Expand All @@ -26,7 +15,6 @@ public OdfLoader(Context context) {
super(context, LoaderType.ODF);
}


@Override
public boolean isSupported(Options options) {
return options.fileType.startsWith("application/vnd.oasis.opendocument") || options.fileType.startsWith("application/x-vnd.oasis.opendocument");
Expand Down Expand Up @@ -87,8 +75,6 @@ public void loadSync(Options options) {
}
}
} catch (Throwable e) {
e.printStackTrace();

callOnError(result, e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public void initialize(FileLoaderListener listener, Handler mainHandler, Handler
storage = FirebaseStorage.getInstance().getReference();
auth = FirebaseAuth.getInstance();
} catch (Throwable e) {
e.printStackTrace();
crashManager.log(e);
}

}
Expand Down Expand Up @@ -148,8 +148,6 @@ public void loadSync(Options options) {
throw new RuntimeException("server couldn't handle request");
}
} catch (Throwable e) {
e.printStackTrace();

callOnError(result, e);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,6 @@ public void loadSync(Options options) {
}
}
} catch (Throwable e) {
e.printStackTrace();

callOnError(result, e);
}
}
Expand Down
14 changes: 14 additions & 0 deletions app/src/main/java/at/tomtasche/reader/background/ParcelUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package at.tomtasche.reader.background;

import android.os.Parcel;

public class ParcelUtil {

public static void writeBoolean(Parcel parcel, boolean value) {
parcel.writeInt(value ? 1 : 0);
}

public static boolean readBoolean(Parcel parcel) {
return parcel.readInt() != 0;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@ public void loadSync(Options options) {

callOnSuccess(result);
} catch (Throwable e) {
e.printStackTrace();

if (e instanceof pdf2htmlEX.PasswordRequiredException || e instanceof pdf2htmlEX.WrongPasswordException) {
e = new EncryptedDocumentException();
}
Expand Down
Loading

0 comments on commit 0d03db4

Please sign in to comment.