diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b4bd933 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.dart_tool/ +.packages +build/ +pubspec.lock diff --git a/README.md b/README.md index 0fc429f..2c69cec 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,6 @@ The `Flutter Starter CLI` is a very useful tool that provides commands for the e While working with the Flutter projects we have to write the same repetitive code multiple times but using this CLI, we can create a Flutter template on the fly.\ Also, the basic structure of all the tests in Flutter is the same. So this CLI also provides a basic starter pack for the Flutter test as well. -`Flutter Starter CLI` under the hood uses mason to generate the project template.\ -Mason is an open-source tool that generates code from custom templates called bricks. - Out of the box, `Flutter Starter CLI` includes:- - ✅ **State Management** @@ -35,10 +32,9 @@ Currently, the `Flutter Starter CLI` depends on the following packages:- | Package | Version | Description | | ------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- | | args | 2.3.1 | Parses raw command-line arguments into a set of options and values. | -| mason | 0.1.0 | A template generator which helps to generate files quickly and consistently. | +| mason_logger | 0.1.3 | Simple logging library for CLI requests. | +| path | 1.8.2 | The path package provides common operations for manipulating paths: joining, splitting, normalizing, etc. | | pub_updater | 0.2.1 | A Dart package which enables checking whether packages are up to date and supports updating them. | -| build_runner | 2.0.0 | The build_runner package provides a concrete way of generating files using Dart code, outside of tools like pub. | -| build_version | 2.0.0 | Include the version of the package in the source code. | | flutter_lints | 2.0.1 | This package contains a recommended set of lints for Flutter apps, packages, and plugins to encourage good coding practices. | ## Getting Started @@ -74,7 +70,10 @@ $ flutter_starter_cli create # Shorthand to create project with git $ flutter_starter_cli create --api= -g -# Shorthand to create project without git +# Shorthand to create project with test +$ flutter_starter_cli create --api= -t + +# Shorthand to create project without git and test $ flutter_starter_cli create --api= # Available API services (dio, http) @@ -89,14 +88,15 @@ The complete usage of the create command with options and flags. Creates a new flutter starter project. Usage: flutter_starter_cli create --h, --help Print this usage information. - --desc The description for the project. - (defaults to "A New Flutter Project.") - --org The organization for the project. - (defaults to "com.example") --a, --api The API service for the project. - [dio, http] --g, --[no-]git Initialize Git Repository. +-h, --help Print this usage information. + --desc The description for the project. + (defaults to "A New Flutter Project.") + --org The organization for the project. + (defaults to "com.example") +-a, --api The API service for the project. + [dio, http] +-t, --[no-]test Setup Test Cases. +-g, --[no-]git Initialize Git Repository. Run "flutter_starter_cli help" to see global options. ``` diff --git a/bricks/flutter_starter/__brick__/{{name}}/analysis_options.yaml b/analysis_options.yaml similarity index 100% rename from bricks/flutter_starter/__brick__/{{name}}/analysis_options.yaml rename to analysis_options.yaml diff --git a/cli/bin/flutter_starter_cli.dart b/bin/flutter_starter_cli.dart similarity index 100% rename from cli/bin/flutter_starter_cli.dart rename to bin/flutter_starter_cli.dart diff --git a/bricks/.DS_Store b/bricks/.DS_Store deleted file mode 100644 index bcada08..0000000 Binary files a/bricks/.DS_Store and /dev/null differ diff --git a/bricks/.mason/bricks.json b/bricks/.mason/bricks.json deleted file mode 100644 index 7532245..0000000 --- a/bricks/.mason/bricks.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "flutter_starter": "https://git.geekyants.com/ruchika/flutter-starter-cli/bricks/flutter_starter" -} \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/.DS_Store b/bricks/flutter_starter/__brick__/.DS_Store deleted file mode 100644 index a1ba6ab..0000000 Binary files a/bricks/flutter_starter/__brick__/.DS_Store and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/.gitignore b/bricks/flutter_starter/__brick__/{{name}}/.gitignore deleted file mode 100644 index a093ad0..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/.gitignore +++ /dev/null @@ -1,49 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ - -# 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/ - -# Web related -lib/generated_plugin_registrant.dart - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -#android Firebase -google-services.json - -#ios Firebase -GoogleService-Info.plist -Secrets -Secrets.tar \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/{{name}}/README.md b/bricks/flutter_starter/__brick__/{{name}}/README.md deleted file mode 100644 index bbc8416..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# {{name}} - -## {{desc}} diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/.gitignore b/bricks/flutter_starter/__brick__/{{name}}/android/.gitignore deleted file mode 100644 index 6f56801..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/.gitignore +++ /dev/null @@ -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 diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/build.gradle b/bricks/flutter_starter/__brick__/{{name}}/android/app/build.gradle deleted file mode 100644 index e756e74..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/build.gradle +++ /dev/null @@ -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 "{{org}}.{{name}}" - // 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 19 - 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" -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/debug/AndroidManifest.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index ad0158c..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/AndroidManifest.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 382382e..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java deleted file mode 100644 index 752fc18..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java +++ /dev/null @@ -1,25 +0,0 @@ -// Generated file. -// -// If you wish to remove Flutter's multidex support, delete this entire file. -// -// Modifications to this file should be done in a copy under a different name -// as this file may be regenerated. - -package io.flutter.app; - -import android.app.Application; -import android.content.Context; -import androidx.annotation.CallSuper; -import androidx.multidex.MultiDex; - -/** - * Extension of {@link android.app.Application}, adding multidex support. - */ -public class FlutterMultiDexApplication extends Application { - @Override - @CallSuper - protected void attachBaseContext(Context base) { - super.attachBaseContext(base); - MultiDex.install(this); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/kotlin/com/example/app/MainActivity.kt b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/kotlin/com/example/app/MainActivity.kt deleted file mode 100644 index 12e5477..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/kotlin/com/example/app/MainActivity.kt +++ /dev/null @@ -1,6 +0,0 @@ -package {{org}}.{{name}} - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() { -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/drawable-v21/launch_background.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/drawable/launch_background.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b7..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 09d4391..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372e..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/values-night/styles.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 06952be..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/values/styles.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/values/styles.xml deleted file mode 100644 index cb1ef88..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/profile/AndroidManifest.xml b/bricks/flutter_starter/__brick__/{{name}}/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index ad0158c..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/build.gradle b/bricks/flutter_starter/__brick__/{{name}}/android/build.gradle deleted file mode 100644 index 83ae220..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/build.gradle +++ /dev/null @@ -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 -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/gradle.properties b/bricks/flutter_starter/__brick__/{{name}}/android/gradle.properties deleted file mode 100644 index 94adc3a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx1536M -android.useAndroidX=true -android.enableJetifier=true diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/gradle/wrapper/gradle-wrapper.properties b/bricks/flutter_starter/__brick__/{{name}}/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index cc5527d..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Fri Jun 23 08:50:38 CEST 2017 -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 diff --git a/bricks/flutter_starter/__brick__/{{name}}/android/settings.gradle b/bricks/flutter_starter/__brick__/{{name}}/android/settings.gradle deleted file mode 100644 index 44e62bc..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/android/settings.gradle +++ /dev/null @@ -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" diff --git a/bricks/flutter_starter/__brick__/{{name}}/assets/images/2.0x/logo.png b/bricks/flutter_starter/__brick__/{{name}}/assets/images/2.0x/logo.png deleted file mode 100644 index f2c967f..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/assets/images/2.0x/logo.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/assets/images/3.0x/logo.png b/bricks/flutter_starter/__brick__/{{name}}/assets/images/3.0x/logo.png deleted file mode 100644 index 6b5dcc9..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/assets/images/3.0x/logo.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/assets/images/login.png b/bricks/flutter_starter/__brick__/{{name}}/assets/images/login.png deleted file mode 100644 index efefed0..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/assets/images/login.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/assets/images/logo.png b/bricks/flutter_starter/__brick__/{{name}}/assets/images/logo.png deleted file mode 100644 index aba93c5..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/assets/images/logo.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/assets/images/signup.png b/bricks/flutter_starter/__brick__/{{name}}/assets/images/signup.png deleted file mode 100644 index 1d6850d..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/assets/images/signup.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/integration_test/app_test.dart b/bricks/flutter_starter/__brick__/{{name}}/integration_test/app_test.dart deleted file mode 100644 index 85604a7..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/integration_test/app_test.dart +++ /dev/null @@ -1,106 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:integration_test/integration_test.dart'; - -void main() { - IntegrationTestWidgetsFlutterBinding.ensureInitialized(); - - late final AuthenticationBloc authenticationBloc; - late final UpdateThemeBloc updateThemeBloc; - late final AuthenticationRepository authenticationService; - - setUpAll(() async { - await SharedPrefs.instance.init(); - authenticationService = AuthenticationRepository(); - updateThemeBloc = UpdateThemeBloc(); - authenticationBloc = AuthenticationBloc( - authenticationService: authenticationService, - ); - }); - - tearDownAll(() { - authenticationBloc.close(); - updateThemeBloc.close(); - }); - - Widget createWidget(Widget child) { - return MaterialApp( - debugShowCheckedModeBanner: false, - home: Builder(builder: (context) { - UiSizeConfig().init(context); - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: authenticationBloc), - BlocProvider.value(value: updateThemeBloc), - ], - child: child, - ); - }), - ); - } - - group('Flutter starter', () { - testWidgets('Complete app test', (tester) async { - await tester.pumpWidget(createWidget(const App())); - - await tester.pumpAndSettle(); - await Future.delayed(const Duration(milliseconds: 500)); - await tester.pumpAndSettle(); - - final Finder email = find.byKey(const Key('emailField')); - final Finder password = find.byKey(const Key('passwordField')); - final Finder login = find.byKey(const Key('loginButton')); - final Finder theme = find.byKey(const Key('themeSwitch')); - final Finder logout = find.byKey(const Key('logoutButton')); - - /// Empty - await tester.enterText(email, ''); - await tester.enterText(password, ''); - - await tester.tap(login); - await tester.pumpAndSettle(); - - expect(authenticationBloc.state, const AuthenticationStart()); - - /// Invalid - await tester.enterText(email, 'test@gmail.com'); - await tester.enterText(password, 'test1234'); - - await tester.tap(login); - await tester.pumpAndSettle(); - - expect( - authenticationBloc.state, - const AuthenticationFailure( - message: 'Invalid Request: {"error":"user not found"}'), - ); - - /// Login - await tester.enterText(email, 'eve.holt@reqres.in'); - await tester.enterText(password, 'cityslicka'); - - await tester.tap(login); - await tester.pumpAndSettle(); - - /// Theme - final ScaffoldState state = tester.firstState(find.byType(Scaffold)); - state.openDrawer(); - await tester.pumpAndSettle(); - await tester.tap(theme); - await tester.pumpAndSettle(); - - state.closeDrawer(); - await tester.pumpAndSettle(); - - expect(updateThemeBloc.state, const SetTheme(appTheme: AppTheme.dark)); - - /// Logout - await tester.tap(logout); - await tester.pumpAndSettle(); - - expect(authenticationBloc.state, const UserLogoutState()); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/.gitignore b/bricks/flutter_starter/__brick__/{{name}}/ios/.gitignore deleted file mode 100644 index 7a7f987..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -**/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 diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/AppFrameworkInfo.plist b/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/AppFrameworkInfo.plist deleted file mode 100644 index 9625e10..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/AppFrameworkInfo.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - App - CFBundleIdentifier - io.flutter.flutter.app - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - App - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - MinimumOSVersion - 11.0 - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/Debug.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/Debug.xcconfig deleted file mode 100644 index ec97fc6..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "Generated.xcconfig" diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/Release.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/Release.xcconfig deleted file mode 100644 index c4855bf..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Flutter/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "Generated.xcconfig" diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Podfile b/bricks/flutter_starter/__brick__/{{name}}/ios/Podfile deleted file mode 100644 index 313ea4a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Podfile +++ /dev/null @@ -1,41 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '11.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Podfile.lock b/bricks/flutter_starter/__brick__/{{name}}/ios/Podfile.lock deleted file mode 100644 index 37d7c0f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Podfile.lock +++ /dev/null @@ -1,59 +0,0 @@ -PODS: - - Flutter (1.0.0) - - flutter_native_splash (0.0.1): - - Flutter - - fluttertoast (0.0.2): - - Flutter - - Toast - - FMDB (2.7.5): - - FMDB/standard (= 2.7.5) - - FMDB/standard (2.7.5) - - path_provider_ios (0.0.1): - - Flutter - - shared_preferences_ios (0.0.1): - - Flutter - - sqflite (0.0.2): - - Flutter - - FMDB (>= 2.7.5) - - Toast (4.0.0) - -DEPENDENCIES: - - Flutter (from `Flutter`) - - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`) - - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) - - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) - - sqflite (from `.symlinks/plugins/sqflite/ios`) - -SPEC REPOS: - trunk: - - FMDB - - Toast - -EXTERNAL SOURCES: - Flutter: - :path: Flutter - flutter_native_splash: - :path: ".symlinks/plugins/flutter_native_splash/ios" - fluttertoast: - :path: ".symlinks/plugins/fluttertoast/ios" - path_provider_ios: - :path: ".symlinks/plugins/path_provider_ios/ios" - shared_preferences_ios: - :path: ".symlinks/plugins/shared_preferences_ios/ios" - sqflite: - :path: ".symlinks/plugins/sqflite/ios" - -SPEC CHECKSUMS: - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef - fluttertoast: 16fbe6039d06a763f3533670197d01fc73459037 - FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a - path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 - shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad - sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 - Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 - -PODFILE CHECKSUM: 7368163408c647b7eb699d0d788ba6718e18fb8d - -COCOAPODS: 1.11.3 diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.pbxproj b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 13ef714..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,549 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 96B4905726F45C2D9B05EDF0 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90E2746B12027798B0662130 /* Pods_Runner.framework */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9705A1C41CF9048500538489 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 4A63F70A590EEC2C31E49E53 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 90E2746B12027798B0662130 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 91B24820E83830628E56E6F1 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D936D17513099C123DDF7A65 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 96B4905726F45C2D9B05EDF0 /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = ""; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - F61B79B65E4ED1DCA6E50A2C /* Pods */, - C7ED4B9403C7740748C190CE /* Frameworks */, - ); - sourceTree = ""; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - ); - name = Products; - sourceTree = ""; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = ""; - }; - C7ED4B9403C7740748C190CE /* Frameworks */ = { - isa = PBXGroup; - children = ( - 90E2746B12027798B0662130 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - F61B79B65E4ED1DCA6E50A2C /* Pods */ = { - isa = PBXGroup; - children = ( - D936D17513099C123DDF7A65 /* Pods-Runner.debug.xcconfig */, - 4A63F70A590EEC2C31E49E53 /* Pods-Runner.release.xcconfig */, - 91B24820E83830628E56E6F1 /* Pods-Runner.profile.xcconfig */, - ); - name = Pods; - path = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - F10AA196B4EF3EDBC65C1C6B /* [CP] Check Pods Manifest.lock */, - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 9705A1C41CF9048500538489 /* Embed Frameworks */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 24E4F4EB271A687C8E367BA0 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1300; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 24E4F4EB271A687C8E367BA0 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; - F10AA196B4EF3EDBC65C1C6B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C147001CF9000F007C117D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 249021D3217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = {{org}}.testApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97C147041CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = {{org}}.testApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = {{org}}.testApp; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index c87d15a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/contents.xcworkspacedata b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc1..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/AppDelegate.swift b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/AppDelegate.swift deleted file mode 100644 index 70693e4..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/AppDelegate.swift +++ /dev/null @@ -1,13 +0,0 @@ -import UIKit -import Flutter - -@UIApplicationMain -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d36b1fa..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada4..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 28c6bf0..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 2ccbfd9..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index f091b6b..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cde121..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index d0ef06e..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index dcdc230..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index 2ccbfd9..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index c8f9ed8..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index a6d6b86..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index a6d6b86..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 75b2d16..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index c4df70d..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 6a84f41..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index d0e1f58..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json deleted file mode 100644 index 0bedcf2..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchImage.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png deleted file mode 100644 index 9da19ea..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19ea..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19ea..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Launch Screen Assets - -You can customize the launch screen with your own desired assets by replacing the image files in this directory. - -You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Base.lproj/LaunchScreen.storyboard b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f2e259c..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Base.lproj/Main.storyboard b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Base.lproj/Main.storyboard deleted file mode 100644 index f3c2851..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Info.plist b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Info.plist deleted file mode 100644 index 917c02b..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Info.plist +++ /dev/null @@ -1,55 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Flutter Starter - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - app_test - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - CFBundleLocalizations - - fr - en - es - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - CADisableMinimumFrameDurationOnPhone - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Runner-Bridging-Header.h b/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Runner-Bridging-Header.h deleted file mode 100644 index 308a2a5..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/ios/Runner/Runner-Bridging-Header.h +++ /dev/null @@ -1 +0,0 @@ -#import "GeneratedPluginRegistrant.h" diff --git a/bricks/flutter_starter/__brick__/{{name}}/l10n.yaml b/bricks/flutter_starter/__brick__/{{name}}/l10n.yaml deleted file mode 100644 index 90886d0..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/l10n.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# This file is used to generate AppLocalisations from the -# .arb files inside lib/utils/assets/l10n folder - -arb-dir: lib/l10n -template-arb-file: app_en.arb -output-localisation-file: app_localizations.dart diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/README.md b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/README.md deleted file mode 100644 index ba1b80d..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Dio - -A powerful Http client for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout etc. - -## Folders - -- dio_helpers (Contains all the information about base urls, api calls and exception handling) -- models. (Contains the user model and an auto generated Json serializable file) - -### dio_helpers - -- [dio_apis.dart](api_sdk/dio/dio_helpers/dio_apis.dart) - Contains all the api tags. -- [dio_client.dart](api_sdk/dio/dio_helpers/dio_client.dart) - DioClient class is responsible for handling all the network call methods. -- [dio_interceptor.dart](api_sdk/dio/dio_helpers/dio_interceptor.dart) - DioInterceptor can intercept requests/responses/errors before they are handled by then or catchError. -- [dio_exceptions.dart](api_sdk/dio/dio_helpers/dio_exceptions.dart) - DioExceptions handles all the exceptions for different error codes. - -### models - -- [user_model.dart](api_sdk/dio/models/user_model.dart) - A data class that contains the serialized form of a user model. - -### dio_api_sdk - -Contains two classes DioApi and DioService that will eventually call the network methods. **DioApi** class will create a dio instance which will have interceptors added to it. **DioService** will eventually call the network methods present in [dio_service.dart](api_sdk/dio/dio_service.dart) diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_apis.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_apis.dart deleted file mode 100644 index 46e07dd..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_apis.dart +++ /dev/null @@ -1,5 +0,0 @@ -class DioApis { - static const String users = '/users/{id}'; - static const String register = '/register'; - static const String login = '/login'; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_client.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_client.dart deleted file mode 100644 index 7826e14..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_client.dart +++ /dev/null @@ -1,21 +0,0 @@ -import 'package:dio/dio.dart'; -import 'package:retrofit/retrofit.dart'; - -import '../../../config/config.dart'; -import 'dio_apis.dart'; - -part 'dio_client.g.dart'; - -@RestApi(baseUrl: baseUrl) -abstract class DioClient { - factory DioClient(Dio dio, {String baseUrl}) = _DioClient; - - @GET(DioApis.users) - Future getUsers(@Path("id") int id); - - @POST(DioApis.login) - Future loginUser(@Body() dynamic body); - - @POST(DioApis.register) - Future registerUser(@Body() dynamic body); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_client.g.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_client.g.dart deleted file mode 100644 index f963aea..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_client.g.dart +++ /dev/null @@ -1,77 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'dio_client.dart'; - -// ************************************************************************** -// RetrofitGenerator -// ************************************************************************** - -// ignore_for_file: unnecessary_brace_in_string_interps,no_leading_underscores_for_local_identifiers - -class _DioClient implements DioClient { - _DioClient(this._dio, {this.baseUrl}) { - baseUrl ??= 'https://reqres.in/api'; - } - - final Dio _dio; - - String? baseUrl; - - @override - Future getUsers(id) async { - const _extra = {}; - final queryParameters = {}; - final _headers = {}; - final _data = {}; - final _result = await _dio.fetch(_setStreamType( - Options(method: 'GET', headers: _headers, extra: _extra) - .compose(_dio.options, '/users/${id}', - queryParameters: queryParameters, data: _data) - .copyWith(baseUrl: baseUrl ?? _dio.options.baseUrl))); - final value = _result.data; - return value; - } - - @override - Future loginUser(body) async { - const _extra = {}; - final queryParameters = {}; - final _headers = {}; - final _data = body; - final _result = await _dio.fetch(_setStreamType( - Options(method: 'POST', headers: _headers, extra: _extra) - .compose(_dio.options, '/login', - queryParameters: queryParameters, data: _data) - .copyWith(baseUrl: baseUrl ?? _dio.options.baseUrl))); - final value = _result.data; - return value; - } - - @override - Future registerUser(body) async { - const _extra = {}; - final queryParameters = {}; - final _headers = {}; - final _data = body; - final _result = await _dio.fetch(_setStreamType( - Options(method: 'POST', headers: _headers, extra: _extra) - .compose(_dio.options, '/register', - queryParameters: queryParameters, data: _data) - .copyWith(baseUrl: baseUrl ?? _dio.options.baseUrl))); - final value = _result.data; - return value; - } - - RequestOptions _setStreamType(RequestOptions requestOptions) { - if (T != dynamic && - !(requestOptions.responseType == ResponseType.bytes || - requestOptions.responseType == ResponseType.stream)) { - if (T == String) { - requestOptions.responseType = ResponseType.plain; - } else { - requestOptions.responseType = ResponseType.json; - } - } - return requestOptions; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_exceptions.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_exceptions.dart deleted file mode 100644 index f5777f5..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_exceptions.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:dio/dio.dart'; - -class DioExceptions implements Exception { - final String message; - final RequestOptions requestOptions; - - DioExceptions({required this.message, required this.requestOptions}); -} - -class TimeOutException extends DioExceptions { - TimeOutException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} - -class BadRequestException extends DioExceptions { - BadRequestException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} - -class UnauthorisedException extends DioExceptions { - UnauthorisedException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} - -class FileNotFoundException extends DioExceptions { - FileNotFoundException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} - -class InternalServerException extends DioExceptions { - InternalServerException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} - -class BadGateWayException extends DioExceptions { - BadGateWayException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} - -class ConnectionException extends DioExceptions { - ConnectionException(String message, RequestOptions requestOptions) - : super(message: message, requestOptions: requestOptions); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_interceptor.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_interceptor.dart deleted file mode 100644 index d4a70d5..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_helpers/dio_interceptor.dart +++ /dev/null @@ -1,79 +0,0 @@ -import 'package:dio/dio.dart'; - -import 'dio_exceptions.dart'; - -class DioInterceptor extends Interceptor { - @override - void onRequest(RequestOptions options, RequestInterceptorHandler handler) { - // Do something before request is sent. - super.onRequest(options, handler); - } - - @override - void onResponse(Response response, ResponseInterceptorHandler handler) { - // Do something with the response data. - super.onResponse(response, handler); - } - - @override - void onError(DioError err, ErrorInterceptorHandler handler) { - // Do something with the response error. - _handleError(err); - super.onError(err, handler); - } - - _handleError(DioError err) { - switch (err.type) { - case DioErrorType.connectTimeout: - case DioErrorType.receiveTimeout: - case DioErrorType.sendTimeout: - throw TimeOutException(err.message, err.requestOptions); - case DioErrorType.response: - switch (err.response?.statusCode) { - case 400: - throw BadRequestException( - err.error.toString(), - err.requestOptions, - ); - case 401: - throw UnauthorisedException( - err.error.toString(), - err.requestOptions, - ); - case 403: - throw UnauthorisedException( - err.error.toString(), - err.requestOptions, - ); - case 404: - throw FileNotFoundException( - err.error.toString(), - err.requestOptions, - ); - case 500: - throw InternalServerException( - err.error.toString(), - err.requestOptions, - ); - case 502: - throw BadGateWayException( - err.error.toString(), - err.requestOptions, - ); - case 503: - throw BadGateWayException( - err.error.toString(), - err.requestOptions, - ); - } - break; - case DioErrorType.other: - throw ConnectionException( - 'Please check your network connection', - err.requestOptions, - ); - default: - throw err; - } - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_service.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_service.dart deleted file mode 100644 index 84c80a2..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/dio_service.dart +++ /dev/null @@ -1,45 +0,0 @@ -import 'package:dio/dio.dart'; - -import 'dio_helpers/dio_client.dart'; -import 'dio_helpers/dio_interceptor.dart'; - -class DioApi { - DioApi._internal(); - - static final _singleton = DioApi._internal(); - - factory DioApi() => _singleton; - - static Dio createDio() { - var dio = Dio(BaseOptions( - receiveTimeout: 15000, - connectTimeout: 15000, - sendTimeout: 15000, - )); - - dio.interceptors.addAll({ - DioInterceptor(), - }); - return dio; - } -} - -class DioService { - static getUserData(int id) async { - final client = DioClient(DioApi.createDio()); - final response = await client.getUsers(id); - return response; - } - - static loginUser(dynamic body) async { - final client = DioClient(DioApi.createDio()); - final response = await client.loginUser(body); - return response; - } - - static registerUser(dynamic body) async { - final client = DioClient(DioApi.createDio()); - final response = await client.loginUser(body); - return response; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/models/user_model.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/models/user_model.dart deleted file mode 100644 index b4b4803..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/models/user_model.dart +++ /dev/null @@ -1,41 +0,0 @@ -import 'package:json_annotation/json_annotation.dart'; - -part 'user_model.g.dart'; - -@JsonSerializable() -class DioResponseData { - Data? data; - Support? support; - - DioResponseData({this.data, this.support}); - - factory DioResponseData.fromJson(Map json) => - _$DioResponseDataFromJson(json); - Map toJson() => _$DioResponseDataToJson(this); -} - -@JsonSerializable() -class Data { - int? id; - String? email; - String? firstName; - String? lastName; - String? avatar; - - Data({this.id, this.email, this.firstName, this.lastName, this.avatar}); - - factory Data.fromJson(Map json) => _$DataFromJson(json); - Map toJson() => _$DataToJson(this); -} - -@JsonSerializable() -class Support { - String? url; - String? text; - - Support({this.url, this.text}); - - factory Support.fromJson(Map json) => - _$SupportFromJson(json); - Map toJson() => _$SupportToJson(this); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/models/user_model.g.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/models/user_model.g.dart deleted file mode 100644 index 5ed5c03..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio/models/user_model.g.dart +++ /dev/null @@ -1,49 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'user_model.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -DioResponseData _$DioResponseDataFromJson(Map json) => - DioResponseData( - data: json['data'] == null - ? null - : Data.fromJson(json['data'] as Map), - support: json['support'] == null - ? null - : Support.fromJson(json['support'] as Map), - ); - -Map _$DioResponseDataToJson(DioResponseData instance) => - { - 'data': instance.data, - 'support': instance.support, - }; - -Data _$DataFromJson(Map json) => Data( - id: json['id'] as int?, - email: json['email'] as String?, - firstName: json['firstName'] as String?, - lastName: json['lastName'] as String?, - avatar: json['avatar'] as String?, - ); - -Map _$DataToJson(Data instance) => { - 'id': instance.id, - 'email': instance.email, - 'firstName': instance.firstName, - 'lastName': instance.lastName, - 'avatar': instance.avatar, - }; - -Support _$SupportFromJson(Map json) => Support( - url: json['url'] as String?, - text: json['text'] as String?, - ); - -Map _$SupportToJson(Support instance) => { - 'url': instance.url, - 'text': instance.text, - }; diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio_api_sdk.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio_api_sdk.dart deleted file mode 100644 index 0c11611..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/dio_api_sdk.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'dio/dio_service.dart'; - -class ApiSdk { - static loginWithEmailAndPassword(dynamic body) async { - final response = await DioService.loginUser(body); - return response; - } - - static signUpWithEmailAndPassword(dynamic body) async { - final response = await DioService.registerUser(body); - return response; - } - - static getUserData(int id) async { - final response = await DioService.getUserData(id); - return response; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/README.md b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/README.md deleted file mode 100644 index 18ceee2..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Http - -A composable, Future-based library for making HTTP requests that contains a set of high-level functions and classes that make it easy to consume HTTP resources. - -## Folders - -- http_helpers (Contains all the information about base urls, api calls and exception handling) - -### http_helpers - -- [http_client.dart](api_sdk/http/http_helpers/http_client.dart) - HttpClient class is responsible for handling all the network call methods. -- [http_exception.dart](api_sdk/http/http_helpers/http_exception.dart) - HttpExceptions handles all the exceptions for different error codes. -- [http_interceptor.dart](api_sdk/http/http_helpers/http_interceptor.dart) - HttpInterceptor lets you intercept the different requests and responses. - -### http_api_sdk - -Contains two classes HttpApi and HttpService that will eventually call the network methods. **HttpApi** class will create a client instance which will have interceptors added to it. **HttpService** will eventually call the network methods present in [http_service.dart](api_sdk/http/http_service.dart) diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_apis.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_apis.dart deleted file mode 100644 index 6342cce..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_apis.dart +++ /dev/null @@ -1,5 +0,0 @@ -class HttpApis { - static String users(int id) => '/users/$id'; - static const String register = '/register'; - static const String login = '/login'; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_client.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_client.dart deleted file mode 100644 index ef5292b..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_client.dart +++ /dev/null @@ -1,99 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; - -import 'package:http/http.dart' as http; - -import '../../../config/config.dart'; -import 'http_exception.dart'; - -class HttpClient { - final http.Client client; - HttpClient({required this.client}); - Future get( - String url, { - Map? headers, - bool isTokenRequired = false, - }) async { - http.Response? response; - dynamic responseJson; - - try { - response = - await http.get(Uri.parse(baseUrl + url), headers: headers ?? {}); - - responseJson = _returnResponse(response); - } on SocketException { - throw FetchDataException('No Internet connection'); - } - return responseJson; - } - - Future post(String url, - {Map? headers, Object? body}) async { - http.Response? response; - dynamic responseJson; - try { - response = await http.post(Uri.parse(baseUrl + url), - headers: headers ?? {}, body: body); - responseJson = _returnResponse(response); - } on SocketException { - throw FetchDataException('No Internet connection'); - } - - return responseJson; - } - - Future put(String url, - {Map? headers, Object? body}) async { - http.Response? response; - dynamic responseJson; - try { - response = await http.put(Uri.parse(baseUrl + url), - headers: headers ?? {}, body: body); - responseJson = _returnResponse(response); - } on SocketException { - throw FetchDataException('No Internet connection'); - } - - return responseJson; - } - - Future delete(String url, {Map? headers}) async { - http.Response? response; - dynamic responseJson; - try { - response = - await http.delete(Uri.parse(baseUrl + url), headers: headers ?? {}); - responseJson = _returnResponse(response); - } on SocketException { - throw FetchDataException('No Internet connection'); - } - - return responseJson; - } -} - -dynamic _returnResponse(http.Response response) { - switch (response.statusCode) { - case 200: - var responseJson = json.decode(response.body.toString()); - return responseJson; - case 400: - throw BadRequestException(response.body.toString()); - case 401: - throw UnauthorisedException(response.body.toString()); - case 403: - throw UnauthorisedException(response.body.toString()); - case 404: - throw FileNotFoundException(response.body.toString()); - case 500: - throw InternalServerException(response.body.toString()); - case 502: - throw BadGateWayException(response.body.toString()); - case 503: - throw BadGateWayException(response.body.toString()); - default: - return FetchDataException( - 'Error occured while Communication with Server with StatusCode : ${response.statusCode}'); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_exception.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_exception.dart deleted file mode 100644 index 59c8695..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_exception.dart +++ /dev/null @@ -1,42 +0,0 @@ -class HttpException implements Exception { - final dynamic _message; - final dynamic _prefix; - - HttpException([this._message, this._prefix]); - - @override - String toString() { - return "$_prefix$_message"; - } -} - -class FetchDataException extends HttpException { - FetchDataException([String? message]) - : super(message, "Error During Communication: "); -} - -class BadRequestException extends HttpException { - BadRequestException([message]) : super(message, "Invalid Request: "); -} - -class UnauthorisedException extends HttpException { - UnauthorisedException([message]) : super(message, "Unauthorised: "); -} - -class InvalidInputException extends HttpException { - InvalidInputException([String? message]) : super(message, "Invalid Input: "); -} - -class FileNotFoundException extends HttpException { - FileNotFoundException([String? message]) : super(message, "File not found: "); -} - -class InternalServerException extends HttpException { - InternalServerException([String? message]) - : super(message, "Internal Server Exception: "); -} - -class BadGateWayException extends HttpException { - BadGateWayException([String? message]) - : super(message, "Bad Gateway Exception: "); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_interceptor.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_interceptor.dart deleted file mode 100644 index 0850005..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_helpers/http_interceptor.dart +++ /dev/null @@ -1,15 +0,0 @@ -import 'package:http_interceptor/http_interceptor.dart'; - -class HttpInterceptor extends InterceptorContract { - @override - Future interceptRequest({required RequestData data}) { - // triggers before the http request is called - throw UnimplementedError(); - } - - @override - Future interceptResponse({required ResponseData data}) { - // triggers after the request is called - throw UnimplementedError(); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_service.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_service.dart deleted file mode 100644 index b509392..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http/http_service.dart +++ /dev/null @@ -1,41 +0,0 @@ -import 'package:http/http.dart'; -import 'package:http_interceptor/http/intercepted_client.dart'; - -import 'http_helpers/http_client.dart'; -import 'http_helpers/http_interceptor.dart'; - -class HttpApi { - HttpApi._internal(); - - static final _singleton = HttpApi._internal(); - - factory HttpApi() => _singleton; - - static Client createHttp() { - Client httpClient = InterceptedClient.build(interceptors: [ - HttpInterceptor(), - ]); - return httpClient; - } -} - -class HttpService { - static getData(String url) async { - final client = HttpClient(client: HttpApi.createHttp()); - final response = await client.get(url); - return response; - } - - static postData(String url, dynamic body) async { - final client = HttpClient(client: HttpApi.createHttp()); - final response = await client.post(url, body: body); - - return response; - } - - static putData(String url, dynamic body) async { - final client = HttpClient(client: HttpApi.createHttp()); - final response = await client.put(url, body: body); - return response; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http_api_sdk.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http_api_sdk.dart deleted file mode 100644 index 2de3065..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/api_sdk/http_api_sdk.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'http/http_helpers/http_apis.dart'; -import 'http/http_service.dart'; - -class ApiSdk { - static loginWithEmailAndPassword(dynamic body) async { - final response = await HttpService.postData(HttpApis.login, body); - return response; - } - - static signUpWithEmailAndPassword(dynamic body) async { - final response = await HttpService.postData(HttpApis.register, body); - return response; - } - - static getUserData(int id) async { - final response = await HttpService.getData(HttpApis.users(id)); - return response; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/app.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/app.dart deleted file mode 100644 index 5d13045..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/app.dart +++ /dev/null @@ -1,45 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; - -import 'common_export.dart'; - -class App extends StatelessWidget { - const App({Key? key}) : super(key: key); - - @override - Widget build(BuildContext context) { - return BlocBuilder( - builder: (context, state) { - /// Without go_router we should return MaterialApp() with - /// {onGenerateRoute: routes} - /// routes from routes.dart - return MaterialApp.router( - debugShowCheckedModeBanner: false, - title: 'Hello World!', - theme: ThemeConfig.lightTheme, - darkTheme: ThemeConfig.darkTheme, - themeMode: state is SetTheme - ? state.appTheme == AppTheme.light - ? ThemeMode.light - : ThemeMode.dark - : ThemeMode.light, - // onGenerateRoute: routes, - routeInformationParser: router.routeInformationParser, - routerDelegate: router.routerDelegate, - routeInformationProvider: router.routeInformationProvider, - - localizationsDelegates: const [ - AppLocalizations.delegate, - GlobalMaterialLocalizations.delegate, - GlobalCupertinoLocalizations.delegate, - GlobalWidgetsLocalizations.delegate, - ], - supportedLocales: AppLocalizations.supportedLocales, - // locale: const Locale('fr'), - ); - }, - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/common_export.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/common_export.dart deleted file mode 100644 index 0f5e03b..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/common_export.dart +++ /dev/null @@ -1,27 +0,0 @@ -export 'api_sdk/{{api}}_api_sdk.dart'; -export 'app.dart'; -export 'routes/routes.dart'; -export 'screens/home/home.dart'; -export 'screens/login/login_screen.dart'; -export 'screens/login/widgets/login_form.dart'; -export 'screens/signup/signup_screen.dart'; -export 'screens/signup/widgets/signup_form.dart'; -export 'screens/splash/splash_screen.dart'; -export 'shared/bloc/authentication/authentication_bloc.dart'; -export 'shared/bloc/bloc_controller.dart'; -export 'shared/bloc/update_theme/update_theme_bloc.dart'; -export 'shared/models/current_user_data.dart'; -export 'shared/models/current_user_data.dart'; -export 'shared/models/firebase_user.dart'; -export 'shared/models/firebase_user.dart'; -export 'shared/models/token.dart'; -export 'shared/models/user.dart'; -export 'shared/models/user_data.dart'; -export 'shared/repository/authentication_repository.dart'; -export 'shared/shared.dart'; -export 'themes/color_constants.dart'; -export 'themes/theme_data.dart'; -export 'utils/image_constants.dart'; -export 'utils/responsive.dart'; -export 'utils/size_utils.dart'; -export 'widgets/cache_image_widget.dart'; diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/config/config.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/config/config.dart deleted file mode 100644 index 19ce7b6..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/config/config.dart +++ /dev/null @@ -1 +0,0 @@ -const String baseUrl = "https://reqres.in/api"; // User authetication diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_en.arb b/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_en.arb deleted file mode 100644 index d99a38f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_en.arb +++ /dev/null @@ -1,4 +0,0 @@ -{ - "homeText" : "Home", - "flutterStarterText" : "Flutter Starter" -} \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_es.arb b/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_es.arb deleted file mode 100644 index fe37fac..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_es.arb +++ /dev/null @@ -1,4 +0,0 @@ -{ - "homeText" : "SHome", - "flutterStarterText" : "SFlutter Starter" -} \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_fr.arb b/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_fr.arb deleted file mode 100644 index 5c8d8d6..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/l10n/app_fr.arb +++ /dev/null @@ -1,4 +0,0 @@ -{ - "homeText" : "FHome", - "flutterStarterText" : "FFlutter Starter" -} \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/main.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/main.dart deleted file mode 100644 index 1c226f5..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/main.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; - -import 'common_export.dart'; - -Future main() async { - WidgetsFlutterBinding.ensureInitialized(); - await SharedPrefs.instance.init(); - final authenticationService = AuthenticationRepository(); - - runApp( - MultiBlocProvider( - providers: [ - BlocProvider( - create: (BuildContext context) => AuthenticationBloc( - authenticationService: authenticationService, - ), - ), - BlocProvider( - create: (BuildContext context) => UpdateThemeBloc(), - ), - ], - child: const App(), - ), - ); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/routes/routes.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/routes/routes.dart deleted file mode 100644 index c88e1d1..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/routes/routes.dart +++ /dev/null @@ -1,52 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; - -import '../common_export.dart'; - -final GoRouter router = GoRouter( - initialLocation: '/', - routes: [ - GoRoute( - path: '/', - builder: (BuildContext context, GoRouterState state) { - return const SplashScreen(); - }, - ), - GoRoute( - path: '/home', - builder: (BuildContext context, GoRouterState state) { - return const HomeScreen(); - }, - ), - GoRoute( - path: '/login', - builder: (BuildContext context, GoRouterState state) { - return const LoginScreen(); - }, - ), - GoRoute( - path: '/signup', - builder: (BuildContext context, GoRouterState state) { - return const SignUpScreen(); - }, - ), - ], -); - -/// routes for the app Without go_router -// import 'package:flutter_starter/flutter_starter.dart'; - -// import 'package:flutter/material.dart'; - -// Route routes(RouteSettings settings) { -// switch (settings.name) { -// case '/': -// return MaterialPageRoute(builder: (_) => const SplashScreen()); -// case '/home': -// return MaterialPageRoute(builder: (_) => const HomeScreen()); -// case '/auth': -// return MaterialPageRoute(builder: (_) => const AuthenticationScreen()); -// default: -// return MaterialPageRoute(builder: (_) => const SplashScreen()); -// } -// } diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/home/home.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/screens/home/home.dart deleted file mode 100644 index 973a77e..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/home/home.dart +++ /dev/null @@ -1,180 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'package:cached_network_image/cached_network_image.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:flutter_gen/gen_l10n/app_localizations.dart'; -import 'package:go_router/go_router.dart'; - -import '../../common_export.dart'; - -class HomeScreen extends StatefulWidget { - const HomeScreen({Key? key}) : super(key: key); - - @override - State createState() => _HomeScreenState(); -} - -class _HomeScreenState extends State { - late final AuthenticationBloc authenticationBloc; - bool switchValue = false; - - @override - void initState() { - super.initState(); - authenticationBloc = BlocProvider.of(context); - authenticationBloc.add(const GetUserData()); - switchValue = BlocProvider.of(context).state.props.first == - AppTheme.light - ? false - : true; - } - - @override - Widget build(BuildContext context) { - return WillPopScope( - onWillPop: () async => false, - child: BlocListener( - bloc: authenticationBloc, - listener: (context, state) { - if (state is UserLogoutState) { - context.go('/login'); - } - }, - child: BlocBuilder( - bloc: authenticationBloc, - builder: (BuildContext context, AuthenticationState state) { - if (state is SetUserData) { - return Scaffold( - appBar: AppBar( - backgroundColor: Theme.of(context).primaryColor, - centerTitle: true, - title: Text( - AppLocalizations.of(context)?.flutterStarterText ?? - 'Flutter Starter', - style: Theme.of(context) - .textTheme - .headline3! - .copyWith(color: Theme.of(context).backgroundColor), - ), - actions: [ - IconButton( - key: const Key('logoutButton'), - icon: const Icon(Icons.logout), - onPressed: () { - authenticationBloc.add(const UserLogOut()); - }), - ], - ), - backgroundColor: Theme.of(context).backgroundColor, - body: Center( - child: Text( - AppLocalizations.of(context)?.homeText ?? 'Home', - style: Theme.of(context).textTheme.headline6), - ), - drawer: Drawer( - backgroundColor: Theme.of(context).backgroundColor, - child: ListView( - padding: EdgeInsets.zero, - children: [ - DrawerHeader( - decoration: BoxDecoration( - color: Theme.of(context).primaryColor, - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: - MainAxisAlignment.spaceBetween, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - CachedNetworkImage( - imageUrl: - state.currentUserData.data!.avatar, - imageBuilder: (context, imageProvider) => - Container( - width: 65.toResponsiveWidth, - height: 65.toResponsiveHeight, - decoration: BoxDecoration( - shape: BoxShape.circle, - image: DecorationImage( - image: imageProvider, - fit: BoxFit.cover), - ), - ), - placeholder: (context, url) => - const CircularProgressIndicator(), - errorWidget: (context, url, error) => - Image.network( - AllImages().kDefaultImage, - ), - ), - Switch( - key: const Key('themeSwitch'), - activeColor: - Theme.of(context).backgroundColor, - value: switchValue, - onChanged: (value) { - setState(() { - switchValue = value; - }); - - BlocProvider.of(context) - .add(UpdateTheme( - appTheme: value - ? AppTheme.dark - : AppTheme.light)); - }, - ) - ], - ) - ], - ), - ), - ListTile( - dense: true, - leading: Text("Name", - style: Theme.of(context).textTheme.headline6), - title: Text( - '${state.currentUserData.data!.firstName} ${state.currentUserData.data!.lastName}', - style: Theme.of(context) - .textTheme - .bodyText2! - .copyWith(fontSize: 12.toResponsiveFont)), - ), - ListTile( - dense: true, - leading: Text("Email", - style: Theme.of(context).textTheme.headline6), - title: Text(state.currentUserData.data!.email, - style: Theme.of(context) - .textTheme - .bodyText2! - .copyWith(fontSize: 12.toResponsiveFont)), - ), - ListTile( - leading: Text("Text", - style: Theme.of(context).textTheme.headline6), - title: Text(state.currentUserData.support!.text, - style: Theme.of(context) - .textTheme - .bodyText2! - .copyWith(fontSize: 12.toResponsiveFont)), - ), - ], - ), - ), - ); - } - return Scaffold( - body: Center( - child: CircularProgressIndicator( - color: Theme.of(context).primaryColor, - ), - ), - ); - }), - ), - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/login/login_screen.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/screens/login/login_screen.dart deleted file mode 100644 index a3c8d6e..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/login/login_screen.dart +++ /dev/null @@ -1,125 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:fluttertoast/fluttertoast.dart'; -import 'package:go_router/go_router.dart'; - -import '../../common_export.dart'; - -class LoginScreen extends StatefulWidget { - const LoginScreen({Key? key}) : super(key: key); - - @override - State createState() => _LoginScreenState(); -} - -class _LoginScreenState extends State { - late final AuthenticationBloc authenticationBloc; - - @override - void initState() { - super.initState(); - authenticationBloc = BlocProvider.of(context); - } - - void _showError(String error) async { - await Fluttertoast.showToast( - msg: error, - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.BOTTOM, - timeInSecForIosWeb: 3, - backgroundColor: Theme.of(context).errorColor, - textColor: Colors.white, - fontSize: 16.0); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: WillPopScope( - onWillPop: () async => false, - child: BlocListener( - bloc: authenticationBloc, - listener: (context, state) { - if (state is AuthenticationFailure) { - _showError(state.message); - } - if (state is AppAutheticated) { - context.go('/home'); - } - }, - child: BlocBuilder( - bloc: authenticationBloc, - builder: (BuildContext context, AuthenticationState state) { - return SafeArea( - child: Responsive.isDesktop(context) - ? Center( - child: Card( - elevation: 15, - child: SizedBox( - width: 500.toResponsiveWidth, - height: 650.toResponsiveHeight, - child: _authenticationForm(context, state)), - ), - ) - : SingleChildScrollView( - child: _authenticationForm(context, state), - ), - ); - }), - ), - ), - ); - } - - Widget _authenticationForm(BuildContext context, AuthenticationState state) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: Image.asset( - AllImages().login, - width: 350.toResponsiveWidth, - height: 300.toResponsiveHeight, - )), - SizedBox(height: 12.toResponsiveHeight), - Container( - margin: EdgeInsets.symmetric(horizontal: 32.toResponsiveWidth), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Login', style: Theme.of(context).textTheme.headline1), - SizedBox(height: 15.toResponsiveHeight), - LoginForm( - authenticationBloc: authenticationBloc, - state: state, - ), - ], - ), - ), - SizedBox(height: 32.toResponsiveHeight), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'New here?', - style: Theme.of(context) - .textTheme - .bodyText2! - .copyWith(fontSize: 12.toResponsiveFont), - ), - InkWell( - child: Text( - ' Sign Up', - style: Theme.of(context).textTheme.bodyText2!.copyWith( - fontSize: 13.toResponsiveFont, - color: Theme.of(context).primaryColor), - ), - onTap: () { - context.push('/signup'); - }), - ], - ) - ], - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/login/widgets/login_form.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/screens/login/widgets/login_form.dart deleted file mode 100644 index bc0d978..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/login/widgets/login_form.dart +++ /dev/null @@ -1,107 +0,0 @@ -import 'package:flutter/material.dart'; - -import '../../../common_export.dart'; - -class LoginForm extends StatefulWidget { - final AuthenticationBloc authenticationBloc; - final AuthenticationState state; - const LoginForm( - {Key? key, required this.authenticationBloc, required this.state}) - : super(key: key); - @override - State createState() => _LoginFormState(); -} - -class _LoginFormState extends State { - final GlobalKey _key = GlobalKey(); - final _passwordController = TextEditingController(); - final _emailController = TextEditingController(); - // @override - // void initState() { - // // TODO: implement initState - // super.initState(); - - // _emailController.text = "eve.holt@reqres.in"; - // _passwordController.text = "pistol"; - // } - - @override - Widget build(BuildContext context) { - return Form( - key: _key, - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - TextFormField( - // initialValue: "eve.holt@reqres.in", - key: const Key('emailField'), - cursorColor: Theme.of(context).textTheme.headline1!.color, - decoration: InputDecoration( - labelText: 'Email address', - isDense: true, - prefixIcon: Icon( - Icons.email, - size: 28.toResponsiveFont, - ), - ), - controller: _emailController, - keyboardType: TextInputType.emailAddress, - autocorrect: false, - validator: (value) { - if (value!.isEmpty) { - return 'Email is required.'; - } - return null; - }, - ), - SizedBox(height: 15.toResponsiveHeight), - TextFormField( - // initialValue: R"pistol", - key: const Key('passwordField'), - cursorColor: Theme.of(context).textTheme.headline1!.color, - decoration: InputDecoration( - labelText: 'Password', - isDense: true, - prefixIcon: Icon( - Icons.lock, - size: 28.toResponsiveFont, - )), - obscureText: true, - controller: _passwordController, - validator: (value) { - if (value!.isEmpty) { - return 'Password is required.'; - } - return null; - }, - ), - SizedBox(height: 18.toResponsiveHeight), - ElevatedButton( - key: const Key('loginButton'), - style: ElevatedButton.styleFrom( - primary: Theme.of(context).primaryColor, - ), - onPressed: () { - if (_key.currentState!.validate()) { - widget.authenticationBloc.add(UserLogin( - email: _emailController.text, - password: _passwordController.text)); - } else {} - }, - child: widget.state is AuthenticationLoading - ? CircularProgressIndicator( - backgroundColor: Theme.of(context).backgroundColor, - ) - : Text( - 'Login', - style: Theme.of(context) - .textTheme - .bodyText1! - .copyWith(fontSize: 15.toResponsiveFont), - ), - ) - ], - ), - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/signup/signup_screen.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/screens/signup/signup_screen.dart deleted file mode 100644 index 0f60767..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/signup/signup_screen.dart +++ /dev/null @@ -1,144 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:fluttertoast/fluttertoast.dart'; -import 'package:go_router/go_router.dart'; - -import '../../common_export.dart'; - -class SignUpScreen extends StatefulWidget { - const SignUpScreen({Key? key}) : super(key: key); - - @override - State createState() => _SignUpScreenState(); -} - -class _SignUpScreenState extends State { - late final AuthenticationBloc authenticationBloc; - - @override - void initState() { - super.initState(); - authenticationBloc = BlocProvider.of(context); - } - - void _showError(String error) async { - await Fluttertoast.showToast( - msg: error, - toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.BOTTOM, - timeInSecForIosWeb: 3, - backgroundColor: Theme.of(context).errorColor, - textColor: Colors.white, - fontSize: 16.0); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - body: WillPopScope( - onWillPop: () async => false, - child: BlocListener( - bloc: authenticationBloc, - listener: (context, state) { - if (state is AuthenticationFailure) { - _showError(state.message); - } - if (state is AppAutheticated) { - context.go('/home'); - } - }, - child: BlocBuilder( - bloc: authenticationBloc, - builder: (BuildContext context, AuthenticationState state) { - return SafeArea( - child: Stack( - children: [ - Responsive.isDesktop(context) - ? Center( - child: Card( - elevation: 15, - child: SizedBox( - width: 500.toResponsiveWidth, - height: 650.toResponsiveHeight, - child: _authenticationForm(context, state)), - ), - ) - : SingleChildScrollView( - child: _authenticationForm(context, state), - ), - Positioned( - left: 6, - child: IconButton( - icon: Icon( - Icons.arrow_back_ios, - size: 28, - color: Theme.of(context).textTheme.headline1!.color, - ), - onPressed: () { - context.pop(); - }, - ), - ), - ], - )); - }, - ), - ), - ), - ); - } - - Widget _authenticationForm(BuildContext context, AuthenticationState state) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Center( - child: Image.asset( - AllImages().signup, - width: 260.toResponsiveWidth, - height: 250.toResponsiveHeight, - ), - ), - SizedBox(height: 12.toResponsiveHeight), - Container( - margin: EdgeInsets.symmetric(horizontal: 32.toResponsiveWidth), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('Sign Up', style: Theme.of(context).textTheme.headline1), - SizedBox(height: 15.toResponsiveHeight), - SignUpForm( - authenticationBloc: authenticationBloc, - state: state, - ), - ], - ), - ), - SizedBox(height: 32.toResponsiveHeight), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'Already have an account?', - style: Theme.of(context) - .textTheme - .bodyText2! - .copyWith(fontSize: 12.toResponsiveFont), - ), - InkWell( - child: Text( - ' Login', - style: Theme.of(context).textTheme.bodyText2!.copyWith( - fontSize: 13.toResponsiveFont, - color: Theme.of(context).primaryColor), - ), - onTap: () { - context.pop(); - }), - ], - ), - ], - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/signup/widgets/signup_form.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/screens/signup/widgets/signup_form.dart deleted file mode 100644 index 288fabb..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/signup/widgets/signup_form.dart +++ /dev/null @@ -1,120 +0,0 @@ -import 'package:flutter/material.dart'; - -import '../../../common_export.dart'; - -class SignUpForm extends StatefulWidget { - final AuthenticationBloc authenticationBloc; - final AuthenticationState state; - const SignUpForm( - {Key? key, required this.authenticationBloc, required this.state}) - : super(key: key); - @override - State createState() => _SignUpFormState(); -} - -class _SignUpFormState extends State { - final GlobalKey _key = GlobalKey(); - final _passwordController = TextEditingController(); - final _emailController = TextEditingController(); - final _nameController = TextEditingController(); - - @override - Widget build(BuildContext context) { - return Form( - key: _key, - child: Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - TextFormField( - key: const Key('nameField'), - cursorColor: Theme.of(context).textTheme.headline1!.color, - decoration: InputDecoration( - labelText: 'Name', - isDense: true, - prefixIcon: Icon( - Icons.person, - size: 28.toResponsiveFont, - ), - ), - controller: _nameController, - keyboardType: TextInputType.name, - autocorrect: false, - validator: (value) { - if (value!.isEmpty) { - return 'Name is required.'; - } - return null; - }, - ), - SizedBox(height: 15.toResponsiveHeight), - TextFormField( - key: const Key('emailField'), - cursorColor: Theme.of(context).textTheme.headline1!.color, - decoration: InputDecoration( - labelText: 'Email address', - isDense: true, - prefixIcon: Icon( - Icons.email, - size: 28.toResponsiveFont, - ), - ), - controller: _emailController, - keyboardType: TextInputType.emailAddress, - autocorrect: false, - validator: (value) { - if (value!.isEmpty) { - return 'Email is required.'; - } - return null; - }, - ), - SizedBox(height: 15.toResponsiveHeight), - TextFormField( - key: const Key('passwordField'), - cursorColor: Theme.of(context).textTheme.headline1!.color, - decoration: InputDecoration( - labelText: 'Password', - isDense: true, - prefixIcon: Icon( - Icons.lock, - size: 28.toResponsiveFont, - )), - obscureText: true, - controller: _passwordController, - validator: (value) { - if (value!.isEmpty) { - return 'Password is required.'; - } - return null; - }, - ), - SizedBox(height: 18.toResponsiveHeight), - ElevatedButton( - key: const Key('signupButton'), - style: ElevatedButton.styleFrom( - primary: Theme.of(context).primaryColor, - ), - onPressed: () { - if (_key.currentState!.validate()) { - widget.authenticationBloc.add(UserSignUp( - email: _emailController.text, - password: _passwordController.text)); - } else {} - }, - child: widget.state is AuthenticationLoading - ? CircularProgressIndicator( - backgroundColor: Theme.of(context).backgroundColor, - ) - : Text( - 'Sign Up', - style: Theme.of(context) - .textTheme - .bodyText1! - .copyWith(fontSize: 15.toResponsiveFont), - ), - ) - ], - ), - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/splash/splash_screen.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/screens/splash/splash_screen.dart deleted file mode 100644 index 4449289..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/screens/splash/splash_screen.dart +++ /dev/null @@ -1,49 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:go_router/go_router.dart'; - -import '../../common_export.dart'; - -class SplashScreen extends StatefulWidget { - const SplashScreen({Key? key}) : super(key: key); - - @override - State createState() => _SplashScreenState(); -} - -class _SplashScreenState extends State { - late AuthenticationBloc authenticationBloc; - @override - Widget build(BuildContext context) { - UiSizeConfig().init(context); - return Scaffold( - backgroundColor: Theme.of(context).backgroundColor, - body: BlocListener( - bloc: authenticationBloc, - listener: (BuildContext context, AuthenticationState state) { - if (state is AppAutheticated) { - context.go('/home'); - } - if (state is AuthenticationStart) { - context.go('/login'); - } - if (state is UserLogoutState) { - context.go('/login'); - } - }, - child: BlocBuilder( - bloc: authenticationBloc, - builder: (BuildContext context, AuthenticationState state) { - return Center(child: Image.asset(AllImages().logo)); - }), - ), - ); - } - - @override - void initState() { - authenticationBloc = BlocProvider.of(context); - authenticationBloc.add(const AppLoadedup()); - super.initState(); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_bloc.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_bloc.dart deleted file mode 100644 index de0e063..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_bloc.dart +++ /dev/null @@ -1,106 +0,0 @@ -import 'package:equatable/equatable.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; - -import '../../../common_export.dart'; - -part 'authentication_event.dart'; -part 'authentication_state.dart'; - -class AuthenticationBloc - extends Bloc { - final SharedPrefs prefs = SharedPrefs.instance; - final AuthenticationRepository _authenticationService; - - AuthenticationBloc({ - required AuthenticationRepository authenticationService, - }) : _authenticationService = authenticationService, - super(const AuthenticationInitial()) { - on(_mapAppSignUpLoadedState); - on(_mapUserSignupToState); - on(_mapUserLoginState); - on(_mapUserLogoutState); - on(_mapUserDataState); - } - - void _mapAppSignUpLoadedState( - AppLoadedup event, Emitter emit) async { - emit(const AuthenticationLoading()); - try { - await Future.delayed( - const Duration(milliseconds: 500)); // a simulated delay - if (prefs.getToken() != null) { - emit(const AppAutheticated()); - } else { - emit(const AuthenticationStart()); - } - } catch (e) { - emit(const AuthenticationFailure(message: 'An unknown error occurred')); - } - } - - void _mapUserLoginState( - UserLogin event, Emitter emit) async { - emit(const AuthenticationLoading()); - try { - await Future.delayed( - const Duration(milliseconds: 500)); // a simulated delay - final data = await _authenticationService.loginWithEmailAndPassword( - event.email, event.password!); - if (data["error"] == null) { - final currentUser = Token.fromJson(data); - if (currentUser != null) { - prefs.setToken(currentUser.token); - emit(const AppAutheticated()); - } else { - emit(AuthenticationNotAuthenticated()); - } - } else { - emit(AuthenticationFailure(message: data["error"])); - } - } catch (e) { - emit(AuthenticationFailure(message: e.toString())); - } - } - - void _mapUserSignupToState( - UserSignUp event, Emitter emit) async { - emit(const AuthenticationLoading()); - try { - await Future.delayed( - const Duration(milliseconds: 500)); // a simulated delay - final data = await _authenticationService.signUpWithEmailAndPassword( - event.email, event.password!); - - if (data["error"] == null) { - final currentUser = UserData.fromJson(data); - if (currentUser != null) { - prefs.setToken(currentUser.token); - prefs.setUserId(currentUser.id); - emit(const AppAutheticated()); - } else { - emit(AuthenticationNotAuthenticated()); - } - } else { - emit(AuthenticationFailure(message: data["error"])); - } - } catch (e) { - emit(AuthenticationFailure(message: e.toString())); - } - } - - void _mapUserLogoutState( - UserLogOut event, Emitter emit) async { - emit(const AuthenticationLoading()); - prefs.clear(); - emit(const UserLogoutState()); - } - - void _mapUserDataState( - GetUserData event, Emitter emit) async { - emit(const AuthenticationLoading()); - final currentUserId = prefs.getUserId(); - final data = await _authenticationService.getUserData(currentUserId ?? 4); - final currentUserData = CurrentUserData.fromJson(data); - emit(SetUserData(currentUserData: currentUserData)); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_event.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_event.dart deleted file mode 100644 index abadfed..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_event.dart +++ /dev/null @@ -1,39 +0,0 @@ -part of 'authentication_bloc.dart'; - -abstract class AuthenticationEvent extends Equatable { - const AuthenticationEvent(); - - @override - List get props => []; -} - -// Fired just after the app is launched -class AppLoadedup extends AuthenticationEvent { - const AppLoadedup(); -} - -class UserLogOut extends AuthenticationEvent { - const UserLogOut(); -} - -class GetUserData extends AuthenticationEvent { - const GetUserData(); -} - -class UserSignUp extends AuthenticationEvent { - final String email; - final String? password; - const UserSignUp({required this.email, this.password}); - - @override - List get props => [email, password!]; -} - -class UserLogin extends AuthenticationEvent { - final String email; - final String? password; - const UserLogin({required this.email, this.password}); - - @override - List get props => [email, password!]; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_state.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_state.dart deleted file mode 100644 index 1c67378..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/authentication/authentication_state.dart +++ /dev/null @@ -1,46 +0,0 @@ -part of 'authentication_bloc.dart'; - -abstract class AuthenticationState extends Equatable { - const AuthenticationState(); - - @override - List get props => []; -} - -class AuthenticationInitial extends AuthenticationState { - const AuthenticationInitial(); -} - -class AppAutheticated extends AuthenticationState { - const AppAutheticated(); -} - -class AuthenticationLoading extends AuthenticationState { - const AuthenticationLoading(); -} - -class AuthenticationStart extends AuthenticationState { - const AuthenticationStart(); -} - -class UserLogoutState extends AuthenticationState { - const UserLogoutState(); -} - -class SetUserData extends AuthenticationState { - final CurrentUserData currentUserData; - const SetUserData({required this.currentUserData}); - @override - List get props => [currentUserData]; -} - -class AuthenticationNotAuthenticated extends AuthenticationState {} - -class AuthenticationFailure extends AuthenticationState { - final String message; - - const AuthenticationFailure({required this.message}); - - @override - List get props => [message]; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/bloc_controller.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/bloc_controller.dart deleted file mode 100644 index f1a15fa..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/bloc_controller.dart +++ /dev/null @@ -1,6 +0,0 @@ -class AuthenticationBlocController { - AuthenticationBlocController._(); - static final AuthenticationBlocController _instance = - AuthenticationBlocController._(); - factory AuthenticationBlocController() => _instance; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_bloc.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_bloc.dart deleted file mode 100644 index cebc977..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_bloc.dart +++ /dev/null @@ -1,15 +0,0 @@ -import 'package:equatable/equatable.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; - -part 'update_theme_event.dart'; -part 'update_theme_state.dart'; - -class UpdateThemeBloc extends Bloc { - UpdateThemeBloc() : super(const SetTheme(appTheme: AppTheme.light)) { - on((event, emit) { - if (event is UpdateTheme) { - emit(SetTheme(appTheme: event.appTheme)); - } - }); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_event.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_event.dart deleted file mode 100644 index 85776e9..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_event.dart +++ /dev/null @@ -1,18 +0,0 @@ -part of 'update_theme_bloc.dart'; - -enum AppTheme { light, dark } - -abstract class UpdateThemeEvent extends Equatable { - const UpdateThemeEvent(); - - @override - List get props => []; -} - -class UpdateTheme extends UpdateThemeEvent { - final AppTheme appTheme; - const UpdateTheme({required this.appTheme}); - - @override - List get props => [appTheme]; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_state.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_state.dart deleted file mode 100644 index a9af389..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/bloc/update_theme/update_theme_state.dart +++ /dev/null @@ -1,14 +0,0 @@ -part of 'update_theme_bloc.dart'; - -abstract class UpdateThemeState extends Equatable { - const UpdateThemeState(); - @override - List get props => []; -} - -class SetTheme extends UpdateThemeState { - final AppTheme appTheme; - const SetTheme({required this.appTheme}); - @override - List get props => [appTheme]; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/current_user_data.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/current_user_data.dart deleted file mode 100644 index 6c1fe01..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/current_user_data.dart +++ /dev/null @@ -1,76 +0,0 @@ -class CurrentUserData { - Data? data; - Support? support; - - CurrentUserData({this.data, this.support}); - - CurrentUserData.fromJson(Map json) { - data = json['data'] != null ? Data.fromJson(json['data']) : Data(); - support = - json['support'] != null ? Support.fromJson(json['support']) : Support(); - } - - Map toJson() { - final Map data = {}; - if (this.data != null) { - data['data'] = this.data!.toJson(); - } - if (support != null) { - data['support'] = support!.toJson(); - } - return data; - } -} - -class Data { - late int? id; - late String email; - late String firstName; - late String lastName; - late String avatar; - - Data( - {this.id, - this.email = '', - this.firstName = '', - this.lastName = '', - this.avatar = ''}); - - Data.fromJson(Map json) { - id = json['id']; - email = json['email']; - firstName = json['first_name']; - lastName = json['last_name']; - avatar = json['avatar']; - } - - Map toJson() { - final Map data = {}; - data['id'] = id; - data['email'] = email; - data['first_name'] = firstName; - data['last_name'] = lastName; - data['avatar'] = avatar; - return data; - } -} - -class Support { - late String url; - late String text; - - Support({this.url = '', this.text = ''}); - - Support.fromJson(Map json) { - url = json['url']; - text = json['text']; - } - - Map toJson() { - final Map data = {}; - - data['url'] = url; - data['text'] = text; - return data; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/firebase_user.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/firebase_user.dart deleted file mode 100644 index 9362ee4..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/firebase_user.dart +++ /dev/null @@ -1,14 +0,0 @@ -class UserFromFirebaseUser { - final String uid; - final String email; - final String token; - final String avatar; - - UserFromFirebaseUser({ - required this.uid, - required this.email, - required this.token, - this.avatar = - "https://i.pinimg.com/736x/89/90/48/899048ab0cc455154006fdb9676964b3.jpg", - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/token.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/token.dart deleted file mode 100644 index cdd4579..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/token.dart +++ /dev/null @@ -1,15 +0,0 @@ -class Token { - late String token; - - Token({required this.token}); - - Token.fromJson(Map json) { - token = json['token']; - } - - Map toJson() { - final Map data = {}; - data['token'] = token; - return data; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/user.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/user.dart deleted file mode 100644 index 8c73672..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/user.dart +++ /dev/null @@ -1,9 +0,0 @@ -class MyUser { - final String name; - final String email; - - MyUser({required this.name, required this.email}); - - @override - String toString() => 'User { name: $name, email: $email}'; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/user_data.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/user_data.dart deleted file mode 100644 index 2eb8786..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/models/user_data.dart +++ /dev/null @@ -1,18 +0,0 @@ -class UserData { - late int id; - late String token; - - UserData({required this.id, required this.token}); - - UserData.fromJson(Map json) { - id = json['id']; - token = json['token']; - } - - Map toJson() { - final Map data = {}; - data['id'] = id; - data['token'] = token; - return data; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/repository/authentication_repository.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/repository/authentication_repository.dart deleted file mode 100644 index 839f329..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/repository/authentication_repository.dart +++ /dev/null @@ -1,27 +0,0 @@ -import '../../common_export.dart'; - -class AuthenticationRepository { - Future signUpWithEmailAndPassword( - String email, String password) async { - await Future.delayed(const Duration(seconds: 1)); - final response = await ApiSdk.signUpWithEmailAndPassword( - {'email': email, 'password': password}); - - return response; - } - - Future loginWithEmailAndPassword( - String email, String password) async { - await Future.delayed(const Duration(seconds: 1)); - final response = await ApiSdk.loginWithEmailAndPassword( - {'email': email, 'password': password}); - - return response; - } - - Future getUserData(int id) async { - final response = await ApiSdk.getUserData(id); - - return response; - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/shared.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/shared/shared.dart deleted file mode 100644 index dae32b7..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/shared/shared.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:shared_preferences/shared_preferences.dart'; - -class SharedPrefs { - SharedPrefs._(); - - static final SharedPrefs _instance = SharedPrefs._(); - static SharedPrefs get instance => _instance; - - late SharedPreferences _prefs; - - Future init() async => _prefs = await SharedPreferences.getInstance(); - - Future remove(String key) async => await _prefs.remove(key); - - Future clear() async => await _prefs.clear(); - - /// Setters - Future setToken(String value) async => - await _prefs.setString('authtoken', value); - Future setUserId(int value) async => - await _prefs.setInt('userId', value); - - /// Getters - String? getToken() => _prefs.getString('authtoken'); - int? getUserId() => _prefs.getInt('userId'); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/themes/color_constants.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/themes/color_constants.dart deleted file mode 100644 index 0cb1a8b..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/themes/color_constants.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'package:flutter/material.dart'; - -class ColorConstants { - ColorConstants._(); - static final ColorConstants _instance = ColorConstants._(); - factory ColorConstants() => _instance; - Color primaryColor = const Color(0xFF0164ff); - Color primaryDarkColor = const Color(0xffA39BDB); - Color lightBackgroundColor = Colors.white; - Color darkBackgroundColor = const Color(0xff313131); - Color primaryTextLight = Colors.black; - Color primaryTextDark = Colors.white; - Color accentColor = const Color(0xffA39BDB); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/themes/theme_data.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/themes/theme_data.dart deleted file mode 100644 index dbc0dc6..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/themes/theme_data.dart +++ /dev/null @@ -1,218 +0,0 @@ -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; - -import 'color_constants.dart'; - -class ThemeConfig { - static ThemeData get darkTheme => createTheme( - brightness: Brightness.dark, - background: ColorConstants().darkBackgroundColor, - primaryColor: ColorConstants().primaryColor, - cardBackground: ColorConstants().darkBackgroundColor, - primaryText: ColorConstants().primaryTextDark, - secondaryText: ColorConstants().primaryTextLight, - accentColor: ColorConstants().accentColor, - divider: Colors.black45, - buttonBackground: Colors.white, - buttonText: ColorConstants().darkBackgroundColor, - disabled: ColorConstants().darkBackgroundColor, - error: Colors.red, - ); - - static ThemeData get lightTheme => createTheme( - brightness: Brightness.light, - background: ColorConstants().lightBackgroundColor, - primaryColor: ColorConstants().primaryColor, - cardBackground: ColorConstants().lightBackgroundColor, - primaryText: ColorConstants().primaryTextLight, - secondaryText: ColorConstants().primaryTextDark, - accentColor: ColorConstants().accentColor, - divider: ColorConstants().lightBackgroundColor, - buttonBackground: Colors.black38, - buttonText: ColorConstants().lightBackgroundColor, - disabled: ColorConstants().lightBackgroundColor, - error: Colors.red, - ); - - static ThemeData createTheme({ - required Brightness brightness, - required Color background, - required Color primaryText, - required Color secondaryText, - required Color accentColor, - required Color divider, - required Color buttonBackground, - required Color buttonText, - required Color cardBackground, - required Color disabled, - required Color error, - required Color primaryColor, - }) { - final baseTextTheme = brightness == Brightness.dark - ? Typography.blackMountainView - : Typography.whiteMountainView; - - return ThemeData( - brightness: brightness, - canvasColor: background, - cardColor: background, - dividerColor: divider, - dividerTheme: DividerThemeData( - color: divider, - space: 1, - thickness: 1, - ), - cardTheme: CardTheme( - color: cardBackground, - margin: EdgeInsets.zero, - clipBehavior: Clip.antiAliasWithSaveLayer, - ), - elevatedButtonTheme: ElevatedButtonThemeData( - style: ButtonStyle( - shape: MaterialStateProperty.all( - RoundedRectangleBorder( - borderRadius: BorderRadius.circular(9.0), - )), - padding: MaterialStateProperty.all( - const EdgeInsets.all(18.5)))), - backgroundColor: background, - primaryColor: primaryColor, - toggleableActiveColor: accentColor, - appBarTheme: AppBarTheme( - systemOverlayStyle: - SystemUiOverlayStyle(statusBarBrightness: brightness), - color: cardBackground, - iconTheme: IconThemeData( - color: secondaryText, - ), - toolbarTextStyle: TextTheme( - bodyText1: baseTextTheme.bodyText1?.copyWith( - color: secondaryText, - fontSize: 18, - ), - ).bodyText2, - titleTextStyle: TextTheme( - bodyText1: baseTextTheme.bodyText1?.copyWith( - color: secondaryText, - fontSize: 18, - ), - ).headline6, - ), - iconTheme: IconThemeData( - color: secondaryText, - size: 16.0, - ), - errorColor: error, - buttonTheme: ButtonThemeData( - textTheme: ButtonTextTheme.primary, - colorScheme: ColorScheme( - brightness: brightness, - primary: accentColor, - secondary: accentColor, - surface: background, - background: background, - error: error, - onPrimary: buttonText, - onSecondary: buttonText, - onSurface: buttonText, - onBackground: buttonText, - onError: buttonText, - ), - padding: const EdgeInsets.all(16.0), - ), - cupertinoOverrideTheme: CupertinoThemeData( - brightness: brightness, - primaryColor: accentColor, - ), - inputDecorationTheme: InputDecorationTheme( - errorStyle: TextStyle(color: error), - labelStyle: TextStyle( - fontFamily: '', - fontWeight: FontWeight.w600, - fontSize: 16.0, - color: primaryText.withOpacity(0.5), - ), - hintStyle: TextStyle( - color: secondaryText, - fontSize: 13.0, - fontWeight: FontWeight.w300, - ), - ), - fontFamily: '', - textTheme: TextTheme( - headline1: baseTextTheme.headline1?.copyWith( - color: primaryText, - fontSize: 34.0, - fontWeight: FontWeight.bold, - ), - headline2: baseTextTheme.headline2?.copyWith( - color: primaryText, - fontSize: 22, - fontWeight: FontWeight.bold, - ), - headline3: baseTextTheme.headline3?.copyWith( - color: secondaryText, - fontSize: 20, - fontWeight: FontWeight.w600, - ), - headline4: baseTextTheme.headline4?.copyWith( - color: primaryText, - fontSize: 18, - fontWeight: FontWeight.w600, - ), - headline5: baseTextTheme.headline5?.copyWith( - color: primaryText, - fontSize: 16, - fontWeight: FontWeight.w700, - ), - headline6: baseTextTheme.headline6?.copyWith( - color: primaryText, - fontSize: 14, - fontWeight: FontWeight.w700, - ), - bodyText1: baseTextTheme.bodyText1?.copyWith( - color: secondaryText, - fontSize: 14, - ), - bodyText2: baseTextTheme.bodyText2?.copyWith( - color: primaryText, - fontSize: 12, - fontWeight: FontWeight.w400, - ), - button: baseTextTheme.button?.copyWith( - color: primaryText, - fontSize: 12.0, - fontWeight: FontWeight.w700, - ), - caption: baseTextTheme.caption?.copyWith( - color: primaryText, - fontSize: 11.0, - fontWeight: FontWeight.w300, - ), - overline: baseTextTheme.overline?.copyWith( - color: secondaryText, - fontSize: 11.0, - fontWeight: FontWeight.w500, - ), - subtitle1: baseTextTheme.subtitle1?.copyWith( - color: primaryText, - fontSize: 16.0, - fontWeight: FontWeight.w700, - ), - subtitle2: baseTextTheme.subtitle2?.copyWith( - color: secondaryText, - fontSize: 11.0, - fontWeight: FontWeight.w500, - ), - ), - colorScheme: ColorScheme.fromSwatch() - .copyWith(secondary: accentColor, brightness: brightness), - textSelectionTheme: TextSelectionThemeData( - cursorColor: accentColor, - selectionColor: accentColor, - selectionHandleColor: accentColor, - ), - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/image_constants.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/utils/image_constants.dart deleted file mode 100644 index e1c5cc5..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/image_constants.dart +++ /dev/null @@ -1,12 +0,0 @@ -class AllImages { - AllImages._(); - static final AllImages _instance = AllImages._(); - factory AllImages() => _instance; - - String image = 'assets/image'; - String logo = 'assets/images/logo.png'; - String login = 'assets/images/login.png'; - String signup = 'assets/images/signup.png'; - String kDefaultImage = - 'https://cdn.pixabay.com/photo/2016/08/08/09/17/avatar-1577909_1280.png'; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/responsive.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/utils/responsive.dart deleted file mode 100644 index 1889641..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/responsive.dart +++ /dev/null @@ -1,47 +0,0 @@ -import 'package:flutter/material.dart'; - -class Responsive extends StatelessWidget { - final Widget mobile; - final Widget tablet; - final Widget desktop; - - const Responsive({ - Key? key, - required this.mobile, - required this.tablet, - required this.desktop, - }) : super(key: key); - - /// We will modify based on our design dimension for each type. - - // This isMobile, isTablet, isDesktop - static bool isMobile(BuildContext context) => - MediaQuery.of(context).size.width <= 620; - - static bool isTablet(BuildContext context) => - MediaQuery.of(context).size.width <= 1030 && - MediaQuery.of(context).size.width > 620; - - static bool isDesktop(BuildContext context) => - MediaQuery.of(context).size.width > 1030; - - @override - Widget build(BuildContext context) { - return LayoutBuilder( - // If our width is more than 1030 then we consider it a desktop - builder: (context, constraints) { - if (MediaQuery.of(context).size.width >= 1030) { - return desktop; - } - // If width it less then 1030 and more then 620 we consider it as tablet - else if (MediaQuery.of(context).size.width > 620) { - return tablet; - } - // Or less then that we called it mobile - else { - return mobile; - } - }, - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/size_utils.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/utils/size_utils.dart deleted file mode 100644 index 4740ed1..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/size_utils.dart +++ /dev/null @@ -1,182 +0,0 @@ -import 'package:flutter/material.dart'; - -import '../common_export.dart'; - -/// [SizeConfig] to make project scalable -class UiSizeConfig { - static MediaQueryData? _mediaQueryData; - static bool isMobile = false, isTablet = false, isDesktop = true; - static double? screenWidth, - screenHeight, - blockSizeHorizontal, - blockSizeVertical, - _safeAreaHorizontal, - _safeAreaVertical, - safeBlockHorizontal, - safeBlockVertical, - profileDrawerWidth, - refHeight, - refWidth, - refMobileHeight, - refMobileWidth, - refTabletHeight, - refTabletWidth; - - void init(BuildContext context) { - _mediaQueryData = MediaQuery.of(context); - screenWidth = _mediaQueryData!.size.width; - screenHeight = _mediaQueryData!.size.height; - refHeight = 897; - refWidth = 1366; - refTabletHeight = 1024; - refTabletWidth = 768; - refMobileHeight = 760; - refMobileWidth = 360; - isDesktop = Responsive.isDesktop(context); - isMobile = Responsive.isMobile(context); - isTablet = Responsive.isTablet(context); - - if (screenHeight! < 1200) { - blockSizeHorizontal = screenWidth! / 100; - blockSizeVertical = screenHeight! / 100; - - _safeAreaHorizontal = - _mediaQueryData!.padding.left + _mediaQueryData!.padding.right; - _safeAreaVertical = - _mediaQueryData!.padding.top + _mediaQueryData!.padding.bottom; - safeBlockHorizontal = (screenWidth! - _safeAreaHorizontal!) / 100; - safeBlockVertical = (screenHeight! - _safeAreaVertical!) / 100; - } else { - blockSizeHorizontal = screenWidth! / 120; - blockSizeVertical = screenHeight! / 120; - - _safeAreaHorizontal = - _mediaQueryData!.padding.left + _mediaQueryData!.padding.right; - _safeAreaVertical = - _mediaQueryData!.padding.top + _mediaQueryData!.padding.bottom; - safeBlockHorizontal = (screenWidth! - _safeAreaHorizontal!) / 120; - safeBlockVertical = (screenHeight! - _safeAreaVertical!) / 120; - } - } - - static double getWidthRatio(double val) { - double res = (val / refWidth!) * 100; - return res * blockSizeHorizontal! > 2800 - ? 2400 - : res * blockSizeHorizontal!; - } - - static double getHeightRatio(double val) { - double res = (val / refHeight!) * 100; - return res * blockSizeVertical!; - } - - static double getFontRatio(double val) { - // double res = (val / refWidth!) * 100; - // if (screenWidth! > screenHeight!) { - // return res * safeBlockHorizontal!; - // } else { - // return res * safeBlockVertical!; - // } - return val; - } - - static double getTabletWidthRatio(double val) { - double res = (val / refTabletWidth!) * 100; - return res * blockSizeHorizontal!; - } - - static double getTabletHeightRatio(double val) { - double res = (val / refTabletHeight!) * 100; - return res * blockSizeVertical!; - } - - static double getTabletFontRatio(double val) { - double res = (val / refTabletWidth!) * 100; - if (screenWidth! < screenHeight!) { - return res * safeBlockHorizontal!; - } else { - return res * safeBlockVertical!; - } - } - - static double getMobileWidthRatio(double val) { - double res = (val / refMobileWidth!) * 100; - return res * blockSizeHorizontal!; - } - - static double getMobileHeightRatio(double val) { - double res = (val / refMobileHeight!) * 100; - return res * blockSizeVertical!; - } - - static double getMobileFontRatio(double val) { - double res = (val / refMobileWidth!) * 100; - if (screenWidth! < screenHeight!) { - return res * safeBlockHorizontal!; - } else { - return res * safeBlockVertical!; - } - } - - static double getResponsiveFont(double val) { - if (isMobile) { - return val.toMobileFont; - } else if (isTablet) { - return val.toTabletFont; - } else { - return val.toFont; - } - } - - static double getResponsiveHeight(double val) { - if (isMobile) { - return val.toMobileHeight; - } else if (isTablet) { - return val.toTabletHeight; - } else { - return val.toHeight; - } - } - - static double getResponsiveWidth(double val) { - if (isMobile) { - return val.toMobileWidth; - } else if (isTablet) { - return val.toTabletWidth; - } else { - return val.toWidth; - } - } -} - -extension SizeUtils on num { - double get toWidth => UiSizeConfig.getWidthRatio(this.toDouble()); - - double get toHeight => UiSizeConfig.getHeightRatio(this.toDouble()); - - double get toFont => UiSizeConfig.getFontRatio(this.toDouble()); - - double get toTabletWidth => UiSizeConfig.getTabletWidthRatio(this.toDouble()); - - double get toTabletHeight => - UiSizeConfig.getTabletHeightRatio(this.toDouble()); - - double get toTabletFont => UiSizeConfig.getTabletFontRatio(this.toDouble()); - - double get toMobileWidth => UiSizeConfig.getMobileWidthRatio(this.toDouble()); - - double get toMobileHeight => - UiSizeConfig.getMobileHeightRatio(this.toDouble()); - - double get toMobileFont => UiSizeConfig.getMobileFontRatio(this.toDouble()); - - double get toResponsiveFont => - UiSizeConfig.getResponsiveFont(this.toDouble()); - - double get toResponsiveHeight => - UiSizeConfig.getResponsiveHeight(this.toDouble()); - - double get toResponsiveWidth => - UiSizeConfig.getResponsiveWidth(this.toDouble()); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/string_constants.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/utils/string_constants.dart deleted file mode 100644 index 419ab23..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/utils/string_constants.dart +++ /dev/null @@ -1 +0,0 @@ -library constants; diff --git a/bricks/flutter_starter/__brick__/{{name}}/lib/widgets/cache_image_widget.dart b/bricks/flutter_starter/__brick__/{{name}}/lib/widgets/cache_image_widget.dart deleted file mode 100644 index 51b1929..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/lib/widgets/cache_image_widget.dart +++ /dev/null @@ -1,36 +0,0 @@ -import 'package:cached_network_image/cached_network_image.dart'; -import 'package:flutter/material.dart'; - -class CachedImage extends StatelessWidget { - const CachedImage({ - Key? key, - required this.imageUrl, - this.fit = BoxFit.cover, - this.height, - this.width, - this.placeholder, - this.errorWidget, - }) : assert(imageUrl != null), - super(key: key); - - final String imageUrl; - final BoxFit fit; - final double? height; - final double? width; - final Widget? placeholder; - final Widget? errorWidget; - - @override - Widget build(BuildContext context) { - return CachedNetworkImage( - imageUrl: imageUrl, - fit: fit, - height: height, - width: width, - placeholder: (context, url) => - placeholder ?? const CircularProgressIndicator(), - errorWidget: (context, url, err) => - errorWidget ?? const Icon(Icons.error_outline), - ); - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/.gitignore b/bricks/flutter_starter/__brick__/{{name}}/linux/.gitignore deleted file mode 100644 index d3896c9..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/CMakeLists.txt b/bricks/flutter_starter/__brick__/{{name}}/linux/CMakeLists.txt deleted file mode 100644 index c599f69..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/CMakeLists.txt +++ /dev/null @@ -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 "{{name}}") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "{{org}}.{{name}}") - -# 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 "$<$>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$>: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() diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/CMakeLists.txt b/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd016..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/CMakeLists.txt +++ /dev/null @@ -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} -) diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugin_registrant.cc b/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index e71a16d..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void fl_register_plugins(FlPluginRegistry* registry) { -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugin_registrant.h b/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugins.cmake b/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -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 $) - 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) diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/main.cc b/bricks/flutter_starter/__brick__/{{name}}/linux/main.cc deleted file mode 100644 index e7c5c54..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/main.cc +++ /dev/null @@ -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); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/my_application.cc b/bricks/flutter_starter/__brick__/{{name}}/linux/my_application.cc deleted file mode 100644 index 0876305..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/my_application.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#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, "{{name}}"); - 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, "{{name}}"); - } - - 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)); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/linux/my_application.h b/bricks/flutter_starter/__brick__/{{name}}/linux/my_application.h deleted file mode 100644 index 72271d5..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include - -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_ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/.gitignore b/bricks/flutter_starter/__brick__/{{name}}/macos/.gitignore deleted file mode 100644 index 746adbb..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Flutter-related -**/Flutter/ephemeral/ -**/Pods/ - -# Xcode-related -**/dgph -**/xcuserdata/ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/Flutter-Debug.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/Flutter-Debug.xcconfig deleted file mode 100644 index 4b81f9b..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/Flutter-Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/Flutter-Release.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/Flutter-Release.xcconfig deleted file mode 100644 index 5caa9d1..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/Flutter-Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/GeneratedPluginRegistrant.swift b/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index e9cf192..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - -import path_provider_macos -import shared_preferences_macos -import sqflite - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) - SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) - SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Podfile b/bricks/flutter_starter/__brick__/{{name}}/macos/Podfile deleted file mode 100644 index dade8df..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Podfile +++ /dev/null @@ -1,40 +0,0 @@ -platform :osx, '10.11' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_macos_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end -end diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/project.pbxproj b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index e405392..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,572 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 51; - objects = { - -/* Begin PBXAggregateTarget section */ - 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; - buildPhases = ( - 33CC111E2044C6BF0003C045 /* ShellScript */, - ); - dependencies = ( - ); - name = "Flutter Assemble"; - productName = FLX; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC111A2044C6BA0003C045; - remoteInfo = FLX; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* {{name}}.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "{{name}}.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; - 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; - 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; - 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; - 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 33CC10EA2044A3C60003C045 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 33BA886A226E78AF003329D5 /* Configs */ = { - isa = PBXGroup; - children = ( - 33E5194F232828860026EE4D /* AppInfo.xcconfig */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - 33CC10E42044A3C60003C045 = { - isa = PBXGroup; - children = ( - 33FAB671232836740065AC1E /* Runner */, - 33CEB47122A05771004F2AC0 /* Flutter */, - 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - ); - sourceTree = ""; - }; - 33CC10EE2044A3C60003C045 /* Products */ = { - isa = PBXGroup; - children = ( - 33CC10ED2044A3C60003C045 /* {{name}}.app */, - ); - name = Products; - sourceTree = ""; - }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = ""; - }; - 33CEB47122A05771004F2AC0 /* Flutter */ = { - isa = PBXGroup; - children = ( - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, - ); - path = Flutter; - sourceTree = ""; - }; - 33FAB671232836740065AC1E /* Runner */ = { - isa = PBXGroup; - children = ( - 33CC10F02044A3C60003C045 /* AppDelegate.swift */, - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, - 33BA886A226E78AF003329D5 /* Configs */, - ); - path = Runner; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 33CC10EC2044A3C60003C045 /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - 33CC10E92044A3C60003C045 /* Sources */, - 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, - 3399D490228B24CF009A79C7 /* ShellScript */, - ); - buildRules = ( - ); - dependencies = ( - 33CC11202044C79F0003C045 /* PBXTargetDependency */, - ); - name = Runner; - productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* {{name}}.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 33CC10E52044A3C60003C045 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 33CC10EC2044A3C60003C045 = { - CreatedOnToolsVersion = 9.2; - LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.Sandbox = { - enabled = 1; - }; - }; - }; - 33CC111A2044C6BA0003C045 = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 33CC10E42044A3C60003C045; - productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 33CC10EC2044A3C60003C045 /* Runner */, - 33CC111A2044C6BA0003C045 /* Flutter Assemble */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 33CC10EB2044A3C60003C045 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3399D490228B24CF009A79C7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; - }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, - ); - inputPaths = ( - Flutter/ephemeral/tripwire, - ); - outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 33CC10E92044A3C60003C045 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; - targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 33CC10F52044A3C60003C045 /* Base */, - ); - name = MainMenu.xib; - path = Runner; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 338D0CE9231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Profile; - }; - 338D0CEA231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; - 338D0CEB231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Profile; - }; - 33CC10F92044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLEABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 33CC10FA2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 33CC10FC2044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 33CC10FD2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 33CC111C2044C6BA0003C045 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 33CC111D2044C6BA0003C045 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10F92044A3C60003C045 /* Debug */, - 33CC10FA2044A3C60003C045 /* Release */, - 338D0CE9231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10FC2044A3C60003C045 /* Debug */, - 33CC10FD2044A3C60003C045 /* Release */, - 338D0CEA231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC111C2044C6BA0003C045 /* Debug */, - 33CC111D2044C6BA0003C045 /* Release */, - 338D0CEB231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 33CC10E52044A3C60003C045 /* Project object */; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 742d4c6..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcworkspace/contents.xcworkspacedata b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 1d526a1..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/AppDelegate.swift b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/AppDelegate.swift deleted file mode 100644 index d53ef64..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/AppDelegate.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Cocoa -import FlutterMacOS - -@NSApplicationMain -class AppDelegate: FlutterAppDelegate { - override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - return true - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a2ec33f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" - }, - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 3c4935a..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index ed4cc16..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 483be61..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index bcbf36d..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png deleted file mode 100644 index 9c0a652..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png deleted file mode 100644 index e71a726..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 8a31fe2..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Base.lproj/MainMenu.xib b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Base.lproj/MainMenu.xib deleted file mode 100644 index 80e867a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Base.lproj/MainMenu.xib +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/AppInfo.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/AppInfo.xcconfig deleted file mode 100644 index e94828d..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/AppInfo.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// Application-level settings for the Runner target. -// -// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the -// future. If not, the values below would default to using the project name when this becomes a -// 'flutter create' template. - -// The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = {{name}} - -// The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = {{org}}.flutterStarterTest - -// The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2022 {{org}}. All rights reserved. diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Debug.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Debug.xcconfig deleted file mode 100644 index 36b0fd9..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Debug.xcconfig" -#include "Warnings.xcconfig" diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Release.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Release.xcconfig deleted file mode 100644 index dff4f49..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Release.xcconfig" -#include "Warnings.xcconfig" diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Warnings.xcconfig b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Warnings.xcconfig deleted file mode 100644 index 42bcbf4..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Configs/Warnings.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings -GCC_WARN_UNDECLARED_SELECTOR = YES -CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_PRAGMA_PACK = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_COMMA = YES -GCC_WARN_STRICT_SELECTOR_MATCH = YES -CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -GCC_WARN_SHADOW = YES -CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/DebugProfile.entitlements b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index dddb8a3..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.cs.allow-jit - - com.apple.security.network.server - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Info.plist b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Info.plist deleted file mode 100644 index 4789daa..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - $(PRODUCT_COPYRIGHT) - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/MainFlutterWindow.swift b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/MainFlutterWindow.swift deleted file mode 100644 index 2722837..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/MainFlutterWindow.swift +++ /dev/null @@ -1,15 +0,0 @@ -import Cocoa -import FlutterMacOS - -class MainFlutterWindow: NSWindow { - override func awakeFromNib() { - let flutterViewController = FlutterViewController.init() - let windowFrame = self.frame - self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) - - RegisterGeneratedPlugins(registry: flutterViewController) - - super.awakeFromNib() - } -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Release.entitlements b/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Release.entitlements deleted file mode 100644 index 852fa1a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/macos/Runner/Release.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.app-sandbox - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/pubspec.yaml b/bricks/flutter_starter/__brick__/{{name}}/pubspec.yaml deleted file mode 100644 index 19ff8c8..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/pubspec.yaml +++ /dev/null @@ -1,59 +0,0 @@ -name: {{name}} -description: {{desc}} - -publish_to: "none" - -version: 1.0.0+1 - -environment: - sdk: ">=2.17.1 <3.0.0" - -dependencies: - flutter: - sdk: flutter - flutter_localizations: - sdk: flutter - intl: ^0.17.0 - cupertino_icons: ^1.0.5 - flutter_bloc: ^8.1.1 - equatable: ^2.0.3 - fluttertoast: ^8.0.9 - cached_network_image: ^3.2.0 - http: - http_interceptor: ^1.0.2 - shared_preferences: ^2.0.12 - retrofit: ^3.0.1+1 - dio: ^4.0.6 - built_value: ^8.4.1 - json_annotation: ^4.6.0 - bloc: ^8.1.0 - go_router: ^4.4.1 - -dev_dependencies: - flutter_test: - sdk: flutter - integration_test: - sdk: flutter - flutter_native_splash: ^2.0.2 - retrofit_generator: ^4.0.3+1 - build_runner: ^2.2.0 - json_serializable: ^6.3.1 - built_value_generator: ^8.4.1 - flutter_lints: ^2.0.0 - bloc_test: ^9.1.0 - mocktail: ^0.3.0 - -flutter_native_splash: - image: assets/images/logo.png - color: "5E92F3" - android_disable_fullscreen: true - -flutter: - generate: true - uses-material-design: true - assets: - - assets/images/logo.png - - assets/images/2.0x/logo.png - - assets/images/3.0x/logo.png - - assets/images/login.png - - assets/images/signup.png diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_bloc_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_bloc_test.dart deleted file mode 100644 index 86cc877..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_bloc_test.dart +++ /dev/null @@ -1,166 +0,0 @@ -import 'package:bloc_test/bloc_test.dart'; -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:shared_preferences/shared_preferences.dart'; -import 'package:mocktail/mocktail.dart'; - -class MockAuthenticationRepository extends Mock - implements AuthenticationRepository {} - -void main() { - group('AuthenticationBloc', () { - late AuthenticationBloc authenticationBloc; - late AuthenticationRepository authenticationService; - late SharedPrefs prefs; - - setUp(() async { - SharedPreferences.setMockInitialValues({}); - prefs = SharedPrefs.instance; - await prefs.init(); - authenticationService = MockAuthenticationRepository(); - authenticationBloc = AuthenticationBloc( - authenticationService: authenticationService, - ); - }); - - tearDown(() { - authenticationBloc.close(); - prefs.clear(); - }); - - blocTest( - 'test initial state of the bloc', - build: () => authenticationBloc, - verify: (bloc) => bloc.state == const AuthenticationInitial(), - ); - - blocTest( - 'when auth token is null', - build: () { - prefs.remove('authtoken'); - return authenticationBloc; - }, - act: (bloc) => bloc.add(const AppLoadedup()), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const AuthenticationStart(), - ]; - }, - ); - - blocTest( - 'when auth token is not null', - build: () { - prefs.setToken('authtoken'); - return authenticationBloc; - }, - act: (bloc) => bloc.add(const AppLoadedup()), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const AppAutheticated(), - ]; - }, - ); - - blocTest( - 'when user signup failed', - build: () { - when(() => authenticationService.signUpWithEmailAndPassword( - 'test@gmail.in', 'test1234')).thenAnswer( - (invocation) => Future.value({'error': 'already registered'}), - ); - return authenticationBloc; - }, - act: (bloc) => bloc.add( - const UserSignUp(email: 'test@gmail.in', password: 'test1234'), - ), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const AuthenticationFailure(message: 'already registered'), - ]; - }, - ); - - blocTest( - 'when user signup success', - build: () { - when(() => authenticationService.signUpWithEmailAndPassword( - 'eve.holt@reqres.in', 'cityslicka')).thenAnswer( - (invocation) => Future.value({'id': 1, 'token': 'abc'}), - ); - return authenticationBloc; - }, - act: (bloc) => bloc.add( - const UserSignUp(email: 'eve.holt@reqres.in', password: 'cityslicka'), - ), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const AppAutheticated(), - ]; - }, - ); - - blocTest( - 'when user login failed', - build: () { - when(() => authenticationService.loginWithEmailAndPassword( - 'test@gmail.in', 'test1234')).thenAnswer( - (invocation) => Future.value({'error': 'user not found'}), - ); - return authenticationBloc; - }, - act: (bloc) => bloc.add( - const UserLogin(email: 'test@gmail.in', password: 'test1234'), - ), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const AuthenticationFailure(message: 'user not found'), - ]; - }, - ); - - blocTest( - 'when user login success', - build: () { - when(() => authenticationService.loginWithEmailAndPassword( - 'eve.holt@reqres.in', 'cityslicka')).thenAnswer( - (invocation) => Future.value({'token': 'abc'}), - ); - return authenticationBloc; - }, - act: (bloc) => bloc.add( - const UserLogin(email: 'eve.holt@reqres.in', password: 'cityslicka'), - ), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const AppAutheticated(), - ]; - }, - ); - - blocTest( - 'when user logout', - build: () => authenticationBloc, - act: (bloc) => bloc.add(const UserLogOut()), - wait: const Duration(milliseconds: 500), - expect: () { - return [ - const AuthenticationLoading(), - const UserLogoutState(), - ]; - }, - ); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_event_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_event_test.dart deleted file mode 100644 index 111fe0c..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_event_test.dart +++ /dev/null @@ -1,29 +0,0 @@ -// ignore_for_file: prefer_const_constructors - -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('AuthenticationEvent', () { - test('test value comparisons of loading event', () { - expect( - AppLoadedup(), - AppLoadedup(), - ); - }); - - test('test value comparisons of user data event', () { - expect( - GetUserData(), - GetUserData(), - ); - }); - - test('test value comparisons of logout event', () { - expect( - UserLogOut(), - UserLogOut(), - ); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_state_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_state_test.dart deleted file mode 100644 index e6814a3..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/authentication/authentication_state_test.dart +++ /dev/null @@ -1,29 +0,0 @@ -// ignore_for_file: prefer_const_constructors - -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('AuthenticationState', () { - test('test value comparisons of loading state', () { - expect( - AuthenticationLoading(), - AuthenticationLoading(), - ); - }); - - test('test value comparisons of authenticated state', () { - expect( - AppAutheticated(), - AppAutheticated(), - ); - }); - - test('test value comparisons of logout state', () { - expect( - UserLogoutState(), - UserLogoutState(), - ); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_bloc_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_bloc_test.dart deleted file mode 100644 index ee58891..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_bloc_test.dart +++ /dev/null @@ -1,30 +0,0 @@ -import 'package:bloc_test/bloc_test.dart'; -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('UpdateThemeBloc', () { - late UpdateThemeBloc updateThemeBloc; - - setUp(() async { - updateThemeBloc = UpdateThemeBloc(); - }); - - tearDown(() { - updateThemeBloc.close(); - }); - - blocTest( - 'test initial state of the theme bloc', - build: () => updateThemeBloc, - verify: (bloc) => bloc.state == const SetTheme(appTheme: AppTheme.light), - ); - - blocTest( - 'test when theme is changed', - build: () => updateThemeBloc, - act: (bloc) => bloc.add(const UpdateTheme(appTheme: AppTheme.dark)), - expect: () => [const SetTheme(appTheme: AppTheme.dark)], - ); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_event_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_event_test.dart deleted file mode 100644 index 02d09ad..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_event_test.dart +++ /dev/null @@ -1,22 +0,0 @@ -// ignore_for_file: prefer_const_constructors - -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('UpdateTheme', () { - test('test value comparisons during light theme', () { - expect( - UpdateTheme(appTheme: AppTheme.light), - UpdateTheme(appTheme: AppTheme.light), - ); - }); - - test('test value comparisons during dark theme', () { - expect( - UpdateTheme(appTheme: AppTheme.dark), - UpdateTheme(appTheme: AppTheme.dark), - ); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_state_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_state_test.dart deleted file mode 100644 index 21f2783..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/bloc/update_theme/update_theme_state_test.dart +++ /dev/null @@ -1,22 +0,0 @@ -// ignore_for_file: prefer_const_constructors - -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('SetTheme', () { - test('test value comparisons during light theme', () { - expect( - SetTheme(appTheme: AppTheme.light), - SetTheme(appTheme: AppTheme.light), - ); - }); - - test('test value comparisons during dark theme', () { - expect( - SetTheme(appTheme: AppTheme.dark), - SetTheme(appTheme: AppTheme.dark), - ); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/screens/home/logout_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/screens/home/logout_test.dart deleted file mode 100644 index c53eb65..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/screens/home/logout_test.dart +++ /dev/null @@ -1,67 +0,0 @@ -import 'package:bloc_test/bloc_test.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mocktail/mocktail.dart'; - -class MockAuthenticationBloc - extends MockBloc - implements AuthenticationBloc {} - -class MockUpdateThemeBloc extends MockBloc - implements UpdateThemeBloc {} - -void main() { - late AuthenticationBloc authenticationBloc; - late UpdateThemeBloc updateThemeBloc; - - setUp(() async { - authenticationBloc = MockAuthenticationBloc(); - updateThemeBloc = MockUpdateThemeBloc(); - }); - - tearDown(() { - authenticationBloc.close(); - updateThemeBloc.close(); - }); - - Widget createWidget(Widget child) { - return MaterialApp( - home: Builder(builder: (context) { - UiSizeConfig().init(context); - return MultiBlocProvider( - providers: [ - BlocProvider.value(value: authenticationBloc), - BlocProvider.value(value: updateThemeBloc), - ], - child: child, - ); - }), - ); - } - - group('Authentication check', () { - testWidgets('when user logout', (WidgetTester tester) async { - when(() => authenticationBloc.state).thenReturn( - SetUserData( - currentUserData: CurrentUserData( - data: - Data(id: 0, email: '', firstName: '', lastName: '', avatar: ''), - support: Support(url: '', text: ''), - ), - ), - ); - when(() => updateThemeBloc.state).thenReturn( - const SetTheme(appTheme: AppTheme.light), - ); - - await tester.pumpWidget(createWidget(const HomeScreen())); - final Finder logout = find.byKey(const Key('logoutButton')); - await tester.tap(logout); - await tester.pump(); - - verify(() => authenticationBloc.add(const UserLogOut())).called(1); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/screens/login/login_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/screens/login/login_test.dart deleted file mode 100644 index f9678fa..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/screens/login/login_test.dart +++ /dev/null @@ -1,84 +0,0 @@ -import 'package:bloc_test/bloc_test.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mocktail/mocktail.dart'; - -class MockAuthenticationBloc - extends MockBloc - implements AuthenticationBloc {} - -void main() { - late AuthenticationBloc authenticationBloc; - - setUp(() async { - authenticationBloc = MockAuthenticationBloc(); - }); - - tearDown(() { - authenticationBloc.close(); - }); - - Widget createWidget(Widget child) { - return MaterialApp( - home: Builder(builder: (context) { - UiSizeConfig().init(context); - return BlocProvider.value( - value: authenticationBloc, - child: child, - ); - }), - ); - } - - group('Login test', () { - testWidgets('when invalid credentials are provided', - (WidgetTester tester) async { - await tester.runAsync(() async { - const emailText = ''; - const passwordText = ''; - - when(() => authenticationBloc.state) - .thenReturn(const AuthenticationInitial()); - - await tester.pumpWidget(createWidget(const LoginScreen())); - final Finder email = find.byKey(const Key('emailField')); - await tester.enterText(email, emailText); - final Finder password = find.byKey(const Key('passwordField')); - await tester.enterText(password, passwordText); - final Finder login = find.byKey(const Key('loginButton')); - await tester.tap(login); - await tester.pump(); - - verifyNever(() => authenticationBloc.add( - const UserLogin(email: emailText, password: passwordText), - )); - }); - }); - - testWidgets('when valid credentials are provided', - (WidgetTester tester) async { - await tester.runAsync(() async { - const emailText = 'eve.holt@reqres.in'; - const passwordText = 'cityslicka'; - - when(() => authenticationBloc.state) - .thenReturn(const AuthenticationInitial()); - - await tester.pumpWidget(createWidget(const LoginScreen())); - final Finder email = find.byKey(const Key('emailField')); - await tester.enterText(email, emailText); - final Finder password = find.byKey(const Key('passwordField')); - await tester.enterText(password, passwordText); - final Finder login = find.byKey(const Key('loginButton')); - await tester.tap(login); - await tester.pump(); - - verify(() => authenticationBloc.add( - const UserLogin(email: emailText, password: passwordText), - )).called(1); - }); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/test/screens/signup/signup_test.dart b/bricks/flutter_starter/__brick__/{{name}}/test/screens/signup/signup_test.dart deleted file mode 100644 index 362e67f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/test/screens/signup/signup_test.dart +++ /dev/null @@ -1,90 +0,0 @@ -import 'package:bloc_test/bloc_test.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_bloc/flutter_bloc.dart'; -import 'package:{{name}}/common_export.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mocktail/mocktail.dart'; - -class MockAuthenticationBloc - extends MockBloc - implements AuthenticationBloc {} - -void main() { - late AuthenticationBloc authenticationBloc; - - setUp(() async { - authenticationBloc = MockAuthenticationBloc(); - }); - - tearDown(() { - authenticationBloc.close(); - }); - - Widget createWidget(Widget child) { - return MaterialApp( - home: Builder(builder: (context) { - UiSizeConfig().init(context); - return BlocProvider.value( - value: authenticationBloc, - child: child, - ); - }), - ); - } - - group('Signup test', () { - testWidgets('when invalid credentials are provided', - (WidgetTester tester) async { - await tester.runAsync(() async { - const nameText = ''; - const emailText = ''; - const passwordText = ''; - - when(() => authenticationBloc.state) - .thenReturn(const AuthenticationInitial()); - - await tester.pumpWidget(createWidget(const SignUpScreen())); - final Finder name = find.byKey(const Key('nameField')); - await tester.enterText(name, nameText); - final Finder email = find.byKey(const Key('emailField')); - await tester.enterText(email, emailText); - final Finder password = find.byKey(const Key('passwordField')); - await tester.enterText(password, passwordText); - final Finder signup = find.byKey(const Key('signupButton')); - await tester.tap(signup); - await tester.pump(); - - verifyNever(() => authenticationBloc.add( - const UserSignUp(email: emailText, password: passwordText), - )); - }); - }); - - testWidgets('when valid credentials are provided', - (WidgetTester tester) async { - await tester.runAsync(() async { - const nameText = 'eve'; - const emailText = 'eve.holt@reqres.in'; - const passwordText = 'cityslicka'; - - when(() => authenticationBloc.state) - .thenReturn(const AuthenticationInitial()); - - await tester.pumpWidget(createWidget(const SignUpScreen())); - final Finder name = find.byKey(const Key('nameField')); - await tester.enterText(name, nameText); - final Finder email = find.byKey(const Key('emailField')); - await tester.enterText(email, emailText); - final Finder password = find.byKey(const Key('passwordField')); - await tester.enterText(password, passwordText); - final Finder signup = find.byKey(const Key('signupButton')); - await tester.tap(signup); - await tester.pump(); - - verify(() => authenticationBloc.add( - const UserSignUp(email: emailText, password: passwordText), - )).called(1); - }); - }); - }); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/favicon.png b/bricks/flutter_starter/__brick__/{{name}}/web/favicon.png deleted file mode 100644 index 8aaa46a..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/web/favicon.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-192.png b/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-192.png deleted file mode 100644 index b749bfe..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-192.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-512.png b/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-512.png deleted file mode 100644 index 88cfd48..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-512.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-maskable-192.png b/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-maskable-192.png deleted file mode 100644 index eb9b4d7..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-maskable-192.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-maskable-512.png b/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-maskable-512.png deleted file mode 100644 index d69c566..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/web/icons/Icon-maskable-512.png and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/index.html b/bricks/flutter_starter/__brick__/{{name}}/web/index.html deleted file mode 100644 index 4fb51c8..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/web/index.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - {{name}} - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/web/manifest.json b/bricks/flutter_starter/__brick__/{{name}}/web/manifest.json deleted file mode 100644 index becec59..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/web/manifest.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "{{name}}", - "short_name": "{{name}}", - "start_url": ".", - "display": "standalone", - "background_color": "#0175C2", - "theme_color": "#0175C2", - "description": "{{desc}}", - "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" - } - ] -} \ No newline at end of file diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/.gitignore b/bricks/flutter_starter/__brick__/{{name}}/windows/.gitignore deleted file mode 100644 index d492d0d..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -flutter/ephemeral/ - -# Visual Studio user-specific files. -*.suo -*.user -*.userosscache -*.sln.docstates - -# Visual Studio build-related files. -x64/ -x86/ - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/CMakeLists.txt b/bricks/flutter_starter/__brick__/{{name}}/windows/CMakeLists.txt deleted file mode 100644 index 3e04b0e..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/CMakeLists.txt +++ /dev/null @@ -1,101 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.14) -project({{name}} 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 "{{name}}") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Define build configuration option. -get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(IS_MULTICONFIG) - set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" - CACHE STRING "" FORCE) -else() - 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() -endif() -# Define settings for the Profile build mode. -set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") -set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") -set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") - -# Use Unicode for all projects. -add_definitions(-DUNICODE -D_UNICODE) - -# 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_17) - target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") - target_compile_options(${TARGET} PRIVATE /EHsc) - target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") - target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# Application build; see runner/CMakeLists.txt. -add_subdirectory("runner") - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - - -# === Installation === -# Support files are copied into place next to the executable, so that it can -# run in place. This is done instead of making a separate bundle (as on Linux) -# so that building and running from within Visual Studio will work. -set(BUILD_BUNDLE_DIR "$") -# Make the "install" step default, as it's required to run. -set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") - -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) - -if(PLUGIN_BUNDLED_LIBRARIES) - install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() - -# 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. -install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - CONFIGURATIONS Profile;Release - COMPONENT Runtime) diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/CMakeLists.txt b/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/CMakeLists.txt deleted file mode 100644 index 930d207..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/CMakeLists.txt +++ /dev/null @@ -1,104 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.14) - -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. -set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") - -# === Flutter Library === -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") - -# 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/windows/app.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "flutter_export.h" - "flutter_windows.h" - "flutter_messenger.h" - "flutter_plugin_registrar.h" - "flutter_texture_registrar.h" -) -list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") -add_dependencies(flutter flutter_assemble) - -# === Wrapper === -list(APPEND CPP_WRAPPER_SOURCES_CORE - "core_implementations.cc" - "standard_codec.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_PLUGIN - "plugin_registrar.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") -list(APPEND CPP_WRAPPER_SOURCES_APP - "flutter_engine.cc" - "flutter_view_controller.cc" -) -list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") - -# Wrapper sources needed for a plugin. -add_library(flutter_wrapper_plugin STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} -) -apply_standard_settings(flutter_wrapper_plugin) -set_target_properties(flutter_wrapper_plugin PROPERTIES - POSITION_INDEPENDENT_CODE ON) -set_target_properties(flutter_wrapper_plugin PROPERTIES - CXX_VISIBILITY_PRESET hidden) -target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) -target_include_directories(flutter_wrapper_plugin PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_plugin flutter_assemble) - -# Wrapper sources needed for the runner. -add_library(flutter_wrapper_app STATIC - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_APP} -) -apply_standard_settings(flutter_wrapper_app) -target_link_libraries(flutter_wrapper_app PUBLIC flutter) -target_include_directories(flutter_wrapper_app PUBLIC - "${WRAPPER_ROOT}/include" -) -add_dependencies(flutter_wrapper_app 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. -set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") -set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} - ${PHONY_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} - ${CPP_WRAPPER_SOURCES_CORE} - ${CPP_WRAPPER_SOURCES_PLUGIN} - ${CPP_WRAPPER_SOURCES_APP} -) diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugin_registrant.cc b/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 8b6d468..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void RegisterPlugins(flutter::PluginRegistry* registry) { -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugin_registrant.h b/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugin_registrant.h deleted file mode 100644 index dc139d8..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void RegisterPlugins(flutter::PluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugins.cmake b/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c3..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -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}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - 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}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/CMakeLists.txt b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/CMakeLists.txt deleted file mode 100644 index b9e550f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -cmake_minimum_required(VERSION 3.14) -project(runner LANGUAGES CXX) - -# Define the application target. To change its name, change BINARY_NAME in the -# top-level CMakeLists.txt, 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} WIN32 - "flutter_window.cpp" - "main.cpp" - "utils.cpp" - "win32_window.cpp" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" - "Runner.rc" - "runner.exe.manifest" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Disable Windows macros that collide with C++ standard library functions. -target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") - -# Add dependency libraries and include directories. Add any application-specific -# dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) -target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/Runner.rc b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/Runner.rc deleted file mode 100644 index d38c60f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/Runner.rc +++ /dev/null @@ -1,121 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#pragma code_page(65001) -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "winres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (United States) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""winres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_APP_ICON ICON "resources\\app_icon.ico" - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -#ifdef FLUTTER_BUILD_NUMBER -#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER -#else -#define VERSION_AS_NUMBER 1,0,0 -#endif - -#ifdef FLUTTER_BUILD_NAME -#define VERSION_AS_STRING #FLUTTER_BUILD_NAME -#else -#define VERSION_AS_STRING "1.0.0" -#endif - -VS_VERSION_INFO VERSIONINFO - FILEVERSION VERSION_AS_NUMBER - PRODUCTVERSION VERSION_AS_NUMBER - FILEFLAGSMASK VS_FFI_FILEFLAGSMASK -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_APP - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "com.example" "\0" - VALUE "FileDescription", "{{name}}" "\0" - VALUE "FileVersion", VERSION_AS_STRING "\0" - VALUE "InternalName", "{{name}}" "\0" - VALUE "LegalCopyright", "Copyright (C) 2022 {{org}}. All rights reserved." "\0" - VALUE "OriginalFilename", "{{name}}.exe" "\0" - VALUE "ProductName", "{{name}}" "\0" - VALUE "ProductVersion", VERSION_AS_STRING "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - -#endif // English (United States) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/flutter_window.cpp b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/flutter_window.cpp deleted file mode 100644 index b43b909..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/flutter_window.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "flutter_window.h" - -#include - -#include "flutter/generated_plugin_registrant.h" - -FlutterWindow::FlutterWindow(const flutter::DartProject& project) - : project_(project) {} - -FlutterWindow::~FlutterWindow() {} - -bool FlutterWindow::OnCreate() { - if (!Win32Window::OnCreate()) { - return false; - } - - RECT frame = GetClientArea(); - - // The size here must match the window dimensions to avoid unnecessary surface - // creation / destruction in the startup path. - flutter_controller_ = std::make_unique( - frame.right - frame.left, frame.bottom - frame.top, project_); - // Ensure that basic setup of the controller was successful. - if (!flutter_controller_->engine() || !flutter_controller_->view()) { - return false; - } - RegisterPlugins(flutter_controller_->engine()); - SetChildContent(flutter_controller_->view()->GetNativeWindow()); - return true; -} - -void FlutterWindow::OnDestroy() { - if (flutter_controller_) { - flutter_controller_ = nullptr; - } - - Win32Window::OnDestroy(); -} - -LRESULT -FlutterWindow::MessageHandler(HWND hwnd, UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - // Give Flutter, including plugins, an opportunity to handle window messages. - if (flutter_controller_) { - std::optional result = - flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, - lparam); - if (result) { - return *result; - } - } - - switch (message) { - case WM_FONTCHANGE: - flutter_controller_->engine()->ReloadSystemFonts(); - break; - } - - return Win32Window::MessageHandler(hwnd, message, wparam, lparam); -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/flutter_window.h b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/flutter_window.h deleted file mode 100644 index 6da0652..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/flutter_window.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef RUNNER_FLUTTER_WINDOW_H_ -#define RUNNER_FLUTTER_WINDOW_H_ - -#include -#include - -#include - -#include "win32_window.h" - -// A window that does nothing but host a Flutter view. -class FlutterWindow : public Win32Window { - public: - // Creates a new FlutterWindow hosting a Flutter view running |project|. - explicit FlutterWindow(const flutter::DartProject& project); - virtual ~FlutterWindow(); - - protected: - // Win32Window: - bool OnCreate() override; - void OnDestroy() override; - LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, - LPARAM const lparam) noexcept override; - - private: - // The project to run. - flutter::DartProject project_; - - // The Flutter instance hosted by this window. - std::unique_ptr flutter_controller_; -}; - -#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/main.cpp b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/main.cpp deleted file mode 100644 index 5b7e26f..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -#include -#include -#include - -#include "flutter_window.h" -#include "utils.h" - -int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, - _In_ wchar_t *command_line, _In_ int show_command) { - // Attach to console when present (e.g., 'flutter run') or create a - // new console when running with a debugger. - if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { - CreateAndAttachConsole(); - } - - // Initialize COM, so that it is available for use in the library and/or - // plugins. - ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - - flutter::DartProject project(L"data"); - - std::vector command_line_arguments = - GetCommandLineArguments(); - - project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); - - FlutterWindow window(project); - Win32Window::Point origin(10, 10); - Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"{{name}}", origin, size)) { - return EXIT_FAILURE; - } - window.SetQuitOnClose(true); - - ::MSG msg; - while (::GetMessage(&msg, nullptr, 0, 0)) { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - } - - ::CoUninitialize(); - return EXIT_SUCCESS; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/resource.h b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/resource.h deleted file mode 100644 index 66a65d1..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/resource.h +++ /dev/null @@ -1,16 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Runner.rc -// -#define IDI_APP_ICON 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/resources/app_icon.ico b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/resources/app_icon.ico deleted file mode 100644 index c04e20c..0000000 Binary files a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/resources/app_icon.ico and /dev/null differ diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/runner.exe.manifest b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/runner.exe.manifest deleted file mode 100644 index c977c4a..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/runner.exe.manifest +++ /dev/null @@ -1,20 +0,0 @@ - - - - - PerMonitorV2 - - - - - - - - - - - - - - - diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/utils.cpp b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/utils.cpp deleted file mode 100644 index f5bf9fa..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/utils.cpp +++ /dev/null @@ -1,64 +0,0 @@ -#include "utils.h" - -#include -#include -#include -#include - -#include - -void CreateAndAttachConsole() { - if (::AllocConsole()) { - FILE *unused; - if (freopen_s(&unused, "CONOUT$", "w", stdout)) { - _dup2(_fileno(stdout), 1); - } - if (freopen_s(&unused, "CONOUT$", "w", stderr)) { - _dup2(_fileno(stdout), 2); - } - std::ios::sync_with_stdio(); - FlutterDesktopResyncOutputStreams(); - } -} - -std::vector GetCommandLineArguments() { - // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. - int argc; - wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); - if (argv == nullptr) { - return std::vector(); - } - - std::vector command_line_arguments; - - // Skip the first argument as it's the binary name. - for (int i = 1; i < argc; i++) { - command_line_arguments.push_back(Utf8FromUtf16(argv[i])); - } - - ::LocalFree(argv); - - return command_line_arguments; -} - -std::string Utf8FromUtf16(const wchar_t* utf16_string) { - if (utf16_string == nullptr) { - return std::string(); - } - int target_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); - std::string utf8_string; - if (target_length == 0 || target_length > utf8_string.max_size()) { - return utf8_string; - } - utf8_string.resize(target_length); - int converted_length = ::WideCharToMultiByte( - CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, utf8_string.data(), - target_length, nullptr, nullptr); - if (converted_length == 0) { - return std::string(); - } - return utf8_string; -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/utils.h b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/utils.h deleted file mode 100644 index 3879d54..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/utils.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef RUNNER_UTILS_H_ -#define RUNNER_UTILS_H_ - -#include -#include - -// Creates a console for the process, and redirects stdout and stderr to -// it for both the runner and the Flutter library. -void CreateAndAttachConsole(); - -// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string -// encoded in UTF-8. Returns an empty std::string on failure. -std::string Utf8FromUtf16(const wchar_t* utf16_string); - -// Gets the command line arguments passed in as a std::vector, -// encoded in UTF-8. Returns an empty std::vector on failure. -std::vector GetCommandLineArguments(); - -#endif // RUNNER_UTILS_H_ diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/win32_window.cpp b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/win32_window.cpp deleted file mode 100644 index c10f08d..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/win32_window.cpp +++ /dev/null @@ -1,245 +0,0 @@ -#include "win32_window.h" - -#include - -#include "resource.h" - -namespace { - -constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; - -// The number of Win32Window objects that currently exist. -static int g_active_window_count = 0; - -using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); - -// Scale helper to convert logical scaler values to physical using passed in -// scale factor -int Scale(int source, double scale_factor) { - return static_cast(source * scale_factor); -} - -// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. -// This API is only needed for PerMonitor V1 awareness mode. -void EnableFullDpiSupportIfAvailable(HWND hwnd) { - HMODULE user32_module = LoadLibraryA("User32.dll"); - if (!user32_module) { - return; - } - auto enable_non_client_dpi_scaling = - reinterpret_cast( - GetProcAddress(user32_module, "EnableNonClientDpiScaling")); - if (enable_non_client_dpi_scaling != nullptr) { - enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); - } -} - -} // namespace - -// Manages the Win32Window's window class registration. -class WindowClassRegistrar { - public: - ~WindowClassRegistrar() = default; - - // Returns the singleton registar instance. - static WindowClassRegistrar* GetInstance() { - if (!instance_) { - instance_ = new WindowClassRegistrar(); - } - return instance_; - } - - // Returns the name of the window class, registering the class if it hasn't - // previously been registered. - const wchar_t* GetWindowClass(); - - // Unregisters the window class. Should only be called if there are no - // instances of the window. - void UnregisterWindowClass(); - - private: - WindowClassRegistrar() = default; - - static WindowClassRegistrar* instance_; - - bool class_registered_ = false; -}; - -WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; - -const wchar_t* WindowClassRegistrar::GetWindowClass() { - if (!class_registered_) { - WNDCLASS window_class{}; - window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); - window_class.lpszClassName = kWindowClassName; - window_class.style = CS_HREDRAW | CS_VREDRAW; - window_class.cbClsExtra = 0; - window_class.cbWndExtra = 0; - window_class.hInstance = GetModuleHandle(nullptr); - window_class.hIcon = - LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); - window_class.hbrBackground = 0; - window_class.lpszMenuName = nullptr; - window_class.lpfnWndProc = Win32Window::WndProc; - RegisterClass(&window_class); - class_registered_ = true; - } - return kWindowClassName; -} - -void WindowClassRegistrar::UnregisterWindowClass() { - UnregisterClass(kWindowClassName, nullptr); - class_registered_ = false; -} - -Win32Window::Win32Window() { - ++g_active_window_count; -} - -Win32Window::~Win32Window() { - --g_active_window_count; - Destroy(); -} - -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { - Destroy(); - - const wchar_t* window_class = - WindowClassRegistrar::GetInstance()->GetWindowClass(); - - const POINT target_point = {static_cast(origin.x), - static_cast(origin.y)}; - HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); - UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); - double scale_factor = dpi / 96.0; - - HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, - Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), - Scale(size.width, scale_factor), Scale(size.height, scale_factor), - nullptr, nullptr, GetModuleHandle(nullptr), this); - - if (!window) { - return false; - } - - return OnCreate(); -} - -// static -LRESULT CALLBACK Win32Window::WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - if (message == WM_NCCREATE) { - auto window_struct = reinterpret_cast(lparam); - SetWindowLongPtr(window, GWLP_USERDATA, - reinterpret_cast(window_struct->lpCreateParams)); - - auto that = static_cast(window_struct->lpCreateParams); - EnableFullDpiSupportIfAvailable(window); - that->window_handle_ = window; - } else if (Win32Window* that = GetThisFromHandle(window)) { - return that->MessageHandler(window, message, wparam, lparam); - } - - return DefWindowProc(window, message, wparam, lparam); -} - -LRESULT -Win32Window::MessageHandler(HWND hwnd, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept { - switch (message) { - case WM_DESTROY: - window_handle_ = nullptr; - Destroy(); - if (quit_on_close_) { - PostQuitMessage(0); - } - return 0; - - case WM_DPICHANGED: { - auto newRectSize = reinterpret_cast(lparam); - LONG newWidth = newRectSize->right - newRectSize->left; - LONG newHeight = newRectSize->bottom - newRectSize->top; - - SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, - newHeight, SWP_NOZORDER | SWP_NOACTIVATE); - - return 0; - } - case WM_SIZE: { - RECT rect = GetClientArea(); - if (child_content_ != nullptr) { - // Size and position the child window. - MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, - rect.bottom - rect.top, TRUE); - } - return 0; - } - - case WM_ACTIVATE: - if (child_content_ != nullptr) { - SetFocus(child_content_); - } - return 0; - } - - return DefWindowProc(window_handle_, message, wparam, lparam); -} - -void Win32Window::Destroy() { - OnDestroy(); - - if (window_handle_) { - DestroyWindow(window_handle_); - window_handle_ = nullptr; - } - if (g_active_window_count == 0) { - WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); - } -} - -Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { - return reinterpret_cast( - GetWindowLongPtr(window, GWLP_USERDATA)); -} - -void Win32Window::SetChildContent(HWND content) { - child_content_ = content; - SetParent(content, window_handle_); - RECT frame = GetClientArea(); - - MoveWindow(content, frame.left, frame.top, frame.right - frame.left, - frame.bottom - frame.top, true); - - SetFocus(child_content_); -} - -RECT Win32Window::GetClientArea() { - RECT frame; - GetClientRect(window_handle_, &frame); - return frame; -} - -HWND Win32Window::GetHandle() { - return window_handle_; -} - -void Win32Window::SetQuitOnClose(bool quit_on_close) { - quit_on_close_ = quit_on_close; -} - -bool Win32Window::OnCreate() { - // No-op; provided for subclasses. - return true; -} - -void Win32Window::OnDestroy() { - // No-op; provided for subclasses. -} diff --git a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/win32_window.h b/bricks/flutter_starter/__brick__/{{name}}/windows/runner/win32_window.h deleted file mode 100644 index 17ba431..0000000 --- a/bricks/flutter_starter/__brick__/{{name}}/windows/runner/win32_window.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef RUNNER_WIN32_WINDOW_H_ -#define RUNNER_WIN32_WINDOW_H_ - -#include - -#include -#include -#include - -// A class abstraction for a high DPI-aware Win32 Window. Intended to be -// inherited from by classes that wish to specialize with custom -// rendering and input handling -class Win32Window { - public: - struct Point { - unsigned int x; - unsigned int y; - Point(unsigned int x, unsigned int y) : x(x), y(y) {} - }; - - struct Size { - unsigned int width; - unsigned int height; - Size(unsigned int width, unsigned int height) - : width(width), height(height) {} - }; - - Win32Window(); - virtual ~Win32Window(); - - // Creates and shows a win32 window with |title| and position and size using - // |origin| and |size|. New windows are created on the default monitor. Window - // sizes are specified to the OS in physical pixels, hence to ensure a - // consistent size to will treat the width height passed in to this function - // as logical pixels and scale to appropriate for the default monitor. Returns - // true if the window was created successfully. - bool CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size); - - // Release OS resources associated with window. - void Destroy(); - - // Inserts |content| into the window tree. - void SetChildContent(HWND content); - - // Returns the backing Window handle to enable clients to set icon and other - // window properties. Returns nullptr if the window has been destroyed. - HWND GetHandle(); - - // If true, closing this window will quit the application. - void SetQuitOnClose(bool quit_on_close); - - // Return a RECT representing the bounds of the current client area. - RECT GetClientArea(); - - protected: - // Processes and route salient window messages for mouse handling, - // size change and DPI. Delegates handling of these to member overloads that - // inheriting classes can handle. - virtual LRESULT MessageHandler(HWND window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Called when CreateAndShow is called, allowing subclass window-related - // setup. Subclasses should return false if setup fails. - virtual bool OnCreate(); - - // Called when Destroy is called. - virtual void OnDestroy(); - - private: - friend class WindowClassRegistrar; - - // OS callback called by message pump. Handles the WM_NCCREATE message which - // is passed when the non-client area is being created and enables automatic - // non-client DPI scaling so that the non-client area automatically - // responsponds to changes in DPI. All other messages are handled by - // MessageHandler. - static LRESULT CALLBACK WndProc(HWND const window, - UINT const message, - WPARAM const wparam, - LPARAM const lparam) noexcept; - - // Retrieves a class instance pointer for |window| - static Win32Window* GetThisFromHandle(HWND const window) noexcept; - - bool quit_on_close_ = false; - - // window handle for top level window. - HWND window_handle_ = nullptr; - - // window handle for hosted content. - HWND child_content_ = nullptr; -}; - -#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/bricks/flutter_starter/brick.yaml b/bricks/flutter_starter/brick.yaml deleted file mode 100644 index 2b23cea..0000000 --- a/bricks/flutter_starter/brick.yaml +++ /dev/null @@ -1,26 +0,0 @@ -name: flutter_starter -description: Flutter Starter Brick. - -version: 0.1.0+1 - -environment: - mason: ">=0.1.0-dev.26 <0.1.0" - -vars: - name: - type: string - description: Name - default: starter - prompt: Project name? - - desc: - type: string - description: Description - default: New flutter project - prompt: Project description? - - org: - type: string - description: Organization - default: com.example - prompt: Project Organization? diff --git a/bricks/mason-lock.json b/bricks/mason-lock.json deleted file mode 100644 index a1c0368..0000000 --- a/bricks/mason-lock.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "bricks": { - "flutter_starter": { - "path": "flutter_starter" - } - } -} \ No newline at end of file diff --git a/bricks/mason.yaml b/bricks/mason.yaml deleted file mode 100644 index 4cecc1a..0000000 --- a/bricks/mason.yaml +++ /dev/null @@ -1,3 +0,0 @@ -bricks: - flutter_starter: - path: flutter_starter diff --git a/cli/.gitignore b/cli/.gitignore deleted file mode 100644 index 11bc2f5..0000000 --- a/cli/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.dart_tool/ -.packages -build/ -pubspec.lock - -.test_coverage.dart -coverage/ -.test_runner.dart - -.idea \ No newline at end of file diff --git a/cli/analysis_options.yaml b/cli/analysis_options.yaml deleted file mode 100644 index f9b3034..0000000 --- a/cli/analysis_options.yaml +++ /dev/null @@ -1 +0,0 @@ -include: package:flutter_lints/flutter.yaml diff --git a/cli/lib/src/cli/actions.dart b/cli/lib/src/cli/actions.dart deleted file mode 100644 index 4ce6fdc..0000000 --- a/cli/lib/src/cli/actions.dart +++ /dev/null @@ -1,44 +0,0 @@ -import 'package:flutter_starter_cli/src/cli/cli.dart'; -import 'package:flutter_starter_cli/src/utils.dart'; - -class Actions { - static Future setupFiles(String path, String api, bool test) async { - Status.start('Running Basic Setup...'); - try { - await Cli.removeFiles(path, api, test); - Status.complete('Basic Setup Completed!!!'); - } catch (_) { - Status.fail('Setup Failed.'); - } - } - - static Future setupPackages(String path, String api, bool test) async { - Status.start('Adding Dependencies...'); - try { - await Cli.removePackages(path, api, test); - Status.complete('Dependencies Added!!!'); - } catch (_) { - Status.fail('Pub Add Failed.'); - } - } - - static Future getPackages(String path) async { - Status.start('Running Pub Get...'); - try { - await Cli.getPackages(path); - Status.complete('Pub Get Completed!!!'); - } catch (_) { - Status.fail('Pub Get Failed.'); - } - } - - static Future initializeGit(String path) async { - Status.start('Initialize Git...'); - try { - await Cli.initializeGit(path); - Status.complete('Git Initialized!!!'); - } catch (_) { - Status.fail('Git Not Installed.'); - } - } -} diff --git a/cli/lib/flutter_starter_cli.dart b/lib/flutter_starter_cli.dart similarity index 100% rename from cli/lib/flutter_starter_cli.dart rename to lib/flutter_starter_cli.dart diff --git a/lib/src/cli/actions.dart b/lib/src/cli/actions.dart new file mode 100644 index 0000000..266bc00 --- /dev/null +++ b/lib/src/cli/actions.dart @@ -0,0 +1,82 @@ +import 'dart:io'; + +import 'package:flutter_starter_cli/src/cli/cli.dart'; +import 'package:flutter_starter_cli/src/utils.dart'; + +class Actions { + static Future createProject(String path) async { + Status.start('Project Creating...'); + try { + await Cli.cloneProject(path); + Status.complete('Project Created!!!'); + } catch (_) { + Status.fail('Project Creation Failed!!!'); + } + } + + static Future generateFiles( + String path, + String name, + String desc, + String org, + String api, + bool test, + ) async { + Status.start('Running Basic Setup...'); + try { + await Cli.removeFiles(path, api, test); + Status.complete('Basic Setup Completed!!!'); + } catch (_) { + Status.fail('Setup Failed.'); + } + await Future.wait( + Directory(path) + .listSync(recursive: true) + .whereType() + .map((_) async { + var file = _; + try { + final contents = await file.readAsString(); + file = await file.writeAsString(contents + .replaceAll('flutter_starter', name) + .replaceAll('A new Flutter project.', desc) + .replaceAll('com.example', org) + .replaceAll( + 'api_sdk/dio_api_sdk.dart', 'api_sdk/${api}_api_sdk.dart')); + } catch (_) {} + }), + ); + } + + static Future setupPackages(String path, String api, bool test) async { + Status.start('Adding Dependencies...'); + try { + await Cli.removePackages(path, api, test); + Status.complete('Dependencies Added!!!'); + } catch (_) { + Status.fail('Pub Add Failed.'); + } + } + + static Future getPackages(String path) async { + Status.start('Running Pub Get...'); + try { + await Cli.getPackages(path); + Status.complete('Pub Get Completed!!!'); + } catch (_) { + Status.fail('Pub Get Failed.'); + } + } + + static Future initializeGit(String path, bool git) async { + if (git) { + Status.start('Initialize Git...'); + try { + await Cli.initializeGit(path); + Status.complete('Git Initialized!!!'); + } catch (_) { + Status.fail('Git Not Installed.'); + } + } + } +} diff --git a/cli/lib/src/cli/cli.dart b/lib/src/cli/cli.dart similarity index 56% rename from cli/lib/src/cli/cli.dart rename to lib/src/cli/cli.dart index ed190e8..95949d5 100644 --- a/cli/lib/src/cli/cli.dart +++ b/lib/src/cli/cli.dart @@ -1,5 +1,7 @@ import 'dart:io'; +import 'package:path/path.dart'; + class Cli { static Future _run( String cmd, @@ -15,27 +17,35 @@ class Cli { return result; } + static Future cloneProject(String path) async { + await _run( + 'git', + ['clone', 'https://github.com/Geekyants/flutter-starter.git', path], + path: path, + ); + } + static Future removeFiles(String path, String api, bool test) async { - var args = []; + Directory target; + target = Directory(join(path, '.git')); + await target.delete(recursive: true); if (api == 'dio') { - args - ..add('lib/api_sdk/http') - ..add('lib/api_sdk/http_api_sdk.dart'); + target = Directory(join(path, 'lib', 'api_sdk', 'http')); + await target.delete(recursive: true); + target = Directory(join(path, 'lib', 'api_sdk', 'http_api_sdk.dart')); + await target.delete(recursive: true); } else { - args - ..add('lib/api_sdk/dio') - ..add('lib/api_sdk/dio_api_sdk.dart'); + target = Directory(join(path, 'lib', 'api_sdk', 'dio')); + await target.delete(recursive: true); + target = Directory(join(path, 'lib', 'api_sdk', 'dio_api_sdk.dart')); + await target.delete(recursive: true); } if (!test) { - args - ..add('integration_test') - ..add('test'); + target = Directory(join(path, 'integration_test')); + await target.delete(recursive: true); + target = Directory(join(path, 'test')); + await target.delete(recursive: true); } - await _run( - 'rm', - ['-rf', ...args], - path: path, - ); } static Future removePackages(String path, String api, bool test) async { diff --git a/cli/lib/src/command_runner.dart b/lib/src/command_runner.dart similarity index 90% rename from cli/lib/src/command_runner.dart rename to lib/src/command_runner.dart index 7caa867..4857568 100644 --- a/cli/lib/src/command_runner.dart +++ b/lib/src/command_runner.dart @@ -1,11 +1,11 @@ import 'package:args/args.dart'; import 'package:args/command_runner.dart'; -import 'package:mason/mason.dart'; +import 'package:mason_logger/mason_logger.dart'; import 'package:pub_updater/pub_updater.dart'; import 'package:flutter_starter_cli/src/commands/commands.dart'; import 'package:flutter_starter_cli/src/utils.dart'; -import 'package:flutter_starter_cli/src/version.dart' as ver; +import 'package:flutter_starter_cli/src/version.dart'; const executableName = 'flutter_starter_cli'; const packageName = 'flutter_starter_cli'; @@ -86,7 +86,7 @@ class FlutterStarterCliCommandRunner extends CommandRunner { final int? exitCode; if (topLevelResults['version'] == true) { - _logger.info(ver.packageVersion); + _logger.info(packageVersion); exitCode = ExitCode.success.code; } else { exitCode = await super.runCommand(topLevelResults); @@ -98,13 +98,13 @@ class FlutterStarterCliCommandRunner extends CommandRunner { Future _checkForUpdates() async { try { final latestVersion = await _pubUpdater.getLatestVersion(packageName); - final isUpToDate = ver.packageVersion == latestVersion; + final isUpToDate = packageVersion == latestVersion; if (!isUpToDate) { _logger ..info('') ..info( ''' -${lightYellow.wrap('Update available!')} ${lightCyan.wrap(ver.packageVersion)} \u2192 ${lightCyan.wrap(latestVersion)} +${lightYellow.wrap('Update available!')} ${lightCyan.wrap(packageVersion)} \u2192 ${lightCyan.wrap(latestVersion)} Run ${lightCyan.wrap('flutter_starter_cli update')} to update''', ); } diff --git a/cli/lib/src/commands/commands.dart b/lib/src/commands/commands.dart similarity index 100% rename from cli/lib/src/commands/commands.dart rename to lib/src/commands/commands.dart diff --git a/cli/lib/src/commands/create_command.dart b/lib/src/commands/create_command.dart similarity index 73% rename from cli/lib/src/commands/create_command.dart rename to lib/src/commands/create_command.dart index 2c13ba2..3a6c263 100644 --- a/cli/lib/src/commands/create_command.dart +++ b/lib/src/commands/create_command.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:args/command_runner.dart'; -import 'package:mason/mason.dart'; +import 'package:mason_logger/mason_logger.dart'; import 'package:flutter_starter_cli/src/cli/actions.dart'; import 'package:flutter_starter_cli/src/command_runner.dart'; @@ -55,40 +55,16 @@ class CreateCommand extends Command { @override Future run() async { - final brick = Brick.git( - const GitPath( - 'https://github.com/GeekyAnts/flutter-starter-cli', - path: 'bricks/flutter_starter', - ), - ); - final dir = Directory.current; - final target = DirectoryGeneratorTarget(dir); final name = _name; final desc = _desc; final org = _org; final api = _api; final test = _test; final git = _git; - Status.start('Project Creating...'); - final generator = await MasonGenerator.fromBrick(brick); - final fileCount = await generator.generate( - target, - logger: _logger, - vars: { - 'name': name, - 'desc': desc, - 'org': org, - 'api': api, - }, - ); - Status.complete('Project Created with ${fileCount.length} Files!!!'); - await onGenerateComplete( - _logger, - '${Directory.current.path}/$name', - api, - test, - git, - ); + final path = '${Directory.current.path}/$name'; + final target = Directory(path); + if (!target.existsSync()) await target.create(); + await onGenerateComplete(_logger, path, name, desc, org, api, test, git); _logger.success('Your Project is Ready to Use 🚀'); return ExitCode.success.code; } @@ -145,16 +121,12 @@ class CreateCommand extends Command { ); } - Future onGenerateComplete( - Logger logger, - String path, - String api, - bool test, - bool git, - ) async { - await Actions.setupFiles(path, api, test); + Future onGenerateComplete(Logger logger, String path, String name, + String desc, String org, String api, bool test, bool git) async { + await Actions.createProject(path); + await Actions.generateFiles(path, name, desc, org, api, test); await Actions.setupPackages(path, api, test); await Actions.getPackages(path); - if (git) await Actions.initializeGit(path); + await Actions.initializeGit(path, git); } } diff --git a/cli/lib/src/commands/update_command.dart b/lib/src/commands/update_command.dart similarity index 89% rename from cli/lib/src/commands/update_command.dart rename to lib/src/commands/update_command.dart index 22b27c7..1b9a46d 100644 --- a/cli/lib/src/commands/update_command.dart +++ b/lib/src/commands/update_command.dart @@ -1,9 +1,9 @@ import 'package:args/command_runner.dart'; -import 'package:mason/mason.dart'; +import 'package:mason_logger/mason_logger.dart'; import 'package:pub_updater/pub_updater.dart'; import 'package:flutter_starter_cli/src/command_runner.dart'; -import 'package:flutter_starter_cli/src/version.dart' as ver; +import 'package:flutter_starter_cli/src/version.dart'; class UpdateCommand extends Command { UpdateCommand({ @@ -34,7 +34,7 @@ class UpdateCommand extends Command { } updateCheckProgress.complete('Checked for updates'); - final isUpToDate = ver.packageVersion == latestVersion; + final isUpToDate = packageVersion == latestVersion; if (isUpToDate) { _logger.info('CLI is already at the latest version.'); return ExitCode.success.code; diff --git a/cli/lib/src/utils.dart b/lib/src/utils.dart similarity index 87% rename from cli/lib/src/utils.dart rename to lib/src/utils.dart index 90aab26..b8ebbc2 100644 --- a/cli/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -1,4 +1,4 @@ -import 'package:mason/mason.dart'; +import 'package:mason_logger/mason_logger.dart'; enum APIService { dio, diff --git a/cli/lib/src/version.dart b/lib/src/version.dart similarity index 100% rename from cli/lib/src/version.dart rename to lib/src/version.dart diff --git a/cli/pubspec.yaml b/pubspec.yaml similarity index 78% rename from cli/pubspec.yaml rename to pubspec.yaml index 617f811..5b55c27 100644 --- a/cli/pubspec.yaml +++ b/pubspec.yaml @@ -8,12 +8,11 @@ environment: dependencies: args: ^2.3.1 - mason: ^0.1.0-dev.33 + mason_logger: ^0.1.3 + path: ^1.8.2 pub_updater: ^0.2.1 dev_dependencies: - build_runner: ^2.0.0 - build_version: ^2.0.0 flutter_lints: ^2.0.1 executables: