diff --git a/android/build.gradle b/android/build.gradle
index 9e91b2a..e6c1af4 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,6 +1,6 @@
// The Android Gradle Plugin builds the native code with the Android NDK.
-group = "com.example.readability"
+group = "bio.kat.readability"
version = "1.0"
buildscript {
@@ -26,31 +26,16 @@ apply plugin: "com.android.library"
android {
if (project.android.hasProperty("namespace")) {
- namespace = "com.example.readability"
+ namespace = "bio.kat.readability"
}
// Bumping the plugin compileSdk version requires all clients of this plugin
// to bump the version in their app.
compileSdk = 34
- // Use the NDK version
- // declared in /android/app/build.gradle file of the Flutter project.
- // Replace it with a version number if this plugin requires a specific NDK version.
- // (e.g. ndkVersion "23.1.7779620")
- ndkVersion = android.ndkVersion
-
- // Invoke the shared CMake build with the Android Gradle Plugin.
- externalNativeBuild {
- cmake {
- path = "../src/CMakeLists.txt"
-
- // The default CMake version for the Android Gradle Plugin is 3.10.2.
- // https://developer.android.com/studio/projects/install-ndk#vanilla_cmake
- //
- // The Flutter tooling requires that developers have CMake 3.10 or later
- // installed. You should not increase this version, as doing so will cause
- // the plugin to fail to compile for some customers of the plugin.
- // version "3.10.2"
+ sourceSets {
+ main {
+ jniLibs.srcDirs = ["src/main/jniLibs"]
}
}
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index af739f9..11aa24f 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1,3 +1,3 @@
+ package="bio.kat.readability">
diff --git a/android/src/main/jniLibs/arm64-v8a/libreadability.h b/android/src/main/jniLibs/arm64-v8a/libreadability.h
new file mode 100644
index 0000000..59a13eb
--- /dev/null
+++ b/android/src/main/jniLibs/arm64-v8a/libreadability.h
@@ -0,0 +1,103 @@
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package command-line-arguments */
+
+
+#line 1 "cgo-builtin-export-prolog"
+
+#include
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+#endif
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+#line 3 "main.go"
+
+#include
+
+typedef struct {
+ char* title;
+ char* author;
+ int length;
+ char* excerpt;
+ char* site_name;
+ char* image_url;
+ char* favicon_url;
+ char* content; // HTML content
+ char* text_content; // text content
+ char* language;
+ char* published_time;
+ char* err;
+ int success;
+} CArticle;
+
+#line 1 "cgo-generated-wrapper"
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt64 GoInt;
+typedef GoUint64 GoUint;
+typedef size_t GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+#ifdef _MSC_VER
+#include
+typedef _Fcomplex GoComplex64;
+typedef _Dcomplex GoComplex128;
+#else
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+#endif
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef _GoString_ GoString;
+#endif
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern CArticle Parse(char* url);
+extern void FreeArticle(CArticle article);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/android/src/main/jniLibs/arm64-v8a/libreadability.so b/android/src/main/jniLibs/arm64-v8a/libreadability.so
new file mode 100644
index 0000000..ca6e4a5
Binary files /dev/null and b/android/src/main/jniLibs/arm64-v8a/libreadability.so differ
diff --git a/android/src/main/jniLibs/armeabi-v7a/libreadability.h b/android/src/main/jniLibs/armeabi-v7a/libreadability.h
new file mode 100644
index 0000000..4db8aba
--- /dev/null
+++ b/android/src/main/jniLibs/armeabi-v7a/libreadability.h
@@ -0,0 +1,103 @@
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package command-line-arguments */
+
+
+#line 1 "cgo-builtin-export-prolog"
+
+#include
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+#endif
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+#line 3 "main.go"
+
+#include
+
+typedef struct {
+ char* title;
+ char* author;
+ int length;
+ char* excerpt;
+ char* site_name;
+ char* image_url;
+ char* favicon_url;
+ char* content; // HTML content
+ char* text_content; // text content
+ char* language;
+ char* published_time;
+ char* err;
+ int success;
+} CArticle;
+
+#line 1 "cgo-generated-wrapper"
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt32 GoInt;
+typedef GoUint32 GoUint;
+typedef size_t GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+#ifdef _MSC_VER
+#include
+typedef _Fcomplex GoComplex64;
+typedef _Dcomplex GoComplex128;
+#else
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+#endif
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_32_bit_pointer_matching_GoInt[sizeof(void*)==32/8 ? 1:-1];
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef _GoString_ GoString;
+#endif
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern CArticle Parse(char* url);
+extern void FreeArticle(CArticle article);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/android/src/main/jniLibs/armeabi-v7a/libreadability.so b/android/src/main/jniLibs/armeabi-v7a/libreadability.so
new file mode 100644
index 0000000..068ea1c
Binary files /dev/null and b/android/src/main/jniLibs/armeabi-v7a/libreadability.so differ
diff --git a/android/src/main/jniLibs/x86/libreadability.h b/android/src/main/jniLibs/x86/libreadability.h
new file mode 100644
index 0000000..4db8aba
--- /dev/null
+++ b/android/src/main/jniLibs/x86/libreadability.h
@@ -0,0 +1,103 @@
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package command-line-arguments */
+
+
+#line 1 "cgo-builtin-export-prolog"
+
+#include
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+#endif
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+#line 3 "main.go"
+
+#include
+
+typedef struct {
+ char* title;
+ char* author;
+ int length;
+ char* excerpt;
+ char* site_name;
+ char* image_url;
+ char* favicon_url;
+ char* content; // HTML content
+ char* text_content; // text content
+ char* language;
+ char* published_time;
+ char* err;
+ int success;
+} CArticle;
+
+#line 1 "cgo-generated-wrapper"
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt32 GoInt;
+typedef GoUint32 GoUint;
+typedef size_t GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+#ifdef _MSC_VER
+#include
+typedef _Fcomplex GoComplex64;
+typedef _Dcomplex GoComplex128;
+#else
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+#endif
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_32_bit_pointer_matching_GoInt[sizeof(void*)==32/8 ? 1:-1];
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef _GoString_ GoString;
+#endif
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern CArticle Parse(char* url);
+extern void FreeArticle(CArticle article);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/android/src/main/jniLibs/x86/libreadability.so b/android/src/main/jniLibs/x86/libreadability.so
new file mode 100644
index 0000000..6510990
Binary files /dev/null and b/android/src/main/jniLibs/x86/libreadability.so differ
diff --git a/android/src/main/jniLibs/x86_64/libreadability.h b/android/src/main/jniLibs/x86_64/libreadability.h
new file mode 100644
index 0000000..59a13eb
--- /dev/null
+++ b/android/src/main/jniLibs/x86_64/libreadability.h
@@ -0,0 +1,103 @@
+/* Code generated by cmd/cgo; DO NOT EDIT. */
+
+/* package command-line-arguments */
+
+
+#line 1 "cgo-builtin-export-prolog"
+
+#include
+
+#ifndef GO_CGO_EXPORT_PROLOGUE_H
+#define GO_CGO_EXPORT_PROLOGUE_H
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef struct { const char *p; ptrdiff_t n; } _GoString_;
+#endif
+
+#endif
+
+/* Start of preamble from import "C" comments. */
+
+
+#line 3 "main.go"
+
+#include
+
+typedef struct {
+ char* title;
+ char* author;
+ int length;
+ char* excerpt;
+ char* site_name;
+ char* image_url;
+ char* favicon_url;
+ char* content; // HTML content
+ char* text_content; // text content
+ char* language;
+ char* published_time;
+ char* err;
+ int success;
+} CArticle;
+
+#line 1 "cgo-generated-wrapper"
+
+
+/* End of preamble from import "C" comments. */
+
+
+/* Start of boilerplate cgo prologue. */
+#line 1 "cgo-gcc-export-header-prolog"
+
+#ifndef GO_CGO_PROLOGUE_H
+#define GO_CGO_PROLOGUE_H
+
+typedef signed char GoInt8;
+typedef unsigned char GoUint8;
+typedef short GoInt16;
+typedef unsigned short GoUint16;
+typedef int GoInt32;
+typedef unsigned int GoUint32;
+typedef long long GoInt64;
+typedef unsigned long long GoUint64;
+typedef GoInt64 GoInt;
+typedef GoUint64 GoUint;
+typedef size_t GoUintptr;
+typedef float GoFloat32;
+typedef double GoFloat64;
+#ifdef _MSC_VER
+#include
+typedef _Fcomplex GoComplex64;
+typedef _Dcomplex GoComplex128;
+#else
+typedef float _Complex GoComplex64;
+typedef double _Complex GoComplex128;
+#endif
+
+/*
+ static assertion to make sure the file is being used on architecture
+ at least with matching size of GoInt.
+*/
+typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1];
+
+#ifndef GO_CGO_GOSTRING_TYPEDEF
+typedef _GoString_ GoString;
+#endif
+typedef void *GoMap;
+typedef void *GoChan;
+typedef struct { void *t; void *v; } GoInterface;
+typedef struct { void *data; GoInt len; GoInt cap; } GoSlice;
+
+#endif
+
+/* End of boilerplate cgo prologue. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern CArticle Parse(char* url);
+extern void FreeArticle(CArticle article);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/android/src/main/jniLibs/x86_64/libreadability.so b/android/src/main/jniLibs/x86_64/libreadability.so
new file mode 100644
index 0000000..77ea750
Binary files /dev/null and b/android/src/main/jniLibs/x86_64/libreadability.so differ