object Version { object ClassPathVersion { const val kotlinVersion = "2.1.0" const val hiltVersion = "2.57" const val firebaseCrashlyticsVersion = "3.0.6" const val gmsVersion = "4.4.3" } const val compileSdk = 35 const val applicationId = "com.remax.visualnovel" const val minSdk = 26 const val targetSdk = 36 const val versionCode = 1 const val versionName = "1.0.0" const val kotlinCoroutines = "1.8.0" const val desugar = "2.1.5" const val testJunitVersion = "4.13.2" const val androidTestJunitAndroidExt = "1.1.3" const val androidTestEspressoCore = "3.4.0" const val appcompat = "1.6.1" const val constraintlayout = "2.1.4" const val flexbox = "3.0.0" const val coreKtx = "1.8.0" const val activityKtx = "1.7.0" const val fragmentKtx = "1.5.0" const val hiltCompilerVersion = "1.0.0" //lifecycle const val lifecycleVersion = "2.6.1" //dataStroe const val datastore = "1.0.0" const val viewpager2 = "1.0.0" const val multidex = "2.0.1" const val mmkv = "1.3.1" const val material = "1.6.1" const val gson = "2.9.0" const val firebaseBom = "32.7.4" const val gmsAuth = "21.0.0" const val credentials = "1.2.2" const val googleId = "1.1.0" //内购 const val billing = "7.0.0" const val nimlib = "10.9.43" //rxJava //目前只有websocket使用,需要单独导入 const val rxAndroid = "2.1.1" //Retrofit2 const val retrofit2 = "2.9.0" const val okhttp3LoggingInterceptor = "4.10.0" const val timber = "5.0.1" //glide const val glide = "4.16.0" const val glideTransformations = "4.3.0" //新的事件发布、订阅总线库 const val modularEventbus = "1.0.5" const val magicIndicator = "1.7.0" const val arouter = "1.5.2" const val brvah = "3.0.10" const val swipeMenuLayout = "1.1.4" const val BRV = "1.5.8" const val permission = "25.0" const val lottie = "6.6.2" //EasyFloat暂不升级 const val easyFloat = "1.3.4" const val newbieGuide = "v2.4.4" const val refreshLayout = "2.0.5" //banner const val banner = "2.2.2" const val webSocket = "1.5.1" //s3文件上传 const val awsAndroid = "2.75.0" // https://github.com/liangjingkanji/spannable // https://github.com/TxcA/SpannableX const val spannable = "1.2.7" //m4a转MP3转换 const val mp3Recorder = "1.1.4" const val photoView = "2.3.0" //图片压缩 const val Luban = "1.1.8" //键盘监听高度 const val skbGlobal = "0.2.0" // 修改IME动画的属性、调用FLAG_FULLSCREEN的兼容方案,需要依赖inputview-compat const val inputView = "1.3.7" } object Deps { object ClassPath { const val gmsServices = "com.google.gms:google-services:${Version.ClassPathVersion.gmsVersion}" const val firebaseCrashlytics = "com.google.firebase:firebase-crashlytics-gradle:${Version.ClassPathVersion.firebaseCrashlyticsVersion}" const val hiltPlugin = "com.google.dagger:hilt-android-gradle-plugin:${Version.ClassPathVersion.hiltVersion}" } const val desugar = "com.android.tools:desugar_jdk_libs:${Version.desugar}" const val kotlinCoroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Version.kotlinCoroutines}" const val kotlinCoroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Version.kotlinCoroutines}" const val testJunit = "junit:junit:${Version.testJunitVersion}" const val androidTestJunit = "androidx.test.ext:junit:${Version.androidTestJunitAndroidExt}" const val androidTestEspresso = "androidx.test.espresso:espresso-core:${Version.androidTestEspressoCore}" const val appcompat = "androidx.appcompat:appcompat:${Version.appcompat}" const val constraintlayout = "androidx.constraintlayout:constraintlayout:${Version.constraintlayout}" const val flexbox = "com.google.android.flexbox:flexbox:${Version.flexbox}" const val coreKtx = "androidx.core:core-ktx:${Version.coreKtx}" const val activityKtx = "androidx.activity:activity-ktx:${Version.activityKtx}" const val activityCompose = "androidx.activity:activity-compose:${Version.activityKtx}" const val fragmentKtx = "androidx.fragment:fragment-ktx:${Version.fragmentKtx}" // ViewModel const val viewModel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Version.lifecycleVersion}" // Lifecycles only (without ViewModel or LiveData) const val lifecycleRuntime = "androidx.lifecycle:lifecycle-runtime-ktx:${Version.lifecycleVersion}" // LiveData const val livedata = "androidx.lifecycle:lifecycle-livedata-ktx:${Version.lifecycleVersion}" // alternately - if using Java8, use the following instead of lifecycle-compiler const val lifecycleJava8 = "androidx.lifecycle:lifecycle-common-java8:${Version.lifecycleVersion}" //datastore const val datastore = "androidx.datastore:datastore-preferences:${Version.datastore}" // hilt const val hilt = "com.google.dagger:hilt-android:${Version.ClassPathVersion.hiltVersion}" const val hiltAndroidCompiler = "com.google.dagger:hilt-android-compiler:${Version.ClassPathVersion.hiltVersion}" const val hiltCompiler = "androidx.hilt:hilt-compiler:${Version.hiltCompilerVersion}" const val viewpager2 = "androidx.viewpager2:viewpager2:${Version.viewpager2}" const val multidex = "androidx.multidex:multidex:${Version.multidex}" //mmkv本地存储 const val mmkv = "com.tencent:mmkv:${Version.mmkv}" const val material = "com.google.android.material:material:${Version.material}" const val gson = "com.google.code.gson:gson:${Version.gson}" //云信 const val nimBase = "com.netease.nimlib:basesdk:${Version.nimlib}" const val nimPush = "com.netease.nimlib:push:${Version.nimlib}" const val firebaseBom = "com.google.firebase:firebase-bom:${Version.firebaseBom}" //推送 const val firebaseMessageKtx = "com.google.firebase:firebase-messaging-ktx" //埋点 const val firebaseAnalyticsKtx = "com.google.firebase:firebase-analytics-ktx" //崩溃上报 const val firebaseCrashlyticsKtx = "com.google.firebase:firebase-crashlytics-ktx" //认证 const val firebaseAuthKtx = "com.google.firebase:firebase-auth-ktx" // App Check 库 const val firebaseAppCheck = "com.google.firebase:firebase-appcheck-playintegrity" // 以下先升级到 android 34 const val credentials = "androidx.credentials:credentials:${Version.credentials}" const val credentialsAuth = "androidx.credentials:credentials-play-services-auth:${Version.credentials}" const val googleId = "com.google.android.libraries.identity.googleid:googleid:${Version.googleId}" //内购 const val billing = "com.android.billingclient:billing:${Version.billing}" const val rxAndroid = "io.reactivex.rxjava2:rxandroid:${Version.rxAndroid}" //Retrofit2 const val retrofit2 = "com.squareup.retrofit2:retrofit:${Version.retrofit2}" const val retrofitAdapterRxjava2 = "com.squareup.retrofit2:adapter-rxjava2:${Version.retrofit2}" const val retrofit2ConverterGson = "com.squareup.retrofit2:converter-gson:${Version.retrofit2}" const val okhttp3LoggingInterceptor = "com.squareup.okhttp3:logging-interceptor:${Version.okhttp3LoggingInterceptor}" const val timber = "com.jakewharton.timber:timber:${Version.timber}" //glide const val glide = "com.github.bumptech.glide:glide:${Version.glide}" const val glideCompiler = "com.github.bumptech.glide:compiler:${Version.glide}" const val glideTransformations = "jp.wasabeef:glide-transformations:${Version.glideTransformations}" const val glideWebpdecoder = "com.github.zjupure:webpdecoder:2.6.${Version.glide}" const val modularEventbus = "io.github.pengxurui:modular-eventbus-api:${Version.modularEventbus}" const val modularEventbusCompiler = "io.github.pengxurui:modular-eventbus-compiler:${Version.modularEventbus}" const val magicIndicator = "com.github.hackware1993:MagicIndicator:${Version.magicIndicator}" const val arouter = "com.alibaba:arouter-api:${Version.arouter}" const val arouterCompiler = "com.alibaba:arouter-compiler:${Version.arouter}" const val brvah = "com.github.CymChad:BaseRecyclerViewAdapterHelper:${Version.brvah}" const val swipeMenuLayout = "com.github.anzaizai:EasySwipeMenuLayout:${Version.swipeMenuLayout}" const val BRV = "com.github.liangjingkanji:BRV:${Version.BRV}" const val permission = "com.github.getActivity:XXPermissions:${Version.permission}" const val lottie = "com.airbnb.android:lottie:${Version.lottie}" //EasyFloat暂不升级 const val easyFloat = "com.github.princekin-f:EasyFloat:${Version.easyFloat}" const val newbieGuide = "com.github.huburt-Hu:NewbieGuide:${Version.newbieGuide}" const val refreshLayout = "io.github.scwang90:refresh-layout-kernel:${Version.refreshLayout}" //banner const val banner = "io.github.youth5201314:banner:${Version.banner}" const val webSocket = "org.java-websocket:Java-WebSocket:${Version.webSocket}" //s3图片上传 const val awsS3 = "com.amazonaws:aws-android-sdk-s3:${Version.awsAndroid}" const val awsCore = "com.amazonaws:aws-android-sdk-core:${Version.awsAndroid}" const val spannablex = "com.github.liangjingkanji:spannable:${Version.spannable}" //m4a转MP3转换 const val mp3Recorder = "com.github.zhang-hai:Mp3Recorder:${Version.mp3Recorder}" //大图显示 const val photoView = "com.github.chrisbanes:PhotoView:${Version.photoView}" const val transition = "androidx.transition:transition:1.4.1" const val paging = "androidx.paging:paging-runtime-ktx:3.1.1" const val exoplayer = "com.google.android.exoplayer:exoplayer:2.18.0" const val subsamplingScaleImageView = "com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0" const val Luban = "com.github.Curzibn:Luban:${Version.Luban}" const val BlurView = "com.github.Dimezis:BlurView:version-2.0.6" const val skbGlobal = "com.github.boybeak:skb-global:${Version.skbGlobal}" const val apng = "com.github.sahasbhop:apng-view:1.3" const val BytePlusRTC = "com.byteplus:BytePlusRTC:3.58.1.15100" //inputview const val inputView = "com.github.xiaocydx.InputView:inputview:${Version.inputView}" const val inputViewCompat = "com.github.xiaocydx.InputView:inputview-compat:${Version.inputView}" const val inputViewTransform = "com.github.xiaocydx.InputView:inputview-transform:${Version.inputView}" // immersionbar const val immersionbar = "com.geyifeng.immersionbar:immersionbar:3.2.2" const val immersionbarktx = "com.geyifeng.immersionbar:immersionbar-ktx:3.2.2" }