{
"schema_version": "1.0.0",
"generated_at": "2026-03-30T08:00:00+00:00",
"analyzed_activity": "MainActivity",
"project": {
"root_path": "/workspace/MyGalleryApp",
"name": "MyGalleryApp",
"package_name": "com.example.gallery",
"manifest_path": "app/src/main/AndroidManifest.xml"
},
"activities": [
{
"activity_name": "MainActivity",
"qualified_activity_name": "com.example.gallery.MainActivity",
"source_file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"manifest": {
"exported": "true",
"theme": "@style/Theme.Gallery",
"parent_activity": null,
"launch_mode": null,
"intent_filters": [
{
"actions": ["android.intent.action.MAIN"],
"categories": ["android.intent.category.LAUNCHER"],
"data": []
}
],
"location": {
"file": "app/src/main/AndroidManifest.xml",
"line": 18
}
},
"layouts": [
{
"layout_name": "activity_main",
"layout_file": "app/src/main/res/layout/activity_main.xml",
"binding_type": "view_binding",
"evidence": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 22
}
}
],
"menus": [
{
"menu_name": "main_menu",
"menu_file": "app/src/main/res/menu/main_menu.xml",
"evidence": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 48
}
}
],
"hosted_fragments": ["AlbumListFragment"],
"functional_evidence": [
{
"kind": "manifest_intent_action",
"value": "android.intent.action.MAIN",
"source": {
"file": "app/src/main/AndroidManifest.xml",
"line": 20
}
},
{
"kind": "layout",
"value": "activity_main",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 22
}
},
{
"kind": "page_entry",
"value": "loadAlbums",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 64
}
}
],
"ui_components": [
{
"activity": "MainActivity",
"component_id": "fab_open_camera",
"view_type": "FloatingActionButton",
"component_label": "Open camera",
"resource_kind": "view",
"source_location": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 37
},
"interaction_type": "click",
"handler_entry": {
"owner": "MainActivity",
"method_name": "onCreate",
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 20
},
"navigation_target": {
"target_type": "external",
"target": "N/A (external)",
"candidates": [
{
"type": "external",
"target": "N/A (external)"
}
]
},
"api_dependencies": [
{
"api_type": "custom_method",
"declaration": "fun openCamera()",
"owner": "MainActivity",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 82
},
"evidence_chain": [
{
"from": "MainActivity.onCreate",
"to": "MainActivity.openCamera",
"call": "openCamera(",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 37
}
}
]
},
{
"api_type": "system_intent",
"declaration": "android.content.Intent(...)",
"owner": "android",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 84
},
"evidence_chain": [
{
"from": "MainActivity.onCreate",
"to": "MainActivity.openCamera",
"call": "openCamera(",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 37
}
}
]
}
],
"evidence": [
{
"kind": "handler_method",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 20
}
},
{
"kind": "layout_component",
"source": {
"file": "app/src/main/res/layout/activity_main.xml",
"line": 45
}
}
],
"sort_order": 4
},
{
"activity": "MainActivity",
"component_id": "action_settings",
"view_type": "MenuItem",
"component_label": "Settings",
"resource_kind": "menu_item",
"source_location": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 54
},
"interaction_type": "menu_select",
"handler_entry": {
"owner": "MainActivity",
"method_name": "onOptionsItemSelected",
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 50
},
"navigation_target": {
"target_type": "activity",
"target": "SettingsActivity",
"candidates": [
{
"type": "activity",
"target": "SettingsActivity"
}
]
},
"api_dependencies": [
{
"api_type": "system_intent",
"declaration": "android.app.Activity.startActivity(...)",
"owner": "android",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 56
},
"evidence_chain": []
}
],
"evidence": [
{
"kind": "handler_method",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 50
}
}
],
"sort_order": 80001
}
],
"page_data_loading_entries": [
{
"activity": "MainActivity",
"entry_name": "loadAlbums",
"entry_type": "data_loading",
"purpose": "Load or refresh data for the page",
"source_location": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 64
},
"api_dependencies": [
{
"api_type": "repository_method",
"declaration": "suspend fun getAlbumDirectories()",
"owner": "AlbumRepository",
"source": {
"file": "app/src/main/java/com/example/gallery/data/AlbumRepository.kt",
"line": 14
},
"evidence_chain": [
{
"from": "MainActivity.loadAlbums",
"to": "AlbumRepository.getAlbumDirectories",
"call": "repository.getAlbumDirectories(",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 66
}
}
]
},
{
"api_type": "content_resolver",
"declaration": "android.content.ContentResolver.query(...)",
"owner": "android",
"source": {
"file": "app/src/main/java/com/example/gallery/data/AlbumRepository.kt",
"line": 20
},
"evidence_chain": [
{
"from": "MainActivity.loadAlbums",
"to": "AlbumRepository.getAlbumDirectories",
"call": "repository.getAlbumDirectories(",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 66
}
}
]
},
{
"api_type": "mediastore_query",
"declaration": "android.provider.MediaStore",
"owner": "android",
"source": {
"file": "app/src/main/java/com/example/gallery/data/AlbumRepository.kt",
"line": 18
},
"evidence_chain": [
{
"from": "MainActivity.loadAlbums",
"to": "AlbumRepository.getAlbumDirectories",
"call": "repository.getAlbumDirectories(",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 66
}
}
]
}
],
"evidence": [
{
"kind": "entry_method",
"source": {
"file": "app/src/main/java/com/example/gallery/MainActivity.kt",
"line": 64
}
}
]
}
],
"fragment_analyses": []
}
]
}