This commit is contained in:
Forrest 2026-07-29 14:14:18 -04:00
commit d205277cdd
182 changed files with 22978 additions and 0 deletions

45
.gitignore vendored Normal file
View file

@ -0,0 +1,45 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.build/
.buildlog/
.history
.svn/
.swiftpm/
migrate_working_dir/
# IntelliJ related
*.iml
*.ipr
*.iws
.idea/
# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/
# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/
/coverage/
# Symbolication related
app.*.symbols
# Obfuscation related
app.*.map.json
# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release

36
.metadata Normal file
View file

@ -0,0 +1,36 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.
version:
revision: "058e0af2c2b57e369d905a03ac9748b0ebf543c6"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
base_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
- platform: android
create_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
base_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
- platform: ios
create_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
base_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
- platform: linux
create_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
base_revision: 058e0af2c2b57e369d905a03ac9748b0ebf543c6
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

17
README.md Normal file
View file

@ -0,0 +1,17 @@
# ratune_mobile
A new Flutter project.
## Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter)
- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.

28
analysis_options.yaml Normal file
View file

@ -0,0 +1,28 @@
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.
# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml
linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
# or a specific dart file by using the `// ignore: name_of_lint` and
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
# producing the lint.
rules:
# avoid_print: false # Uncomment to disable the `avoid_print` rule
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options

14
android/.gitignore vendored Normal file
View file

@ -0,0 +1,14 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
.cxx/
# Remember to never publicly share your keystore.
# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks

View file

