- FoodListFragment 改用 searchFoodListWithCallback 替代 SharedFlow collect, 彻底解决下拉/上拉因数据相同导致不触发的问题 - NetViewModel 新增 searchFoodListWithCallback 回调版本 - CookingModeActivity loadFragment 改为 show/hide 方式,切换餐次不重建 Fragment - 修复数据为空时未调用 finishRefresh 导致加载动画卡死的问题 - 新增 fragment-ktx 依赖,支持 by viewModels() Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
153 lines
4.5 KiB
Kotlin
153 lines
4.5 KiB
Kotlin
|
|
plugins {
|
|
// alias(libs.plugins.android.application)
|
|
// alias(libs.plugins.kotlin.android)
|
|
// id("com.google.devtools.ksp") version "2.0.21-1.0.27"
|
|
id("com.android.application")
|
|
id("org.jetbrains.kotlin.android")
|
|
// id("com.google.dagger.hilt.android")
|
|
id("com.google.devtools.ksp")
|
|
id("kotlin-parcelize")
|
|
kotlin("kapt")
|
|
}
|
|
|
|
android {
|
|
namespace = "com.shuwei.dish.match"
|
|
compileSdk = 36
|
|
|
|
defaultConfig {
|
|
applicationId = "com.shuwei.dish.match"
|
|
minSdk = 29
|
|
targetSdk = 36
|
|
versionCode = 1
|
|
versionName = "1.0"
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
ndk {
|
|
//设置支持的SO库架构
|
|
abiFilters.addAll(listOf("armeabi-v7a"))
|
|
//, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
|
|
}
|
|
|
|
// 设置输出APK文件名格式
|
|
setProperty("archivesBaseName", "pbc_v${versionName}")
|
|
}
|
|
signingConfigs {
|
|
create("debug_507") {
|
|
storeFile = file("../system.keystore")
|
|
storePassword = "android"
|
|
keyAlias = "wabon"
|
|
keyPassword = "android"
|
|
}
|
|
}
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = false
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
signingConfig = signingConfigs.getByName("debug_507")
|
|
// buildConfigField("boolean", "DEBUG", "false")
|
|
}
|
|
debug {
|
|
//507扫码秤主板在android.buildTypes{}内增加
|
|
signingConfig = signingConfigs.getByName("debug_507")
|
|
// buildConfigField("boolean", "DEBUG", "true")
|
|
}
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = "11"
|
|
}
|
|
buildFeatures {
|
|
viewBinding = true
|
|
buildConfig = true
|
|
}
|
|
packagingOptions {
|
|
pickFirst("lib/armeabi-v7a/libserial_port.so")
|
|
pickFirst("lib/arme64-v8a/libserial_port.so")
|
|
}
|
|
sourceSets {
|
|
named("main") {
|
|
res.setSrcDirs(
|
|
listOf(
|
|
"src/main/res",
|
|
"src/main/res/layout-sw800dp"
|
|
)
|
|
)
|
|
}
|
|
}
|
|
// li
|
|
}
|
|
val isDebug = gradle.startParameter.taskNames.any {
|
|
it.contains("debug", ignoreCase = true)
|
|
}
|
|
dependencies {
|
|
implementation(fileTree("libs") { include("*.jar", "*.aar") })
|
|
implementation(libs.androidx.core.ktx)
|
|
implementation(libs.androidx.appcompat)
|
|
implementation(libs.material)
|
|
implementation(libs.androidx.gridlayout)
|
|
implementation(libs.android.core)
|
|
implementation(libs.core)
|
|
testImplementation(libs.junit)
|
|
androidTestImplementation(libs.androidx.junit)
|
|
androidTestImplementation(libs.androidx.espresso.core)
|
|
implementation(libs.androidx.activity.ktx)
|
|
implementation(libs.androidx.fragment.ktx)
|
|
implementation(libs.androidx.lifecycle.runtime.ktx)
|
|
implementation(libs.androidx.lifecycle.viewmodel.ktx)
|
|
|
|
implementation(libs.gson)
|
|
implementation(libs.okhttp)
|
|
implementation(libs.logging.interceptor)
|
|
implementation(libs.retrofit)
|
|
implementation(libs.java.websocket)
|
|
implementation(libs.converter.gson)
|
|
implementation(libs.flexbox)
|
|
|
|
implementation(libs.baserecyclerviewadapterhelper4)
|
|
|
|
// room
|
|
implementation(libs.androidx.room.runtime)
|
|
ksp(libs.androidx.room.compiler)
|
|
implementation(libs.androidx.room.ktx)
|
|
|
|
// implementation("biz.laenger.android:vpbs:0.0.6")
|
|
|
|
// refresh-layout
|
|
implementation(libs.refresh.layout.kernel)
|
|
implementation(libs.refresh.header.classics)
|
|
implementation(libs.refresh.header.radar)
|
|
implementation(libs.refresh.footer.classics)
|
|
|
|
//implementation("com.geyifeng.immersionbar:immersionbar:3.2.2")
|
|
|
|
// glide
|
|
implementation(libs.glide)
|
|
annotationProcessor(libs.compiler)
|
|
|
|
// camerax
|
|
implementation(libs.androidx.camera.core)
|
|
implementation(libs.androidx.camera.camera2)
|
|
implementation(libs.androidx.camera.lifecycle)
|
|
implementation(libs.androidx.camera.view)
|
|
implementation(libs.androidx.camera.extensions)
|
|
|
|
//pytorch
|
|
implementation (libs.pytorch.android)
|
|
implementation (libs.pytorch.android.torchvision)
|
|
|
|
// objectbox
|
|
if (isDebug) {
|
|
debugImplementation(libs.objectbox.android.objectbrowser)
|
|
} else {
|
|
releaseImplementation(libs.objectbox.android)
|
|
}
|
|
}
|
|
|
|
apply(plugin = "io.objectbox") |