migrate to kts

This commit is contained in:
tom5079
2025-02-23 18:16:20 -08:00
parent 0f2336eccf
commit f888535389
6 changed files with 181 additions and 170 deletions

View File

@@ -1,120 +0,0 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlinx.serialization)
alias(libs.plugins.gms.oss.licenses)
alias(libs.plugins.gms.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(libs.plugins.firebase.perf)
id 'kotlin-parcelize'
}
android {
defaultConfig {
applicationId "xyz.quaver.pupil"
minSdkVersion 16
compileSdk 35
targetSdkVersion 35
versionCode 69
versionName "5.3.15"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildFeatures {
buildConfig true
}
buildTypes {
debug {
defaultConfig.minSdkVersion 21
minifyEnabled false
shrinkResources false
debuggable true
applicationIdSuffix ".debug"
versionNameSuffix "-DEBUG"
ext.enableCrashlytics = false
ext.alwaysUpdateBuildId = false
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
}
}
buildFeatures {
viewBinding true
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
namespace 'xyz.quaver.pupil'
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
implementation libs.kotlin.stdlib.jdk8
implementation libs.kotlinx.coroutines.android
implementation libs.kotlinx.serialization.json
implementation libs.kotlinx.datetime
implementation libs.core.ktx
implementation libs.appcompat
implementation libs.activity.ktx
implementation libs.fragment.ktx
implementation libs.preference.ktx
implementation libs.recyclerview
implementation libs.constraintlayout
implementation libs.gridlayout
implementation libs.biometric
implementation libs.work.runtime.ktx
implementation libs.library
implementation libs.material
implementation platform(libs.firebase.bom)
implementation libs.firebase.analytics.ktx
implementation libs.firebase.crashlytics.ktx
implementation libs.firebase.perf.ktx
implementation libs.play.services.oss.licenses
implementation libs.play.services.mlkit.face.detection
implementation libs.fab
implementation libs.bigimageviewer
implementation libs.frescoimageloader
implementation libs.frescoimageviewfactory
implementation libs.imagepipeline.okhttp3
//noinspection GradleDependency
implementation libs.okhttp
implementation libs.ktor.network
implementation libs.viewpagerdotsindicator
implementation libs.patternlockview
implementation libs.core
implementation libs.ripplebackground.library
implementation libs.jsoup
implementation libs.documentfilex
implementation libs.floatingsearchview
testImplementation libs.junit
testImplementation libs.kotlinx.coroutines.test
androidTestImplementation libs.ext.junit
androidTestImplementation libs.rules
androidTestImplementation libs.runner
androidTestImplementation libs.espresso.core
}

131
app/build.gradle.kts Normal file
View File

@@ -0,0 +1,131 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlinx.serialization)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.gms.oss.licenses)
alias(libs.plugins.gms.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(libs.plugins.firebase.perf)
id("kotlin-parcelize")
}
android {
namespace = "xyz.quaver.pupil"
compileSdk = 35
defaultConfig {
applicationId = "xyz.quaver.pupil"
minSdk = 16
targetSdk = 35
versionCode = 69
versionName = "5.3.15"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildFeatures {
buildConfig = true
compose = true
}
buildTypes {
debug {
defaultConfig.minSdk = 21
isMinifyEnabled = false
isShrinkResources = false
isDebuggable = true
applicationIdSuffix = ".debug"
versionNameSuffix = "-DEBUG"
extra.apply {
set("enableCrashlytics", false)
set("alwaysUpdateBuildId", false)
}
}
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
buildFeatures {
viewBinding = true
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
dependencies {
implementation(libs.kotlin.stdlib.jdk8)
implementation(libs.kotlinx.coroutines.android)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.datetime)
implementation(libs.androidx.compose.runtime)
implementation(libs.core.ktx)
implementation(libs.appcompat)
implementation(libs.activity.ktx)
implementation(libs.fragment.ktx)
implementation(libs.preference.ktx)
implementation(libs.recyclerview)
implementation(libs.constraintlayout)
implementation(libs.gridlayout)
implementation(libs.biometric)
implementation(libs.work.runtime.ktx)
implementation(libs.library)
implementation(libs.material)
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.analytics.ktx)
implementation(libs.firebase.crashlytics.ktx)
implementation(libs.firebase.perf.ktx)
implementation(libs.play.services.oss.licenses)
implementation(libs.play.services.mlkit.face.detection)
implementation(libs.fab)
implementation(libs.bigimageviewer)
implementation(libs.frescoimageloader)
implementation(libs.frescoimageviewfactory)
implementation(libs.imagepipeline.okhttp3)
//noinspection GradleDependency
implementation(libs.okhttp)
implementation(libs.ktor.network)
implementation(libs.dotsindicator)
implementation(libs.pinlockview)
implementation(libs.patternlockview)
implementation(libs.core)
implementation(libs.ripplebackground.library)
implementation(libs.recyclerview.fastscroller)
implementation(libs.jsoup)
implementation(libs.documentfilex)
implementation(libs.floatingsearchview)
testImplementation(libs.junit)
testImplementation(libs.kotlinx.coroutines.test)
androidTestImplementation(libs.ext.junit)
androidTestImplementation(libs.rules)
androidTestImplementation(libs.runner)
androidTestImplementation(libs.espresso.core)
}

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?><!--
<!--
~ Pupil, Hitomi.la viewer for Android ~ Pupil, Hitomi.la viewer for Android
~ Copyright (C) 2020 tom5079 ~ Copyright (C) 2020 tom5079
~ ~
@@ -18,8 +17,8 @@
--> -->
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".ui.MainActivity"> tools:context=".ui.MainActivity">
@@ -32,44 +31,43 @@
<com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller <com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:addLastItemPadding="true"
app:handleDrawable="@drawable/thumb" app:handleDrawable="@drawable/thumb"
app:handleHasFixedSize="true" app:handleHasFixedSize="true"
app:handleHeight="72dp" app:handleHeight="72dp"
app:handleVisibilityDuration="1000"
app:handleWidth="24dp" app:handleWidth="24dp"
app:disableTrack="true" app:popupDrawable="@android:color/transparent"
app:hideHandleAfter="1000" app:trackMarginStart="64dp">
app:trackMarginStart="64dp"
app:addLastItemPadding="true"
app:popupDrawable="@android:color/transparent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:paddingTop="64dp"
android:clipToPadding="false" android:clipToPadding="false"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/> android:paddingTop="64dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller> </com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller>
</xyz.quaver.pupil.ui.view.MainView> </xyz.quaver.pupil.ui.view.MainView>
<androidx.core.widget.ContentLoadingProgressBar <androidx.core.widget.ContentLoadingProgressBar
style="?android:attr/progressBarStyle"
android:id="@+id/progressbar" android:id="@+id/progressbar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:indeterminate="true"/> android:indeterminate="true" />
<TextView <TextView
android:id="@+id/noresult" android:id="@+id/noresult"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:text="@string/main_no_result"
android:linksClickable="true" android:linksClickable="true"
android:visibility="invisible"/> android:text="@string/main_no_result"
android:visibility="invisible" />
<com.github.clans.fab.FloatingActionMenu <com.github.clans.fab.FloatingActionMenu
android:id="@+id/fab" android:id="@+id/fab"
@@ -84,28 +82,28 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:fab_label="@string/main_fab_cancel" app:fab_label="@string/main_fab_cancel"
app:fab_size="mini"/> app:fab_size="mini" />
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/jump_fab" android:id="@+id/jump_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:fab_label="@string/main_jump_title" app:fab_label="@string/main_jump_title"
app:fab_size="mini"/> app:fab_size="mini" />
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/random_fab" android:id="@+id/random_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:fab_label="@string/main_fab_random" app:fab_label="@string/main_fab_random"
app:fab_size="mini"/> app:fab_size="mini" />
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/id_fab" android:id="@+id/id_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:fab_label="@string/main_open_gallery_by_id" app:fab_label="@string/main_open_gallery_by_id"
app:fab_size="mini"/> app:fab_size="mini" />
</com.github.clans.fab.FloatingActionMenu> </com.github.clans.fab.FloatingActionMenu>
@@ -113,15 +111,15 @@
android:id="@+id/searchview" android:id="@+id/searchview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:close_search_on_keyboard_dismiss="false"
app:dismissOnOutsideTouch="true"
app:leftActionMode="showHamburger"
app:menu="@menu/main"
app:searchBarMarginLeft="6dp" app:searchBarMarginLeft="6dp"
app:searchBarMarginRight="6dp" app:searchBarMarginRight="6dp"
app:searchBarMarginTop="6dp" app:searchBarMarginTop="6dp"
app:searchHint="@string/search_hint" app:searchHint="@string/search_hint"
app:suggestionAnimDuration="250"
app:showSearchKey="true" app:showSearchKey="true"
app:leftActionMode="showHamburger" app:suggestionAnimDuration="250" />
app:menu="@menu/main"
app:dismissOnOutsideTouch="true"
app:close_search_on_keyboard_dismiss="false" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?><!--
<!--
~ Pupil, Hitomi.la viewer for Android ~ Pupil, Hitomi.la viewer for Android
~ Copyright (C) 2019 tom5079 ~ Copyright (C) 2019 tom5079
~ ~
@@ -29,37 +28,37 @@
android:id="@+id/scroller" android:id="@+id/scroller"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:handleDrawable="@drawable/thumb"
app:handleHeight="72dp"
app:handleWidth="24dp"
app:disableTrack="true"
app:hideHandleAfter="1000"
app:handleHasFixedSize="true"
app:addLastItemPadding="true" app:addLastItemPadding="true"
app:handleDrawable="@drawable/thumb"
app:handleHasFixedSize="true"
app:handleHeight="72dp"
app:handleVisibilityDuration="1000"
app:handleWidth="24dp"
app:popupDrawable="@android:color/transparent"> app:popupDrawable="@android:color/transparent">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller> </com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller>
<include layout="@layout/reader_eye_card" <include
android:id="@+id/eye_card" android:id="@+id/eye_card"
android:visibility="gone" layout="@layout/reader_eye_card"
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_margin="8dp"/> android:layout_margin="8dp"
android:visibility="gone" />
<ProgressBar <ProgressBar
android:id="@+id/download_progressbar" android:id="@+id/download_progressbar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal" style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="4dp"/> android:layout_height="4dp" />
<com.github.clans.fab.FloatingActionMenu <com.github.clans.fab.FloatingActionMenu
android:id="@+id/fab" android:id="@+id/fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -72,33 +71,33 @@
android:id="@+id/download_fab" android:id="@+id/download_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_download"
app:fab_label="@string/reader_fab_download" app:fab_label="@string/reader_fab_download"
app:fab_size="mini"/> app:fab_size="mini"
app:srcCompat="@drawable/ic_download" />
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/retry_fab" android:id="@+id/retry_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:srcCompat="@drawable/refresh"
app:fab_label="@string/reader_fab_retry" app:fab_label="@string/reader_fab_retry"
app:fab_size="mini"/> app:fab_size="mini"
app:srcCompat="@drawable/refresh" />
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/auto_fab" android:id="@+id/auto_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:srcCompat="@drawable/eye_white"
app:fab_label="@string/reader_fab_auto" app:fab_label="@string/reader_fab_auto"
app:fab_size="mini"/> app:fab_size="mini"
app:srcCompat="@drawable/eye_white" />
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/fullscreen_fab" android:id="@+id/fullscreen_fab"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_fullscreen"
app:fab_label="@string/reader_fab_fullscreen" app:fab_label="@string/reader_fab_fullscreen"
app:fab_size="mini"/> app:fab_size="mini"
app:srcCompat="@drawable/ic_fullscreen" />
</com.github.clans.fab.FloatingActionMenu> </com.github.clans.fab.FloatingActionMenu>

View File

@@ -44,7 +44,7 @@ recyclerview = "1.4.0"
rules = "1.6.1" rules = "1.6.1"
runner = "1.6.2" runner = "1.6.2"
skyfishjyLibrary = "1.0.1" skyfishjyLibrary = "1.0.1"
viewpagerdotsindicator = "4.1.2" dotsindicator = "5.1.0"
workRuntimeKtx = "2.10.0" workRuntimeKtx = "2.10.0"
[libraries] [libraries]
@@ -88,7 +88,7 @@ library = { module = "com.daimajia.swipelayout:library", version.ref = "library"
material = { module = "com.google.android.material:material", version.ref = "material" } material = { module = "com.google.android.material:material", version.ref = "material" }
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
oss-licenses-plugin = { module = "com.google.android.gms:oss-licenses-plugin", version.ref = "ossLicensesPlugin" } oss-licenses-plugin = { module = "com.google.android.gms:oss-licenses-plugin", version.ref = "ossLicensesPlugin" }
patternlockview = { module = "com.andrognito.patternlockview:patternlockview", version.ref = "patternlockview" } patternlockview = { module = "com.github.aritraroy:PatternLockView", version = "master-SNAPSHOT" }
perf-plugin = { module = "com.google.firebase:perf-plugin", version.ref = "perfPlugin" } perf-plugin = { module = "com.google.firebase:perf-plugin", version.ref = "perfPlugin" }
play-services-mlkit-face-detection = { module = "com.google.android.gms:play-services-mlkit-face-detection", version.ref = "playServicesMlkitFaceDetection" } play-services-mlkit-face-detection = { module = "com.google.android.gms:play-services-mlkit-face-detection", version.ref = "playServicesMlkitFaceDetection" }
play-services-oss-licenses = { module = "com.google.android.gms:play-services-oss-licenses", version.ref = "playServicesOssLicenses" } play-services-oss-licenses = { module = "com.google.android.gms:play-services-oss-licenses", version.ref = "playServicesOssLicenses" }
@@ -97,8 +97,11 @@ recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "r
ripplebackground-library = { module = "com.skyfishjy.ripplebackground:library", version.ref = "skyfishjyLibrary" } ripplebackground-library = { module = "com.skyfishjy.ripplebackground:library", version.ref = "skyfishjyLibrary" }
rules = { module = "androidx.test:rules", version.ref = "rules" } rules = { module = "androidx.test:rules", version.ref = "rules" }
runner = { module = "androidx.test:runner", version.ref = "runner" } runner = { module = "androidx.test:runner", version.ref = "runner" }
viewpagerdotsindicator = { module = "com.tbuonomo.andrui:viewpagerdotsindicator", version.ref = "viewpagerdotsindicator" } dotsindicator = { module = "com.tbuonomo:dotsindicator", version.ref = "dotsindicator" }
work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workRuntimeKtx" } work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workRuntimeKtx" }
recyclerview-fastscroller = { module = "com.quiph.ui:recyclerviewfastscroller", version = "1.0.0" }
pinlockview = { module = "com.github.aritraroy:pinlockview", version = "2.1.0" }
androidx-compose-runtime = { module = "androidx.compose.runtime:runtime", version = "1.7.8" }
[plugins] [plugins]
android-application = { id = "com.android.application", version.ref = "agp" } android-application = { id = "com.android.application", version.ref = "agp" }

View File

@@ -23,7 +23,7 @@ dependencyResolutionManagement {
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
jcenter() maven { url = uri("https://jitpack.io") }
} }
} }