@ -0,0 +1,45 @@
plugins {
id("com.android.application")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
}
android {
namespace = "com.conversionpath.ratune_mobile"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.conversionpath.ratune_mobile"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.getByName("debug")
}
}
}
kotlin {
compilerOptions {
jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
}
flutter {
source = "../.."
}

View file

@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View file

@ -0,0 +1,67 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Streaming audio + background/lock-screen playback (just_audio_background). -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"/>
<application
android:label="ratune_mobile"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- just_audio_background: media session service + hardware media buttons. -->
<service
android:name="com.ryanheise.audioservice.AudioService"
android:foregroundServiceType="mediaPlayback"
android:exported="true">
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>
</service>
<receiver
android:name="com.ryanheise.audioservice.MediaButtonReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
</queries>
</manifest>

View file

@ -0,0 +1,8 @@
package com.conversionpath.ratune_mobile
import com.ryanheise.audioservice.AudioServiceActivity
// just_audio_background / audio_service require the host Activity to extend
// AudioServiceActivity (which provides the correct FlutterEngine to the media
// session plugin) instead of the default FlutterActivity.
class MainActivity : AudioServiceActivity()

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>

View file

@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

24
android/build.gradle.kts Normal file
View file

@ -0,0 +1,24 @@
allprojects {
repositories {
google()
mavenCentral()
}
}
val newBuildDir: Directory =
rootProject.layout.buildDirectory
.dir("../../build")
.get()
rootProject.layout.buildDirectory.value(newBuildDir)
subprojects {
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
project.layout.buildDirectory.value(newSubprojectBuildDir)
}
subprojects {
project.evaluationDependsOn(":app")
}
tasks.register<Delete>("clean") {
delete(rootProject.layout.buildDirectory)
}

View file

@ -0,0 +1,6 @@
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
# This newDsl flag was added by the Flutter template
android.newDsl=false
# This builtInKotlin flag was added by the Flutter template
android.builtInKotlin=false

View file

@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip

View file

@ -0,0 +1,26 @@
pluginManagement {
val flutterSdkPath =
run {
val properties = java.util.Properties()
file("local.properties").inputStream().use { properties.load(it) }
val flutterSdkPath = properties.getProperty("flutter.sdk")
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
flutterSdkPath
}
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "9.0.1" apply false
id("org.jetbrains.kotlin.android") version "2.3.20" apply false
}
include(":app")

View file

@ -0,0 +1 @@
{"0": "Playback Engine & App Entry", "1": "Play History & Rediscovery", "2": "Browser Screen & UI Widgets", "3": "Subsonic API Client", "4": "Subsonic Data Models", "5": "Connection & State Providers", "6": "Accent Theming & Palette", "7": "Linux Desktop Runner", "8": "Favorites State", "9": "iOS App Runner", "10": "Credentials & Secure Storage", "11": "Design Tokens", "12": "Connect / Login Sheet", "13": "Build Config & Dependencies", "14": "iOS App Icons", "15": "Now Playing Screen", "16": "Screen Providers & Consumers", "17": "App Shell & Navigation", "18": "JSON Parsing Helpers", "19": "Search Screen", "20": "Favorites Screen", "21": "Home Screen", "22": "Stateful Screen Widgets", "23": "Android Launcher Icons", "24": "Widget Tests", "25": "Favorite Rating Controls", "26": "Android Main Activity", "27": "iOS Launch Images", "28": "Android App Gradle", "29": "Android Root Gradle", "30": "Android Gradle Settings", "31": "Launch Screen Readme", "32": "iOS Bridging Header"}

View file

@ -0,0 +1 @@
/home/troglodyte/.local/share/uv/tools/graphifyy/bin/python

View file

@ -0,0 +1 @@
/home/troglodyte/Troglodyte-Chamber/Dev/ratune_mobile

View file

@ -0,0 +1,207 @@
# Graph Report - . (2026-07-29)
## Corpus Check
- Corpus is ~12,356 words - fits in a single context window. You may not need a graph.
## Summary
- 522 nodes · 678 edges · 33 communities (31 shown, 2 thin omitted)
- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 35 edges (avg confidence: 0.92)
- Token cost: 75,479 input · 0 output
## Community Hubs (Navigation)
- Playback Engine & App Entry
- Play History & Rediscovery
- Browser Screen & UI Widgets
- Subsonic API Client
- Subsonic Data Models
- Connection & State Providers
- Accent Theming & Palette
- Linux Desktop Runner
- Favorites State
- iOS App Runner
- Credentials & Secure Storage
- Design Tokens
- Connect / Login Sheet
- Build Config & Dependencies
- iOS App Icons
- Now Playing Screen
- Screen Providers & Consumers
- App Shell & Navigation
- JSON Parsing Helpers
- Search Screen
- Favorites Screen
- Home Screen
- Stateful Screen Widgets
- Android Launcher Icons
- Widget Tests
- Favorite Rating Controls
- Android Main Activity
- iOS Launch Images
- Launch Screen Readme
## God Nodes (most connected - your core abstractions)
1. `App Icon 1024x1024 (Flutter logo master)` - 14 edges
2. `ratune_mobile (Flutter package)` - 13 edges
3. `subsonicClientProvider` - 8 edges
4. `build` - 7 edges
5. `HomeScreen` - 7 edges
6. `build` - 7 edges
7. `connectionProvider` - 7 edges
8. `playbackProvider` - 7 edges
9. `_MyApplication` - 7 edges
10. `AppDelegate` - 5 edges
## Surprising Connections (you probably didn't know these)
- `Dart Analyzer Configuration` --conceptually_related_to--> `ratune_mobile (Flutter package)` [INFERRED]
analysis_options.yaml → pubspec.yaml
- `ratune_mobile README` --references--> `ratune_mobile (Flutter package)` [INFERRED]
README.md → pubspec.yaml
- `Linux Top-Level CMake Build` --conceptually_related_to--> `ratune_mobile (Flutter package)` [INFERRED]
linux/CMakeLists.txt → pubspec.yaml
- `App Icon 20x20 @1x` --semantically_similar_to--> `App Icon 1024x1024 (Flutter logo master)` [INFERRED] [semantically similar]
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png → ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
- `App Icon 20x20 @2x` --semantically_similar_to--> `App Icon 1024x1024 (Flutter logo master)` [INFERRED] [semantically similar]
ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png → ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
## Import Cycles
- None detected.
## Hyperedges (group relationships)
- **Linux Flutter CMake Build Pipeline** — linux_cmakelists_runner, linux_flutter_cmakelists_flutter, linux_runner_cmakelists_runner [EXTRACTED 1.00]
- **Audio Playback and Theming Stack** — pubspec_just_audio, pubspec_just_audio_background, pubspec_palette_generator [INFERRED 0.65]
- **Android Launcher Icon Set (Flutter logo)** — android_app_src_main_res_mipmap_hdpi_ic_launcher_icon, android_app_src_main_res_mipmap_mdpi_ic_launcher_icon, android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon, android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon, android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon [INFERRED 0.85]
- **iOS AppIcon Set (Flutter logo)** — ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_1x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_2x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_3x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_1x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_2x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_3x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_1x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_2x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_3x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_2x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_3x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_1x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_2x_icon, ios_runner_assets_xcassets_appicon_appiconset_icon_app_83_5x83_5_2x_icon [INFERRED 0.85]
- **iOS Launch Image Set** — ios_runner_assets_xcassets_launchimage_imageset_launchimage_image, ios_runner_assets_xcassets_launchimage_imageset_launchimage_2x_image, ios_runner_assets_xcassets_launchimage_imageset_launchimage_3x_image [INFERRED 0.85]
## Communities (33 total, 2 thin omitted)
### Community 0 - "Playback Engine & App Entry"
Cohesion: 0.05
Nodes (41): AudioPlayer?, dart:io, Duration, int?, build, main, RatuneApp, _audioSupported (+33 more)
### Community 1 - "Play History & Rediscovery"
Cohesion: 0.05
Nodes (41): dart:async, DateTime, File?, album, albumId, artist, artistId, byArtist (+33 more)
### Community 2 - "Browser Screen & UI Widgets"
Cohesion: 0.06
Nodes (40): EdgeInsetsGeometry, favorites_screen.dart, IconData, _Action, BrowseRow, _Centered, child, _DetailScaffold (+32 more)
### Community 3 - "Subsonic API Client"
Cohesion: 0.05
Nodes (40): dart:convert, dart:math, Dio, Exception, apiVersion, authErrorCode, _authParams, baseUrl (+32 more)
### Community 4 - "Subsonic Data Models"
Cohesion: 0.06
Nodes (33): json_helpers.dart, Album, albumCount, albumId, albums, all, Artist, artistId (+25 more)
### Community 5 - "Connection & State Providers"
Cohesion: 0.07
Nodes (28): bool get, favorites.dart, ../history/play_history.dart, client, connect, ConnectionController, ConnectionState, ConnStatus (+20 more)
### Community 6 - "Accent Theming & Palette"
Cohesion: 0.07
Nodes (25): Color, AccentNotifier, _ensureReadable, extractAccent, hsl, lightness, palette, picked (+17 more)
### Community 7 - "Linux Desktop Runner"
Cohesion: 0.09
Nodes (22): FlPluginRegistry, FlView, GApplication, gboolean, gchar, GObject, GtkApplication, fl_register_plugins() (+14 more)
### Community 8 - "Favorites State"
Cohesion: 0.10
Nodes (20): HistoryController, albumIds, artistIds, clear, copyWith, FavoritesController, FavoritesState, hydrate (+12 more)
### Community 9 - "iOS App Runner"
Cohesion: 0.11
Nodes (14): Any, Bool, Flutter, FlutterAppDelegate, FlutterImplicitEngineBridge, FlutterImplicitEngineDelegate, FlutterSceneDelegate, AppDelegate (+6 more)
### Community 10 - "Credentials & Secure Storage"
Cohesion: 0.11
Nodes (18): FlutterSecureStorage, alias, clear, CredentialStore, display, _kAlias, _kPass, _kUrl (+10 more)
### Community 11 - "Design Tokens"
Cohesion: 0.11
Nodes (17): _, accentDefault, background, border, borderActive, dimmed, foreground, lg (+9 more)
### Community 12 - "Connect / Login Sheet"
Cohesion: 0.15
Nodes (16): build, _busy, _connect, _ConnectSheet, _ConnectSheetState, createState, dispose, _field (+8 more)
### Community 13 - "Build Config & Dependencies"
Cohesion: 0.16
Nodes (16): Dart Analyzer Configuration, Linux Top-Level CMake Build, Linux Flutter Library CMake Build, Linux Runner Executable CMake Build, crypto (hashing/crypto), dio (HTTP client dependency), flutter_lints (dev lint rules), flutter_riverpod (state management) (+8 more)
### Community 14 - "iOS App Icons"
Cohesion: 0.13
Nodes (15): App Icon 1024x1024 (Flutter logo master), App Icon 20x20 @1x, App Icon 20x20 @2x, App Icon 20x20 @3x, App Icon 29x29 @1x, App Icon 29x29 @2x, App Icon 29x29 @3x, App Icon 40x40 @1x (+7 more)
### Community 15 - "Now Playing Screen"
Cohesion: 0.13
Nodes (14): accent, _btn, _fmt, _fmtDur, m, ref, s, song (+6 more)
### Community 16 - "Screen Providers & Consumers"
Cohesion: 0.22
Nodes (14): ConsumerWidget, AlbumScreen, ArtistScreen, BrowserScreen, build, _AlbumArtPanel, NowPlayingScreen, _Transport (+6 more)
### Community 17 - "App Shell & Navigation"
Cohesion: 0.17
Nodes (11): createState, _index, onSelect, _TabBar, _tabs, ../screens/browser_screen.dart, ../screens/connect_sheet.dart, ../screens/home_screen.dart (+3 more)
### Community 18 - "JSON Parsing Helpers"
Cohesion: 0.20
Nodes (9): asBool, asDouble, asInt, asString, null, orElse, toString, return (+1 more)
### Community 19 - "Search Screen"
Cohesion: 0.25
Nodes (8): browser_screen.dart, build, _controller, createState, dispose, _query, _Results, searchProvider
### Community 20 - "Favorites Screen"
Cohesion: 0.25
Nodes (8): build, FavoritesScreen, _SectionLabel, text, starredProvider, MaterialPageRoute, ../state/providers.dart, ../theme/tokens.dart
### Community 21 - "Home Screen"
Cohesion: 0.33
Nodes (8): build, HomeScreen, message, recentAlbumsProvider, recentSongsProvider, rediscoverProvider, rediscoverSeedProvider, ../widgets/hairline_panel.dart
### Community 22 - "Stateful Screen Widgets"
Cohesion: 0.40
Nodes (6): ConsumerState, ConsumerStatefulWidget, SearchScreen, _SearchScreenState, AppShell, _AppShellState
### Community 23 - "Android Launcher Icons"
Cohesion: 1.00
Nodes (5): App Launcher Icon (hdpi), App Launcher Icon (mdpi), App Launcher Icon (xhdpi), App Launcher Icon (xxhdpi), App Launcher Icon (xxxhdpi)
### Community 24 - "Widget Tests"
Cohesion: 0.40
Nodes (4): package:flutter_riverpod/flutter_riverpod.dart, package:flutter_test/flutter_test.dart, package:ratune_mobile/main.dart, main
### Community 25 - "Favorite Rating Controls"
Cohesion: 0.50
Nodes (4): build, _FavRating, build, favoritesProvider
### Community 27 - "iOS Launch Images"
Cohesion: 1.00
Nodes (3): Launch Image (2x), Launch Image (3x), Launch Image (1x)
## Knowledge Gaps
- **280 isolated node(s):** `XCTest`, `PlayRecord`, `RediscoverArtist`, `songId`, `title` (+275 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **2 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `SubsonicClient` connect `Subsonic API Client` to `Connection & State Providers`?**
_High betweenness centrality (0.025) - this node is a cross-community bridge._
- **Why does `Starred2` connect `Subsonic Data Models` to `Connection & State Providers`?**
_High betweenness centrality (0.011) - this node is a cross-community bridge._
- **Why does `Song` connect `Now Playing Screen` to `Subsonic Data Models`?**
_High betweenness centrality (0.010) - this node is a cross-community bridge._
- **Are the 14 inferred relationships involving `App Icon 1024x1024 (Flutter logo master)` (e.g. with `App Icon 20x20 @1x` and `App Icon 20x20 @2x`) actually correct?**
_`App Icon 1024x1024 (Flutter logo master)` has 14 INFERRED edges - model-reasoned connections that need verification._
- **Are the 3 inferred relationships involving `ratune_mobile (Flutter package)` (e.g. with `Dart Analyzer Configuration` and `Linux Top-Level CMake Build`) actually correct?**
_`ratune_mobile (Flutter package)` has 3 INFERRED edges - model-reasoned connections that need verification._
- **What connects `XCTest`, `PlayRecord`, `RediscoverArtist` to the rest of the system?**
_280 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Playback Engine & App Entry` be split into smaller, more focused modules?**
_Cohesion score 0.05094130675526024 - nodes in this community are weakly interconnected._

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_runner_bridging_header_h", "label": "Runner-Bridging-Header.h", "file_type": "code", "source_file": "ios/Runner/Runner-Bridging-Header.h", "source_location": "L1"}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_runner_bridging_header_h", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_generatedpluginregistrant_h", "relation": "imports", "confidence": "EXTRACTED", "source_file": "ios/Runner/Runner-Bridging-Header.h", "source_location": "L1", "weight": 1.0, "context": "import"}], "raw_calls": [], "input_tokens": 0, "output_tokens": 0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_cc", "label": "main.cc", "file_type": "code", "source_file": "linux/runner/main.cc", "source_location": "L1"}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_main", "label": "main()", "file_type": "code", "source_file": "linux/runner/main.cc", "source_location": "L3", "_callable": true}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_cc", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_my_application_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "linux/runner/main.cc", "source_location": "L1", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_cc", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "linux/runner/main.cc", "source_location": "L3", "weight": 1.0}], "raw_calls": [{"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_main", "callee": "g_autoptr", "is_member_call": false, "source_file": "linux/runner/main.cc", "source_location": "L4", "receiver": null, "lang": "cpp"}, {"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_main", "callee": "my_application_new", "is_member_call": false, "source_file": "linux/runner/main.cc", "source_location": "L4", "receiver": null, "lang": "cpp"}, {"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_main", "callee": "g_application_run", "is_member_call": false, "source_file": "linux/runner/main.cc", "source_location": "L5", "receiver": null, "lang": "cpp"}, {"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_main_main", "callee": "G_APPLICATION", "is_member_call": false, "source_file": "linux/runner/main.cc", "source_location": "L5", "receiver": null, "lang": "cpp"}]}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "label": "app_theme.dart", "file_type": "code", "source_file": "lib/theme/app_theme.dart", "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_mono", "label": "mono", "file_type": "code", "source_file": "lib/theme/app_theme.dart", "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_scheme", "label": "scheme", "file_type": "code", "source_file": "lib/theme/app_theme.dart", "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_buildratunetheme", "label": "buildRatuneTheme", "file_type": "code", "source_file": "lib/theme/app_theme.dart", "source_location": null}, {"id": "package_flutter_material_dart", "label": "package:flutter/material.dart", "file_type": "code", "source_file": null, "source_location": null}, {"id": "package_google_fonts_google_fonts_dart", "label": "package:google_fonts/google_fonts.dart", "file_type": "code", "source_file": null, "source_location": null}, {"id": "tokens_dart", "label": "tokens.dart", "file_type": "code", "source_file": null, "source_location": null}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_mono", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/app_theme.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_scheme", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/app_theme.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_buildratunetheme", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/app_theme.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "target": "package_flutter_material_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/app_theme.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "target": "package_google_fonts_google_fonts_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/app_theme.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_app_theme_dart", "target": "tokens_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/app_theme.dart", "source_location": null, "weight": 1.0}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_my_application_h", "label": "my_application.h", "file_type": "code", "source_file": "linux/runner/my_application.h", "source_location": "L1"}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_runner_my_application_h", "target": "gtk", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "linux/runner/my_application.h", "source_location": "L4", "weight": 1.0}], "raw_calls": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_settings_gradle_kts", "label": "settings.gradle.kts", "file_type": "code", "source_file": "android/settings.gradle.kts", "source_location": "L1"}], "edges": [], "raw_calls": []}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_dart", "label": "widget_test.dart", "file_type": "code", "source_file": "test/widget_test.dart", "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_main", "label": "main", "file_type": "code", "source_file": "test/widget_test.dart", "source_location": null}, {"id": "package_flutter_riverpod_flutter_riverpod_dart", "label": "package:flutter_riverpod/flutter_riverpod.dart", "file_type": "code", "source_file": null, "source_location": null}, {"id": "package_flutter_test_flutter_test_dart", "label": "package:flutter_test/flutter_test.dart", "file_type": "code", "source_file": null, "source_location": null}, {"id": "package_ratune_mobile_main_dart", "label": "package:ratune_mobile/main.dart", "file_type": "code", "source_file": null, "source_location": null}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_main", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "test/widget_test.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_dart", "target": "package_flutter_riverpod_flutter_riverpod_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "test/widget_test.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_dart", "target": "package_flutter_test_flutter_test_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "test/widget_test.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_test_widget_test_dart", "target": "package_ratune_mobile_main_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "test/widget_test.dart", "source_location": null, "weight": 1.0}]}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "label": "accent.dart", "file_type": "code", "source_file": "lib/theme/accent.dart", "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_accentnotifier", "label": "AccentNotifier", "file_type": "code", "source_file": "lib/theme/accent.dart", "source_location": null}, {"id": "statenotifier", "label": "StateNotifier", "file_type": "code", "source_file": null, "source_location": null}, {"id": "color", "label": "Color", "file_type": "code", "source_file": null, "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_accentprovider", "label": "accentProvider", "file_type": "code", "source_file": "lib/theme/accent.dart", "source_location": null}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_reset", "label": "reset", "file_type": "code", "source_file": "lib/theme/accent.dart", "source_location": null}, {"id": "package_flutter_widgets_dart", "label": "package:flutter/widgets.dart", "file_type": "code", "source_file": null, "source_location": null}, {"id": "package_flutter_riverpod_flutter_riverpod_dart", "label": "package:flutter_riverpod/flutter_riverpod.dart", "file_type": "code", "source_file": null, "source_location": null}, {"id": "tokens_dart", "label": "tokens.dart", "file_type": "code", "source_file": null, "source_location": null}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_accentnotifier", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_accentnotifier", "target": "statenotifier", "relation": "inherits", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_accentnotifier", "target": "color", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_accentprovider", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_reset", "relation": "defines", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "target": "package_flutter_widgets_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "target": "package_flutter_riverpod_flutter_riverpod_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_lib_theme_accent_dart", "target": "tokens_dart", "relation": "imports", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "lib/theme/accent.dart", "source_location": null, "weight": 1.0}]}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_swift", "label": "SceneDelegate.swift", "file_type": "code", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L1"}, {"id": "flutter", "label": "Flutter", "file_type": "code", "type": "module", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L1"}, {"id": "uikit", "label": "UIKit", "file_type": "code", "type": "module", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L2"}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_scenedelegate", "label": "SceneDelegate", "file_type": "code", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L4", "_callable": true, "_callable_class": true}, {"id": "flutterscenedelegate", "label": "FlutterSceneDelegate", "file_type": "code", "source_file": "", "source_location": ""}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_swift", "target": "flutter", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L1", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_swift", "target": "uikit", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L2", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_swift", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_scenedelegate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L4", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runner_scenedelegate_scenedelegate", "target": "flutterscenedelegate", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "ios/Runner/SceneDelegate.swift", "source_location": "L4", "weight": 1.0}], "raw_calls": []}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_h", "label": "generated_plugin_registrant.h", "file_type": "code", "source_file": "linux/flutter/generated_plugin_registrant.h", "source_location": "L1"}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_h", "target": "flutter_linux", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "linux/flutter/generated_plugin_registrant.h", "source_location": "L10", "weight": 1.0}], "raw_calls": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_app_build_gradle_kts", "label": "build.gradle.kts", "file_type": "code", "source_file": "android/app/build.gradle.kts", "source_location": "L1"}], "edges": [], "raw_calls": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_app_src_main_kotlin_com_conversionpath_ratune_mobile_mainactivity_kt", "label": "MainActivity.kt", "file_type": "code", "source_file": "android/app/src/main/kotlin/com/conversionpath/ratune_mobile/MainActivity.kt", "source_location": "L1"}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_app_src_main_kotlin_com_conversionpath_ratune_mobile_mainactivity_mainactivity", "label": "MainActivity", "file_type": "code", "source_file": "android/app/src/main/kotlin/com/conversionpath/ratune_mobile/MainActivity.kt", "source_location": "L8", "_callable": true, "_callable_class": true}, {"id": "audioserviceactivity", "label": "AudioServiceActivity", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/home/troglodyte/Troglodyte-Chamber/Dev/ratune_mobile/android/app/src/main/kotlin/com/conversionpath/ratune_mobile/MainActivity.kt"}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_app_src_main_kotlin_com_conversionpath_ratune_mobile_mainactivity_kt", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_app_src_main_kotlin_com_conversionpath_ratune_mobile_mainactivity_mainactivity", "relation": "contains", "confidence": "EXTRACTED", "source_file": "android/app/src/main/kotlin/com/conversionpath/ratune_mobile/MainActivity.kt", "source_location": "L8", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_app_src_main_kotlin_com_conversionpath_ratune_mobile_mainactivity_mainactivity", "target": "audioserviceactivity", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "android/app/src/main/kotlin/com/conversionpath/ratune_mobile/MainActivity.kt", "source_location": "L8", "weight": 1.0}], "raw_calls": []}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_swift", "label": "RunnerTests.swift", "file_type": "code", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L1"}, {"id": "flutter", "label": "Flutter", "file_type": "code", "type": "module", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L1"}, {"id": "uikit", "label": "UIKit", "file_type": "code", "type": "module", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L2"}, {"id": "xctest", "label": "XCTest", "file_type": "code", "type": "module", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L3"}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_runnertests", "label": "RunnerTests", "file_type": "code", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L5", "_callable": true, "_callable_class": true}, {"id": "xctestcase", "label": "XCTestCase", "file_type": "code", "source_file": "", "source_location": ""}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_runnertests_testexample", "label": ".testExample()", "file_type": "code", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L7", "_callable": true}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_swift", "target": "flutter", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L1", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_swift", "target": "uikit", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L2", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_swift", "target": "xctest", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L3", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_swift", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_runnertests", "relation": "contains", "confidence": "EXTRACTED", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L5", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_runnertests", "target": "xctestcase", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L5", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_runnertests", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_ios_runnertests_runnertests_runnertests_testexample", "relation": "method", "confidence": "EXTRACTED", "source_file": "ios/RunnerTests/RunnerTests.swift", "source_location": "L7", "weight": 1.0}], "raw_calls": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_android_build_gradle_kts", "label": "build.gradle.kts", "file_type": "code", "source_file": "android/build.gradle.kts", "source_location": "L1"}], "edges": [], "raw_calls": []}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_cc", "label": "generated_plugin_registrant.cc", "file_type": "code", "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L1"}, {"id": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_fl_register_plugins", "label": "fl_register_plugins()", "file_type": "code", "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L11", "_callable": true}, {"id": "flpluginregistry", "label": "FlPluginRegistry", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "/home/troglodyte/Troglodyte-Chamber/Dev/ratune_mobile/linux/flutter/generated_plugin_registrant.cc"}], "edges": [{"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_cc", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_h", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L7", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_cc", "target": "flutter_secure_storage_linux_plugin", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L9", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_cc", "target": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_fl_register_plugins", "relation": "contains", "confidence": "EXTRACTED", "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L11", "weight": 1.0}, {"source": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_fl_register_plugins", "target": "flpluginregistry", "relation": "references", "confidence": "EXTRACTED", "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L11", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_fl_register_plugins", "callee": "g_autoptr", "is_member_call": false, "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L12", "receiver": null, "lang": "cpp"}, {"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_fl_register_plugins", "callee": "fl_plugin_registry_get_registrar_for_plugin", "is_member_call": false, "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L13", "receiver": null, "lang": "cpp"}, {"caller_nid": "home_troglodyte_troglodyte_chamber_dev_ratune_mobile_linux_flutter_generated_plugin_registrant_fl_register_plugins", "callee": "flutter_secure_storage_linux_plugin_register_with_registrar", "is_member_call": false, "source_file": "linux/flutter/generated_plugin_registrant.cc", "source_location": "L14", "receiver": null, "lang": "cpp"}]}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "linux_cmakelists_runner", "label": "Linux Top-Level CMake Build", "file_type": "code", "source_file": "linux/CMakeLists.txt", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "linux_cmakelists_runner", "target": "linux_flutter_cmakelists_flutter", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "linux/CMakeLists.txt", "source_location": null, "weight": 1.0}, {"source": "linux_cmakelists_runner", "target": "linux_runner_cmakelists_runner", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "linux/CMakeLists.txt", "source_location": null, "weight": 1.0}, {"source": "linux_cmakelists_runner", "target": "pubspec_ratune_mobile", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.75, "source_file": "linux/CMakeLists.txt", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "linux_flutter_build_pipeline", "label": "Linux Flutter CMake Build Pipeline", "nodes": ["linux_cmakelists_runner", "linux_flutter_cmakelists_flutter", "linux_runner_cmakelists_runner"], "relation": "participate_in", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "linux/CMakeLists.txt"}]}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "label": "App Icon 1024x1024 (Flutter logo master)", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": [{"id": "ios_appicon_appiconset_set", "label": "iOS AppIcon Set (Flutter logo)", "nodes": ["ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_1x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_2x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_3x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_1x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_2x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_3x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_1x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_2x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_3x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_2x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_3x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_1x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_2x_icon", "ios_runner_assets_xcassets_appicon_appiconset_icon_app_83_5x83_5_2x_icon"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png"}]}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "android_app_src_main_res_mipmap_mdpi_ic_launcher_icon", "label": "App Launcher Icon (mdpi)", "file_type": "image", "source_file": "android/app/src/main/res/mipmap-mdpi/ic_launcher.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "android_app_src_main_res_mipmap_mdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-mdpi/ic_launcher.png", "source_location": null, "weight": 1.0}, {"source": "android_app_src_main_res_mipmap_mdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-mdpi/ic_launcher.png", "source_location": null, "weight": 1.0}, {"source": "android_app_src_main_res_mipmap_mdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-mdpi/ic_launcher.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_83_5x83_5_2x_icon", "label": "App Icon 83.5x83.5 @2x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_83_5x83_5_2x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_2x_image", "label": "Launch Image (2x)", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_2x_image", "target": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_3x_image", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_3x_image", "label": "Launch Image (3x)", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_2x_icon", "label": "App Icon 29x29 @2x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_2x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_image", "label": "Launch Image (1x)", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_image", "target": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_2x_image", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png", "source_location": null, "weight": 1.0}, {"source": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_image", "target": "ios_runner_assets_xcassets_launchimage_imageset_launchimage_3x_image", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "ios_launch_image_set", "label": "iOS Launch Image Set", "nodes": ["ios_runner_assets_xcassets_launchimage_imageset_launchimage_image", "ios_runner_assets_xcassets_launchimage_imageset_launchimage_2x_image", "ios_runner_assets_xcassets_launchimage_imageset_launchimage_3x_image"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png"}]}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_3x_icon", "label": "App Icon 60x60 @3x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_3x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "linux_flutter_cmakelists_flutter", "label": "Linux Flutter Library CMake Build", "file_type": "code", "source_file": "linux/flutter/CMakeLists.txt", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_launchimage_imageset_readme_launch_screen", "label": "iOS Launch Screen Assets README", "file_type": "document", "source_file": "ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_2x_icon", "label": "App Icon 76x76 @2x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_2x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon", "label": "App Launcher Icon (xxxhdpi)", "file_type": "image", "source_file": "android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_3x_icon", "label": "App Icon 29x29 @3x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_3x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "android_app_src_main_res_mipmap_hdpi_ic_launcher_icon", "label": "App Launcher Icon (hdpi)", "file_type": "image", "source_file": "android/app/src/main/res/mipmap-hdpi/ic_launcher.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "android_app_src_main_res_mipmap_hdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_mdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-hdpi/ic_launcher.png", "source_location": null, "weight": 1.0}, {"source": "android_app_src_main_res_mipmap_hdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-hdpi/ic_launcher.png", "source_location": null, "weight": 1.0}, {"source": "android_app_src_main_res_mipmap_hdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-hdpi/ic_launcher.png", "source_location": null, "weight": 1.0}, {"source": "android_app_src_main_res_mipmap_hdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-hdpi/ic_launcher.png", "source_location": null, "weight": 1.0}], "hyperedges": [{"id": "android_launcher_icon_set", "label": "Android Launcher Icon Set (Flutter logo)", "nodes": ["android_app_src_main_res_mipmap_hdpi_ic_launcher_icon", "android_app_src_main_res_mipmap_mdpi_ic_launcher_icon", "android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon", "android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon", "android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon"], "relation": "form", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "android/app/src/main/res/mipmap-hdpi/ic_launcher.png"}]}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "linux_runner_cmakelists_runner", "label": "Linux Runner Executable CMake Build", "file_type": "code", "source_file": "linux/runner/CMakeLists.txt", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "linux_runner_cmakelists_runner", "target": "linux_flutter_cmakelists_flutter", "relation": "shares_data_with", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "linux/runner/CMakeLists.txt", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "readme_ratune_mobile", "label": "ratune_mobile README", "file_type": "document", "source_file": "README.md", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "readme_ratune_mobile", "target": "pubspec_ratune_mobile", "relation": "references", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "README.md", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_3x_icon", "label": "App Icon 40x40 @3x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_3x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_2x_icon", "label": "App Icon 60x60 @2x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_60x60_2x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon", "label": "App Launcher Icon (xhdpi)", "file_type": "image", "source_file": "android/app/src/main/res/mipmap-xhdpi/ic_launcher.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-xhdpi/ic_launcher.png", "source_location": null, "weight": 1.0}, {"source": "android_app_src_main_res_mipmap_xhdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-xhdpi/ic_launcher.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon", "label": "App Launcher Icon (xxhdpi)", "file_type": "image", "source_file": "android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "android_app_src_main_res_mipmap_xxhdpi_ic_launcher_icon", "target": "android_app_src_main_res_mipmap_xxxhdpi_ic_launcher_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_1x_icon", "label": "App Icon 29x29 @1x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_29x29_1x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_1x_icon", "label": "App Icon 20x20 @1x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_1x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_3x_icon", "label": "App Icon 20x20 @3x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_3x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_2x_icon", "label": "App Icon 40x40 @2x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_2x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_2x_icon", "label": "App Icon 20x20 @2x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_20x20_2x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_1x_icon", "label": "App Icon 40x40 @1x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_40x40_1x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_1x_icon", "label": "App Icon 76x76 @1x", "file_type": "image", "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_76x76_1x_icon", "target": "ios_runner_assets_xcassets_appicon_appiconset_icon_app_1024x1024_1x_icon", "relation": "semantically_similar_to", "confidence": "INFERRED", "confidence_score": 0.95, "source_file": "ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png", "source_location": null, "weight": 1.0}], "hyperedges": []}

View file

@ -0,0 +1 @@
{"nodes": [{"id": "analysis_options_ratune_mobile", "label": "Dart Analyzer Configuration", "file_type": "code", "source_file": "analysis_options.yaml", "source_location": null, "source_url": null, "captured_at": null, "author": null, "contributor": null}], "edges": [{"source": "analysis_options_ratune_mobile", "target": "pubspec_flutter_lints", "relation": "references", "confidence": "EXTRACTED", "confidence_score": 1.0, "source_file": "analysis_options.yaml", "source_location": null, "weight": 1.0}, {"source": "analysis_options_ratune_mobile", "target": "pubspec_ratune_mobile", "relation": "conceptually_related_to", "confidence": "INFERRED", "confidence_score": 0.85, "source_file": "analysis_options.yaml", "source_location": null, "weight": 1.0}], "hyperedges": []}

1
graphify-out/cache/stat-index.json vendored Normal file

File diff suppressed because one or more lines are too long

12
graphify-out/cost.json Normal file
View file

@ -0,0 +1,12 @@
{
"runs": [
{
"date": "2026-07-29T17:10:54.399919+00:00",
"input_tokens": 75479,
"output_tokens": 0,
"files": 68
}
],
"total_input_tokens": 75479,
"total_output_tokens": 0
}

320
graphify-out/graph.html Normal file

File diff suppressed because one or more lines are too long

13062
graphify-out/graph.json Normal file

File diff suppressed because it is too large Load diff

342
graphify-out/manifest.json Normal file
View file

@ -0,0 +1,342 @@
{
"android/app/build.gradle.kts": {
"mtime": 1785340086.8053284,
"ast_hash": "236d607e537bed4b3363317b90e9d478",
"semantic_hash": "236d607e537bed4b3363317b90e9d478"
},
"android/app/src/main/kotlin/com/conversionpath/ratune_mobile/MainActivity.kt": {
"mtime": 1785342271.1245763,
"ast_hash": "67e26f2baa578d0a50324da7efd4333e",
"semantic_hash": "67e26f2baa578d0a50324da7efd4333e"
},
"android/build.gradle.kts": {
"mtime": 1785340086.8060246,
"ast_hash": "f11f360aed44d4f6871b398346af14f0",
"semantic_hash": "f11f360aed44d4f6871b398346af14f0"
},
"android/settings.gradle.kts": {
"mtime": 1785340086.7866597,
"ast_hash": "4440672748462857e9bdbbf5fd06fe1a",
"semantic_hash": "4440672748462857e9bdbbf5fd06fe1a"
},
"ios/Runner/AppDelegate.swift": {
"mtime": 1785340086.7949142,
"ast_hash": "2bd8469f2a4b701ff582f6574e58b13c",
"semantic_hash": "2bd8469f2a4b701ff582f6574e58b13c"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json": {
"mtime": 1785340086.792394,
"ast_hash": "c3cdf9688b604d14f2e76a8287e16167",
"semantic_hash": "c3cdf9688b604d14f2e76a8287e16167"
},
"ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json": {
"mtime": 1785340086.7940903,
"ast_hash": "770f4f65e02ca2fc57f46f4f4148d15d",
"semantic_hash": "770f4f65e02ca2fc57f46f4f4148d15d"
},
"ios/Runner/Runner-Bridging-Header.h": {
"mtime": 1785340086.7895567,
"ast_hash": "e07862ac930ed4d8479185d52c6cc66d",
"semantic_hash": "e07862ac930ed4d8479185d52c6cc66d"
},
"ios/Runner/SceneDelegate.swift": {
"mtime": 1785340086.7946246,
"ast_hash": "748d701e783e68faf618c00464257a19",
"semantic_hash": "748d701e783e68faf618c00464257a19"
},
"ios/RunnerTests/RunnerTests.swift": {
"mtime": 1785340086.788504,
"ast_hash": "a225a382d14d7b16b6f602a5c1d49331",
"semantic_hash": "a225a382d14d7b16b6f602a5c1d49331"
},
"lib/history/play_history.dart": {
"mtime": 1785343202.4496186,
"ast_hash": "c3843c777988f14ea907493705bdb1be",
"semantic_hash": "c3843c777988f14ea907493705bdb1be"
},
"lib/main.dart": {
"mtime": 1785342280.0368621,
"ast_hash": "273faf5f66331da53ea424baf5595267",
"semantic_hash": "273faf5f66331da53ea424baf5595267"
},
"lib/playback/playback_engine.dart": {
"mtime": 1785343132.63645,
"ast_hash": "8e011708f5b03041ee6b3967e409063d",
"semantic_hash": "8e011708f5b03041ee6b3967e409063d"
},
"lib/screens/browser_screen.dart": {
"mtime": 1785343355.2753944,
"ast_hash": "bd212121162448b5e7302f654bae4c37",
"semantic_hash": "bd212121162448b5e7302f654bae4c37"
},
"lib/screens/connect_sheet.dart": {
"mtime": 1785341046.648255,
"ast_hash": "ed2775fe631aacb42f1d86f03e4c15f4",
"semantic_hash": "ed2775fe631aacb42f1d86f03e4c15f4"
},
"lib/screens/favorites_screen.dart": {
"mtime": 1785343290.532367,
"ast_hash": "ba7d3d54020dfbf7e96ed08b49b7e0c7",
"semantic_hash": "ba7d3d54020dfbf7e96ed08b49b7e0c7"
},
"lib/screens/home_screen.dart": {
"mtime": 1785343390.4134972,
"ast_hash": "c2893ac6d049083aa619326c7a4c59ad",
"semantic_hash": "c2893ac6d049083aa619326c7a4c59ad"
},
"lib/screens/now_playing_screen.dart": {
"mtime": 1785343266.243608,
"ast_hash": "d7c8ad138f9c42fb96d59bf80f9509b4",
"semantic_hash": "d7c8ad138f9c42fb96d59bf80f9509b4"
},
"lib/screens/search_screen.dart": {
"mtime": 1785343309.3169546,
"ast_hash": "3d816a71c6f4d18babf8054ad0266acb",
"semantic_hash": "3d816a71c6f4d18babf8054ad0266acb"
},
"lib/shell/app_shell.dart": {
"mtime": 1785343479.5513015,
"ast_hash": "dfa06e0cde79f29ba6cfcc8e577978b2",
"semantic_hash": "dfa06e0cde79f29ba6cfcc8e577978b2"
},
"lib/state/favorites.dart": {
"mtime": 1785343084.674966,
"ast_hash": "0f53986996dc4ddd3d22a25483db6a17",
"semantic_hash": "0f53986996dc4ddd3d22a25483db6a17"
},
"lib/state/providers.dart": {
"mtime": 1785343163.480407,
"ast_hash": "f2537d625ac798aa92c18f2458098625",
"semantic_hash": "f2537d625ac798aa92c18f2458098625"
},
"lib/subsonic/credentials.dart": {
"mtime": 1785340853.6022673,
"ast_hash": "189d563816f1696e574ca764aeb16cd5",
"semantic_hash": "189d563816f1696e574ca764aeb16cd5"
},
"lib/subsonic/json_helpers.dart": {
"mtime": 1785340473.9914591,
"ast_hash": "40cdcb45cbcc63f08f90e6840e341fc8",
"semantic_hash": "40cdcb45cbcc63f08f90e6840e341fc8"
},
"lib/subsonic/models.dart": {
"mtime": 1785342992.5261295,
"ast_hash": "e973a5a7e21e890604a368a632455259",
"semantic_hash": "e973a5a7e21e890604a368a632455259"
},
"lib/subsonic/subsonic_client.dart": {
"mtime": 1785343392.08955,
"ast_hash": "a6bf82a97a87bc7b9765baa67a25a902",
"semantic_hash": "a6bf82a97a87bc7b9765baa67a25a902"
},
"lib/theme/accent.dart": {
"mtime": 1785340169.7594929,
"ast_hash": "d3385c21629775962699ef203105d7a3",
"semantic_hash": "d3385c21629775962699ef203105d7a3"
},
"lib/theme/accent_extract.dart": {
"mtime": 1785340937.997387,
"ast_hash": "27a2a5c29bf117c4fea9ceba8d6bfcca",
"semantic_hash": "27a2a5c29bf117c4fea9ceba8d6bfcca"
},
"lib/theme/app_theme.dart": {
"mtime": 1785340180.8858938,
"ast_hash": "b5a2602c0ceb8818f0bb82093fc47eb9",
"semantic_hash": "b5a2602c0ceb8818f0bb82093fc47eb9"
},
"lib/theme/tokens.dart": {
"mtime": 1785340160.0111418,
"ast_hash": "8bf38f0276611b65f5fb466145cbf495",
"semantic_hash": "8bf38f0276611b65f5fb466145cbf495"
},
"lib/widgets/block_progress_bar.dart": {
"mtime": 1785340246.1262438,
"ast_hash": "fa582461cef400f0de8f6c2861fb79ea",
"semantic_hash": "fa582461cef400f0de8f6c2861fb79ea"
},
"lib/widgets/hairline_panel.dart": {
"mtime": 1785340217.7472217,
"ast_hash": "37e21eaf6dcbf74911a71afb663cfef6",
"semantic_hash": "37e21eaf6dcbf74911a71afb663cfef6"
},
"linux/flutter/generated_plugin_registrant.cc": {
"mtime": 1785340136.3522894,
"ast_hash": "e51606128f6c2595af1393720bb05539",
"semantic_hash": "e51606128f6c2595af1393720bb05539"
},
"linux/flutter/generated_plugin_registrant.h": {
"mtime": 1785340087.4259648,
"ast_hash": "d295462c9da9f7fef22dc86c34492318",
"semantic_hash": "d295462c9da9f7fef22dc86c34492318"
},
"linux/runner/main.cc": {
"mtime": 1785340086.8008928,
"ast_hash": "0643b8609698e96b3abd63c210361a87",
"semantic_hash": "0643b8609698e96b3abd63c210361a87"
},
"linux/runner/my_application.cc": {
"mtime": 1785340086.8005211,
"ast_hash": "704416b59d9c57dfd438eaf02a97d724",
"semantic_hash": "704416b59d9c57dfd438eaf02a97d724"
},
"linux/runner/my_application.h": {
"mtime": 1785340086.8010902,
"ast_hash": "326a85d68857137fdfe8698a0c071baf",
"semantic_hash": "326a85d68857137fdfe8698a0c071baf"
},
"test/widget_test.dart": {
"mtime": 1785340509.7470362,
"ast_hash": "e97cca239720701189402ac9409be4ae",
"semantic_hash": "e97cca239720701189402ac9409be4ae"
},
"README.md": {
"mtime": 1785340086.8073123,
"ast_hash": "e54b6e9ef7e49b2064c4cb04b3eab269",
"semantic_hash": "e54b6e9ef7e49b2064c4cb04b3eab269"
},
"analysis_options.yaml": {
"mtime": 1785340086.8070178,
"ast_hash": "66d03d7647c8e438164feaf5b922d44a",
"semantic_hash": "66d03d7647c8e438164feaf5b922d44a"
},
"ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md": {
"mtime": 1785340086.7938466,
"ast_hash": "e175e436acacf76c814d83532d0b662c",
"semantic_hash": "e175e436acacf76c814d83532d0b662c"
},
"linux/CMakeLists.txt": {
"mtime": 1785340086.8016346,
"ast_hash": "6f22b3e9eb6b57b2ee698580ed7f4ca4",
"semantic_hash": "6f22b3e9eb6b57b2ee698580ed7f4ca4"
},
"linux/flutter/CMakeLists.txt": {
"mtime": 1785340086.801835,
"ast_hash": "46690fb8ffaf7d227d8bc4713f31140d",
"semantic_hash": "46690fb8ffaf7d227d8bc4713f31140d"
},
"linux/runner/CMakeLists.txt": {
"mtime": 1785340086.8006868,
"ast_hash": "6d75431dc21756981b53a7494c836311",
"semantic_hash": "6d75431dc21756981b53a7494c836311"
},
"pubspec.yaml": {
"mtime": 1785340835.8658357,
"ast_hash": "211010e80bde4eb0305d2dbaa784ef64",
"semantic_hash": "211010e80bde4eb0305d2dbaa784ef64"
},
"android/app/src/main/res/mipmap-hdpi/ic_launcher.png": {
"mtime": 1785340086.78413,
"ast_hash": "13e9c72ec37fac220397aa819fa1ef2d",
"semantic_hash": "13e9c72ec37fac220397aa819fa1ef2d"
},
"android/app/src/main/res/mipmap-mdpi/ic_launcher.png": {
"mtime": 1785340086.7838757,
"ast_hash": "6270344430679711b81476e29878caa7",
"semantic_hash": "6270344430679711b81476e29878caa7"
},
"android/app/src/main/res/mipmap-xhdpi/ic_launcher.png": {
"mtime": 1785340086.7851303,
"ast_hash": "a0a8db5985280b3679d99a820ae2db79",
"semantic_hash": "a0a8db5985280b3679d99a820ae2db79"
},
"android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png": {
"mtime": 1785340086.7848864,
"ast_hash": "afe1b655b9f32da22f9a4301bb8e6ba8",
"semantic_hash": "afe1b655b9f32da22f9a4301bb8e6ba8"
},
"android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png": {
"mtime": 1785340086.7843785,
"ast_hash": "57838d52c318faff743130c3fcfae0c6",
"semantic_hash": "57838d52c318faff743130c3fcfae0c6"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png": {
"mtime": 1785340086.7931983,
"ast_hash": "c785f8932297af4acd5f5ccb7630f01c",
"semantic_hash": "c785f8932297af4acd5f5ccb7630f01c"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png": {
"mtime": 1785340086.7930222,
"ast_hash": "a2f8558fb1d42514111fbbb19fb67314",
"semantic_hash": "a2f8558fb1d42514111fbbb19fb67314"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png": {
"mtime": 1785340086.7916794,
"ast_hash": "2247a840b6ee72b8a069208af170e5b1",
"semantic_hash": "2247a840b6ee72b8a069208af170e5b1"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png": {
"mtime": 1785340086.7926364,
"ast_hash": "1b3b1538136316263c7092951e923e9d",
"semantic_hash": "1b3b1538136316263c7092951e923e9d"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png": {
"mtime": 1785340086.7907953,
"ast_hash": "be8887071dd7ec39cb754d236aa9584f",
"semantic_hash": "be8887071dd7ec39cb754d236aa9584f"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png": {
"mtime": 1785340086.791861,
"ast_hash": "043119ef4faa026ff82bd03f241e5338",
"semantic_hash": "043119ef4faa026ff82bd03f241e5338"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png": {
"mtime": 1785340086.7922173,
"ast_hash": "2b1452c4c1bda6177b4fbbb832df217f",
"semantic_hash": "2b1452c4c1bda6177b4fbbb832df217f"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png": {
"mtime": 1785340086.7903898,
"ast_hash": "2247a840b6ee72b8a069208af170e5b1",
"semantic_hash": "2247a840b6ee72b8a069208af170e5b1"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png": {
"mtime": 1785340086.791013,
"ast_hash": "8245359312aea1b0d2412f79a07b0ca5",
"semantic_hash": "8245359312aea1b0d2412f79a07b0ca5"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png": {
"mtime": 1785340086.7933817,
"ast_hash": "5b3c0902200ce596e9848f22e1f0fe0e",
"semantic_hash": "5b3c0902200ce596e9848f22e1f0fe0e"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png": {
"mtime": 1785340086.7928097,
"ast_hash": "5b3c0902200ce596e9848f22e1f0fe0e",
"semantic_hash": "5b3c0902200ce596e9848f22e1f0fe0e"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png": {
"mtime": 1785340086.790574,
"ast_hash": "e419d22a37bc40ba185aca1acb6d4ac6",
"semantic_hash": "e419d22a37bc40ba185aca1acb6d4ac6"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png": {
"mtime": 1785340086.7901921,
"ast_hash": "36c0d7a7132bdde18898ffdfcfcdc4d2",
"semantic_hash": "36c0d7a7132bdde18898ffdfcfcdc4d2"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png": {
"mtime": 1785340086.7911851,
"ast_hash": "643842917530acf4c5159ae851b0baf2",
"semantic_hash": "643842917530acf4c5159ae851b0baf2"
},
"ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png": {
"mtime": 1785340086.7920432,
"ast_hash": "665cb5e3c5729da6d639d26eff47a503",
"semantic_hash": "665cb5e3c5729da6d639d26eff47a503"
},
"ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png": {
"mtime": 1785340086.7944818,
"ast_hash": "978c1bee49d7ad5fc1a4d81099b13e18",
"semantic_hash": "978c1bee49d7ad5fc1a4d81099b13e18"
},
"ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png": {
"mtime": 1785340086.7943223,
"ast_hash": "978c1bee49d7ad5fc1a4d81099b13e18",
"semantic_hash": "978c1bee49d7ad5fc1a4d81099b13e18"
},
"ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png": {
"mtime": 1785340086.793687,
"ast_hash": "978c1bee49d7ad5fc1a4d81099b13e18",
"semantic_hash": "978c1bee49d7ad5fc1a4d81099b13e18"
}
}

34
ios/.gitignore vendored Normal file
View file

@ -0,0 +1,34 @@
**/dgph
*.mode1v3
*.mode2v3
*.moved-aside
*.pbxuser
*.perspectivev3
**/*sync/
.sconsign.dblite
.tags*
**/.vagrant/
**/DerivedData/
Icon?
**/Pods/
**/.symlinks/
profile
xcuserdata
**/.generated/
Flutter/App.framework
Flutter/Flutter.framework
Flutter/Flutter.podspec
Flutter/Generated.xcconfig
Flutter/ephemeral/
Flutter/app.flx
Flutter/app.zip
Flutter/flutter_assets/
Flutter/flutter_export_environment.sh
ServiceDefinitions.json
Runner/GeneratedPluginRegistrant.*
# Exceptions to above rules.
!default.mode1v3
!default.mode2v3
!default.pbxuser
!default.perspectivev3

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
</dict>
</plist>

Some files were not shown because too many files have changed in this diff Show more