diff options
author | Andrew Dolgov <[email protected]> | 2020-04-20 19:32:03 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2020-04-20 19:32:03 +0300 |
commit | fa25f18453c05e1907b425b11edf4802a6448754 (patch) | |
tree | 626c3ff8c2211a8b4ee142d7eb7660de8f42d2b2 |
initial
51 files changed, 1056 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ebdd23d --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..8d84210 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +The Epube
\ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..1903f0a --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,113 @@ +<component name="ProjectCodeStyleConfiguration">
+ <code_scheme name="Project" version="173">
+ <codeStyleSettings language="XML">
+ <arrangement>
+ <rules>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>xmlns:android</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>^$</XML_NAMESPACE>
+ </AND>
+ </match>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>xmlns:.*</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>^$</XML_NAMESPACE>
+ </AND>
+ </match>
+ <order>BY_NAME</order>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>.*:id</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+ </AND>
+ </match>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>.*:name</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+ </AND>
+ </match>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>name</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>^$</XML_NAMESPACE>
+ </AND>
+ </match>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>style</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>^$</XML_NAMESPACE>
+ </AND>
+ </match>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>.*</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>^$</XML_NAMESPACE>
+ </AND>
+ </match>
+ <order>BY_NAME</order>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>.*</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
+ </AND>
+ </match>
+ <order>ANDROID_ATTRIBUTE_ORDER</order>
+ </rule>
+ </section>
+ <section>
+ <rule>
+ <match>
+ <AND>
+ <NAME>.*</NAME>
+ <XML_ATTRIBUTE />
+ <XML_NAMESPACE>.*</XML_NAMESPACE>
+ </AND>
+ </match>
+ <order>BY_NAME</order>
+ </rule>
+ </section>
+ </rules>
+ </arrangement>
+ </codeStyleSettings>
+ </code_scheme>
+</component>
\ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..2a80f60 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="GradleSettings">
+ <option name="linkedExternalProjectsSettings">
+ <GradleProjectSettings>
+ <compositeConfiguration>
+ <compositeBuild compositeDefinitionSource="SCRIPT" />
+ </compositeConfiguration>
+ <option name="distributionType" value="DEFAULT_WRAPPED" />
+ <option name="externalProjectPath" value="$PROJECT_DIR$" />
+ <option name="resolveModulePerSourceSet" value="false" />
+ <option name="testRunner" value="PLATFORM" />
+ </GradleProjectSettings>
+ </option>
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f797995 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/build/classes" />
+ </component>
+ <component name="ProjectType">
+ <option name="id" value="Android" />
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..9b770a6 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="RunConfigurationProducerService">
+ <option name="ignoredProducers">
+ <set>
+ <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
+ <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
+ <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
+ </set>
+ </option>
+ </component>
+</project>
\ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..69cab14 --- /dev/null +++ b/build.gradle @@ -0,0 +1,27 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ google()
+ jcenter()
+
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.5.2'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ jcenter()
+
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..55f37b3 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,20 @@ +# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
+
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 0000000..f6b961f --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..0464269 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Apr 20 17:19:42 MSK 2020
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
@@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..e95643d --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/org.fox.epube/.gitignore b/org.fox.epube/.gitignore new file mode 100644 index 0000000..3543521 --- /dev/null +++ b/org.fox.epube/.gitignore @@ -0,0 +1 @@ +/build
diff --git a/org.fox.epube/build.gradle b/org.fox.epube/build.gradle new file mode 100644 index 0000000..25176bb --- /dev/null +++ b/org.fox.epube/build.gradle @@ -0,0 +1,29 @@ +apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 29
+ buildToolsVersion "29.0.2"
+ defaultConfig {
+ applicationId "org.fox.epube"
+ minSdkVersion 26
+ targetSdkVersion 29
+ versionCode 1
+ versionName "1.0"
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ testImplementation 'junit:junit:4.12'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.1'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+}
diff --git a/org.fox.epube/proguard-rules.pro b/org.fox.epube/proguard-rules.pro new file mode 100644 index 0000000..6e7ffa9 --- /dev/null +++ b/org.fox.epube/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/org.fox.epube/src/androidTest/java/org/fox/epube/ExampleInstrumentedTest.java b/org.fox.epube/src/androidTest/java/org/fox/epube/ExampleInstrumentedTest.java new file mode 100644 index 0000000..170d665 --- /dev/null +++ b/org.fox.epube/src/androidTest/java/org/fox/epube/ExampleInstrumentedTest.java @@ -0,0 +1,27 @@ +package org.fox.epube;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+ assertEquals("org.fox.epube", appContext.getPackageName());
+ }
+}
diff --git a/org.fox.epube/src/main/AndroidManifest.xml b/org.fox.epube/src/main/AndroidManifest.xml new file mode 100644 index 0000000..c2fe4db --- /dev/null +++ b/org.fox.epube/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="org.fox.epube">
+
+ <uses-permission android:name="android.permission.INTERNET"/>
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+
+ <application
+ android:allowBackup="true"
+ android:icon="@mipmap/ic_launcher"
+ android:label="@string/app_name"
+ android:roundIcon="@mipmap/ic_launcher_round"
+ android:supportsRtl="true"
+ android:theme="@style/AppTheme">
+ <activity android:name=".MainActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest>
\ No newline at end of file diff --git a/org.fox.epube/src/main/ic_launcher-web.png b/org.fox.epube/src/main/ic_launcher-web.png Binary files differnew file mode 100644 index 0000000..b1531e0 --- /dev/null +++ b/org.fox.epube/src/main/ic_launcher-web.png diff --git a/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java new file mode 100644 index 0000000..0db9de5 --- /dev/null +++ b/org.fox.epube/src/main/java/org/fox/epube/MainActivity.java @@ -0,0 +1,80 @@ +package org.fox.epube;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.webkit.CookieManager;
+import android.webkit.ServiceWorkerClient;
+import android.webkit.ServiceWorkerController;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.ProgressBar;
+
+public class MainActivity extends AppCompatActivity {
+
+ private final String TAG = this.getClass().getSimpleName();
+ private ProgressBar m_loadingBar;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ getSupportActionBar().hide();
+
+ WebView web = findViewById(R.id.webview_main);
+
+ WebSettings settings = web.getSettings();
+
+ settings.setJavaScriptEnabled(true);
+ settings.setDomStorageEnabled(true);
+ settings.setCacheMode(WebSettings.LOAD_DEFAULT);
+ settings.setDatabaseEnabled(true);
+ settings.setAppCachePath(getCacheDir().getAbsolutePath());
+ settings.setAppCacheEnabled(true);
+
+ m_loadingBar = findViewById(R.id.loading_progress);
+ m_loadingBar.setIndeterminate(true);
+ m_loadingBar.setVisibility(View.VISIBLE);
+
+ web.setWebViewClient(new WebViewClient() {
+
+ @Override
+ public boolean shouldOverrideUrlLoading(WebView view, String url) {
+ view.loadUrl(url);
+ return true;
+ }
+
+ @Override
+ public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ m_loadingBar.setVisibility(View.VISIBLE);
+ }
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ Log.i(TAG, "Finished loading URL: " +url);
+
+ CookieManager.getInstance().setAcceptCookie(true);
+ CookieManager.getInstance().acceptCookie();
+ CookieManager.getInstance().flush();
+
+ m_loadingBar.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
+ Log.e(TAG, "Error: " + description);
+ }
+ });
+
+ web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
+ web.loadUrl("https://fakecake.org/books/index.php?wrapper=1");
+ }
+}
diff --git a/org.fox.epube/src/main/res/layout/activity_main.xml b/org.fox.epube/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4b67b75 --- /dev/null +++ b/org.fox.epube/src/main/res/layout/activity_main.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".MainActivity">
+
+ <WebView
+ android:id="@+id/webview_main"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" >
+ </WebView>
+
+ <ProgressBar
+ android:id="@+id/loading_progress"
+ style="@style/Widget.AppCompat.ProgressBar.Horizontal"
+ android:layout_width="match_parent"
+ android:visibility="gone"
+ android:layout_height="wrap_content" />
+
+</FrameLayout>
\ No newline at end of file diff --git a/org.fox.epube/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/org.fox.epube/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..83b52fc --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@mipmap/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file diff --git a/org.fox.epube/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/org.fox.epube/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..83b52fc --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@mipmap/ic_launcher_background"/>
+ <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file diff --git a/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher.png b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..06c608e --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_background.png b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_background.png Binary files differnew file mode 100644 index 0000000..5d8c59e --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_background.png diff --git a/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 0000000..4d33db4 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_foreground.png diff --git a/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_round.png b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 0000000..ed08f44 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher.png b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..0d3ec11 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_background.png b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_background.png Binary files differnew file mode 100644 index 0000000..e964272 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_background.png diff --git a/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 0000000..05e12d0 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_foreground.png diff --git a/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_round.png b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 0000000..a50cd5e --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher.png b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..a325d02 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_background.png Binary files differnew file mode 100644 index 0000000..c7d1590 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_background.png diff --git a/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 0000000..6ca2bc0 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png diff --git a/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 0000000..baf5f27 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher.png b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..88ce4f7 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_background.png Binary files differnew file mode 100644 index 0000000..ce94cf7 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_background.png diff --git a/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 0000000..7dd2d47 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png diff --git a/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 0000000..815bba8 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher.png Binary files differnew file mode 100644 index 0000000..9a44ca1 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png Binary files differnew file mode 100644 index 0000000..9c2ea57 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png diff --git a/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png Binary files differnew file mode 100644 index 0000000..f5df761 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png diff --git a/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png Binary files differnew file mode 100644 index 0000000..366f8f6 --- /dev/null +++ b/org.fox.epube/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/org.fox.epube/src/main/res/values/colors.xml b/org.fox.epube/src/main/res/values/colors.xml new file mode 100644 index 0000000..6b3f6ab --- /dev/null +++ b/org.fox.epube/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="colorPrimary">#008577</color>
+ <color name="colorPrimaryDark">#00574B</color>
+ <color name="colorAccent">#D81B60</color>
+</resources>
diff --git a/org.fox.epube/src/main/res/values/strings.xml b/org.fox.epube/src/main/res/values/strings.xml new file mode 100644 index 0000000..622a909 --- /dev/null +++ b/org.fox.epube/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources>
+ <string name="app_name">The Epube</string>
+</resources>
diff --git a/org.fox.epube/src/main/res/values/styles.xml b/org.fox.epube/src/main/res/values/styles.xml new file mode 100644 index 0000000..05674a6 --- /dev/null +++ b/org.fox.epube/src/main/res/values/styles.xml @@ -0,0 +1,12 @@ +<resources>
+
+ <!-- Base application theme. -->
+ <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+ <!-- Customize your theme here. -->
+ <item name="colorPrimary">@color/colorPrimary</item>
+ <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
+ <item name="colorAccent">@color/colorAccent</item>
+ <item name="android:navigationBarColor">@android:color/black</item>
+ </style>
+
+</resources>
diff --git a/org.fox.epube/src/test/java/org/fox/epube/ExampleUnitTest.java b/org.fox.epube/src/test/java/org/fox/epube/ExampleUnitTest.java new file mode 100644 index 0000000..afc44bd --- /dev/null +++ b/org.fox.epube/src/test/java/org/fox/epube/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package org.fox.epube;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file diff --git a/org.fox.epube/src_drawable/ic_launcher_bg.png b/org.fox.epube/src_drawable/ic_launcher_bg.png Binary files differnew file mode 100644 index 0000000..20e653c --- /dev/null +++ b/org.fox.epube/src_drawable/ic_launcher_bg.png diff --git a/org.fox.epube/src_drawable/ic_launcher_fg.png b/org.fox.epube/src_drawable/ic_launcher_fg.png Binary files differnew file mode 100644 index 0000000..ae302b4 --- /dev/null +++ b/org.fox.epube/src_drawable/ic_launcher_fg.png diff --git a/org.fox.epube/src_drawable/s_launcher_bg.svg b/org.fox.epube/src_drawable/s_launcher_bg.svg new file mode 100644 index 0000000..9334e59 --- /dev/null +++ b/org.fox.epube/src_drawable/s_launcher_bg.svg @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32px" + height="32px" + viewBox="0 0 32 32" + version="1.1" + id="SVGRoot" + inkscape:export-filename="C:\Users\fox\Projects\the-epube-android\org.fox.epube\src_drawable\ic_launcher_bg.png" + inkscape:export-xdpi="1536" + inkscape:export-ydpi="1536" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="s_launcher_bg.svg"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="11.313708" + inkscape:cx="16" + inkscape:cy="16.236405" + inkscape:document-units="px" + inkscape:current-layer="layer3" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1170" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:grid-bbox="true" + inkscape:snap-others="false" + inkscape:object-nodes="false" + inkscape:snap-nodes="false" + showguides="true" + inkscape:guide-bbox="true"> + <sodipodi:guide + position="25.04067,26.055832" + orientation="0,1" + id="guide2064" + inkscape:locked="false" /> + <sodipodi:guide + position="39.917732,5.937131" + orientation="0,1" + id="guide2068" + inkscape:locked="false" /> + <sodipodi:guide + position="4.5475897,30.759392" + orientation="1,0" + id="guide2070" + inkscape:locked="false" /> + <sodipodi:guide + position="27.41186,13.07432" + orientation="1,0" + id="guide2073" + inkscape:locked="false" /> + </sodipodi:namedview> + <defs + id="defs815"> + <linearGradient + id="linearGradient1579" + osb:paint="solid"> + <stop + style="stop-color:#00e0ca;stop-opacity:1;" + offset="0" + id="stop1577" /> + </linearGradient> + <filter + id="filter4222-2" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood4224-7" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.321569" /> + <feComposite + id="feComposite4226-0" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur4228-9" + result="blur" + stdDeviation="2" + in="composite1" /> + <feOffset + id="feOffset4230-3" + result="offset" + dy="0" + dx="0" /> + <feComposite + id="feComposite4232-6" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2060"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:6.02456713;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.32142861" + id="circle2062" + cx="16" + cy="16" + r="15.25" /> + </clipPath> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2075"> + <circle + r="15.25" + cy="16" + cx="16" + id="circle2077" + style="fill:#2a0a00;fill-opacity:1;stroke:none;stroke-width:6.02456713;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.32142861" /> + </clipPath> + </defs> + <metadata + id="metadata818"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Layer 2"> + <path + style="fill:#006b61;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.23986833px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 22.550481,-3.1332253 10.783511,1.4866724 0.255693,35.5493179 -5.676088,-0.67172 -12.146756,0.101762 z" + id="path4208" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccc" /> + <path + style="fill:#006b61;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.23986833px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 15.47976,33.35615 -0.70953,33.43504 -0.89562,-1.2708945 5.52428,-1.4286499 Z" + id="path4160" + inkscape:connector-curvature="0" /> + <path + style="fill:#009688;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4222-2)" + d="M 120.39815,877.82677 62.238859,1073.6501 3.9936139,894.70784 Z" + id="path4156" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccc" + transform="matrix(0.26051742,0,0,0.22085592,0.31393,-200.16854)" /> + </g> +</svg> diff --git a/org.fox.epube/src_drawable/s_launcher_fg.svg b/org.fox.epube/src_drawable/s_launcher_fg.svg new file mode 100644 index 0000000..b3982f9 --- /dev/null +++ b/org.fox.epube/src_drawable/s_launcher_fg.svg @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="32px" + height="32px" + viewBox="0 0 32 32" + version="1.1" + id="SVGRoot" + inkscape:export-filename="C:\Users\fox\Projects\the-epube-android\org.fox.epube\src_drawable\ic_launcher_fg.png" + inkscape:export-xdpi="1536" + inkscape:export-ydpi="1536" + inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)" + sodipodi:docname="s_launcher_fg.svg"> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="11.313708" + inkscape:cx="16" + inkscape:cy="16.236405" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1170" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="0" + inkscape:grid-bbox="true" + inkscape:snap-others="false" + inkscape:object-nodes="false" + inkscape:snap-nodes="false" + showguides="true" + inkscape:guide-bbox="true"> + <sodipodi:guide + position="25.04067,26.055832" + orientation="0,1" + id="guide2064" + inkscape:locked="false" /> + <sodipodi:guide + position="39.917732,5.937131" + orientation="0,1" + id="guide2068" + inkscape:locked="false" /> + <sodipodi:guide + position="4.5475897,30.759392" + orientation="1,0" + id="guide2070" + inkscape:locked="false" /> + <sodipodi:guide + position="27.41186,13.07432" + orientation="1,0" + id="guide2073" + inkscape:locked="false" /> + </sodipodi:namedview> + <defs + id="defs815"> + <linearGradient + id="linearGradient1579" + osb:paint="solid"> + <stop + style="stop-color:#00e0ca;stop-opacity:1;" + offset="0" + id="stop1577" /> + </linearGradient> + <filter + id="filter4222-2" + inkscape:label="Drop Shadow" + style="color-interpolation-filters:sRGB"> + <feFlood + id="feFlood4224-7" + result="flood" + flood-color="rgb(0,0,0)" + flood-opacity="0.321569" /> + <feComposite + id="feComposite4226-0" + result="composite1" + operator="in" + in2="SourceGraphic" + in="flood" /> + <feGaussianBlur + id="feGaussianBlur4228-9" + result="blur" + stdDeviation="2" + in="composite1" /> + <feOffset + id="feOffset4230-3" + result="offset" + dy="0" + dx="0" /> + <feComposite + id="feComposite4232-6" + result="composite2" + operator="over" + in2="offset" + in="SourceGraphic" /> + </filter> + <clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2060"> + <circle + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:6.02456713;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.32142861" + id="circle2062" + cx="16" + cy="16" + r="15.25" /> + </clipPath> + </defs> + <metadata + id="metadata818"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + <path + style="fill:#000000;fill-opacity:0.25098039;stroke:none;stroke-width:0.91927344px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 6.0606899,23.391297 18.421162,44.798954 37.782177,41.560914 36.269257,22.988422 26.108345,9.4767025 24.526345,9.0705233 22.431251,5.339972 18.006282,12.816697 15.996337,9.4767025 8.7278277,17.263513 Z" + id="path3112" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccc" + clip-path="none" /> + <path + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.7091837" + d="M 22.429688,5.3398438 17.833984,9.4765625 V 19.589844 l 4.595704,-4.136719 z M 10.939453,8.0976562 c -1.7925831,0 -3.723694,0.3677055 -5.0566405,1.3789063 V 22.953125 c 0,0.229818 0.2311192,0.460937 0.4609375,0.460937 0.091927,0 0.1365882,-0.06445 0.2285156,-0.06445 1.2410192,-0.597528 3.034241,-1.001954 4.3671874,-1.001953 1.792583,0 3.723695,0.367706 5.056641,1.378906 1.241019,-0.781383 3.491922,-1.378906 5.054687,-1.378906 1.516801,0 3.080205,0.285155 4.367188,0.97461 0.09193,0.04596 0.138541,0.02734 0.230469,0.02734 0.229818,0 0.458984,-0.231119 0.458984,-0.460937 V 9.4765625 C 25.555858,9.0628895 24.958986,8.788412 24.269531,8.5585938 v 1.8378902 5.056641 5.515625 c -1.011201,-0.321745 -2.115622,-0.460938 -3.21875,-0.460938 -1.562765,0 -3.813668,0.597524 -5.054687,1.378907 V 15.453125 11.316406 9.4765625 C 14.663148,8.4653617 12.732036,8.0976563 10.939453,8.0976562 Z" + id="path1403" + inkscape:connector-curvature="0" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none" + x="6.717515" + y="19.625631" + id="text972"><tspan + sodipodi:role="line" + id="tspan970" + x="6.717515" + y="19.625631" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;font-family:'Noto Serif';-inkscape-font-specification:'Noto Serif';fill:#000000;fill-opacity:1">ε</tspan></text> + </g> +</svg> diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..9d93383 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,2 @@ +include ':org.fox.epube'
+rootProject.name='The Epube'
|