remove flutter impl
							
								
								
									
										0
									
								
								zig/3rd-party/raygui.h → 3rd-party/raygui.h
									
										
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										44
									
								
								app/.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						| 
						 | 
					@ -1,44 +0,0 @@
 | 
				
			||||||
# Miscellaneous
 | 
					 | 
				
			||||||
*.class
 | 
					 | 
				
			||||||
*.log
 | 
					 | 
				
			||||||
*.pyc
 | 
					 | 
				
			||||||
*.swp
 | 
					 | 
				
			||||||
.DS_Store
 | 
					 | 
				
			||||||
.atom/
 | 
					 | 
				
			||||||
.buildlog/
 | 
					 | 
				
			||||||
.history
 | 
					 | 
				
			||||||
.svn/
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
.flutter-plugins-dependencies
 | 
					 | 
				
			||||||
.packages
 | 
					 | 
				
			||||||
.pub-cache/
 | 
					 | 
				
			||||||
.pub/
 | 
					 | 
				
			||||||
/build/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,45 +0,0 @@
 | 
				
			||||||
# 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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
version:
 | 
					 | 
				
			||||||
  revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
  channel: stable
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
project_type: app
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Tracks metadata for the flutter migrate command
 | 
					 | 
				
			||||||
migration:
 | 
					 | 
				
			||||||
  platforms:
 | 
					 | 
				
			||||||
    - platform: root
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
    - platform: android
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
    - platform: ios
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
    - platform: linux
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
    - platform: macos
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
    - platform: web
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
    - platform: windows
 | 
					 | 
				
			||||||
      create_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
      base_revision: 52b3dc25f6471c27b2144594abb11c741cb88f57
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # 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'
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
# app
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
 | 
					 | 
				
			||||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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.
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,29 +0,0 @@
 | 
				
			||||||
# 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-lang.github.io/linter/lints/index.html.
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # 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
 | 
					 | 
				
			||||||
							
								
								
									
										13
									
								
								app/android/.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						| 
						 | 
					@ -1,13 +0,0 @@
 | 
				
			||||||
gradle-wrapper.jar
 | 
					 | 
				
			||||||
/.gradle
 | 
					 | 
				
			||||||
/captures/
 | 
					 | 
				
			||||||
/gradlew
 | 
					 | 
				
			||||||
/gradlew.bat
 | 
					 | 
				
			||||||
/local.properties
 | 
					 | 
				
			||||||
GeneratedPluginRegistrant.java
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Remember to never publicly share your keystore.
 | 
					 | 
				
			||||||
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
 | 
					 | 
				
			||||||
key.properties
 | 
					 | 
				
			||||||
**/*.keystore
 | 
					 | 
				
			||||||
**/*.jks
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,71 +0,0 @@
 | 
				
			||||||
def localProperties = new Properties()
 | 
					 | 
				
			||||||
def localPropertiesFile = rootProject.file('local.properties')
 | 
					 | 
				
			||||||
