feat(core): startup default camera

Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>
This commit is contained in:
rhunk
2025-03-24 21:04:37 +01:00
parent b6aa4857d2
commit 3394bfce47
4 changed files with 39 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ enum class DatabaseType(
val fileName: String
) {
MAIN("main.db"),
CORE("core.db"),
ARROYO("arroyo.db"),
SIMPLE_DB_HELPER("simple_db_helper.db")
}
@@ -508,4 +509,29 @@ class DatabaseAccess(
)
}
}
fun setCameraType(cameraType: String) {
useDatabase(DatabaseType.CORE, writeMode = true)?.use { database ->
database.performOperation {
if (rawQuery("SELECT * FROM Preferences WHERE 'key' = 'CAMERA~CAMERA_TYPE'", null).use { !it.moveToFirst() }) {
insert(
"Preferences",
null,
ContentValues().apply {
put("key", "CAMERA~CAMERA_TYPE")
put("type", 0)
put("stringValue", cameraType)
}
)
} else update(
"Preferences",
ContentValues().apply {
put("stringValue", cameraType)
},
"key = ?",
arrayOf("CAMERA~CAMERA_TYPE")
)
}
}
}
}

View File

@@ -27,6 +27,10 @@ class CameraTweaks : Feature("Camera Tweaks") {
override fun init() {
val config = context.config.camera
config.startupDefaultCamera.getNullable()?.let { defaultCamera ->
context.database.setCameraType(if (defaultCamera == "back") "BACK_FACING" else "FRONT_FACING")
}
val frontCameraId by lazy {
runCatching { context.androidContext.getSystemService(CameraManager::class.java).run {
cameraIdList.firstOrNull { getCameraCharacteristics(it).get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT }