{
  "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": []
    }
  ]
}