Files
AndroidJava/GraffitiXR/docs/FILE_DESCRIPTIONS.md
T
coco 7846a45f2c a
2026-07-03 15:47:27 +08:00

10 KiB

File Descriptions

This file provides a brief but thorough description of what each non-ignored file in the project is supposed to do.

.gitignore

Specifies intentionally untracked files to ignore.

AGENTS.md

Provides guidance for AI agents working with the codebase.

BLUEPRINT.md

A technical specification document for the project.

README.md

The main README for the project.

TODO.md

A roadmap and list of future work for the project.

app/CMakeLists.txt

CMake script for building the native C++ code in the app module.

app/build.gradle.kts

Gradle build script for the main application module.

app/libs/vuforia.aar

The Vuforia Augmented Reality library.

app/proguard-rules.pro

Configuration for ProGuard to shrink, obfuscate, and optimize the app.

app/src/main/AndroidManifest.xml

The Android application manifest file.

app/src/main/assets/Astronaut.jpg

An image asset of an astronaut.

app/src/main/assets/Lander.jpg

An image asset of a lander.

app/src/main/assets/shaders/fragment_shader.glsl

The fragment shader for OpenGL rendering.

app/src/main/assets/shaders/vertex_shader.glsl

The vertex shader for OpenGL rendering.

app/src/main/cpp/GraffitiJNI.cpp

The JNI implementation for the native functions.

app/src/main/ic_launcher-playstore.png

The application icon for the Google Play Store.

app/src/main/java/com/hereliesaz/graffitixr/ArState.kt

Defines the state for the AR components of the application.

app/src/main/java/com/hereliesaz/graffitixr/MainActivity.kt

The main activity of the application.

app/src/main/java/com/hereliesaz/graffitixr/MainScreen.kt

The main Jetpack Compose screen for the application.

app/src/main/java/com/hereliesaz/graffitixr/MainViewModel.kt

The main ViewModel for the application, handling business logic and state.

app/src/main/java/com/hereliesaz/graffitixr/MainViewModelFactory.kt

A factory for creating instances of the MainViewModel.

app/src/main/java/com/hereliesaz/graffitixr/RotationAxis.kt

Defines the possible axes of rotation for gestures.

app/src/main/java/com/hereliesaz/graffitixr/UiState.kt

Defines the UI state for the application.

app/src/main/java/com/hereliesaz/graffitixr/VuforiaJNI.kt

The JNI bridge for communicating with the native Vuforia C++ code.

app/src/main/java/com/hereliesaz/graffitixr/VuforiaManager.kt

Manages the lifecycle and state of the Vuforia engine.

app/src/main/java/com/hereliesaz/graffitixr/composables/ImageTraceScreen.kt

A composable screen for tracing images in non-AR mode.

app/src/main/java/com/hereliesaz/graffitixr/composables/MockupScreen.kt

A composable screen for creating mockups on static images.

app/src/main/java/com/hereliesaz/graffitixr/composables/ProgressIndicator.kt

A composable for displaying a progress indicator.

app/src/main/java/com/hereliesaz/graffitixr/composables/RotationAxisFeedback.kt

A composable to provide visual feedback for the current rotation axis.

app/src/main/java/com/hereliesaz/graffitixr/composables/SettingsScreen.kt

A composable screen for application settings.

app/src/main/java/com/hereliesaz/graffitixr/composables/TapFeedbackEffect.kt

A composable that provides visual feedback for tap gestures.

app/src/main/java/com/hereliesaz/graffitixr/composables/TitleOverlay.kt

A composable for overlaying a title on the screen.

app/src/main/java/com/hereliesaz/graffitixr/composables/VuforiaCameraScreen.kt

A composable that displays the camera feed from Vuforia.

app/src/main/java/com/hereliesaz/graffitixr/composables/VuforiaRenderer.kt

A composable responsible for rendering the Vuforia camera view.

app/src/main/java/com/hereliesaz/graffitixr/data/ProjectData.kt

A data class representing the state of a user's project.

app/src/main/java/com/hereliesaz/graffitixr/data/Serializers.kt

Custom serializers for data classes used in the application.

app/src/main/java/com/hereliesaz/graffitixr/dialogs/AdjustmentSliderDialog.kt

A dialog for adjusting image properties with a slider.

app/src/main/java/com/hereliesaz/graffitixr/dialogs/ColorBalanceDialog.kt

A dialog for adjusting the color balance of an image.

app/src/main/java/com/hereliesaz/graffitixr/dialogs/DoubleTapHintDialog.kt

A dialog to hint to the user to double tap.

app/src/main/java/com/hereliesaz/graffitixr/dialogs/OnboardingDialog.kt

A dialog for the application's onboarding flow.

