Skip to content

Commit 9057c52

Browse files
Merge pull request #6721 from bithyve/staging
Additional Border Wallet functionality
2 parents be7dd15 + 48b9a69 commit 9057c52

File tree

67 files changed

+3845
-747
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+3845
-747
lines changed

android/app/build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ android {
5959
applicationId "io.hexawallet.hexa"
6060
minSdkVersion rootProject.ext.minSdkVersion
6161
targetSdkVersion rootProject.ext.targetSdkVersion
62-
versionCode 584
63-
versionName "2.2.1"
62+
versionCode 595
63+
versionName "2.2.2"
6464
missingDimensionStrategy 'react-native-camera', 'general'
6565
multiDexEnabled true
6666
resValue "string", "build_config_package", "io.hexawallet.hexa"
@@ -161,7 +161,6 @@ dependencies {
161161

162162

163163
implementation project(':react-native-linear-gradient')
164-
implementation project(':react-native-fs')
165164
implementation project(':react-native-check-app-install')
166165
implementation project(':react-native-localize')
167166
implementation project(':react-native-config')
@@ -211,6 +210,7 @@ dependencies {
211210
implementation('com.google.apis:google-api-services-drive:v3-rev136-1.25.0') {
212211
exclude group: 'org.apache.httpcomponents'
213212
}
213+
implementation("com.github.librepdf:openpdf:1.3.30")
214214

215215
}
216216

android/app/src/main/AndroidManifest.xml

+7-1
Original file line numberDiff line numberDiff line change
@@ -168,5 +168,11 @@
168168
</intent-filter>
169169
</service>
170170
</application>
171-
171+
<queries>
172+
<intent>
173+
<action android:name="android.intent.action.VIEW" />
174+
<!-- If you don't know the MIME type in advance, set "mimeType" to "*/*". -->
175+
<data android:mimeType="application/pdf" />
176+
</intent>
177+
</queries>
172178
</manifest>

android/app/src/main/java/io/hexawallet/hexa/MainApplication.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.facebook.react.ReactApplication;
66
import com.th3rdwave.safeareacontext.SafeAreaContextPackage;
77
import com.BV.LinearGradient.LinearGradientPackage;
8-
import com.rnfs.RNFSPackage;
98
import com.rpt.reactnativecheckpackageinstallation.CheckPackageInstallationPackage;
109
import com.reactcommunity.rnlocalize.RNLocalizePackage;
1110
import com.lugg.ReactNativeConfig.ReactNativeConfigPackage;
@@ -89,6 +88,7 @@ protected List<ReactPackage> getPackages() {
8988

9089
packages.add(new PdfPasswordPackage());
9190
packages.add(new GoogleDrivePackage());
91+
packages.add(new PDFPackage());
9292
// Add unimodules
9393
List<ReactPackage> unimodules = Arrays.<ReactPackage>asList(
9494
new ModuleRegistryAdapter(mModuleRegistryProvider)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package io.hexawallet.hexa;
2+
import android.content.ContentResolver;
3+
import android.database.Cursor;
4+
import android.net.Uri;
5+
import android.os.Build;
6+
import android.provider.DocumentsContract;
7+
import android.provider.MediaStore;
8+
import android.util.Log;
9+
import android.view.WindowManager;
10+
11+
import androidx.annotation.NonNull;
12+
13+
import com.facebook.react.bridge.Promise;
14+
import com.facebook.react.bridge.ReactApplicationContext;
15+
import com.facebook.react.bridge.ReactContextBaseJavaModule;
16+
import com.facebook.react.bridge.ReactMethod;
17+
import com.facebook.react.bridge.WritableArray;
18+
import com.facebook.react.bridge.WritableNativeArray;
19+
import com.lowagie.text.pdf.PdfReader;
20+
import com.lowagie.text.pdf.RandomAccessFileOrArray;
21+
import com.lowagie.text.pdf.parser.PdfTextExtractor;
22+
23+
import java.io.BufferedInputStream;
24+
import java.io.FileInputStream;
25+
26+
import java.io.File;
27+
import java.io.FileInputStream;
28+
import java.io.IOException;
29+
import java.io.InputStream;
30+
import java.util.ArrayList;
31+
32+
public class PDFModule extends ReactContextBaseJavaModule {
33+
34+
public static ReactApplicationContext context;
35+
public PDFModule(ReactApplicationContext reactContext) {
36+
super(reactContext);
37+
context=reactContext;
38+
39+
}
40+
41+
@NonNull
42+
@Override
43+
public String getName() {
44+
return "PDFModule";
45+
}
46+
47+
public static InputStream fileToInputStream(File file) throws IOException {
48+
FileInputStream fileInputStream = new FileInputStream(file);
49+
return fileInputStream;
50+
}
51+
52+
public static String getAbsolutePathFromContentUri(Uri contentUri) {
53+
String absolutePath = null;
54+
55+
String[] projection = {MediaStore.Images.Media.DATA};
56+
ContentResolver contentResolver = context.getContentResolver();
57+
58+
Cursor cursor = contentResolver.query(contentUri, projection, null, null, null);
59+
if (cursor != null) {
60+
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
61+
cursor.moveToFirst();
62+
absolutePath = cursor.getString(columnIndex);
63+
cursor.close();
64+
}
65+
66+
return absolutePath;
67+
}
68+
69+
public static String getPath(final Uri uri) {
70+
if ("file".equalsIgnoreCase(uri.getScheme())) {
71+
return uri.getPath();
72+
}
73+
return null;
74+
}
75+
76+
@ReactMethod
77+
public void pdfToText(String path, Promise resolve) {
78+
try{
79+
PdfReader pdfReader = new PdfReader(path);
80+
StringBuilder extractedText = new StringBuilder();
81+
PdfTextExtractor textExtractor = new PdfTextExtractor(pdfReader);
82+
WritableArray pages = new WritableNativeArray();
83+
for (int pageIndex = 1; pageIndex <= pdfReader.getNumberOfPages(); pageIndex++) {
84+
pages.pushString(textExtractor.getTextFromPage(pageIndex));
85+
}
86+
pdfReader.close();
87+
resolve.resolve(pages);
88+
}catch (Exception e) {
89+
Log.d("ExtractedText error", e.toString());
90+
resolve.resolve(e.toString());
91+
}
92+
}
93+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.hexawallet.hexa;
2+
3+
import androidx.annotation.NonNull;
4+
5+
import com.facebook.react.ReactPackage;
6+
import com.facebook.react.bridge.NativeModule;
7+
import com.facebook.react.bridge.ReactApplicationContext;
8+
import com.facebook.react.uimanager.ViewManager;
9+
10+
import java.util.ArrayList;
11+
import java.util.Collections;
12+
import java.util.List;
13+
14+
public class PDFPackage implements ReactPackage {
15+
@NonNull
16+
@Override
17+
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactApplicationContext) {
18+
List<NativeModule> modules = new ArrayList<>();
19+
modules.add(new PDFModule(reactApplicationContext));
20+
21+
return modules;
22+
}
23+
24+
@NonNull
25+
@Override
26+
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactApplicationContext) {
27+
return Collections.emptyList();
28+
}
29+
}

android/settings.gradle

-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ project(':react-native-safe-area-context').projectDir = new File(rootProject.pro
44
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
55
include ':react-native-linear-gradient'
66
project(':react-native-linear-gradient').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linear-gradient/android')
7-
include ':react-native-fs'
8-
project(':react-native-fs').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fs/android')
97
include ':react-native-check-app-install'
108
project(':react-native-check-app-install').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-check-app-install/android')
119
include ':react-native-localize'

0 commit comments

Comments
 (0)