Android: Add 2FA to LoginScreen and add logos to UI 19e1dbc01b93
- Author
- Andy McCall @andymccall <[email protected]>
- When
- · 2026-09-30 14:57 UTC
- Signature
- ✔ signed by Andy McCall
- Hash
19e1dbc01b93bb1c3c41dc355a963baaccb487c14e6895929aa8e8a48e4bf51f- Depends on
- 490d18066788 5edf011e4d10 66127df36f3a e845c208d516
- Depended on by
- 57c0824300db
- In bookmarks
- main
- In tags
- v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7 v0.1.8 v0.1.9
- Edits
- 73 atoms, 28 tree operations, 31 files
Browse the tree at this change
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/.globals.work.bin +0 −0
No line changes.
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/.strings.work.bin +0 −0
No line changes.
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/_app.work.bin +0 −0
No line changes.
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/buildfingerprint.bin +0 −0
No line changes.
renamed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/classloaderscopes.bin → .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/classloaderscopes.bin +0 −0
No line changes.
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/entry.bin +0 −0
No line changes.
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/projectfingerprint.bin +0 −0
No line changes.
added .gradle/configuration-cache/b06b1b2a-0dae-4545-b960-715b943d6c0b/work.bin +0 −0
No line changes.
added app/build/intermediates/apk/debug/app-debug.apk +0 −0
No line changes.
added app/build/intermediates/apk/debug/output-metadata.json +21 −0
| 1 | + | { |
|
| 2 | + | "version": 3, |
|
| 3 | + | "artifactType": { |
|
| 4 | + | "type": "APK", |
|
| 5 | + | "kind": "Directory" |
|
| 6 | + | }, |
|
| 7 | + | "applicationId": "com.example.oxygenhub", |
|
| 8 | + | "variantName": "debug", |
|
| 9 | + | "elements": [ |
|
| 10 | + | { |
|
| 11 | + | "type": "SINGLE", |
|
| 12 | + | "filters": [], |
|
| 13 | + | "attributes": [], |
|
| 14 | + | "versionCode": 1, |
|
| 15 | + | "versionName": "1.0", |
|
| 16 | + | "outputFile": "app-debug.apk" |
|
| 17 | + | } |
|
| 18 | + | ], |
|
| 19 | + | "elementType": "File", |
|
| 20 | + | "minSdkVersionForDexing": 24 |
|
| 21 | + | } |
added app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt +28 −0
| 1 | + | #Wed Sep 30 15:53:47 BST 2026 |
|
| 2 | + | base.0=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex |
|
| 3 | + | base.1=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex |
|
| 4 | + | base.2=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeProjectDexDebug/14/classes.dex |
|
| 5 | + | base.3=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeProjectDexDebug/4/classes.dex |
|
| 6 | + | base.4=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeProjectDexDebug/6/classes.dex |
|
| 7 | + | base.5=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeProjectDexDebug/9/classes.dex |
|
| 8 | + | base.6=/home/andymccall/development/oxygenhub-android/app/build/intermediates/global_synthetics_dex/debug/generateDebugGlobalSynthetics/classes.dex |
|
| 9 | + | base.7=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeExtDexDebug/classes2.dex |
|
| 10 | + | base.8=/home/andymccall/development/oxygenhub-android/app/build/intermediates/dex/debug/mergeExtDexDebug/classes3.dex |
|
| 11 | + | path.0=classes.dex |
|
| 12 | + | path.1=0/classes.dex |
|
| 13 | + | path.2=14/classes.dex |
|
| 14 | + | path.3=4/classes.dex |
|
| 15 | + | path.4=6/classes.dex |
|
| 16 | + | path.5=9/classes.dex |
|
| 17 | + | path.6=classes.dex |
|
| 18 | + | path.7=classes2.dex |
|
| 19 | + | path.8=classes3.dex |
|
| 20 | + | renamed.0=classes.dex |
|
| 21 | + | renamed.1=classes2.dex |
|
| 22 | + | renamed.2=classes3.dex |
|
| 23 | + | renamed.3=classes4.dex |
|
| 24 | + | renamed.4=classes5.dex |
|
| 25 | + | renamed.5=classes6.dex |
|
| 26 | + | renamed.6=classes7.dex |
|
| 27 | + | renamed.7=classes8.dex |
|
| 28 | + | renamed.8=classes9.dex |
added app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources +1 −0
| 1 | + | [{"key":"AndroidManifest.xml","name":"AndroidManifest.xml","size":6276,"crc":1226417141},{"key":"res/color/vector_tint_color.xml","name":"res/color/vector_tint_color.xml","size":340,"crc":-65600974},{"key":"res/color/vector_tint_theme_color.xml","name":"res/color/vector_tint_theme_color.xml","size":340,"crc":-1489306767},{"key":"res/drawable/$ic_launcher_foreground__0.xml","name":"res/drawable/$ic_launcher_foreground__0.xml","size":788,"crc":486164930},{"key":"res/drawable/$mark__0.xml","name":"res/drawable/$mark__0.xml","size":788,"crc":1510111382},{"key":"res/drawable/$mark__1.xml","name":"res/drawable/$mark__1.xml","size":788,"crc":1167989656},{"key":"res/drawable/ic_call_answer.xml","name":"res/drawable/ic_call_answer.xml","size":1356,"crc":-417851860},{"key":"res/drawable/ic_call_answer_low.xml","name":"res/drawable/ic_call_answer_low.xml","size":1320,"crc":-2078588160},{"key":"res/drawable/ic_call_answer_video.xml","name":"res/drawable/ic_call_answer_video.xml","size":772,"crc":1837259622},{"key":"res/drawable/ic_call_answer_video_low.xml","name":"res/drawable/ic_call_answer_video_low.xml","size":736,"crc":1149510206},{"key":"res/drawable/ic_call_decline.xml","name":"res/drawable/ic_call_decline.xml","size":1528,"crc":-1902206380},{"key":"res/drawable/ic_call_decline_low.xml","name":"res/drawable/ic_call_decline_low.xml","size":1492,"crc":-593934670},{"key":"res/drawable/ic_launcher_background.xml","name":"res/drawable/ic_launcher_background.xml","size":5696,"crc":-309232214},{"key":"res/drawable/ic_launcher_foreground.xml","name":"res/drawable/ic_launcher_foreground.xml","size":1572,"crc":867899661},{"key":"res/drawable/mark.xml","name":"res/drawable/mark.xml","size":1624,"crc":91466277},{"key":"res/drawable-v21/notification_action_background.xml","name":"res/drawable-v21/notification_action_background.xml","size":1180,"crc":1921271335},{"key":"res/drawable/notification_bg.xml","name":"res/drawable/notification_bg.xml","size":532,"crc":-401674684},{"key":"res/drawable/notification_bg_low.xml","name":"res/drawable/notification_bg_low.xml","size":532,"crc":1392997109},{"key":"res/drawable/notification_icon_background.xml","name":"res/drawable/notification_icon_background.xml","size":372,"crc":2020821786},{"key":"res/drawable/notification_tile_bg.xml","name":"res/drawable/notification_tile_bg.xml","size":304,"crc":1156255250},{"key":"res/drawable-mdpi-v4/notification_bg_low_normal.9.png","name":"res/drawable-mdpi-v4/notification_bg_low_normal.9.png","size":215,"crc":-637905481},{"key":"res/drawable-mdpi-v4/notification_bg_low_pressed.9.png","name":"res/drawable-mdpi-v4/notification_bg_low_pressed.9.png","size":223,"crc":-1206985160},{"key":"res/drawable-mdpi-v4/notification_bg_normal.9.png","name":"res/drawable-mdpi-v4/notification_bg_normal.9.png","size":215,"crc":-1053437548},{"key":"res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png","name":"res/drawable-mdpi-v4/notification_bg_normal_pressed.9.png","size":223,"crc":-316674454},{"key":"res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png","name":"res/drawable-mdpi-v4/notify_panel_notification_icon_bg.png","size":98,"crc":782467851},{"key":"res/drawable-hdpi-v4/notification_bg_low_normal.9.png","name":"res/drawable-hdpi-v4/notification_bg_low_normal.9.png","size":212,"crc":931926398},{"key":"res/drawable-hdpi-v4/notification_bg_low_pressed.9.png","name":"res/drawable-hdpi-v4/notification_bg_low_pressed.9.png","size":225,"crc":1348069157},{"key":"res/drawable-hdpi-v4/notification_bg_normal.9.png","name":"res/drawable-hdpi-v4/notification_bg_normal.9.png","size":212,"crc":-1037255009},{"key":"res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png","name":"res/drawable-hdpi-v4/notification_bg_normal_pressed.9.png","size":225,"crc":-1579774768},{"key":"res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png","name":"res/drawable-hdpi-v4/notification_oversize_large_icon_bg.png","size":909,"crc":-883619049},{"key":"res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png","name":"res/drawable-hdpi-v4/notify_panel_notification_icon_bg.png","size":107,"crc":1859699185},{"key":"res/drawable-xhdpi-v4/notification_bg_low_normal.9.png","name":"res/drawable-xhdpi-v4/notification_bg_low_normal.9.png","size":221,"crc":986722933},{"key":"res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png","name":"res/drawable-xhdpi-v4/notification_bg_low_pressed.9.png","size":252,"crc":-930084210},{"key":"res/drawable-xhdpi-v4/notification_bg_normal.9.png","name":"res/drawable-xhdpi-v4/notification_bg_normal.9.png","size":221,"crc":-1723534566},{"key":"res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png","name":"res/drawable-xhdpi-v4/notification_bg_normal_pressed.9.png","size":247,"crc":-1030044328},{"key":"res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png","name":"res/drawable-xhdpi-v4/notify_panel_notification_icon_bg.png","size":138,"crc":72836353},{"key":"res/layout/custom_dialog.xml","name":"res/layout/custom_dialog.xml","size":612,"crc":-227242397},{"key":"res/layout/ime_base_split_test_activity.xml","name":"res/layout/ime_base_split_test_activity.xml","size":364,"crc":1066515116},{"key":"res/layout/ime_secondary_split_test_activity.xml","name":"res/layout/ime_secondary_split_test_activity.xml","size":876,"crc":-190157726},{"key":"res/layout-v21/notification_action.xml","name":"res/layout-v21/notification_action.xml","size":1052,"crc":679561366},{"key":"res/layout-v21/notification_action_tombstone.xml","name":"res/layout-v21/notification_action_tombstone.xml","size":1228,"crc":1471488549},{"key":"res/layout-v21/notification_template_custom_big.xml","name":"res/layout-v21/notification_template_custom_big.xml","size":2456,"crc":-198560107},{"key":"res/layout-v21/notification_template_icon_group.xml","name":"res/layout-v21/notification_template_icon_group.xml","size":988,"crc":1716188901},{"key":"res/layout/notification_template_part_chronometer.xml","name":"res/layout/notification_template_part_chronometer.xml","size":440,"crc":676004396},{"key":"res/layout/notification_template_part_time.xml","name":"res/layout/notification_template_part_time.xml","size":440,"crc":-1560738397},{"key":"res/mipmap-mdpi-v4/ic_launcher.webp","name":"res/mipmap-mdpi-v4/ic_launcher.webp","size":982,"crc":-1391938492},{"key":"res/mipmap-mdpi-v4/ic_launcher_round.webp","name":"res/mipmap-mdpi-v4/ic_launcher_round.webp","size":1772,"crc":1591351618},{"key":"res/mipmap-hdpi-v4/ic_launcher.webp","name":"res/mipmap-hdpi-v4/ic_launcher.webp","size":1404,"crc":1918961115},{"key":"res/mipmap-hdpi-v4/ic_launcher_round.webp","name":"res/mipmap-hdpi-v4/ic_launcher_round.webp","size":2898,"crc":-1968626878},{"key":"res/mipmap-xhdpi-v4/ic_launcher.webp","name":"res/mipmap-xhdpi-v4/ic_launcher.webp","size":1900,"crc":-27209384},{"key":"res/mipmap-xhdpi-v4/ic_launcher_round.webp","name":"res/mipmap-xhdpi-v4/ic_launcher_round.webp","size":3918,"crc":1330214906},{"key":"res/mipmap-xxhdpi-v4/ic_launcher.webp","name":"res/mipmap-xxhdpi-v4/ic_launcher.webp","size":2884,"crc":317095134},{"key":"res/mipmap-xxhdpi-v4/ic_launcher_round.webp","name":"res/mipmap-xxhdpi-v4/ic_launcher_round.webp","size":5914,"crc":-1592374347},{"key":"res/mipmap-xxxhdpi-v4/ic_launcher.webp","name":"res/mipmap-xxxhdpi-v4/ic_launcher.webp","size":3844,"crc":161392164},{"key":"res/mipmap-xxxhdpi-v4/ic_launcher_round.webp","name":"res/mipmap-xxxhdpi-v4/ic_launcher_round.webp","size":7778,"crc":-167941173},{"key":"res/mipmap-anydpi-v26/ic_launcher.xml","name":"res/mipmap-anydpi-v26/ic_launcher.xml","size":548,"crc":-197061272},{"key":"res/mipmap-anydpi-v26/ic_launcher_round.xml","name":"res/mipmap-anydpi-v26/ic_launcher_round.xml","size":548,"crc":-197061272},{"key":"res/xml/backup_rules.xml","name":"res/xml/backup_rules.xml","size":132,"crc":1286822067},{"key":"res/xml/data_extraction_rules.xml","name":"res/xml/data_extraction_rules.xml","size":212,"crc":1324190710},{"key":"resources.arsc","name":"resources.arsc","size":479516,"crc":1440643816}] |
added app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 +1 −0
| 1 | + | [{"key":"DebugProbesKt.bin","name":"DebugProbesKt.bin","size":1728,"crc":-924615649},{"key":"META-INF/AL2.0","name":"META-INF/AL2.0","size":10174,"crc":514045872},{"key":"META-INF/LGPL2.1","name":"META-INF/LGPL2.1","size":24389,"crc":-1475526039},{"key":"META-INF/androidx.activity_activity-compose.version","name":"META-INF/androidx.activity_activity-compose.version","size":6,"crc":184345093},{"key":"META-INF/androidx.activity_activity-ktx.version","name":"META-INF/androidx.activity_activity-ktx.version","size":6,"crc":184345093},{"key":"META-INF/androidx.activity_activity.version","name":"META-INF/androidx.activity_activity.version","size":6,"crc":184345093},{"key":"META-INF/androidx.annotation_annotation-experimental.version","name":"META-INF/androidx.annotation_annotation-experimental.version","size":6,"crc":1795624574},{"key":"META-INF/androidx.arch.core_core-runtime.version","name":"META-INF/androidx.arch.core_core-runtime.version","size":67,"crc":1307063212},{"key":"META-INF/androidx.autofill_autofill.version","name":"META-INF/androidx.autofill_autofill.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.compose.animation_animation-core.version","name":"META-INF/androidx.compose.animation_animation-core.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.animation_animation.version","name":"META-INF/androidx.compose.animation_animation.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.foundation_foundation-layout.version","name":"META-INF/androidx.compose.foundation_foundation-layout.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.foundation_foundation.version","name":"META-INF/androidx.compose.foundation_foundation.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.material3_material3.version","name":"META-INF/androidx.compose.material3_material3.version","size":6,"crc":1914453823},{"key":"META-INF/androidx.compose.material_material-icons-core.version","name":"META-INF/androidx.compose.material_material-icons-core.version","size":6,"crc":-1469048103},{"key":"META-INF/androidx.compose.material_material-icons-extended.version","name":"META-INF/androidx.compose.material_material-icons-extended.version","size":6,"crc":-1469048103},{"key":"META-INF/androidx.compose.material_material-ripple.version","name":"META-INF/androidx.compose.material_material-ripple.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.material_material.version","name":"META-INF/androidx.compose.material_material.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.runtime_runtime-annotation.version","name":"META-INF/androidx.compose.runtime_runtime-annotation.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.runtime_runtime-retain.version","name":"META-INF/androidx.compose.runtime_runtime-retain.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.runtime_runtime-saveable.version","name":"META-INF/androidx.compose.runtime_runtime-saveable.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.runtime_runtime.version","name":"META-INF/androidx.compose.runtime_runtime.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-geometry.version","name":"META-INF/androidx.compose.ui_ui-geometry.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-graphics.version","name":"META-INF/androidx.compose.ui_ui-graphics.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-test-manifest.version","name":"META-INF/androidx.compose.ui_ui-test-manifest.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-text.version","name":"META-INF/androidx.compose.ui_ui-text.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-tooling-data.version","name":"META-INF/androidx.compose.ui_ui-tooling-data.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-tooling-preview.version","name":"META-INF/androidx.compose.ui_ui-tooling-preview.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-tooling.version","name":"META-INF/androidx.compose.ui_ui-tooling.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-unit.version","name":"META-INF/androidx.compose.ui_ui-unit.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui-util.version","name":"META-INF/androidx.compose.ui_ui-util.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.compose.ui_ui.version","name":"META-INF/androidx.compose.ui_ui.version","size":7,"crc":-1416098486},{"key":"META-INF/androidx.core_core-ktx.version","name":"META-INF/androidx.core_core-ktx.version","size":7,"crc":-358639726},{"key":"META-INF/androidx.core_core-viewtree.version","name":"META-INF/androidx.core_core-viewtree.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.core_core.version","name":"META-INF/androidx.core_core.version","size":7,"crc":-358639726},{"key":"META-INF/androidx.customview_customview-poolingcontainer.version","name":"META-INF/androidx.customview_customview-poolingcontainer.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.documentfile_documentfile.version","name":"META-INF/androidx.documentfile_documentfile.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.dynamicanimation_dynamicanimation.version","name":"META-INF/androidx.dynamicanimation_dynamicanimation.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.emoji2_emoji2.version","name":"META-INF/androidx.emoji2_emoji2.version","size":6,"crc":1914453823},{"key":"META-INF/androidx.graphics_graphics-path.version","name":"META-INF/androidx.graphics_graphics-path.version","size":6,"crc":-463103703},{"key":"META-INF/androidx.interpolator_interpolator.version","name":"META-INF/androidx.interpolator_interpolator.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.legacy_legacy-support-core-utils.version","name":"META-INF/androidx.legacy_legacy-support-core-utils.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version","name":"META-INF/androidx.lifecycle_lifecycle-livedata-core-ktx.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-livedata-core.version","name":"META-INF/androidx.lifecycle_lifecycle-livedata-core.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-livedata.version","name":"META-INF/androidx.lifecycle_lifecycle-livedata.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-process.version","name":"META-INF/androidx.lifecycle_lifecycle-process.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-runtime-compose.version","name":"META-INF/androidx.lifecycle_lifecycle-runtime-compose.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version","name":"META-INF/androidx.lifecycle_lifecycle-runtime-ktx.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-runtime.version","name":"META-INF/androidx.lifecycle_lifecycle-runtime.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version","name":"META-INF/androidx.lifecycle_lifecycle-viewmodel-ktx.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version","name":"META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.lifecycle_lifecycle-viewmodel.version","name":"META-INF/androidx.lifecycle_lifecycle-viewmodel.version","size":6,"crc":1653493832},{"key":"META-INF/androidx.loader_loader.version","name":"META-INF/androidx.loader_loader.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version","name":"META-INF/androidx.localbroadcastmanager_localbroadcastmanager.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.print_print.version","name":"META-INF/androidx.print_print.version","size":6,"crc":-42031000},{"key":"META-INF/androidx.profileinstaller_profileinstaller.version","name":"META-INF/androidx.profileinstaller_profileinstaller.version","size":6,"crc":1914453823},{"key":"META-INF/androidx.savedstate_savedstate-compose.version","name":"META-INF/androidx.savedstate_savedstate-compose.version","size":6,"crc":-570596092},{"key":"META-INF/androidx.savedstate_savedstate-ktx.version","name":"META-INF/androidx.savedstate_savedstate-ktx.version","size":6,"crc":-570596092},{"key":"META-INF/androidx.savedstate_savedstate.version","name":"META-INF/androidx.savedstate_savedstate.version","size":6,"crc":-570596092},{"key":"META-INF/androidx.startup_startup-runtime.version","name":"META-INF/androidx.startup_startup-runtime.version","size":6,"crc":1557790284},{"key":"META-INF/androidx.tracing_tracing.version","name":"META-INF/androidx.tracing_tracing.version","size":6,"crc":1467441379},{"key":"META-INF/androidx.transition_transition.version","name":"META-INF/androidx.transition_transition.version","size":6,"crc":-669648972},{"key":"META-INF/androidx.versionedparcelable_versionedparcelable.version","name":"META-INF/androidx.versionedparcelable_versionedparcelable.version","size":6,"crc":1557790284},{"key":"META-INF/androidx.window_window-core.version","name":"META-INF/androidx.window_window-core.version","size":6,"crc":-895461286},{"key":"META-INF/androidx.window_window.version","name":"META-INF/androidx.window_window.version","size":6,"crc":-895461286},{"key":"META-INF/androidx/annotation/annotation/LICENSE.txt","name":"META-INF/androidx/annotation/annotation/LICENSE.txt","size":10175,"crc":-106424664},{"key":"META-INF/androidx/collection/collection-ktx/LICENSE.txt","name":"META-INF/androidx/collection/collection-ktx/LICENSE.txt","size":10175,"crc":-106424664},{"key":"META-INF/androidx/collection/collection/LICENSE.txt","name":"META-INF/androidx/collection/collection/LICENSE.txt","size":10175,"crc":-106424664},{"key":"META-INF/androidx/lifecycle/lifecycle-common-java8/LICENSE.txt","name":"META-INF/androidx/lifecycle/lifecycle-common-java8/LICENSE.txt","size":10175,"crc":-106424664},{"key":"META-INF/androidx/lifecycle/lifecycle-common/LICENSE.txt","name":"META-INF/androidx/lifecycle/lifecycle-common/LICENSE.txt","size":10175,"crc":-106424664},{"key":"META-INF/kotlinx_coroutines_android.version","name":"META-INF/kotlinx_coroutines_android.version","size":5,"crc":485120441},{"key":"META-INF/kotlinx_coroutines_core.version","name":"META-INF/kotlinx_coroutines_core.version","size":5,"crc":485120441},{"key":"META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler","name":"META-INF/services/kotlinx.coroutines.CoroutineExceptionHandler","size":54,"crc":-1889973424},{"key":"META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory","name":"META-INF/services/kotlinx.coroutines.internal.MainDispatcherFactory","size":52,"crc":1268078975},{"key":"kotlin/annotation/annotation.kotlin_builtins","name":"kotlin/annotation/annotation.kotlin_builtins","size":1006,"crc":96078319},{"key":"kotlin/collections/collections.kotlin_builtins","name":"kotlin/collections/collections.kotlin_builtins","size":8308,"crc":327658458},{"key":"kotlin/concurrent/atomics/atomics.kotlin_builtins","name":"kotlin/concurrent/atomics/atomics.kotlin_builtins","size":2674,"crc":1252866643},{"key":"kotlin/coroutines/coroutines.kotlin_builtins","name":"kotlin/coroutines/coroutines.kotlin_builtins","size":137,"crc":1360136731},{"key":"kotlin/internal/internal.kotlin_builtins","name":"kotlin/internal/internal.kotlin_builtins","size":590,"crc":-739093672},{"key":"kotlin/kotlin.kotlin_builtins","name":"kotlin/kotlin.kotlin_builtins","size":29399,"crc":-2111613243},{"key":"kotlin/ranges/ranges.kotlin_builtins","name":"kotlin/ranges/ranges.kotlin_builtins","size":4184,"crc":1405855901},{"key":"kotlin/reflect/reflect.kotlin_builtins","name":"kotlin/reflect/reflect.kotlin_builtins","size":4827,"crc":-575400209}] |
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/.globals.work.bin +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/.strings.work.bin +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/_app.work.bin +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/buildfingerprint.bin +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/entry.bin +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/projectfingerprint.bin +0 −0
No line changes.
removed .gradle/configuration-cache/517de0b9-7c5b-4e39-811b-e830fd8bcefe/work.bin +0 −0
No line changes.
replaced .gradle/9.6.0/executionHistory/executionHistory.bin +0 −0
No line changes.
replaced .gradle/9.6.0/executionHistory/executionHistory.lock +0 −0
No line changes.
replaced .gradle/9.6.0/fileHashes/fileHashes.bin +0 −0
No line changes.
replaced .gradle/9.6.0/fileHashes/fileHashes.lock +0 −0
No line changes.
replaced .gradle/buildOutputCleanup/buildOutputCleanup.lock +0 −0
No line changes.
modified .gradle/configuration-cache/x746t3ik5ccr08zuw0if7al3/candidates.bin +1 −1
| 1 | - | 517de0b9-7c5b-4e39-811b-e830fd8bcef� |
|
| 1 | + | b06b1b2a-0dae-4545-b960-715b943d6c0� |
modified app/build/intermediates/manifest_merge_blame_file/debug/processDebugMainManifest/manifest-merger-blame-debug-report.txt +21 −21
| … | 22 unchanged lines |
||
| 23 | 23 | 15-->[androidx.core:core:1.16.0] /home/andymccall/.gradle/caches/9.6.0/transforms/2197676f31b9d2c5f64a9da7242aa6eb/transformed/core-1.16.0/AndroidManifest.xml:26:22-94 |
|
| 24 | 24 | 16 |
|
| 25 | 25 | 17 <application |
|
| 26 | - | 17-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:5:5-27:19 |
|
| 26 | + | 17-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:5:5-26:19 |
|
| 27 | 27 | 18 android:allowBackup="true" |
|
| 28 | - | 18-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:7:9-35 |
|
| 28 | + | 18-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:6:9-35 |
|
| 29 | 29 | 19 android:appComponentFactory="androidx.core.app.CoreComponentFactory" |
|
| 30 | 30 | 19-->[androidx.core:core:1.16.0] /home/andymccall/.gradle/caches/9.6.0/transforms/2197676f31b9d2c5f64a9da7242aa6eb/transformed/core-1.16.0/AndroidManifest.xml:28:18-86 |
|
| 31 | 31 | 20 android:dataExtractionRules="@xml/data_extraction_rules" |
|
| 32 | - | 20-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:8:9-65 |
|
| 32 | + | 20-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:7:9-65 |
|
| 33 | 33 | 21 android:debuggable="true" |
|
| 34 | 34 | 22 android:extractNativeLibs="true" |
|
| 35 | - | 22-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:6:9-41 |
|
| 35 | + | 22-->INJECTED |
|
| 36 | 36 | 23 android:fullBackupContent="@xml/backup_rules" |
|
| 37 | - | 23-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:9:9-54 |
|
| 37 | + | 23-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:8:9-54 |
|
| 38 | 38 | 24 android:icon="@mipmap/ic_launcher" |
|
| 39 | - | 24-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:10:9-43 |
|
| 39 | + | 24-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:9:9-43 |
|
| 40 | 40 | 25 android:label="@string/app_name" |
|
| 41 | - | 25-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:11:9-41 |
|
| 41 | + | 25-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:10:9-41 |
|
| 42 | 42 | 26 android:roundIcon="@mipmap/ic_launcher_round" |
|
| 43 | - | 26-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:12:9-54 |
|
| 43 | + | 26-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:11:9-54 |
|
| 44 | 44 | 27 android:supportsRtl="true" |
|
| 45 | - | 27-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:13:9-35 |
|
| 45 | + | 27-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:12:9-35 |
|
| 46 | 46 | 28 android:testOnly="true" |
|
| 47 | 47 | 29 android:theme="@style/Theme.OxygenHub" > |
|
| 48 | - | 29-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:14:9-47 |
|
| 48 | + | 29-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:13:9-47 |
|
| 49 | 49 | 30 <activity |
|
| 50 | - | 30-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:15:9-26:20 |
|
| 50 | + | 30-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:14:9-25:20 |
|
| 51 | 51 | 31 android:name="com.example.oxygenhub.MainActivity" |
|
| 52 | - | 31-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:16:13-41 |
|
| 52 | + | 31-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:15:13-41 |
|
| 53 | 53 | 32 android:exported="true" |
|
| 54 | - | 32-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:17:13-36 |
|
| 54 | + | 32-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:16:13-36 |
|
| 55 | 55 | 33 android:label="@string/app_name" |
|
| 56 | - | 33-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:18:13-45 |
|
| 56 | + | 33-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:17:13-45 |
|
| 57 | 57 | 34 android:theme="@style/Theme.OxygenHub" |
|
| 58 | - | 34-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:19:13-51 |
|
| 58 | + | 34-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:18:13-51 |
|
| 59 | 59 | 35 android:windowSoftInputMode="adjustResize" > |
|
| 60 | - | 35-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:20:13-55 |
|
| 60 | + | 35-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:19:13-55 |
|
| 61 | 61 | 36 <intent-filter> |
|
| 62 | - | 36-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:21:13-25:29 |
|
| 62 | + | 36-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:20:13-24:29 |
|
| 63 | 63 | 37 <action android:name="android.intent.action.MAIN" /> |
|
| 64 | - | 37-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:22:17-69 |
|
| 65 | - | 37-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:22:25-66 |
|
| 64 | + | 37-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:21:17-69 |
|
| 65 | + | 37-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:21:25-66 |
|
| 66 | 66 | 38 |
|
| 67 | 67 | 39 <category android:name="android.intent.category.LAUNCHER" /> |
|
| 68 | - | 39-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:24:17-77 |
|
| 69 | - | 39-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:24:27-74 |
|
| 68 | + | 39-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:23:17-77 |
|
| 69 | + | 39-->/home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:23:27-74 |
|
| 70 | 70 | 40 </intent-filter> |
|
| 71 | 71 | 41 </activity> |
|
| 72 | 72 | 42 <activity |
|
| … | 95 unchanged lines |
modified app/build/outputs/logs/manifest-merger-debug-report.txt +26 −25
| 1 | 1 | -- Merging decision tree log --- |
|
| 2 | 2 | manifest |
|
| 3 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-29:12 |
|
| 4 | - | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-29:12 |
|
| 5 | - | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-29:12 |
|
| 6 | - | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-29:12 |
|
| 3 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-28:12 |
|
| 4 | + | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-28:12 |
|
| 5 | + | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-28:12 |
|
| 6 | + | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:1-28:12 |
|
| 7 | 7 | MERGED from [androidx.compose.material3:material3-android:1.4.0] /home/andymccall/.gradle/caches/9.6.0/transforms/0af32a84e519aed562d3741488d9d893/transformed/material3/AndroidManifest.xml:17:1-22:12 |
|
| 8 | 8 | MERGED from [androidx.compose.material:material-android:1.10.4] /home/andymccall/.gradle/caches/9.6.0/transforms/b64e5ccac257d942624d443fc46017e6/transformed/material/AndroidManifest.xml:2:1-7:12 |
|
| 9 | 9 | MERGED from [androidx.compose.material:material-ripple-android:1.10.4] /home/andymccall/.gradle/caches/9.6.0/transforms/0d63c7cbd7b9a7719cb7078c8d48f8d9/transformed/material-ripple/AndroidManifest.xml:2:1-7:12 |
|
| … | 69 unchanged lines |
||
| 79 | 79 | xmlns:android |
|
| 80 | 80 | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:2:11-69 |
|
| 81 | 81 | application |
|
| 82 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:5:5-27:19 |
|
| 82 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:5:5-26:19 |
|
| 83 | + | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:5:5-26:19 |
|
| 83 | 84 | MERGED from [androidx.compose.ui:ui-tooling-android:1.10.4] /home/andymccall/.gradle/caches/9.6.0/transforms/7629ca5cf6992d4d9bd57362deb23084/transformed/ui-tooling/AndroidManifest.xml:22:5-26:19 |
|
| 84 | 85 | MERGED from [androidx.compose.ui:ui-tooling-android:1.10.4] /home/andymccall/.gradle/caches/9.6.0/transforms/7629ca5cf6992d4d9bd57362deb23084/transformed/ui-tooling/AndroidManifest.xml:22:5-26:19 |
|
| 85 | 86 | MERGED from [androidx.compose.ui:ui-test-manifest:1.10.4] /home/andymccall/.gradle/caches/9.6.0/transforms/6b022e559ac8a79cdd1719be30cc9be3/transformed/ui-test-manifest-1.10.4/AndroidManifest.xml:22:5-27:19 |
|
| … | 13 unchanged lines |
||
| 99 | 100 | MERGED from [androidx.startup:startup-runtime:1.1.1] /home/andymccall/.gradle/caches/9.6.0/transforms/26d209cd83d3d79dc88e7af45e26e59e/transformed/startup-runtime-1.1.1/AndroidManifest.xml:25:5-31:19 |
|
| 100 | 101 | MERGED from [androidx.startup:startup-runtime:1.1.1] /home/andymccall/.gradle/caches/9.6.0/transforms/26d209cd83d3d79dc88e7af45e26e59e/transformed/startup-runtime-1.1.1/AndroidManifest.xml:25:5-31:19 |
|
| 101 | 102 | android:extractNativeLibs |
|
| 102 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:6:9-41 |
|
| 103 | + | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml |
|
| 103 | 104 | android:appComponentFactory |
|
| 104 | 105 | ADDED from [androidx.core:core:1.16.0] /home/andymccall/.gradle/caches/9.6.0/transforms/2197676f31b9d2c5f64a9da7242aa6eb/transformed/core-1.16.0/AndroidManifest.xml:28:18-86 |
|
| 105 | 106 | android:supportsRtl |
|
| 106 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:13:9-35 |
|
| 107 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:12:9-35 |
|
| 107 | 108 | android:label |
|
| 108 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:11:9-41 |
|
| 109 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:10:9-41 |
|
| 109 | 110 | android:fullBackupContent |
|
| 110 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:9:9-54 |
|
| 111 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:8:9-54 |
|
| 111 | 112 | android:roundIcon |
|
| 112 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:12:9-54 |
|
| 113 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:11:9-54 |
|
| 113 | 114 | android:icon |
|
| 114 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:10:9-43 |
|
| 115 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:9:9-43 |
|
| 115 | 116 | android:allowBackup |
|
| 116 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:7:9-35 |
|
| 117 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:6:9-35 |
|
| 117 | 118 | android:theme |
|
| 118 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:14:9-47 |
|
| 119 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:13:9-47 |
|
| 119 | 120 | android:dataExtractionRules |
|
| 120 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:8:9-65 |
|
| 121 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:7:9-65 |
|
| 121 | 122 | activity#com.example.oxygenhub.MainActivity |
|
| 122 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:15:9-26:20 |
|
| 123 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:14:9-25:20 |
|
| 123 | 124 | android:label |
|
| 124 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:18:13-45 |
|
| 125 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:17:13-45 |
|
| 125 | 126 | android:windowSoftInputMode |
|
| 126 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:20:13-55 |
|
| 127 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:19:13-55 |
|
| 127 | 128 | android:exported |
|
| 128 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:17:13-36 |
|
| 129 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:16:13-36 |
|
| 129 | 130 | android:theme |
|
| 130 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:19:13-51 |
|
| 131 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:18:13-51 |
|
| 131 | 132 | android:name |
|
| 132 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:16:13-41 |
|
| 133 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:15:13-41 |
|
| 133 | 134 | intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER |
|
| 134 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:21:13-25:29 |
|
| 135 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:20:13-24:29 |
|
| 135 | 136 | action#android.intent.action.MAIN |
|
| 136 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:22:17-69 |
|
| 137 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:21:17-69 |
|
| 137 | 138 | android:name |
|
| 138 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:22:25-66 |
|
| 139 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:21:25-66 |
|
| 139 | 140 | category#android.intent.category.LAUNCHER |
|
| 140 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:24:17-77 |
|
| 141 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:23:17-77 |
|
| 141 | 142 | android:name |
|
| 142 | - | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:24:27-74 |
|
| 143 | + | ADDED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml:23:27-74 |
|
| 143 | 144 | uses-sdk |
|
| 144 | 145 | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml reason: use-sdk injection requested |
|
| 145 | 146 | INJECTED from /home/andymccall/development/oxygenhub-android/app/src/main/AndroidManifest.xml |
|
| … | 250 unchanged lines |
modified app/src/main/java/com/example/oxygenhub/ui/LoginScreen.kt +37 −7
| … | 14 unchanged lines |
||
| 15 | 15 | import androidx.compose.ui.unit.dp |
|
| 16 | 16 | import androidx.compose.ui.unit.sp |
|
| 17 | 17 | ||
| 18 | + | import androidx.compose.foundation.Image |
|
| 19 | + | import androidx.compose.ui.res.painterResource |
|
| 20 | + | import com.example.oxygenhub.R |
|
| 21 | + | ||
| 18 | 22 | @Composable |
|
| 19 | 23 | fun LoginScreen(onLoginSuccess: () -> Unit) { |
|
| 20 | 24 | var username by remember { mutableStateOf("") } |
|
| 21 | 25 | var password by remember { mutableStateOf("") } |
|
| 22 | 26 | var serverUrl by remember { mutableStateOf("https://oxygenhub.io") } |
|
| 27 | + | var twoFactorCode by remember { mutableStateOf("") } |
|
| 28 | + | var is2FaRequired by remember { mutableStateOf(false) } |
|
| 23 | 29 | var isLoading by remember { mutableStateOf(false) } |
|
| 24 | 30 | ||
| 25 | 31 | Column( |
|
| … | 3 unchanged lines |
||
| 29 | 35 | horizontalAlignment = Alignment.CenterHorizontally, |
|
| 30 | 36 | verticalArrangement = Arrangement.Center |
|
| 31 | 37 | ) { |
|
| 38 | + | Image( |
|
| 39 | + | painter = painterResource(id = R.drawable.mark), |
|
| 40 | + | contentDescription = "OxygenHub Logo", |
|
| 41 | + | modifier = Modifier.size(64.dp) |
|
| 42 | + | ) |
|
| 43 | + | Spacer(modifier = Modifier.height(16.dp)) |
|
| 32 | 44 | Text( |
|
| 33 | 45 | text = "OxygenHub", |
|
| 34 | 46 | fontSize = 36.sp, |
|
| … | 41 unchanged lines |
||
| 76 | 88 | singleLine = true |
|
| 77 | 89 | ) |
|
| 78 | 90 | ||
| 79 | - | Spacer(modifier = Modifier.height(32.dp)) |
|
| 91 | + | Spacer(modifier = Modifier.height(16.dp)) |
|
| 92 | + | ||
| 93 | + | if (is2FaRequired) { |
|
| 94 | + | OutlinedTextField( |
|
| 95 | + | value = twoFactorCode, |
|
| 96 | + | onValueChange = { twoFactorCode = it }, |
|
| 97 | + | label = { Text("2FA Authenticator Code") }, |
|
| 98 | + | keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number), |
|
| 99 | + | modifier = Modifier.fillMaxWidth(), |
|
| 100 | + | singleLine = true |
|
| 101 | + | ) |
|
| 102 | + | Spacer(modifier = Modifier.height(32.dp)) |
|
| 103 | + | } else { |
|
| 104 | + | Spacer(modifier = Modifier.height(16.dp)) |
|
| 105 | + | } |
|
| 80 | 106 | ||
| 81 | 107 | Button( |
|
| 82 | 108 | onClick = { |
|
| 83 | - | isLoading = true |
|
| 84 | - | // TODO: Wire this up to rust-core to authenticate with the API |
|
| 85 | - | // For now, we simulate a successful login immediately |
|
| 86 | - | onLoginSuccess() |
|
| 109 | + | if (!is2FaRequired) { |
|
| 110 | + | // Step 1: Simulate checking credentials and discovering 2FA is needed |
|
| 111 | + | is2FaRequired = true |
|
| 112 | + | } else { |
|
| 113 | + | // Step 2: Simulate verifying the 2FA code and logging in |
|
| 114 | + | isLoading = true |
|
| 115 | + | onLoginSuccess() |
|
| 116 | + | } |
|
| 87 | 117 | }, |
|
| 88 | 118 | modifier = Modifier |
|
| 89 | 119 | .fillMaxWidth() |
|
| 90 | 120 | .height(50.dp), |
|
| 91 | - | enabled = username.isNotBlank() && password.isNotBlank() |
|
| 121 | + | enabled = username.isNotBlank() && password.isNotBlank() && (!is2FaRequired || twoFactorCode.isNotBlank()) |
|
| 92 | 122 | ) { |
|
| 93 | 123 | if (isLoading) { |
|
| 94 | 124 | CircularProgressIndicator( |
|
| … | 1 unchanged lines |
||
| 96 | 126 | color = MaterialTheme.colorScheme.onPrimary |
|
| 97 | 127 | ) |
|
| 98 | 128 | } else { |
|
| 99 | - | Text("Log In", fontSize = 16.sp) |
|
| 129 | + | Text(if (is2FaRequired) "Verify & Log In" else "Log In", fontSize = 16.sp) |
|
| 100 | 130 | } |
|
| 101 | 131 | } |
|
| 102 | 132 | } |
|
| … | 1 unchanged lines |
modified app/src/main/java/com/example/oxygenhub/ui/MainScreen.kt +16 −1
| … | 12 unchanged lines |
||
| 13 | 13 | import androidx.compose.ui.unit.dp |
|
| 14 | 14 | import uniffi.rust_core.oxygenGreeting |
|
| 15 | 15 | ||
| 16 | + | import androidx.compose.foundation.Image |
|
| 17 | + | import androidx.compose.ui.res.painterResource |
|
| 18 | + | import androidx.compose.ui.Alignment |
|
| 19 | + | import com.example.oxygenhub.R |
|
| 20 | + | ||
| 16 | 21 | @OptIn(ExperimentalMaterial3Api::class) |
|
| 17 | 22 | @Composable |
|
| 18 | 23 | fun MainScreen() { |
|
| … | 4 unchanged lines |
||
| 23 | 28 | Scaffold( |
|
| 24 | 29 | topBar = { |
|
| 25 | 30 | TopAppBar( |
|
| 26 | - | title = { Text("OxygenHub", fontWeight = FontWeight.Bold) }, |
|
| 31 | + | title = { |
|
| 32 | + | Row(verticalAlignment = Alignment.CenterVertically) { |
|
| 33 | + | Image( |
|
| 34 | + | painter = painterResource(id = R.drawable.mark), |
|
| 35 | + | contentDescription = "OxygenHub Logo", |
|
| 36 | + | modifier = Modifier.size(24.dp) |
|
| 37 | + | ) |
|
| 38 | + | Spacer(modifier = Modifier.width(8.dp)) |
|
| 39 | + | Text("OxygenHub", fontWeight = FontWeight.Bold) |
|
| 40 | + | } |
|
| 41 | + | }, |
|
| 27 | 42 | colors = TopAppBarDefaults.topAppBarColors( |
|
| 28 | 43 | containerColor = MaterialTheme.colorScheme.primaryContainer, |
|
| 29 | 44 | titleContentColor = MaterialTheme.colorScheme.onPrimaryContainer |
|
| … | 77 unchanged lines |