if (localPropertiesFile.exists()) {
 | 
					 | 
				
			||||||
    localPropertiesFile.withReader('UTF-8') { reader ->
 | 
					 | 
				
			||||||
        localProperties.load(reader)
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def flutterRoot = localProperties.getProperty('flutter.sdk')
 | 
					 | 
				
			||||||
if (flutterRoot == null) {
 | 
					 | 
				
			||||||
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
 | 
					 | 
				
			||||||
if (flutterVersionCode == null) {
 | 
					 | 
				
			||||||
    flutterVersionCode = '1'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
 | 
					 | 
				
			||||||
if (flutterVersionName == null) {
 | 
					 | 
				
			||||||
    flutterVersionName = '1.0'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apply plugin: 'com.android.application'
 | 
					 | 
				
			||||||
apply plugin: 'kotlin-android'
 | 
					 | 
				
			||||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
android {
 | 
					 | 
				
			||||||
    compileSdkVersion flutter.compileSdkVersion
 | 
					 | 
				
			||||||
    ndkVersion flutter.ndkVersion
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    compileOptions {
 | 
					 | 
				
			||||||
        sourceCompatibility JavaVersion.VERSION_1_8
 | 
					 | 
				
			||||||
        targetCompatibility JavaVersion.VERSION_1_8
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    kotlinOptions {
 | 
					 | 
				
			||||||
        jvmTarget = '1.8'
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sourceSets {
 | 
					 | 
				
			||||||
        main.java.srcDirs += 'src/main/kotlin'
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    defaultConfig {
 | 
					 | 
				
			||||||
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
 | 
					 | 
				
			||||||
        applicationId "com.example.app"
 | 
					 | 
				
			||||||
        // You can update the following values to match your application needs.
 | 
					 | 
				
			||||||
        // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
 | 
					 | 
				
			||||||
        minSdkVersion flutter.minSdkVersion
 | 
					 | 
				
			||||||
        targetSdkVersion flutter.targetSdkVersion
 | 
					 | 
				
			||||||
        versionCode flutterVersionCode.toInteger()
 | 
					 | 
				
			||||||
        versionName flutterVersionName
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    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.debug
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
flutter {
 | 
					 | 
				
			||||||
    source '../..'
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dependencies {
 | 
					 | 
				
			||||||
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
					 | 
				
			||||||
    package="com.example.app">
 | 
					 | 
				
			||||||
    <!-- 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>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
					 | 
				
			||||||
    package="com.example.app">
 | 
					 | 
				
			||||||
   <application
 | 
					 | 
				
			||||||
        android:label="app"
 | 
					 | 
				
			||||||
        android:name="${applicationName}"
 | 
					 | 
				
			||||||
        android:icon="@mipmap/ic_launcher">
 | 
					 | 
				
			||||||
        <activity
 | 
					 | 
				
			||||||
            android:name=".MainActivity"
 | 
					 | 
				
			||||||
            android:exported="true"
 | 
					 | 
				
			||||||
            android:launchMode="singleTop"
 | 
					 | 
				
			||||||
            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>
 | 
					 | 
				
			||||||
        <!-- 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>
 | 
					 | 
				
			||||||
</manifest>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
package com.example.app
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import io.flutter.embedding.android.FlutterActivity
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MainActivity: FlutterActivity() {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
<?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>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,12 +0,0 @@
 | 
				
			||||||
<?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>
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 544 B  | 
| 
		 Before Width: | Height: | Size: 442 B  | 
| 
		 Before Width: | Height: | Size: 721 B  | 
| 
		 Before Width: | Height: | Size: 1 KiB  | 
| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
<?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>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
<?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>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 | 
					 | 
				
			||||||
    package="com.example.app">
 | 
					 | 
				
			||||||
    <!-- 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>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,31 +0,0 @@
 | 
				
			||||||
buildscript {
 | 
					 | 
				
			||||||
    ext.kotlin_version = '1.6.10'
 | 
					 | 
				
			||||||
    repositories {
 | 
					 | 
				
			||||||
        google()
 | 
					 | 
				
			||||||
        mavenCentral()
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dependencies {
 | 
					 | 
				
			||||||
        classpath 'com.android.tools.build:gradle:7.1.2'
 | 
					 | 
				
			||||||
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
allprojects {
 | 
					 | 
				
			||||||
    repositories {
 | 
					 | 
				
			||||||
        google()
 | 
					 | 
				
			||||||
        mavenCentral()
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rootProject.buildDir = '../build'
 | 
					 | 
				
			||||||
subprojects {
 | 
					 | 
				
			||||||
    project.buildDir = "${rootProject.buildDir}/${project.name}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
subprojects {
 | 
					 | 
				
			||||||
    project.evaluationDependsOn(':app')
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
task clean(type: Delete) {
 | 
					 | 
				
			||||||
    delete rootProject.buildDir
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
org.gradle.jvmargs=-Xmx1536M
 | 
					 | 
				
			||||||
android.useAndroidX=true
 | 
					 | 
				
			||||||
android.enableJetifier=true
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,5 +0,0 @@
 | 
				
			||||||
distributionBase=GRADLE_USER_HOME
 | 
					 | 
				
			||||||
distributionPath=wrapper/dists
 | 
					 | 
				
			||||||
zipStoreBase=GRADLE_USER_HOME
 | 
					 | 
				
			||||||
zipStorePath=wrapper/dists
 | 
					 | 
				
			||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,11 +0,0 @@
 | 
				
			||||||
include ':app'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
 | 
					 | 
				
			||||||
def properties = new Properties()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
assert localPropertiesFile.exists()
 | 
					 | 
				
			||||||
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def flutterSdkPath = properties.getProperty("flutter.sdk")
 | 
					 | 
				
			||||||
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
 | 
					 | 
				
			||||||
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,115 +0,0 @@
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void main() {
 | 
					 | 
				
			||||||
  runApp(const MyApp());
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MyApp extends StatelessWidget {
 | 
					 | 
				
			||||||
  const MyApp({super.key});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // This widget is the root of your application.
 | 
					 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					 | 
				
			||||||
    return MaterialApp(
 | 
					 | 
				
			||||||
      title: 'Flutter Demo',
 | 
					 | 
				
			||||||
      theme: ThemeData(
 | 
					 | 
				
			||||||
        // This is the theme of your application.
 | 
					 | 
				
			||||||
        //
 | 
					 | 
				
			||||||
        // Try running your application with "flutter run". You'll see the
 | 
					 | 
				
			||||||
        // application has a blue toolbar. Then, without quitting the app, try
 | 
					 | 
				
			||||||
        // changing the primarySwatch below to Colors.green and then invoke
 | 
					 | 
				
			||||||
        // "hot reload" (press "r" in the console where you ran "flutter run",
 | 
					 | 
				
			||||||
        // or simply save your changes to "hot reload" in a Flutter IDE).
 | 
					 | 
				
			||||||
        // Notice that the counter didn't reset back to zero; the application
 | 
					 | 
				
			||||||
        // is not restarted.
 | 
					 | 
				
			||||||
        primarySwatch: Colors.blue,
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
      home: const MyHomePage(title: 'Fab App'),
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MyHomePage extends StatefulWidget {
 | 
					 | 
				
			||||||
  const MyHomePage({super.key, required this.title});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // This widget is the home page of your application. It is stateful, meaning
 | 
					 | 
				
			||||||
  // that it has a State object (defined below) that contains fields that affect
 | 
					 | 
				
			||||||
  // how it looks.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // This class is the configuration for the state. It holds the values (in this
 | 
					 | 
				
			||||||
  // case the title) provided by the parent (in this case the App widget) and
 | 
					 | 
				
			||||||
  // used by the build method of the State. Fields in a Widget subclass are
 | 
					 | 
				
			||||||
  // always marked "final".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  final String title;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  State<MyHomePage> createState() => _MyHomePageState();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class _MyHomePageState extends State<MyHomePage> {
 | 
					 | 
				
			||||||
  int _counter = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  void _incrementCounter() {
 | 
					 | 
				
			||||||
    setState(() {
 | 
					 | 
				
			||||||
      // This call to setState tells the Flutter framework that something has
 | 
					 | 
				
			||||||
      // changed in this State, which causes it to rerun the build method below
 | 
					 | 
				
			||||||
      // so that the display can reflect the updated values. If we changed
 | 
					 | 
				
			||||||
      // _counter without calling setState(), then the build method would not be
 | 
					 | 
				
			||||||
      // called again, and so nothing would appear to happen.
 | 
					 | 
				
			||||||
      _counter++;
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @override
 | 
					 | 
				
			||||||
  Widget build(BuildContext context) {
 | 
					 | 
				
			||||||
    // This method is rerun every time setState is called, for instance as done
 | 
					 | 
				
			||||||
    // by the _incrementCounter method above.
 | 
					 | 
				
			||||||
    //
 | 
					 | 
				
			||||||
    // The Flutter framework has been optimized to make rerunning build methods
 | 
					 | 
				
			||||||
    // fast, so that you can just rebuild anything that needs updating rather
 | 
					 | 
				
			||||||
    // than having to individually change instances of widgets.
 | 
					 | 
				
			||||||
    return Scaffold(
 | 
					 | 
				
			||||||
      appBar: AppBar(
 | 
					 | 
				
			||||||
        // Here we take the value from the MyHomePage object that was created by
 | 
					 | 
				
			||||||
        // the App.build method, and use it to set our appbar title.
 | 
					 | 
				
			||||||
        title: Text(widget.title),
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
      body: Center(
 | 
					 | 
				
			||||||
        // Center is a layout widget. It takes a single child and positions it
 | 
					 | 
				
			||||||
        // in the middle of the parent.
 | 
					 | 
				
			||||||
        child: Column(
 | 
					 | 
				
			||||||
          // Column is also a layout widget. It takes a list of children and
 | 
					 | 
				
			||||||
          // arranges them vertically. By default, it sizes itself to fit its
 | 
					 | 
				
			||||||
          // children horizontally, and tries to be as tall as its parent.
 | 
					 | 
				
			||||||
          //
 | 
					 | 
				
			||||||
          // Invoke "debug painting" (press "p" in the console, choose the
 | 
					 | 
				
			||||||
          // "Toggle Debug Paint" action from the Flutter Inspector in Android
 | 
					 | 
				
			||||||
          // Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
 | 
					 | 
				
			||||||
          // to see the wireframe for each widget.
 | 
					 | 
				
			||||||
          //
 | 
					 | 
				
			||||||
          // Column has various properties to control how it sizes itself and
 | 
					 | 
				
			||||||
          // how it positions its children. Here we use mainAxisAlignment to
 | 
					 | 
				
			||||||
          // center the children vertically; the main axis here is the vertical
 | 
					 | 
				
			||||||
          // axis because Columns are vertical (the cross axis would be
 | 
					 | 
				
			||||||
          // horizontal).
 | 
					 | 
				
			||||||
          mainAxisAlignment: MainAxisAlignment.center,
 | 
					 | 
				
			||||||
          children: <Widget>[
 | 
					 | 
				
			||||||
            const Text(
 | 
					 | 
				
			||||||
              'You have pushed the button this many times, whoa:',
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
            Text(
 | 
					 | 
				
			||||||
              '$_counter',
 | 
					 | 
				
			||||||
              style: Theme.of(context).textTheme.headlineMedium,
 | 
					 | 
				
			||||||
            ),
 | 
					 | 
				
			||||||
          ],
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
      ),
 | 
					 | 
				
			||||||
      floatingActionButton: FloatingActionButton(
 | 
					 | 
				
			||||||
        onPressed: _incrementCounter,
 | 
					 | 
				
			||||||
        tooltip: 'Increment',
 | 
					 | 
				
			||||||
        child: const Icon(Icons.add),
 | 
					 | 
				
			||||||
      ), // This trailing comma makes auto-formatting nicer for build methods.
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										1
									
								
								app/linux/.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						| 
						 | 
					@ -1 +0,0 @@
 | 
				
			||||||
flutter/ephemeral
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,138 +0,0 @@
 | 
				
			||||||
# Project-level configuration.
 | 
					 | 
				
			||||||
cmake_minimum_required(VERSION 3.10)
 | 
					 | 
				
			||||||
project(runner LANGUAGES CXX)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The name of the executable created for the application. Change this to change
 | 
					 | 
				
			||||||
# the on-disk name of your application.
 | 
					 | 
				
			||||||
set(BINARY_NAME "app")
 | 
					 | 
				
			||||||
# The unique GTK application identifier for this application. See:
 | 
					 | 
				
			||||||
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
 | 
					 | 
				
			||||||
set(APPLICATION_ID "com.example.app")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
 | 
					 | 
				
			||||||
# versions of CMake.
 | 
					 | 
				
			||||||
cmake_policy(SET CMP0063 NEW)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Load bundled libraries from the lib/ directory relative to the binary.
 | 
					 | 
				
			||||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/lib")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Root filesystem for cross-building.
 | 
					 | 
				
			||||||
if(FLUTTER_TARGET_PLATFORM_SYSROOT)
 | 
					 | 
				
			||||||
  set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT})
 | 
					 | 
				
			||||||
  set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
 | 
					 | 
				
			||||||
  set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
 | 
					 | 
				
			||||||
  set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
 | 
					 | 
				
			||||||
  set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 | 
					 | 
				
			||||||
  set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Define build configuration options.
 | 
					 | 
				
			||||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
 | 
					 | 
				
			||||||
  set(CMAKE_BUILD_TYPE "Debug" CACHE
 | 
					 | 
				
			||||||
    STRING "Flutter build mode" FORCE)
 | 
					 | 
				
			||||||
  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
 | 
					 | 
				
			||||||
    "Debug" "Profile" "Release")
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compilation settings that should be applied to most targets.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Be cautious about adding new options here, as plugins use this function by
 | 
					 | 
				
			||||||
# default. In most cases, you should add new options to specific targets instead
 | 
					 | 
				
			||||||
# of modifying this function.
 | 
					 | 
				
			||||||
function(APPLY_STANDARD_SETTINGS TARGET)
 | 
					 | 
				
			||||||
  target_compile_features(${TARGET} PUBLIC cxx_std_14)
 | 
					 | 
				
			||||||
  target_compile_options(${TARGET} PRIVATE -Wall -Werror)
 | 
					 | 
				
			||||||
  target_compile_options(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:-O3>")
 | 
					 | 
				
			||||||
  target_compile_definitions(${TARGET} PRIVATE "$<$<NOT:$<CONFIG:Debug>>:NDEBUG>")
 | 
					 | 
				
			||||||
endfunction()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Flutter library and tool build rules.
 | 
					 | 
				
			||||||
set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
 | 
					 | 
				
			||||||
add_subdirectory(${FLUTTER_MANAGED_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# System-level dependencies.
 | 
					 | 
				
			||||||
find_package(PkgConfig REQUIRED)
 | 
					 | 
				
			||||||
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Define the application target. To change its name, change BINARY_NAME above,
 | 
					 | 
				
			||||||
# not the value here, or `flutter run` will no longer work.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Any new source files that you add to the application should be added here.
 | 
					 | 
				
			||||||
add_executable(${BINARY_NAME}
 | 
					 | 
				
			||||||
  "main.cc"
 | 
					 | 
				
			||||||
  "my_application.cc"
 | 
					 | 
				
			||||||
  "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Apply the standard set of build settings. This can be removed for applications
 | 
					 | 
				
			||||||
# that need different build settings.
 | 
					 | 
				
			||||||
apply_standard_settings(${BINARY_NAME})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Add dependency libraries. Add any application-specific dependencies here.
 | 
					 | 
				
			||||||
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
 | 
					 | 
				
			||||||
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Run the Flutter tool portions of the build. This must not be removed.
 | 
					 | 
				
			||||||
add_dependencies(${BINARY_NAME} flutter_assemble)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Only the install-generated bundle's copy of the executable will launch
 | 
					 | 
				
			||||||
# correctly, since the resources must in the right relative locations. To avoid
 | 
					 | 
				
			||||||
# people trying to run the unbundled copy, put it in a subdirectory instead of
 | 
					 | 
				
			||||||
# the default top-level location.
 | 
					 | 
				
			||||||
set_target_properties(${BINARY_NAME}
 | 
					 | 
				
			||||||
  PROPERTIES
 | 
					 | 
				
			||||||
  RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Generated plugin build rules, which manage building the plugins and adding
 | 
					 | 
				
			||||||
# them to the application.
 | 
					 | 
				
			||||||
include(flutter/generated_plugins.cmake)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# === Installation ===
 | 
					 | 
				
			||||||
# By default, "installing" just makes a relocatable bundle in the build
 | 
					 | 
				
			||||||
# directory.
 | 
					 | 
				
			||||||
set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle")
 | 
					 | 
				
			||||||
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
 | 
					 | 
				
			||||||
  set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Start with a clean build bundle directory every time.
 | 
					 | 
				
			||||||
install(CODE "
 | 
					 | 
				
			||||||
  file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\")
 | 
					 | 
				
			||||||
  " COMPONENT Runtime)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data")
 | 
					 | 
				
			||||||
set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
 | 
					 | 
				
			||||||
  COMPONENT Runtime)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}"
 | 
					 | 
				
			||||||
  COMPONENT Runtime)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
 | 
					 | 
				
			||||||
  COMPONENT Runtime)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
 | 
					 | 
				
			||||||
  install(FILES "${bundled_library}"
 | 
					 | 
				
			||||||
    DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
 | 
					 | 
				
			||||||
    COMPONENT Runtime)
 | 
					 | 
				
			||||||
endforeach(bundled_library)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Fully re-copy the assets directory on each build to avoid having stale files
 | 
					 | 
				
			||||||
# from a previous install.
 | 
					 | 
				
			||||||
set(FLUTTER_ASSET_DIR_NAME "flutter_assets")
 | 
					 | 
				
			||||||
install(CODE "
 | 
					 | 
				
			||||||
  file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\")
 | 
					 | 
				
			||||||
  " COMPONENT Runtime)
 | 
					 | 
				
			||||||
install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}"
 | 
					 | 
				
			||||||
  DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install the AOT library on non-Debug builds only.
 | 
					 | 
				
			||||||
if(NOT CMAKE_BUILD_TYPE MATCHES "Debug")
 | 
					 | 
				
			||||||
  install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
 | 
					 | 
				
			||||||
    COMPONENT Runtime)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,88 +0,0 @@
 | 
				
			||||||
# This file controls Flutter-level build steps. It should not be edited.
 | 
					 | 
				
			||||||
cmake_minimum_required(VERSION 3.10)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Configuration provided via flutter tool.
 | 
					 | 
				
			||||||
include(${EPHEMERAL_DIR}/generated_config.cmake)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TODO: Move the rest of this into files in ephemeral. See
 | 
					 | 
				
			||||||
# https://github.com/flutter/flutter/issues/57146.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Serves the same purpose as list(TRANSFORM ... PREPEND ...),
 | 
					 | 
				
			||||||
# which isn't available in 3.10.
 | 
					 | 
				
			||||||
function(list_prepend LIST_NAME PREFIX)
 | 
					 | 
				
			||||||
    set(NEW_LIST "")
 | 
					 | 
				
			||||||
    foreach(element ${${LIST_NAME}})
 | 
					 | 
				
			||||||
        list(APPEND NEW_LIST "${PREFIX}${element}")
 | 
					 | 
				
			||||||
    endforeach(element)
 | 
					 | 
				
			||||||
    set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE)
 | 
					 | 
				
			||||||
endfunction()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# === Flutter Library ===
 | 
					 | 
				
			||||||
# System-level dependencies.
 | 
					 | 
				
			||||||
find_package(PkgConfig REQUIRED)
 | 
					 | 
				
			||||||
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
 | 
					 | 
				
			||||||
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
 | 
					 | 
				
			||||||
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Published to parent scope for install step.
 | 
					 | 
				
			||||||
set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
 | 
					 | 
				
			||||||
set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE)
 | 
					 | 
				
			||||||
set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE)
 | 
					 | 
				
			||||||
set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
list(APPEND FLUTTER_LIBRARY_HEADERS
 | 
					 | 
				
			||||||
  "fl_basic_message_channel.h"
 | 
					 | 
				
			||||||
  "fl_binary_codec.h"
 | 
					 | 
				
			||||||
  "fl_binary_messenger.h"
 | 
					 | 
				
			||||||
  "fl_dart_project.h"
 | 
					 | 
				
			||||||
  "fl_engine.h"
 | 
					 | 
				
			||||||
  "fl_json_message_codec.h"
 | 
					 | 
				
			||||||
  "fl_json_method_codec.h"
 | 
					 | 
				
			||||||
  "fl_message_codec.h"
 | 
					 | 
				
			||||||
  "fl_method_call.h"
 | 
					 | 
				
			||||||
  "fl_method_channel.h"
 | 
					 | 
				
			||||||
  "fl_method_codec.h"
 | 
					 | 
				
			||||||
  "fl_method_response.h"
 | 
					 | 
				
			||||||
  "fl_plugin_registrar.h"
 | 
					 | 
				
			||||||
  "fl_plugin_registry.h"
 | 
					 | 
				
			||||||
  "fl_standard_message_codec.h"
 | 
					 | 
				
			||||||
  "fl_standard_method_codec.h"
 | 
					 | 
				
			||||||
  "fl_string_codec.h"
 | 
					 | 
				
			||||||
  "fl_value.h"
 | 
					 | 
				
			||||||
  "fl_view.h"
 | 
					 | 
				
			||||||
  "flutter_linux.h"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/")
 | 
					 | 
				
			||||||
add_library(flutter INTERFACE)
 | 
					 | 
				
			||||||
target_include_directories(flutter INTERFACE
 | 
					 | 
				
			||||||
  "${EPHEMERAL_DIR}"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}")
 | 
					 | 
				
			||||||
target_link_libraries(flutter INTERFACE
 | 
					 | 
				
			||||||
  PkgConfig::GTK
 | 
					 | 
				
			||||||
  PkgConfig::GLIB
 | 
					 | 
				
			||||||
  PkgConfig::GIO
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
add_dependencies(flutter flutter_assemble)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# === Flutter tool backend ===
 | 
					 | 
				
			||||||
# _phony_ is a non-existent file to force this command to run every time,
 | 
					 | 
				
			||||||
# since currently there's no way to get a full input/output list from the
 | 
					 | 
				
			||||||
# flutter tool.
 | 
					 | 
				
			||||||
add_custom_command(
 | 
					 | 
				
			||||||
  OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS}
 | 
					 | 
				
			||||||
    ${CMAKE_CURRENT_BINARY_DIR}/_phony_
 | 
					 | 
				
			||||||
  COMMAND ${CMAKE_COMMAND} -E env
 | 
					 | 
				
			||||||
    ${FLUTTER_TOOL_ENVIRONMENT}
 | 
					 | 
				
			||||||
    "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh"
 | 
					 | 
				
			||||||
      ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE}
 | 
					 | 
				
			||||||
  VERBATIM
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
add_custom_target(flutter_assemble DEPENDS
 | 
					 | 
				
			||||||
  "${FLUTTER_LIBRARY}"
 | 
					 | 
				
			||||||
  ${FLUTTER_LIBRARY_HEADERS}
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,11 +0,0 @@
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//  Generated file. Do not edit.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// clang-format off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "generated_plugin_registrant.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void fl_register_plugins(FlPluginRegistry* registry) {
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,15 +0,0 @@
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
//  Generated file. Do not edit.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// clang-format off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifndef GENERATED_PLUGIN_REGISTRANT_
 | 
					 | 
				
			||||||
#define GENERATED_PLUGIN_REGISTRANT_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <flutter_linux/flutter_linux.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Registers Flutter plugins.
 | 
					 | 
				
			||||||
void fl_register_plugins(FlPluginRegistry* registry);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif  // GENERATED_PLUGIN_REGISTRANT_
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Generated file, do not edit.
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
list(APPEND FLUTTER_PLUGIN_LIST
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(PLUGIN_BUNDLED_LIBRARIES)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreach(plugin ${FLUTTER_PLUGIN_LIST})
 | 
					 | 
				
			||||||
  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin})
 | 
					 | 
				
			||||||
  target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
 | 
					 | 
				
			||||||
  list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
 | 
					 | 
				
			||||||
  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
 | 
					 | 
				
			||||||
endforeach(plugin)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
 | 
					 | 
				
			||||||
  add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
 | 
					 | 
				
			||||||
  list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
 | 
					 | 
				
			||||||
endforeach(ffi_plugin)
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +0,0 @@
 | 
				
			||||||
#include "my_application.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int main(int argc, char** argv) {
 | 
					 | 
				
			||||||
  g_autoptr(MyApplication) app = my_application_new();
 | 
					 | 
				
			||||||
  return g_application_run(G_APPLICATION(app), argc, argv);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,104 +0,0 @@
 | 
				
			||||||
#include "my_application.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <flutter_linux/flutter_linux.h>
 | 
					 | 
				
			||||||
#ifdef GDK_WINDOWING_X11
 | 
					 | 
				
			||||||
#include <gdk/gdkx.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "flutter/generated_plugin_registrant.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct _MyApplication {
 | 
					 | 
				
			||||||
  GtkApplication parent_instance;
 | 
					 | 
				
			||||||
  char** dart_entrypoint_arguments;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Implements GApplication::activate.
 | 
					 | 
				
			||||||
static void my_application_activate(GApplication* application) {
 | 
					 | 
				
			||||||
  MyApplication* self = MY_APPLICATION(application);
 | 
					 | 
				
			||||||
  GtkWindow* window =
 | 
					 | 
				
			||||||
      GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Use a header bar when running in GNOME as this is the common style used
 | 
					 | 
				
			||||||
  // by applications and is the setup most users will be using (e.g. Ubuntu
 | 
					 | 
				
			||||||
  // desktop).
 | 
					 | 
				
			||||||
  // If running on X and not using GNOME then just use a traditional title bar
 | 
					 | 
				
			||||||
  // in case the window manager does more exotic layout, e.g. tiling.
 | 
					 | 
				
			||||||
  // If running on Wayland assume the header bar will work (may need changing
 | 
					 | 
				
			||||||
  // if future cases occur).
 | 
					 | 
				
			||||||
  gboolean use_header_bar = TRUE;
 | 
					 | 
				
			||||||
#ifdef GDK_WINDOWING_X11
 | 
					 | 
				
			||||||
  GdkScreen* screen = gtk_window_get_screen(window);
 | 
					 | 
				
			||||||
  if (GDK_IS_X11_SCREEN(screen)) {
 | 
					 | 
				
			||||||
    const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
 | 
					 | 
				
			||||||
    if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
 | 
					 | 
				
			||||||
      use_header_bar = FALSE;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
  if (use_header_bar) {
 | 
					 | 
				
			||||||
    GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
 | 
					 | 
				
			||||||
    gtk_widget_show(GTK_WIDGET(header_bar));
 | 
					 | 
				
			||||||
    gtk_header_bar_set_title(header_bar, "app");
 | 
					 | 
				
			||||||
    gtk_header_bar_set_show_close_button(header_bar, TRUE);
 | 
					 | 
				
			||||||
    gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
 | 
					 | 
				
			||||||
  } else {
 | 
					 | 
				
			||||||
    gtk_window_set_title(window, "app");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  gtk_window_set_default_size(window, 1280, 720);
 | 
					 | 
				
			||||||
  gtk_widget_show(GTK_WIDGET(window));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  g_autoptr(FlDartProject) project = fl_dart_project_new();
 | 
					 | 
				
			||||||
  fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  FlView* view = fl_view_new(project);
 | 
					 | 
				
			||||||
  gtk_widget_show(GTK_WIDGET(view));
 | 
					 | 
				
			||||||
  gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fl_register_plugins(FL_PLUGIN_REGISTRY(view));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  gtk_widget_grab_focus(GTK_WIDGET(view));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Implements GApplication::local_command_line.
 | 
					 | 
				
			||||||
static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
 | 
					 | 
				
			||||||
  MyApplication* self = MY_APPLICATION(application);
 | 
					 | 
				
			||||||
  // Strip out the first argument as it is the binary name.
 | 
					 | 
				
			||||||
  self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  g_autoptr(GError) error = nullptr;
 | 
					 | 
				
			||||||
  if (!g_application_register(application, nullptr, &error)) {
 | 
					 | 
				
			||||||
     g_warning("Failed to register: %s", error->message);
 | 
					 | 
				
			||||||
     *exit_status = 1;
 | 
					 | 
				
			||||||
     return TRUE;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  g_application_activate(application);
 | 
					 | 
				
			||||||
  *exit_status = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  return TRUE;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Implements GObject::dispose.
 | 
					 | 
				
			||||||
static void my_application_dispose(GObject* object) {
 | 
					 | 
				
			||||||
  MyApplication* self = MY_APPLICATION(object);
 | 
					 | 
				
			||||||
  g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
 | 
					 | 
				
			||||||
  G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void my_application_class_init(MyApplicationClass* klass) {
 | 
					 | 
				
			||||||
  G_APPLICATION_CLASS(klass)->activate = my_application_activate;
 | 
					 | 
				
			||||||
  G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
 | 
					 | 
				
			||||||
  G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void my_application_init(MyApplication* self) {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MyApplication* my_application_new() {
 | 
					 | 
				
			||||||
  return MY_APPLICATION(g_object_new(my_application_get_type(),
 | 
					 | 
				
			||||||
                                     "application-id", APPLICATION_ID,
 | 
					 | 
				
			||||||
                                     "flags", G_APPLICATION_NON_UNIQUE,
 | 
					 | 
				
			||||||
                                     nullptr));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,18 +0,0 @@
 | 
				
			||||||
#ifndef FLUTTER_MY_APPLICATION_H_
 | 
					 | 
				
			||||||
#define FLUTTER_MY_APPLICATION_H_
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <gtk/gtk.h>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
 | 
					 | 
				
			||||||
                     GtkApplication)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * my_application_new:
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Creates a new Flutter-based application.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Returns: a new #MyApplication.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
MyApplication* my_application_new();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif  // FLUTTER_MY_APPLICATION_H_
 | 
					 | 
				
			||||||
							
								
								
									
										189
									
								
								app/pubspec.lock
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,189 +0,0 @@
 | 
				
			||||||
# Generated by pub
 | 
					 | 
				
			||||||
# See https://dart.dev/tools/pub/glossary#lockfile
 | 
					 | 
				
			||||||
packages:
 | 
					 | 
				
			||||||
  async:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: async
 | 
					 | 
				
			||||||
      sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "2.11.0"
 | 
					 | 
				
			||||||
  boolean_selector:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: boolean_selector
 | 
					 | 
				
			||||||
      sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "2.1.1"
 | 
					 | 
				
			||||||
  characters:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: characters
 | 
					 | 
				
			||||||
      sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.3.0"
 | 
					 | 
				
			||||||
  clock:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: clock
 | 
					 | 
				
			||||||
      sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.1.1"
 | 
					 | 
				
			||||||
  collection:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: collection
 | 
					 | 
				
			||||||
      sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.17.1"
 | 
					 | 
				
			||||||
  cupertino_icons:
 | 
					 | 
				
			||||||
    dependency: "direct main"
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: cupertino_icons
 | 
					 | 
				
			||||||
      sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.0.5"
 | 
					 | 
				
			||||||
  fake_async:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: fake_async
 | 
					 | 
				
			||||||
      sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.3.1"
 | 
					 | 
				
			||||||
  flutter:
 | 
					 | 
				
			||||||
    dependency: "direct main"
 | 
					 | 
				
			||||||
    description: flutter
 | 
					 | 
				
			||||||
    source: sdk
 | 
					 | 
				
			||||||
    version: "0.0.0"
 | 
					 | 
				
			||||||
  flutter_lints:
 | 
					 | 
				
			||||||
    dependency: "direct dev"
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: flutter_lints
 | 
					 | 
				
			||||||
      sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "2.0.1"
 | 
					 | 
				
			||||||
  flutter_test:
 | 
					 | 
				
			||||||
    dependency: "direct dev"
 | 
					 | 
				
			||||||
    description: flutter
 | 
					 | 
				
			||||||
    source: sdk
 | 
					 | 
				
			||||||
    version: "0.0.0"
 | 
					 | 
				
			||||||
  js:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: js
 | 
					 | 
				
			||||||
      sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.6.7"
 | 
					 | 
				
			||||||
  lints:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: lints
 | 
					 | 
				
			||||||
      sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "2.0.1"
 | 
					 | 
				
			||||||
  matcher:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: matcher
 | 
					 | 
				
			||||||
      sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.12.15"
 | 
					 | 
				
			||||||
  material_color_utilities:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: material_color_utilities
 | 
					 | 
				
			||||||
      sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.2.0"
 | 
					 | 
				
			||||||
  meta:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: meta
 | 
					 | 
				
			||||||
      sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.9.1"
 | 
					 | 
				
			||||||
  path:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: path
 | 
					 | 
				
			||||||
      sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.8.3"
 | 
					 | 
				
			||||||
  sky_engine:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description: flutter
 | 
					 | 
				
			||||||
    source: sdk
 | 
					 | 
				
			||||||
    version: "0.0.99"
 | 
					 | 
				
			||||||
  source_span:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: source_span
 | 
					 | 
				
			||||||
      sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.9.1"
 | 
					 | 
				
			||||||
  stack_trace:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: stack_trace
 | 
					 | 
				
			||||||
      sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.11.0"
 | 
					 | 
				
			||||||
  stream_channel:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: stream_channel
 | 
					 | 
				
			||||||
      sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "2.1.1"
 | 
					 | 
				
			||||||
  string_scanner:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: string_scanner
 | 
					 | 
				
			||||||
      sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.2.0"
 | 
					 | 
				
			||||||
  term_glyph:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: term_glyph
 | 
					 | 
				
			||||||
      sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "1.2.1"
 | 
					 | 
				
			||||||
  test_api:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: test_api
 | 
					 | 
				
			||||||
      sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.5.1"
 | 
					 | 
				
			||||||
  vector_math:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: vector_math
 | 
					 | 
				
			||||||
      sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "2.1.4"
 | 
					 | 
				
			||||||
sdks:
 | 
					 | 
				
			||||||
  dart: ">=3.0.0-0 <4.0.0"
 | 
					 | 
				
			||||||
  flutter: ">=3.0.0"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,92 +0,0 @@
 | 
				
			||||||
name: app
 | 
					 | 
				
			||||||
description: A new Flutter project.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The following line prevents the package from being accidentally published to
 | 
					 | 
				
			||||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
 | 
					 | 
				
			||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The following defines the version and build number for your application.
 | 
					 | 
				
			||||||
# A version number is three numbers separated by dots, like 1.2.43
 | 
					 | 
				
			||||||
# followed by an optional build number separated by a +.
 | 
					 | 
				
			||||||
# Both the version and the builder number may be overridden in flutter
 | 
					 | 
				
			||||||
# build by specifying --build-name and --build-number, respectively.
 | 
					 | 
				
			||||||
# In Android, build-name is used as versionName while build-number used as versionCode.
 | 
					 | 
				
			||||||
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
 | 
					 | 
				
			||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.
 | 
					 | 
				
			||||||
# Read more about iOS versioning at
 | 
					 | 
				
			||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
 | 
					 | 
				
			||||||
# In Windows, build-name is used as the major, minor, and patch parts
 | 
					 | 
				
			||||||
# of the product and file versions while build-number is used as the build suffix.
 | 
					 | 
				
			||||||
version: 1.0.0+1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
environment:
 | 
					 | 
				
			||||||
  sdk: '>=2.18.4'
 | 
					 | 
				
			||||||
  flutter: '^3.0.0'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Dependencies specify other packages that your package needs in order to work.
 | 
					 | 
				
			||||||
# To automatically upgrade your package dependencies to the latest versions
 | 
					 | 
				
			||||||
# consider running `flutter pub upgrade --major-versions`. Alternatively,
 | 
					 | 
				
			||||||
# dependencies can be manually updated by changing the version numbers below to
 | 
					 | 
				
			||||||
# the latest version available on pub.dev. To see which dependencies have newer
 | 
					 | 
				
			||||||
# versions available, run `flutter pub outdated`.
 | 
					 | 
				
			||||||
dependencies:
 | 
					 | 
				
			||||||
  flutter:
 | 
					 | 
				
			||||||
    sdk: flutter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # The following adds the Cupertino Icons font to your application.
 | 
					 | 
				
			||||||
  # Use with the CupertinoIcons class for iOS style icons.
 | 
					 | 
				
			||||||
  cupertino_icons: ^1.0.2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
dev_dependencies:
 | 
					 | 
				
			||||||
  flutter_test:
 | 
					 | 
				
			||||||
    sdk: flutter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # The "flutter_lints" package below contains a set of recommended lints to
 | 
					 | 
				
			||||||
  # encourage good coding practices. The lint set provided by the package is
 | 
					 | 
				
			||||||
  # activated in the `analysis_options.yaml` file located at the root of your
 | 
					 | 
				
			||||||
  # package. See that file for information about deactivating specific lint
 | 
					 | 
				
			||||||
  # rules and activating additional ones.
 | 
					 | 
				
			||||||
  flutter_lints: ^2.0.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# For information on the generic Dart part of this file, see the
 | 
					 | 
				
			||||||
# following page: https://dart.dev/tools/pub/pubspec
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# The following section is specific to Flutter packages.
 | 
					 | 
				
			||||||
flutter:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # The following line ensures that the Material Icons font is
 | 
					 | 
				
			||||||
  # included with your application, so that you can use the icons in
 | 
					 | 
				
			||||||
  # the material Icons class.
 | 
					 | 
				
			||||||
  uses-material-design: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # To add assets to your application, add an assets section, like this:
 | 
					 | 
				
			||||||
  # assets:
 | 
					 | 
				
			||||||
  #   - images/a_dot_burr.jpeg
 | 
					 | 
				
			||||||
  #   - images/a_dot_ham.jpeg
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # An image asset can refer to one or more resolution-specific "variants", see
 | 
					 | 
				
			||||||
  # https://flutter.dev/assets-and-images/#resolution-aware
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # For details regarding adding assets from package dependencies, see
 | 
					 | 
				
			||||||
  # https://flutter.dev/assets-and-images/#from-packages
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # To add custom fonts to your application, add a fonts section here,
 | 
					 | 
				
			||||||
  # in this "flutter" section. Each entry in this list should have a
 | 
					 | 
				
			||||||
  # "family" key with the font family name, and a "fonts" key with a
 | 
					 | 
				
			||||||
  # list giving the asset and other descriptors for the font. For
 | 
					 | 
				
			||||||
  # example:
 | 
					 | 
				
			||||||
  # fonts:
 | 
					 | 
				
			||||||
  #   - family: Schyler
 | 
					 | 
				
			||||||
  #     fonts:
 | 
					 | 
				
			||||||
  #       - asset: fonts/Schyler-Regular.ttf
 | 
					 | 
				
			||||||
  #       - asset: fonts/Schyler-Italic.ttf
 | 
					 | 
				
			||||||
  #         style: italic
 | 
					 | 
				
			||||||
  #   - family: Trajan Pro
 | 
					 | 
				
			||||||
  #     fonts:
 | 
					 | 
				
			||||||
  #       - asset: fonts/TrajanPro.ttf
 | 
					 | 
				
			||||||
  #       - asset: fonts/TrajanPro_Bold.ttf
 | 
					 | 
				
			||||||
  #         weight: 700
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # For details regarding fonts from package dependencies,
 | 
					 | 
				
			||||||
  # see https://flutter.dev/custom-fonts/#from-packages
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,30 +0,0 @@
 | 
				
			||||||
// This is a basic Flutter widget test.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// To perform an interaction with a widget in your test, use the WidgetTester
 | 
					 | 
				
			||||||
// utility in the flutter_test package. For example, you can send tap and scroll
 | 
					 | 
				
			||||||
// gestures. You can also use WidgetTester to find child widgets in the widget
 | 
					 | 
				
			||||||
// tree, read text, and verify that the values of widget properties are correct.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					 | 
				
			||||||
import 'package:flutter_test/flutter_test.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import 'package:app/main.dart';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void main() {
 | 
					 | 
				
			||||||
  testWidgets('Counter increments smoke test', (WidgetTester tester) async {
 | 
					 | 
				
			||||||
    // Build our app and trigger a frame.
 | 
					 | 
				
			||||||
    await tester.pumpWidget(const MyApp());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Verify that our counter starts at 0.
 | 
					 | 
				
			||||||
    expect(find.text('0'), findsOneWidget);
 | 
					 | 
				
			||||||
    expect(find.text('1'), findsNothing);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Tap the '+' icon and trigger a frame.
 | 
					 | 
				
			||||||
    await tester.tap(find.byIcon(Icons.add));
 | 
					 | 
				
			||||||
    await tester.pump();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Verify that our counter has incremented.
 | 
					 | 
				
			||||||
    expect(find.text('0'), findsNothing);
 | 
					 | 
				
			||||||
    expect(find.text('1'), findsOneWidget);
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 917 B  | 
| 
		 Before Width: | Height: | Size: 5.2 KiB  | 
| 
		 Before Width: | Height: | Size: 8.1 KiB  | 
| 
		 Before Width: | Height: | Size: 5.5 KiB  | 
| 
		 Before Width: | Height: | Size: 20 KiB  | 
| 
						 | 
					@ -1,58 +0,0 @@
 | 
				
			||||||
<!DOCTYPE html>
 | 
					 | 
				
			||||||
<html>
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
  <!--
 | 
					 | 
				
			||||||
    If you are serving your web app in a path other than the root, change the
 | 
					 | 
				
			||||||
    href value below to reflect the base path you are serving from.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    The path provided below has to start and end with a slash "/" in order for
 | 
					 | 
				
			||||||
    it to work correctly.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    For more details:
 | 
					 | 
				
			||||||
    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    This is a placeholder for base href that will be replaced by the value of
 | 
					 | 
				
			||||||
    the `--base-href` argument provided to `flutter build`.
 | 
					 | 
				
			||||||
  -->
 | 
					 | 
				
			||||||
  <base href="$FLUTTER_BASE_HREF">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <meta charset="UTF-8">
 | 
					 | 
				
			||||||
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
 | 
					 | 
				
			||||||
  <meta name="description" content="A new Flutter project.">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <!-- iOS meta tags & icons -->
 | 
					 | 
				
			||||||
  <meta name="apple-mobile-web-app-capable" content="yes">
 | 
					 | 
				
			||||||
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
 | 
					 | 
				
			||||||
  <meta name="apple-mobile-web-app-title" content="app">
 | 
					 | 
				
			||||||
  <link rel="apple-touch-icon" href="icons/Icon-192.png">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <!-- Favicon -->
 | 
					 | 
				
			||||||
  <link rel="icon" type="image/png" href="favicon.png"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <title>app</title>
 | 
					 | 
				
			||||||
  <link rel="manifest" href="manifest.json">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <script>
 | 
					 | 
				
			||||||
    // The value below is injected by flutter build, do not touch.
 | 
					 | 
				
			||||||
    var serviceWorkerVersion = null;
 | 
					 | 
				
			||||||
  </script>
 | 
					 | 
				
			||||||
  <!-- This script adds the flutter initialization JS code -->
 | 
					 | 
				
			||||||
  <script src="flutter.js" defer></script>
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
  <script>
 | 
					 | 
				
			||||||
    window.addEventListener('load', function(ev) {
 | 
					 | 
				
			||||||
      // Download main.dart.js
 | 
					 | 
				
			||||||
      _flutter.loader.loadEntrypoint({
 | 
					 | 
				
			||||||
        serviceWorker: {
 | 
					 | 
				
			||||||
          serviceWorkerVersion: serviceWorkerVersion,
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }).then(function(engineInitializer) {
 | 
					 | 
				
			||||||
        return engineInitializer.initializeEngine();
 | 
					 | 
				
			||||||
      }).then(function(appRunner) {
 | 
					 | 
				
			||||||
        return appRunner.runApp();
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
  </script>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,35 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    "name": "app",
 | 
					 | 
				
			||||||
    "short_name": "app",
 | 
					 | 
				
			||||||
    "start_url": ".",
 | 
					 | 
				
			||||||
    "display": "standalone",
 | 
					 | 
				
			||||||
    "background_color": "#0175C2",
 | 
					 | 
				
			||||||
    "theme_color": "#0175C2",
 | 
					 | 
				
			||||||
    "description": "A new Flutter project.",
 | 
					 | 
				
			||||||
    "orientation": "portrait-primary",
 | 
					 | 
				
			||||||
    "prefer_related_applications": false,
 | 
					 | 
				
			||||||
    "icons": [
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "src": "icons/Icon-192.png",
 | 
					 | 
				
			||||||
            "sizes": "192x192",
 | 
					 | 
				
			||||||
            "type": "image/png"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "src": "icons/Icon-512.png",
 | 
					 | 
				
			||||||
            "sizes": "512x512",
 | 
					 | 
				
			||||||
            "type": "image/png"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "src": "icons/Icon-maskable-192.png",
 | 
					 | 
				
			||||||
            "sizes": "192x192",
 | 
					 | 
				
			||||||
            "type": "image/png",
 | 
					 | 
				
			||||||
            "purpose": "maskable"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            "src": "icons/Icon-maskable-512.png",
 | 
					 | 
				
			||||||
            "sizes": "512x512",
 | 
					 | 
				
			||||||
            "type": "image/png",
 | 
					 | 
				
			||||||
            "purpose": "maskable"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										45
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -19,53 +19,30 @@
 | 
				
			||||||
      perSystem = { pkgs, system, ... }: {
 | 
					      perSystem = { pkgs, system, ... }: {
 | 
				
			||||||
        _module.args.pkgs = import nixpkgs {
 | 
					        _module.args.pkgs = import nixpkgs {
 | 
				
			||||||
          inherit system;
 | 
					          inherit system;
 | 
				
			||||||
          config.allowUnfree = true;
 | 
					          # config.allowUnfree = true;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        devShells.default = with pkgs;
 | 
					        devShells.default = with pkgs;
 | 
				
			||||||
          let
 | 
					          mkShell {
 | 
				
			||||||
            vscodeCustom = pkgs.vscode-with-extensions.override {
 | 
					 | 
				
			||||||
              vscodeExtensions = with pkgs.vscode-extensions; [
 | 
					 | 
				
			||||||
                # Flutter
 | 
					 | 
				
			||||||
                dart-code.dart-code
 | 
					 | 
				
			||||||
                dart-code.flutter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                # Nix
 | 
					 | 
				
			||||||
                bbenoist.nix
 | 
					 | 
				
			||||||
                brettm12345.nixfmt-vscode
 | 
					 | 
				
			||||||
              ];
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
          in mkShell {
 | 
					 | 
				
			||||||
            buildInputs = [
 | 
					            buildInputs = [
 | 
				
			||||||
              sqlite
 | 
					              sqlite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              # Dev tools
 | 
					 | 
				
			||||||
              just
 | 
					 | 
				
			||||||
              vscodeCustom
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              # Flutter
 | 
					 | 
				
			||||||
              flutter
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              # Linux toolchain
 | 
					 | 
				
			||||||
              clang_15
 | 
					 | 
				
			||||||
              cmake
 | 
					 | 
				
			||||||
              ninja
 | 
					 | 
				
			||||||
              pkg-config
 | 
					 | 
				
			||||||
              gtk3
 | 
					 | 
				
			||||||
              pcre
 | 
					 | 
				
			||||||
              libepoxy
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              # Zig / webAssembly impl.
 | 
					              # Zig / webAssembly impl.
 | 
				
			||||||
              zig
 | 
					              zig
 | 
				
			||||||
              zls
 | 
					              zls
 | 
				
			||||||
              emscripten
 | 
					              emscripten
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              # Tools
 | 
				
			||||||
 | 
					              nixfmt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              # Linux graphical deps
 | 
				
			||||||
 | 
					              xorg.libX11
 | 
				
			||||||
 | 
					              libGL
 | 
				
			||||||
            ];
 | 
					            ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # see: https://discourse.nixos.org/t/flutter-run-d-linux-build-process-failed/16552/2
 | 
					 | 
				
			||||||
            shellHook = ''
 | 
					 | 
				
			||||||
              export LD_LIBRARY_PATH=${libepoxy}/lib
 | 
					 | 
				
			||||||
            '';
 | 
					 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        formatter = pkgs.nixfmt;
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								justfile
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,22 +1,24 @@
 | 
				
			||||||
 | 
					alias b := build
 | 
				
			||||||
 | 
					alias r := run
 | 
				
			||||||
 | 
					alias t := test
 | 
				
			||||||
 | 
					alias fmt := format
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build:
 | 
					build:
 | 
				
			||||||
	cd app; flutter build linux
 | 
					    zig build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					web-build:
 | 
				
			||||||
 | 
					     # zig build-lib src/main.zig -target wasm32-freestanding -dynamic -rdynamic
 | 
				
			||||||
 | 
					     zig build -Dtarget=wasm32-emscripten --sysroot /nix/store/zll7a6ns3avx509kgx0jjghz8g89l2g0-emscripten-3.1.45
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run:
 | 
					run:
 | 
				
			||||||
	cd app; flutter run
 | 
					    nixGL zig build run
 | 
				
			||||||
 | 
					 | 
				
			||||||
edit:
 | 
					 | 
				
			||||||
	nixGL code ./app
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
test:
 | 
					test:
 | 
				
			||||||
	flutter analyze
 | 
					    zig build test
 | 
				
			||||||
	flutter test
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
bootstrap:
 | 
					format:
 | 
				
			||||||
	flutter --disable-telemetry
 | 
					    fd -e zig -X zig fmt {}
 | 
				
			||||||
 | 
					    fd -e nix -X nix fmt {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
version:
 | 
					update-deps:
 | 
				
			||||||
	flutter --version
 | 
					    curl https://raw.githubusercontent.com/raysan5/raygui/master/src/raygui.h --output 3rd-party/raygui.h
 | 
				
			||||||
 | 
					 | 
				
			||||||
doctor:
 | 
					 | 
				
			||||||
	cd app; flutter doctor
 | 
					 | 
				
			||||||
	cd app; dart fix --dry-run
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										23
									
								
								zig/justfile
									
										
									
									
									
								
							
							
						
						| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
alias b := build
 | 
					 | 
				
			||||||
alias r := run
 | 
					 | 
				
			||||||
alias t := test
 | 
					 | 
				
			||||||
alias fmt := format
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
build:
 | 
					 | 
				
			||||||
    zig build
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
web-build:
 | 
					 | 
				
			||||||
     # zig build-lib src/main.zig -target wasm32-freestanding -dynamic -rdynamic
 | 
					 | 
				
			||||||
     zig build -Dtarget=wasm32-emscripten --sysroot /nix/store/zll7a6ns3avx509kgx0jjghz8g89l2g0-emscripten-3.1.45
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
run:
 | 
					 | 
				
			||||||
    nixGL zig build run
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
test:
 | 
					 | 
				
			||||||
    zig build test
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
format:
 | 
					 | 
				
			||||||
    fd -e zig -X zig fmt {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
update-deps:
 | 
					 | 
				
			||||||
    curl https://raw.githubusercontent.com/raysan5/raygui/master/src/raygui.h --output 3rd-party/raygui.h
 | 
					 | 
				
			||||||