app/src/main/java/com/hereliesaz/graffitixr/ui/theme/Color.kt

Defines the color palette for the application's theme.

app/src/main/java/com/hereliesaz/graffitixr/ui/theme/Theme.kt

Defines the overall theme for the application.

app/src/main/java/com/hereliesaz/graffitixr/ui/theme/Typography.kt

Defines the typography for the application's theme.

app/src/main/java/com/hereliesaz/graffitixr/utils/Capture.kt

Utility functions for capturing the screen.

app/src/main/java/com/hereliesaz/graffitixr/utils/ImageUtils.kt

Utility functions for working with images.

app/src/main/java/com/hereliesaz/graffitixr/utils/MultiGestureDetector.kt

A custom gesture detector for handling multiple gestures simultaneously.

app/src/main/java/com/hereliesaz/graffitixr/utils/OnboardingManager.kt

Manages the application's onboarding process.

app/src/main/java/com/hereliesaz/graffitixr/utils/Parcelers.kt

Custom parcelers for data classes used in the application.

app/src/main/java/com/hereliesaz/graffitixr/utils/RotationGestureDetector.kt

A custom gesture detector for handling rotation gestures.

app/src/main/java/com/hereliesaz/graffitixr/utils/Texture.kt

Utility functions for working with OpenGL textures.

app/src/main/java/com/hereliesaz/graffitixr/utils/Utils.kt

General utility functions for the application.

app/src/main/res/drawable/graffitixr_logo.webp

The logo for the application.

app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml

The adaptive launcher icon for the application.

app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml

The round adaptive launcher icon for the application.

app/src/main/res/mipmap-hdpi/ic_launcher.webp

The high-density launcher icon.

app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp

The foreground for the high-density launcher icon.

app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp

The monochrome high-density launcher icon.

app/src/main/res/mipmap-hdpi/ic_launcher_round.webp

The high-density round launcher icon.

app/src/main/res/mipmap-mdpi/ic_launcher.webp

The medium-density launcher icon.

app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp

The foreground for the medium-density launcher icon.

app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp

The monochrome medium-density launcher icon.

app/src/main/res/mipmap-mdpi/ic_launcher_round.webp

The medium-density round launcher icon.

app/src/main/res/mipmap-xhdpi/ic_launcher.webp

The extra-high-density launcher icon.

app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp

The foreground for the extra-high-density launcher icon.

app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp

The monochrome extra-high-density launcher icon.

app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp

The extra-high-density round launcher icon.

app/src/main/res/mipmap-xxhdpi/ic_launcher.webp

The extra-extra-high-density launcher icon.

app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp

The foreground for the extra-extra-high-density launcher icon.

app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp

The monochrome extra-extra-high-density launcher icon.

app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp

The extra-extra-high-density round launcher icon.

app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp

The extra-extra-extra-high-density launcher icon.

app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp

The foreground for the extra-extra-extra-high-density launcher icon.

app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp

The monochrome extra-extra-extra-high-density launcher icon.

app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp

The extra-extra-extra-high-density round launcher icon.

app/src/main/res/values/ic_launcher_background.xml

The background color for the launcher icon.

app/src/main/res/values/strings.xml

The string resources for the application.

app/src/main/res/values/themes.xml

The theme resources for the application.

app/src/main/res/xml/backup_rules.xml

The backup rules for the application.

app/src/main/res/xml/data_extraction_rules.xml

The data extraction rules for the application.

app/src/main/res/xml/provider_paths.xml

The provider paths for the application.

build.gradle.kts

The root Gradle build script for the project.

docs/FILE_DESCRIPTIONS.md

This file.

gradle.properties

Project-wide Gradle settings.

gradle/libs.versions.toml

The Gradle version catalog for managing dependencies.

gradle/wrapper/gradle-wrapper.jar

The Gradle wrapper JAR file.

gradle/wrapper/gradle-wrapper.properties

The Gradle wrapper properties file.

gradlew

The Gradle wrapper script for Linux and macOS.

gradlew.bat

The Gradle wrapper script for Windows.

settings.gradle.kts

The Gradle settings script for the project.

setup_ndk.sh

A script for setting up the Android NDK.

vuforia.zip

A zip file containing the Vuforia SDK.

vuforia/CMakeLists.txt

CMake script for building the native C++ code in the vuforia module.

vuforia/build.gradle.kts

Gradle build script for the vuforia module.

vuforia/build

This directory and its contents are build artifacts for the vuforia module.

vuforia/licenses

This directory and its contents are the Vuforia license.

vuforia/samples

This directory and its contents are sample code for the Vuforia SDK.

vuforia/sdk

This directory and its contents are the Vuforia SDK.