diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 425bd77a..00000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xmlns:android
-
- ^$
-
-
-
-
-
-
-
-
- xmlns:.*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*:id
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:name
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- name
-
- ^$
-
-
-
-
-
-
-
-
- style
-
- ^$
-
-
-
-
-
-
-
-
- .*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*
-
- http://schemas.android.com/apk/res/android
-
-
- ANDROID_ATTRIBUTE_ORDER
-
-
-
-
-
-
- .*
-
- .*
-
-
- BY_NAME
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123c..00000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copyright/GPL.xml b/.idea/copyright/GPL.xml
deleted file mode 100644
index aff4b88e..00000000
--- a/.idea/copyright/GPL.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index c4a8f7c8..00000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/dictionaries/tom50.xml b/.idea/dictionaries/tom50.xml
deleted file mode 100644
index 06b3df9f..00000000
--- a/.idea/dictionaries/tom50.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- hitomi
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index 15a15b21..00000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index d606a954..00000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 94fb0d01..f530d59b 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -12,89 +12,29 @@
-
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/.idea/kotlinCodeInsightSettings.xml b/.idea/kotlinCodeInsightSettings.xml
deleted file mode 100644
index 71e404da..00000000
--- a/.idea/kotlinCodeInsightSettings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
deleted file mode 100644
index 0dd4b354..00000000
--- a/.idea/kotlinc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
index e497da99..797acea5 100644
--- a/.idea/runConfigurations.xml
+++ b/.idea/runConfigurations.xml
@@ -4,9 +4,6 @@
diff --git a/.idea/scopes/Pupil.xml b/.idea/scopes/Pupil.xml
deleted file mode 100644
index f607cbcf..00000000
--- a/.idea/scopes/Pupil.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
deleted file mode 100644
index e3839680..00000000
--- a/app/build.gradle
+++ /dev/null
@@ -1,130 +0,0 @@
-apply plugin: "com.android.application"
-apply plugin: "kotlin-android"
-apply plugin: "kotlin-kapt"
-apply plugin: "kotlin-parcelize"
-apply plugin: "kotlinx-serialization"
-apply plugin: "com.google.android.gms.oss-licenses-plugin"
-
-if (file("google-services.json").exists()) {
- logger.lifecycle("Firebase Enabled")
- apply plugin: "com.google.gms.google-services"
- apply plugin: "com.google.firebase.crashlytics"
- apply plugin: "com.google.firebase.firebase-perf"
-} else {
- logger.lifecycle("Firebase Disabled")
-}
-
-android {
- compileSdkVersion 30
- defaultConfig {
- applicationId "xyz.quaver.pupil"
- minSdkVersion 21
- targetSdkVersion 30
- versionCode 65
- versionName "6.0.0-alpha2"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- debug {
- minifyEnabled false
- shrinkResources false
-
- debuggable true
- applicationIdSuffix ".debug"
- versionNameSuffix "-DEBUG"
-
- proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
-
- ext.enableCrashlytics = false
- ext.alwaysUpdateBuildId = false
- }
- release {
- minifyEnabled true
- shrinkResources true
-
- proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
- }
- }
- buildFeatures {
- viewBinding true
- dataBinding true
- }
- kotlinOptions {
- jvmTarget = JavaVersion.VERSION_1_8.toString()
- freeCompilerArgs += "-Xuse-experimental=kotlin.Experimental"
- }
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- lintOptions {
- abortOnError false
- }
-}
-
-dependencies {
- implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.20"
- implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0-RC"
- implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1"
-
- implementation "io.ktor:ktor-client-core:1.6.1"
- implementation "io.ktor:ktor-client-okhttp:1.6.1"
- implementation "io.ktor:ktor-client-serialization:1.6.1"
-
- implementation "androidx.appcompat:appcompat:1.3.0"
- implementation "androidx.activity:activity-ktx:1.3.0-rc02"
- implementation "androidx.fragment:fragment-ktx:1.3.6"
- implementation "androidx.preference:preference-ktx:1.1.1"
- implementation "androidx.recyclerview:recyclerview:1.2.1"
- implementation "androidx.constraintlayout:constraintlayout:2.0.4"
- implementation "androidx.gridlayout:gridlayout:1.0.0"
- implementation "androidx.biometric:biometric:1.1.0"
- implementation "androidx.work:work-runtime-ktx:2.6.0-beta02"
-
- implementation 'org.kodein.di:kodein-di-framework-android-x:7.6.0'
-
- implementation "com.daimajia.swipelayout:library:1.2.0@aar"
-
- implementation "com.google.android.material:material:1.4.0"
-
- implementation platform("com.google.firebase:firebase-bom:28.0.0")
- implementation "com.google.firebase:firebase-analytics-ktx"
- implementation "com.google.firebase:firebase-crashlytics"
- implementation "com.google.firebase:firebase-perf"
-
- implementation "com.google.android.gms:play-services-oss-licenses:17.0.0"
-
- implementation "com.github.clans:fab:1.6.4"
-
- //implementation "com.quiph.ui:recyclerviewfastscroller:0.2.1"
-
- implementation 'com.github.piasy:BigImageViewer:1.8.0'
- implementation 'com.github.piasy:FrescoImageLoader:1.8.0'
- implementation 'com.github.piasy:FrescoImageViewFactory:1.8.0'
-
- implementation "org.jsoup:jsoup:1.14.1"
-
- implementation "com.tbuonomo:dotsindicator:4.2"
-
- //implementation "com.andrognito.patternlockview:patternlockview:1.0.0"
- //implementation "com.andrognito.pinlockview:pinlockview:2.1.0"
-
- implementation "ru.noties.markwon:core:3.1.0"
-
- implementation "xyz.quaver:libpupil:2.1.3"
- implementation "xyz.quaver:documentfilex:0.6.1"
- implementation "xyz.quaver:floatingsearchview:1.1.7"
-
- debugImplementation "com.orhanobut:logger:2.2.0"
- debugImplementation "com.squareup.leakcanary:leakcanary-android:2.6"
-
- testImplementation "junit:junit:4.13.2"
- testImplementation "org.mockito:mockito-inline:3.11.2"
-
- androidTestImplementation "androidx.test.ext:junit:1.1.3"
- androidTestImplementation "androidx.test:rules:1.4.0"
- androidTestImplementation "androidx.test:runner:1.4.0"
- androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
-}
\ No newline at end of file
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
new file mode 100644
index 00000000..b7db6974
--- /dev/null
+++ b/app/build.gradle.kts
@@ -0,0 +1,125 @@
+plugins {
+ id("com.android.application")
+ kotlin("android")
+ kotlin("kapt")
+ id("kotlin-parcelize")
+ id("kotlinx-serialization")
+ id("com.google.android.gms.oss-licenses-plugin")
+
+ if (File("google-services.json").exists()) {
+ println("Firebase Enabled")
+ id("com.google.gms.google-services")
+ id("com.google.firebase.crashlytics")
+ id("com.google.firebase.firebase-perf")
+ } else {
+ println("Firebase Disabled")
+ }
+}
+
+android {
+ compileSdkVersion(30)
+ defaultConfig {
+ applicationId = "xyz.quaver.pupil"
+ minSdkVersion(21)
+ targetSdkVersion(30)
+ versionCode = 600
+ versionName = "6.0.0-alpha2"
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+ buildTypes {
+ getByName("debug") {
+ isDebuggable = true
+ applicationIdSuffix = ".debug"
+ versionNameSuffix = "-DEBUG"
+
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
+
+ extra.set("enableCrashlytics", false)
+ extra.set("alwaysUpdateBuildId", false)
+ }
+ getByName("release") {
+ isMinifyEnabled = true
+ isShrinkResources = true
+
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
+ }
+ }
+ buildFeatures {
+ viewBinding = true
+ dataBinding = true
+ }
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_1_8.toString()
+ freeCompilerArgs += "-Xuse-experimental=kotlin.Experimental"
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+ implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.aar"))))
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.21")
+ implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0")
+ implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1")
+
+ implementation("io.ktor:ktor-client-core:1.6.1")
+ implementation("io.ktor:ktor-client-okhttp:1.6.1")
+ implementation("io.ktor:ktor-client-serialization:1.6.1")
+
+ implementation("androidx.appcompat:appcompat:1.3.0")
+ implementation("androidx.activity:activity-ktx:1.3.0-rc02")
+ implementation("androidx.fragment:fragment-ktx:1.3.6")
+ implementation("androidx.preference:preference-ktx:1.1.1")
+ implementation("androidx.recyclerview:recyclerview:1.2.1")
+ implementation("androidx.constraintlayout:constraintlayout:2.0.4")
+ implementation("androidx.gridlayout:gridlayout:1.0.0")
+ implementation("androidx.biometric:biometric:1.1.0")
+ implementation("androidx.work:work-runtime-ktx:2.6.0-beta02")
+
+ implementation("org.kodein.di:kodein-di-framework-android-x:7.6.0")
+
+ implementation("com.daimajia.swipelayout:library:1.2.0@aar")
+
+ implementation("com.google.android.material:material:1.4.0")
+
+ implementation(platform("com.google.firebase:firebase-bom:28.3.0"))
+ implementation("com.google.firebase:firebase-analytics-ktx")
+ implementation("com.google.firebase:firebase-crashlytics")
+ implementation("com.google.firebase:firebase-perf")
+
+ implementation("com.google.android.gms:play-services-oss-licenses:17.0.0")
+
+ implementation("com.github.clans:fab:1.6.4")
+
+ //implementation("com.quiph.ui:recyclerviewfastscroller:0.2.1")
+
+ implementation("com.github.piasy:BigImageViewer:1.8.0")
+ implementation("com.github.piasy:FrescoImageLoader:1.8.0")
+ implementation("com.github.piasy:FrescoImageViewFactory:1.8.0")
+
+ implementation("org.jsoup:jsoup:1.14.1")
+
+ implementation("com.tbuonomo:dotsindicator:4.2")
+
+ //implementation("com.andrognito.patternlockview:patternlockview:1.0.0")
+ //implementation("com.andrognito.pinlockview:pinlockview:2.1.0")
+
+ implementation("ru.noties.markwon:core:3.1.0")
+
+ implementation("xyz.quaver:libpupil:2.1.3")
+ implementation("xyz.quaver:documentfilex:0.6.1")
+ implementation("xyz.quaver:floatingsearchview:1.1.7")
+
+ debugImplementation("com.orhanobut:logger:2.2.0")
+ debugImplementation("com.squareup.leakcanary:leakcanary-android:2.6")
+
+ testImplementation("junit:junit:4.13.2")
+ testImplementation("org.mockito:mockito-inline:3.11.2")
+
+ androidTestImplementation("androidx.test.ext:junit:1.1.3")
+ androidTestImplementation("androidx.test:rules:1.4.0")
+ androidTestImplementation("androidx.test:runner:1.4.0")
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
+}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 63a3a4b6..0b092737 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
+# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
diff --git a/build.gradle b/build.gradle
deleted file mode 100644
index ee5cb5f0..00000000
--- a/build.gradle
+++ /dev/null
@@ -1,34 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-
-buildscript {
- repositories {
- google()
- mavenCentral()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:4.2.2'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
- classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
- classpath "com.google.gms:google-services:4.3.8"
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- classpath "com.google.firebase:firebase-crashlytics-gradle:2.7.1"
- classpath "com.google.firebase:perf-plugin:1.4.0"
- classpath "com.google.android.gms:oss-licenses-plugin:0.10.4"
- }
-}
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- mavenLocal()
- maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
- maven { url "https://jitpack.io" }
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 00000000..eb9ec26d
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,34 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath("com.android.tools.build:gradle:4.2.2")
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21")
+ classpath("org.jetbrains.kotlin:kotlin-android-extensions:1.5.21")
+ classpath("org.jetbrains.kotlin:kotlin-serialization:1.5.21")
+ classpath("com.google.gms:google-services:4.3.8")
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ classpath("com.google.firebase:firebase-crashlytics-gradle:2.7.1")
+ classpath("com.google.firebase:perf-plugin:1.4.0")
+ classpath("com.google.android.gms:oss-licenses-plugin:0.10.4")
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ mavenLocal()
+ maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots") }
+ maven { url = uri("https://jitpack.io") }
+ }
+}
+
+tasks.register("clean", Delete::class) {
+ delete(rootProject.buildDir)
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 7d0a7085..729ae99c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -19,6 +19,4 @@ org.gradle.caching=true
kotlin.code.style=official
android.enableJetifier=true
android.useAndroidX=true
-android.enableBuildCache=true
-
-kotlin_version=1.5.20
\ No newline at end of file
+android.enableBuildCache=true
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index f3d88b1c..7454180f 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 906f70c5..05679dc3 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Oct 13 22:37:11 KST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
diff --git a/gradlew b/gradlew
index 2fe81a7d..744e882e 100644
--- a/gradlew
+++ b/gradlew
@@ -72,7 +72,7 @@ case "`uname`" in
Darwin* )
darwin=true
;;
- MINGW* )
+ MSYS* | MINGW* )
msys=true
;;
NONSTOP* )
@@ -82,6 +82,7 @@ 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
@@ -129,6 +130,7 @@ fi
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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
diff --git a/gradlew.bat b/gradlew.bat
index 9618d8d9..107acd32 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
@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="-Xmx64m" "-Xms64m"
@@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
+if "%ERRORLEVEL%" == "0" goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -51,7 +54,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto init
+if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -61,28 +64,14 @@ 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%
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell