Fix: Handle missing 'color', 'isArchived' and 'value' fields in DTOs and mappers to prevent JsonDataException
This commit is contained in:
@@ -1,84 +0,0 @@
|
||||
<![CDATA[
|
||||
<work_order>
|
||||
<title>Миграция Moshi с Kapt на KSP</title>
|
||||
<description>
|
||||
Устранить предупреждение "Kapt support in Moshi Kotlin Code Gen is deprecated".
|
||||
Это требует миграции генерации кода Moshi с `kapt` на `KSP` (Kotlin Symbol Processing).
|
||||
</description>
|
||||
<steps>
|
||||
<step>
|
||||
<description>Добавить плагин KSP в корневой файл `build.gradle.kts`.</description>
|
||||
<tool>
|
||||
<name>apply_diff</name>
|
||||
<args>
|
||||
<file>
|
||||
<path>build.gradle.kts</path>
|
||||
<diff>
|
||||
<content>
|
||||
<![CDATA[
|
||||
<<<<<<< SEARCH
|
||||
// [PLUGIN] Hilt Android plugin
|
||||
id("com.google.dagger.hilt.android") version "2.48.1" apply false
|
||||
}
|
||||
=======
|
||||
// [PLUGIN] Hilt Android plugin
|
||||
id("com.google.dagger.hilt.android") version "2.48.1" apply false
|
||||
// [PLUGIN] KSP plugin
|
||||
id("com.google.devtools.ksp") version "1.9.23-1.0.19" apply false
|
||||
}
|
||||
>>>>>>> REPLACE
|
||||
]]>
|
||||
</content>
|
||||
<start_line>9</start_line>
|
||||
</diff>
|
||||
</file>
|
||||
</args>
|
||||
</tool>
|
||||
</step>
|
||||
<step>
|
||||
<description>Применить плагин KSP и заменить зависимость `kapt` на `ksp` для Moshi в файле `data/build.gradle.kts`.</description>
|
||||
<tool>
|
||||
<name>apply_diff</name>
|
||||
<args>
|
||||
<file>
|
||||
<path>data/build.gradle.kts</path>
|
||||
<diff>
|
||||
<content>
|
||||
<![CDATA[
|
||||
<<<<<<< SEARCH
|
||||
id("org.jetbrains.kotlin.android")
|
||||
id("com.google.dagger.hilt.android")
|
||||
id("kotlin-kapt")
|
||||
}
|
||||
=======
|
||||
id("org.jetbrains.kotlin.android")
|
||||
id("com.google.dagger.hilt.android")
|
||||
id("kotlin-kapt")
|
||||
id("com.google.devtools.ksp")
|
||||
}
|
||||
>>>>>>> REPLACE
|
||||
]]>
|
||||
</content>
|
||||
<start_line>6</start_line>
|
||||
</diff>
|
||||
<diff>
|
||||
<content>
|
||||
<![CDATA[
|
||||
<<<<<<< SEARCH
|
||||
implementation(Libs.moshiKotlin)
|
||||
kapt(Libs.moshiCodegen)
|
||||
=======
|
||||
implementation(Libs.moshiKotlin)
|
||||
ksp(Libs.moshiCodegen)
|
||||
>>>>>>> REPLACE
|
||||
]]>
|
||||
</content>
|
||||
<start_line>53</start_line>
|
||||
</diff>
|
||||
</file>
|
||||
</args>
|
||||
</tool>
|
||||
</step>
|
||||
</steps>
|
||||
</work_order>
|
||||
]]>
|
||||
@@ -1,35 +0,0 @@
|
||||
<![CDATA[
|
||||
<work_order>
|
||||
<title>Удаление атрибута package из AndroidManifest.xml</title>
|
||||
<description>
|
||||
Устранить предупреждение "Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported".
|
||||
Это требует удаления устаревшего атрибута `package` из файла `app/src/main/AndroidManifest.xml`.
|
||||
</description>
|
||||
<steps>
|
||||
<step>
|
||||
<description>Удалить атрибут `package` из тега `manifest` в файле `app/src/main/AndroidManifest.xml`.</description>
|
||||
<tool>
|
||||
<name>apply_diff</name>
|
||||
<args>
|
||||
<file>
|
||||
<path>app/src/main/AndroidManifest.xml</path>
|
||||
<diff>
|
||||
<content>
|
||||
<![CDATA[
|
||||
<<<<<<< SEARCH
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.homebox.lens">
|
||||
=======
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
>>>>>>> REPLACE
|
||||
]]>
|
||||
</content>
|
||||
<start_line>2</start_line>
|
||||
</diff>
|
||||
</file>
|
||||
</args>
|
||||
</tool>
|
||||
</step>
|
||||
</steps>
|
||||
</work_order>
|
||||
]]>
|
||||
@@ -1,86 +0,0 @@
|
||||
<![CDATA[
|
||||
<work_order>
|
||||
<title>Устранение предупреждений сборки Gradle</title>
|
||||
<description>
|
||||
Необходимо устранить два типа предупреждений, возникающих при сборке проекта:
|
||||
1. Использование устаревшего метода `Configuration.fileCollection(Spec)` в плагине `org.jetbrains.kotlin.android`.
|
||||
2. Использование устаревшей версии Java 8 для компиляции.
|
||||
</description>
|
||||
<steps>
|
||||
<step>
|
||||
<description>Обновить версию Android Gradle Plugin (AGP) и плагина Kotlin в корневом файле `build.gradle.kts`.</description>
|
||||
<tool>
|
||||
<name>apply_diff</name>
|
||||
<args>
|
||||
<file>
|
||||
<path>build.gradle.kts</path>
|
||||
<diff>
|
||||
<content>
|
||||
<![CDATA[
|
||||
<<<<<<< SEARCH
|
||||
// [PLUGIN] Android Application plugin
|
||||
id("com.android.application") version "8.13.0" apply false
|
||||
// [PLUGIN] Kotlin Android plugin
|
||||
id("org.jetbrains.kotlin.android") version "1.9.22" apply false
|
||||
=======
|
||||
// [PLUGIN] Android Application plugin
|
||||
id("com.android.application") version "8.4.0" apply false
|
||||
// [PLUGIN] Kotlin Android plugin
|
||||
id("org.jetbrains.kotlin.android") version "1.9.23" apply false
|
||||
>>>>>>> REPLACE
|
||||
]]>
|
||||
</content>
|
||||
<start_line>5</start_line>
|
||||
</diff>
|
||||
</file>
|
||||
</args>
|
||||
</tool>
|
||||
</step>
|
||||
<step>
|
||||
<description>Обновить версию Java до 17 в файлах сборки всех модулей. Начать с `data/build.gradle.kts`.</description>
|
||||
<tool>
|
||||
<name>apply_diff</name>
|
||||
<args>
|
||||
<file>
|
||||
<path>data/build.gradle.kts</path>
|
||||
<diff>
|
||||
<content>
|
||||
<![CDATA[
|
||||
<<<<<<< SEARCH
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
}
|
||||
=======
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
>>>>>>> REPLACE
|
||||
]]>
|
||||
</content>
|
||||
<start_line>29</start_line>
|
||||
</diff>
|
||||
</file>
|
||||
</args>
|
||||
</tool>
|
||||
</step>
|
||||
<step>
|
||||
<description>Применить аналогичные изменения для `app/build.gradle.kts` и других модулей. (Примечание: этот шаг потребует поиска и изменения всех `build.gradle.kts` файлов в проекте).</description>
|
||||
<tool>
|
||||
<name>search_files</name>
|
||||
<args>
|
||||
<path>.</path>
|
||||
<regex>build\.gradle\.kts</regex>
|
||||
</args>
|
||||
</tool>
|
||||
</step>
|
||||
</steps>
|
||||
</work_order>
|
||||
]]>
|
||||
65
tasks/20251006_add_missing_string_resources.xml
Normal file
65
tasks/20251006_add_missing_string_resources.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<![CDATA[
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WorkOrder>
|
||||
<WO_ID>20251006_add_missing_string_resources</WO_ID>
|
||||
<Originator>Architect</Originator>
|
||||
<Created>2025-10-06T06:05:22Z</Created>
|
||||
<Project>Homebox-Lens</Project>
|
||||
<Title>Add Missing String Resources to Resolve Build Failure</Title>
|
||||
<Description>
|
||||
The project build is currently failing due to multiple 'Unresolved reference' errors in `ItemEditScreen.kt` and `SettingsScreen.kt`. These errors are caused by missing string resources. To fix this, the specified string resources must be added to the `app/src/main/res/values/strings.xml` file.
|
||||
</Description>
|
||||
<Scope>
|
||||
<File>app/src/main/res/values/strings.xml</File>
|
||||
</Scope>
|
||||
<AcceptanceCriteria>
|
||||
- The project must compile successfully without any 'Unresolved reference' errors related to string resources.
|
||||
- All new strings must be added to `app/src/main/res/values/strings.xml`.
|
||||
- The new strings should have meaningful English values.
|
||||
</AcceptanceCriteria>
|
||||
<Constraints>
|
||||
- Changes should be limited to the `app/src/main/res/values/strings.xml` file. No other files should be modified unless absolutely necessary to resolve the primary issue.
|
||||
</Constraints>
|
||||
<Deliverables>
|
||||
<File>app/src/main/res/values/strings.xml</File>
|
||||
</Deliverables>
|
||||
<ImplementationDetails>
|
||||
<LinguisticContext>
|
||||
The new strings are for the item editing screen and settings screen. The text should be clear and concise.
|
||||
</LinguisticContext>
|
||||
<TechnicalContext>
|
||||
The following string resources are missing and must be added to `app/src/main/res/values/strings.xml`:
|
||||
- `item_edit_general_information`
|
||||
- `item_edit_location`
|
||||
- `item_edit_labels`
|
||||
- `item_edit_select_labels`
|
||||
- `dialog_ok`
|
||||
- `dialog_cancel`
|
||||
- `item_edit_purchase_information`
|
||||
- `item_edit_purchase_price`
|
||||
- `item_edit_purchase_from`
|
||||
- `item_edit_purchase_time`
|
||||
- `item_edit_select_date`
|
||||
- `item_edit_warranty_information`
|
||||
- `item_edit_lifetime_warranty`
|
||||
- `item_edit_warranty_details`
|
||||
- `item_edit_warranty_expires`
|
||||
- `item_edit_identification`
|
||||
- `item_edit_asset_id`
|
||||
- `item_edit_serial_number`
|
||||
- `item_edit_manufacturer`
|
||||
- `item_edit_model_number`
|
||||
- `item_edit_status_notes`
|
||||
- `item_edit_archived`
|
||||
- `item_edit_insured`
|
||||
- `item_edit_notes`
|
||||
- `item_edit_sold_information`
|
||||
- `item_edit_sold_price`
|
||||
- `item_edit_sold_to`
|
||||
- `item_edit_sold_notes`
|
||||
- `item_edit_sold_time`
|
||||
- `screen_title_settings`
|
||||
</TechnicalContext>
|
||||
</ImplementationDetails>
|
||||
</WorkOrder>
|
||||
]]>
|
||||
@@ -1,97 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<WorkOrder>
|
||||
<Configuration>
|
||||
<MaxConcurrentAgents>1</MaxConcurrentAgents>
|
||||
<MaxIterations>25</MaxIterations>
|
||||
<TaskChannel>
|
||||
<Implementation>
|
||||
<Plugin>filesystem</Plugin>
|
||||
<Parameters>
|
||||
<BasePath>tasks/temp</BasePath>
|
||||
</Parameters>
|
||||
</Implementation>
|
||||
</TaskChannel>
|
||||
<MetricsSink>
|
||||
<Implementation>
|
||||
<Plugin>xml_file</Plugin>
|
||||
<Parameters>
|
||||
<OutputPath>logs/metrics</OutputPath>
|
||||
</Parameters>
|
||||
</Implementation>
|
||||
</MetricsSink>
|
||||
<LogSink>
|
||||
<Implementation>
|
||||
<Plugin>xml_file</Plugin>
|
||||
<Parameters>
|
||||
<OutputPath>logs/main</OutputPath>
|
||||
</Parameters>
|
||||
</Implementation>
|
||||
</LogSink>
|
||||
</Configuration>
|
||||
<Objective>
|
||||
<HumanReadable>Создать полнофункциональный экран "Inventory", который будет отображать список предметов инвентаря. Экран должен использовать существующую архитектуру и компоненты.</HumanReadable>
|
||||
</Objective>
|
||||
<SystemContext>
|
||||
<System>
|
||||
<OperatingSystem>Linux</OperatingSystem>
|
||||
<Shell>/usr/bin/zsh</Shell>
|
||||
</System>
|
||||
<Project>
|
||||
<Name>Homebox Lens</Name>
|
||||
<Framework>Android (Jetpack Compose)</Framework>
|
||||
<Language>Kotlin</Language>
|
||||
<BuildSystem>Gradle</BuildSystem>
|
||||
<Architecture>MVVM, Clean Architecture</Architecture>
|
||||
</Project>
|
||||
</SystemContext>
|
||||
<InitialContext>
|
||||
<File>
|
||||
<Path>domain/src/main/java/com/homebox/lens/domain/model/ItemSummary.kt</Path>
|
||||
</File>
|
||||
<File>
|
||||
<Path>app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt</Path>
|
||||
</File>
|
||||
</InitialContext>
|
||||
<AcceptanceCriteria>
|
||||
<Criterion>
|
||||
<Description>Создан новый Gradle-модуль `feature:inventory`.</Description>
|
||||
</Criterion>
|
||||
<Criterion>
|
||||
<Description>В модуле `feature:inventory` реализован `InventoryScreen`, `InventoryViewModel` и `InventoryUiState`.</Description>
|
||||
</Criterion>
|
||||
<Criterion>
|
||||
<Description>`InventoryViewModel` использует `SearchItemsUseCase` для получения списка предметов.</Description>
|
||||
</Criterion>
|
||||
<Criterion>
|
||||
<Description>`InventoryScreen` отображает список предметов, используя `ItemSummary` в качестве модели представления для каждого элемента списка.</Description>
|
||||
</Criterion>
|
||||
<Criterion>
|
||||
<Description>Новый экран интегрирован в навигацию приложения.</Description>
|
||||
</Criterion>
|
||||
<Criterion>
|
||||
<Description>Весь новый код соответствует стайлгайду проекта и семантически корректен.</Description>
|
||||
</Criterion>
|
||||
</AcceptanceCriteria>
|
||||
<Workflow>
|
||||
<Step>
|
||||
<Name>Создание модуля</Name>
|
||||
<Description>Создать новый feature-модуль с именем `inventory`.</Description>
|
||||
</Step>
|
||||
<Step>
|
||||
<Name>Реализация ViewModel</Name>
|
||||
<Description>Создать `InventoryViewModel` который будет запрашивать данные из `SearchItemsUseCase` и управлять состоянием экрана `InventoryUiState`.</Description>
|
||||
</Step>
|
||||
<Step>
|
||||
<Name>Реализация UI</Name>
|
||||
<Description>Создать `InventoryScreen`, который будет отображать список `ItemSummary` из `InventoryUiState`. Для каждого элемента списка создать `ItemRow` composable.</Description>
|
||||
</Step>
|
||||
<Step>
|
||||
<Name>Интеграция навигации</Name>
|
||||
<Description>Добавить `InventoryScreen` в граф навигации приложения.</Description>
|
||||
</Step>
|
||||
<Step>
|
||||
<Name>Рефакторинг</Name>
|
||||
<Description>Удалить старый `InventoryListScreen` из `app` модуля, если он больше не нужен.</Description>
|
||||
</Step>
|
||||
</Workflow>
|
||||
</WorkOrder>
|
||||
Reference in New Issue
Block a user