diff --git a/haiku_generator/codelab_rebuild.yaml b/haiku_generator/codelab_rebuild.yaml new file mode 100644 index 0000000000..d1de8f4f03 --- /dev/null +++ b/haiku_generator/codelab_rebuild.yaml @@ -0,0 +1,4131 @@ +name: Haiku Generator rebuild script +steps: + - name: step0 + steps: + - name: Remove generated code + rmdir: step0 + - name: Create project + flutter: create haiku_generator + - name: Add deps + path: haiku_generator + flutter: pub add http + - name: Strip DEVELOPMENT_TEAM + strip-lines-containing: DEVELOPMENT_TEAM = + path: haiku_generator/ios/Runner.xcodeproj/project.pbxproj + - name: Configure analysis_options.yaml + path: haiku_generator/analysis_options.yaml + replace-contents: | + include: ../../analysis_options.yaml + - name: Replace README.md + path: haiku_generator/README.md + replace-contents: | + # Haiku generator demo app + + This folder contains the code for [Generative AI](https://developers.generativeai.google/) + Flutter codelab. + - name: Add ui.png + path: haiku_generator/ui.png + base64-contents: | + iVBORw0KGgoAAAANSUhEUgAAAjYAAASQCAYAAADvIwX8AAAAAXNSR0IArs4c6QAAAJZlWElmTU0AKgAA + AAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQ + AAAAAQAAAJAAAAABAASShgAHAAAAEgAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAjagAwAEAAAAAQAA + BJAAAAAAQVNDSUkAAABTY3JlZW5zaG90FkJRNgAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAddpVFh0WE1M + OmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1w + dGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9y + Zy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv + dXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8i + PgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTE2ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+ + CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41NjY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgog + ICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAg + ICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KgJnpLAAAABxpRE9U + AAAAAgAAAAAAAAJIAAAAKAAAAkgAAAJIAAG1VDUNkHoAAEAASURBVHgB7J0HgBVF1oXv5AQMOWcVRTIK + IiAqmMWcUMyuilnXnOMa1v11XRPmBKbFHHBBURBBRTKIEclRMpPT/516r4fHMAMDb8CBqdLhpe7qqtNV + t06de6s6pohkPnkEPAIeAY+AR8Aj4BHYBRCI8cRmF7iLvgoeAY+AR8Aj4BHwCDgEPLHxDcEj4BHwCHgE + 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 + 46qvrJupAAAAAElFTkSuQmCC + - name: Add lib/app.dart + path: haiku_generator/lib/app.dart + replace-contents: | + import 'package:flutter/material.dart'; + + import 'controller/poem_controller.dart'; + import 'controller/product_controller.dart'; + import 'domain/models/product.dart'; + import 'widgets/shimmer_loading_anim.dart'; + + class HaikuPage extends StatefulWidget { + const HaikuPage({super.key, required this.title}); + + final String title; + + @override + State createState() => HaikuPageState(); + } + + class HaikuPageState extends State { + List listProduct = []; + final ProductController productController = ProductController(); + final PoemController poemController = PoemController(); + + String haikuText = ''; + String productName = 'Google Search'; + + String subTitle = 'Choose a Google product here:'; + + Future getProductData() async { + var productData = await productController.getProducts(); + setState(() { + listProduct = productData; + }); + } + + Future getHaikuTextData(String productName) async { + var poemData = await poemController.getPoem(productName); + setState(() { + haikuText = poemData; + }); + } + + @override + void initState() { + super.initState(); + getProductData(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text(widget.title)), + body: Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + buildTopView(), + const SizedBox(height: 10.0), + buildBottomView(), + ], + ), + ), + ), + ); + } + + Column buildTopView() { + return Column( + children: [ + Text( + subTitle, + style: const TextStyle(fontSize: 18, color: Colors.black), + ), + SizedBox( + width: 150.0, + child: DropdownButton( + items: + listProduct.map((value) { + return DropdownMenuItem( + value: value, + child: Text(value.productName), + ); + }).toList(), + hint: Text( + productName.toString(), + style: const TextStyle(color: Colors.deepPurpleAccent), + ), + underline: Container(height: 1, color: Colors.deepPurpleAccent), + onChanged: (value) { + setState(() { + productName = value!.productName; + haikuText = ''; + }); + }, + isExpanded: true, + ), + ), + FilledButton( + onPressed: () => getHaikuTextData(productName.toString()), + style: FilledButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 18), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + ), + child: const Text( + 'Generate haiku!', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ); + } + + Expanded buildBottomView() { + return Expanded( + child: + haikuText.isNotEmpty + ? Container( + decoration: BoxDecoration( + color: Colors.amberAccent.shade100, + borderRadius: BorderRadius.circular(8), + ), + child: Padding( + padding: const EdgeInsets.all(8.0), + child: SizedBox( + width: double.maxFinite, + child: Text( + haikuText, + style: const TextStyle( + color: Colors.black, + fontSize: 18, + fontWeight: FontWeight.w300, + ), + ), + ), + ), + ) + : ShimmerLoadingAnim( + isLoading: true, + child: Container( + height: double.maxFinite, + width: double.maxFinite, + decoration: BoxDecoration( + color: const Color(0xFFE5E5E5), + borderRadius: BorderRadius.circular(8), + ), + ), + ), + ); + } + } + - name: Replace lib/main.dart + path: haiku_generator/lib/main.dart + replace-contents: | + import 'package:flutter/material.dart'; + + import 'app.dart'; + + void main() { + runApp(const MyApp()); + } + + class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Haiku Generator Demo', + theme: ThemeData(), + home: const HaikuPage(title: 'Haiku generator for Google products'), + ); + } + } + - name: Mkdir lib/controller + path: haiku_generator + mkdir: lib/controller + - name: Add lib/controller/poem_controller.dart + path: haiku_generator/lib/controller/poem_controller.dart + replace-contents: | + import '../data/repositories/poem_repository_impl.dart'; + import '../domain/repositories/abstract/poem_repository.dart'; + + class PoemController { + final PoemRepository poemRepository = PoemRepositoryImpl(); + + Future getPoem(String productName) { + return poemRepository.getPoems(productName); + } + } + - name: Add lib/controller/product_controller.dart + path: haiku_generator/lib/controller/product_controller.dart + replace-contents: | + import '../data/repositories/product_repository_impl.dart'; + import '../domain/models/product.dart'; + import '../domain/repositories/abstract/product_repository.dart'; + + class ProductController { + final ProductRepository productRepository = ProductRepositoryImpl(); + + Future> getProducts() { + return productRepository.getAllProducts(); + } + } + - name: Mkdir lib/data/repositories + path: haiku_generator + mkdir: lib/data/repositories + - name: Add lib/data/repositories/poem_repository_impl.dart + path: haiku_generator/lib/data/repositories/poem_repository_impl.dart + replace-contents: | + // ignore: unused_import + import 'dart:convert'; + + // ignore: unused_import + import 'package:http/http.dart' as http; + + import '../../domain/repositories/abstract/poem_repository.dart'; + + class PoemRepositoryImpl implements PoemRepository { + PoemRepositoryImpl(); + + @override + Future getPoems(String productName) async { + return ''; + } + } + - name: Add lib/data/repositories/product_repository_impl.dart + path: haiku_generator/lib/data/repositories/product_repository_impl.dart + replace-contents: | + import '../../domain/models/product.dart'; + import '../../domain/repositories/abstract/product_repository.dart'; + + class ProductRepositoryImpl implements ProductRepository { + ProductRepositoryImpl(); + + @override + Future> getAllProducts() async { + var dummyData = [ + {'productName': 'Google Search'}, + ]; + return dummyData.map((item) => Product.fromMap(item)).toList(); + } + } + - name: Mkdir lib/domain/repositories/abstract + path: haiku_generator + mkdir: lib/domain/repositories/abstract + - name: Add lib/domain/repositories/abstract/poem_repository.dart + path: haiku_generator/lib/domain/repositories/abstract/poem_repository.dart + replace-contents: | + abstract class PoemRepository { + Future getPoems(String productName); + } + - name: Add lib/domain/repositories/abstract/product_repository.dart + path: haiku_generator/lib/domain/repositories/abstract/product_repository.dart + replace-contents: | + import '../../models/product.dart'; + + abstract class ProductRepository { + Future> getAllProducts(); + } + - name: Mkdir lib/domain/models + path: haiku_generator + mkdir: lib/domain/models + - name: Add lib/domain/models/product.dart + path: haiku_generator/lib/domain/models/product.dart + replace-contents: | + class Product { + final String productName; + + Product(this.productName); + + Product.fromMap(Map json) + : productName = json['productName']; + + Map toMap() { + return {'productName': productName}; + } + } + - name: Mkdir lib/widgets + path: haiku_generator + mkdir: lib/widgets + - name: Add lib/widgets/shimmer_gradient.dart + path: haiku_generator/lib/widgets/shimmer_gradient.dart + replace-contents: | + import 'package:flutter/material.dart'; + + LinearGradient shimmerGradient = const LinearGradient( + colors: [Color(0xFFEBEBF4), Color(0xFFF4F4F4), Color(0xFFEBEBF4)], + stops: [0.1, 0.3, 0.4], + begin: Alignment(-1.0, -0.3), + end: Alignment(1.0, 0.3), + ); + - name: Add lib/widgets/shimmer_loading_anim.dart + path: haiku_generator/lib/widgets/shimmer_loading_anim.dart + replace-contents: | + import 'package:flutter/material.dart'; + + import 'shimmer_gradient.dart'; + import 'shimmer_loading.dart'; + + class ShimmerLoadingAnim extends StatelessWidget { + const ShimmerLoadingAnim({ + super.key, + required this.child, + this.isLoading = false, + }); + + final Widget child; + final bool isLoading; + + @override + Widget build(BuildContext context) { + return Shimmer( + linearGradient: shimmerGradient, + child: ShimmerLoading(isLoading: isLoading, child: child), + ); + } + } + - name: Add lib/widgets/shimmer_loading.dart + path: haiku_generator/lib/widgets/shimmer_loading.dart + replace-contents: | + import 'package:flutter/material.dart'; + + class Shimmer extends StatefulWidget { + const Shimmer({super.key, required this.linearGradient, this.child}); + + static ShimmerState? of(BuildContext context) { + return context.findAncestorStateOfType(); + } + + final LinearGradient linearGradient; + final Widget? child; + + @override + ShimmerState createState() => ShimmerState(); + } + + class ShimmerState extends State with SingleTickerProviderStateMixin { + late AnimationController shimmerController; + + @override + void initState() { + super.initState(); + + shimmerController = AnimationController.unbounded(vsync: this) + ..repeat(min: -0.5, max: 1.5, period: const Duration(milliseconds: 1000)); + } + + @override + void dispose() { + shimmerController.dispose(); + super.dispose(); + } + + LinearGradient get gradient => LinearGradient( + colors: widget.linearGradient.colors, + stops: widget.linearGradient.stops, + begin: widget.linearGradient.begin, + end: widget.linearGradient.end, + transform: SlidingGradientTransform(slidePercent: shimmerController.value), + ); + + bool get isSized { + if (context.findRenderObject() != null) { + return (context.findRenderObject()! as RenderBox).hasSize; + } else { + return false; + } + } + + Size get size => (context.findRenderObject()! as RenderBox).size; + + Offset getDescendantOffset({ + required RenderBox descendant, + Offset offset = Offset.zero, + }) { + final RenderBox shimmerBox = context.findRenderObject()! as RenderBox; + return descendant.localToGlobal(offset, ancestor: shimmerBox); + } + + Listenable get shimmerChanges => shimmerController; + + @override + Widget build(BuildContext context) { + return widget.child ?? const SizedBox(); + } + } + + class SlidingGradientTransform extends GradientTransform { + const SlidingGradientTransform({required this.slidePercent}); + + final double slidePercent; + + @override + Matrix4? transform(Rect bounds, {TextDirection? textDirection}) { + return Matrix4.translationValues(bounds.width * slidePercent, 0.0, 0.0); + } + } + + class ShimmerLoading extends StatefulWidget { + const ShimmerLoading({ + super.key, + required this.isLoading, + required this.child, + }); + + final bool isLoading; + final Widget child; + + @override + State createState() => ShimmerLoadingState(); + } + + class ShimmerLoadingState extends State { + Listenable? shimmerChanges; + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + if (shimmerChanges != null) { + shimmerChanges!.removeListener(onShimmerChange); + } + shimmerChanges = Shimmer.of(context)?.shimmerChanges; + if (shimmerChanges != null) { + shimmerChanges!.addListener(onShimmerChange); + } + } + + @override + void dispose() { + shimmerChanges?.removeListener(onShimmerChange); + super.dispose(); + } + + void onShimmerChange() { + if (widget.isLoading) { + setState(() { + // update the shimmer painting. + }); + } + } + + @override + Widget build(BuildContext context) { + if (!widget.isLoading) { + return widget.child; + } + + // Collect ancestor shimmer info. + final ShimmerState shimmer = Shimmer.of(context)!; + if (!shimmer.isSized) { + // The ancestor Shimmer widget has not laid + // itself out yet. Return an empty box. + return const SizedBox(); + } + final Size shimmerSize = shimmer.size; + final LinearGradient gradient = shimmer.gradient; + final Offset offsetWithinShimmer = shimmer.getDescendantOffset( + descendant: context.findRenderObject()! as RenderBox, + ); + + return ShaderMask( + blendMode: BlendMode.srcATop, + shaderCallback: (bounds) { + return gradient.createShader( + Rect.fromLTWH( + -offsetWithinShimmer.dx, + -offsetWithinShimmer.dy, + shimmerSize.width, + shimmerSize.height, + ), + ); + }, + child: widget.child, + ); + } + } + - name: Replace test/widget_test.dart + path: haiku_generator/test/widget_test.dart + replace-contents: | + // This is a basic Flutter widget test. + // + // To perform an interaction with a widget in your test, use the WidgetTester + // utility in the flutter_test package. For example, you can send tap and scroll + // gestures. You can also use WidgetTester to find child widgets in the widget + // tree, read text, and verify that the values of widget properties are correct. + + import 'package:flutter_test/flutter_test.dart'; + + import 'package:haiku_generator/main.dart'; + + void main() { + testWidgets('Counter increments smoke test', (tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that the widgets are there + expect(find.text('Choose a Google product here:'), findsOneWidget); + expect(find.text('Generate haiku!'), findsOneWidget); + }); + } + - name: Patch macos/Runner/DebugProfile.entitlements + path: haiku_generator/macos/Runner/DebugProfile.entitlements + patch-u: | + --- b/haiku_generator/finished/macos/Runner/DebugProfile.entitlements + +++ a/haiku_generator/finished/macos/Runner/DebugProfile.entitlements + @@ -8,5 +8,7 @@ + + com.apple.security.network.server + + + com.apple.security.network.client + + + + + - name: Patch macos/Runner/Release.entitlements + path: haiku_generator/macos/Runner/Release.entitlements + patch-u: | + --- b/haiku_generator/finished/macos/Runner/Release.entitlements + +++ a/haiku_generator/finished/macos/Runner/Release.entitlements + @@ -4,5 +4,7 @@ + + com.apple.security.app-sandbox + + + com.apple.security.network.client + + + + + - name: Copy step0 + copydir: + from: haiku_generator + to: step0 + - name: Flutter clean + path: step0 + flutter: clean + - name: step1 + steps: + - name: Remove generated code + rmdir: step1 + - name: Copy step1 + copydir: + from: haiku_generator + to: step1 + - name: Flutter clean + path: step1 + flutter: clean + - name: step2 + steps: + - name: Remove generated code + rmdir: step2 + - name: Patch lib/data/repositories/product_repository_impl.dart + path: haiku_generator/lib/data/repositories/product_repository_impl.dart + patch-u: | + --- b/haiku_generator/step2/lib/data/repositories/product_repository_impl.dart + +++ a/haiku_generator/step2/lib/data/repositories/product_repository_impl.dart + @@ -8,6 +8,10 @@ class ProductRepositoryImpl implements ProductRepository { + Future> getAllProducts() async { + var dummyData = [ + {'productName': 'Google Search'}, + + {'productName': 'YouTube'}, + + {'productName': 'Android'}, + + {'productName': 'Google Maps'}, + + {'productName': 'GMail'}, + ]; + return dummyData.map((item) => Product.fromMap(item)).toList(); + } + - name: Copy step2 + copydir: + from: haiku_generator + to: step2 + - name: Flutter clean + path: step2 + flutter: clean + - name: step3 + steps: + - name: Remove generated code + rmdir: step3 + - name: Patch lib/data/repositories/poem_repository_impl.dart + path: haiku_generator/lib/data/repositories/poem_repository_impl.dart + patch-u: | + --- b/haiku_generator/step3/lib/data/repositories/poem_repository_impl.dart + +++ a/haiku_generator/step3/lib/data/repositories/poem_repository_impl.dart + @@ -1,7 +1,5 @@ + -// ignore: unused_import + import 'dart:convert'; + + -// ignore: unused_import + import 'package:http/http.dart' as http; + + import '../../domain/repositories/abstract/poem_repository.dart'; + @@ -11,6 +9,49 @@ class PoemRepositoryImpl implements PoemRepository { + + @override + Future getPoems(String productName) async { + - return ''; + + // TODO: Replace YOUR_API_KEY with your API key. + + var apiKey = 'YOUR_API_KEY'; + + const haikuCount = 5; + + + + final url = Uri.parse( + + 'https://generativelanguage.googleapis.com/v1beta2/models/chat-bison-001:generateMessage?key=$apiKey', + + ); + + final headers = {'Content-Type': 'application/json'}; + + final body = jsonEncode({ + + 'prompt': { + + 'context': 'You are an awesome haiku writer.', + + 'examples': [ + + { + + 'input': {'content': 'Write a haiku about Google Photos.'}, + + 'output': { + + 'content': + + 'Google Photos, my friend\nA journey of a lifetime\nCaptured in pixels', + + }, + + }, + + ], + + 'messages': [ + + {'content': 'Write a cool, long haiku of for $productName'}, + + ], + + }, + + 'candidate_count': haikuCount, + + 'temperature': 1, + + }); + + + + try { + + final response = await http.post(url, headers: headers, body: body); + + if (response.statusCode == 200) { + + final decodedResponse = json.decode(response.body); + + String haikus = 'Here are $haikuCount haikus about $productName:\n\n'; + + for (var i = 0; i < haikuCount; i++) { + + haikus += '${i + 1}.\n'; + + haikus += decodedResponse['candidates'][i]['content'] + '\n\n'; + + } + + return haikus; + + } else { + + return 'Request failed with status: ${response.statusCode}.\n\n${response.body}'; + + } + + } catch (error) { + + throw Exception('Error sending POST request: $error'); + + } + } + } + - name: Copy step3 + copydir: + from: haiku_generator + to: step3 + - name: Flutter clean + path: step3 + flutter: clean + - name: finished + steps: + - name: Remove generated code + rmdir: finished + - name: Copy finished + copydir: + from: haiku_generator + to: finished + - name: Flutter clean + path: finished + flutter: clean + - name: Cleanup + rmdir: haiku_generator + diff --git a/haiku_generator/finished/.gitignore b/haiku_generator/finished/.gitignore index deef3e38e6..79c113f9b5 100644 --- a/haiku_generator/finished/.gitignore +++ b/haiku_generator/finished/.gitignore @@ -3,12 +3,13 @@ *.log *.pyc *.swp -*.env .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related @@ -28,7 +29,6 @@ migrate_working_dir/ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ diff --git a/haiku_generator/finished/analysis_options.yaml b/haiku_generator/finished/analysis_options.yaml index 61b6c4de17..f04c6cf0f3 100644 --- a/haiku_generator/finished/analysis_options.yaml +++ b/haiku_generator/finished/analysis_options.yaml @@ -1,29 +1 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +include: ../../analysis_options.yaml diff --git a/haiku_generator/finished/android/.gitignore b/haiku_generator/finished/android/.gitignore index 6f568019d3..be3943c96d 100644 --- a/haiku_generator/finished/android/.gitignore +++ b/haiku_generator/finished/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/haiku_generator/finished/android/app/build.gradle b/haiku_generator/finished/android/app/build.gradle deleted file mode 100644 index 83b021a788..0000000000 --- a/haiku_generator/finished/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 "com.example.haiku_generator" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/haiku_generator/finished/android/app/build.gradle.kts b/haiku_generator/finished/android/app/build.gradle.kts new file mode 100644 index 0000000000..741e0cd74f --- /dev/null +++ b/haiku_generator/finished/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.haiku_generator" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.haiku_generator" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/haiku_generator/finished/android/app/src/debug/AndroidManifest.xml b/haiku_generator/finished/android/app/src/debug/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/finished/android/app/src/debug/AndroidManifest.xml +++ b/haiku_generator/finished/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + + + + + + + diff --git a/haiku_generator/finished/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt b/haiku_generator/finished/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt index ac871b3223..1aec805716 100644 --- a/haiku_generator/finished/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt +++ b/haiku_generator/finished/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt @@ -2,5 +2,4 @@ package com.example.haiku_generator import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/haiku_generator/finished/android/app/src/profile/AndroidManifest.xml b/haiku_generator/finished/android/app/src/profile/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/finished/android/app/src/profile/AndroidManifest.xml +++ b/haiku_generator/finished/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + - + - + - finished + haiku_generator - - - - - + diff --git a/haiku_generator/finished/web/manifest.json b/haiku_generator/finished/web/manifest.json index fdc1653538..3ea8ccaba4 100644 --- a/haiku_generator/finished/web/manifest.json +++ b/haiku_generator/finished/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "finished", - "short_name": "finished", + "name": "haiku_generator", + "short_name": "haiku_generator", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/haiku_generator/finished/windows/CMakeLists.txt b/haiku_generator/finished/windows/CMakeLists.txt index 878deeed06..18b745c02c 100644 --- a/haiku_generator/finished/windows/CMakeLists.txt +++ b/haiku_generator/finished/windows/CMakeLists.txt @@ -8,7 +8,7 @@ set(BINARY_NAME "haiku_generator") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. -cmake_policy(SET CMP0063 NEW) +cmake_policy(VERSION 3.14...3.25) # Define build configuration option. get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) @@ -52,6 +52,7 @@ 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) @@ -86,6 +87,12 @@ if(PLUGIN_BUNDLED_LIBRARIES) COMPONENT Runtime) endif() +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + # 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") diff --git a/haiku_generator/finished/windows/flutter/CMakeLists.txt b/haiku_generator/finished/windows/flutter/CMakeLists.txt index 930d2071a3..903f4899d6 100644 --- a/haiku_generator/finished/windows/flutter/CMakeLists.txt +++ b/haiku_generator/finished/windows/flutter/CMakeLists.txt @@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake) # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") @@ -92,7 +97,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ + ${FLUTTER_TARGET_PLATFORM} $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS diff --git a/haiku_generator/finished/windows/runner/CMakeLists.txt b/haiku_generator/finished/windows/runner/CMakeLists.txt index b9e550fba8..394917c053 100644 --- a/haiku_generator/finished/windows/runner/CMakeLists.txt +++ b/haiku_generator/finished/windows/runner/CMakeLists.txt @@ -20,12 +20,20 @@ add_executable(${BINARY_NAME} WIN32 # that need different build settings. apply_standard_settings(${BINARY_NAME}) +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + # 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_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") # Run the Flutter tool portions of the build. This must not be removed. diff --git a/haiku_generator/finished/windows/runner/Runner.rc b/haiku_generator/finished/windows/runner/Runner.rc index f29048fa59..55d0a9127c 100644 --- a/haiku_generator/finished/windows/runner/Runner.rc +++ b/haiku_generator/finished/windows/runner/Runner.rc @@ -60,14 +60,14 @@ IDI_APP_ICON ICON "resources\\app_icon.ico" // Version // -#ifdef FLUTTER_BUILD_NUMBER -#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD #else -#define VERSION_AS_NUMBER 1,0,0 +#define VERSION_AS_NUMBER 1,0,0,0 #endif -#ifdef FLUTTER_BUILD_NAME -#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION #else #define VERSION_AS_STRING "1.0.0" #endif @@ -93,7 +93,7 @@ BEGIN VALUE "FileDescription", "haiku_generator" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "InternalName", "haiku_generator" "\0" - VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" VALUE "OriginalFilename", "haiku_generator.exe" "\0" VALUE "ProductName", "haiku_generator" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" diff --git a/haiku_generator/finished/windows/runner/flutter_window.cpp b/haiku_generator/finished/windows/runner/flutter_window.cpp index b43b9095ea..955ee3038f 100644 --- a/haiku_generator/finished/windows/runner/flutter_window.cpp +++ b/haiku_generator/finished/windows/runner/flutter_window.cpp @@ -26,6 +26,16 @@ bool FlutterWindow::OnCreate() { } RegisterPlugins(flutter_controller_->engine()); SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + return true; } diff --git a/haiku_generator/finished/windows/runner/main.cpp b/haiku_generator/finished/windows/runner/main.cpp index 9df9107cc0..1b8229dfe2 100644 --- a/haiku_generator/finished/windows/runner/main.cpp +++ b/haiku_generator/finished/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"haiku_generator", origin, size)) { + if (!window.Create(L"haiku_generator", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/haiku_generator/finished/windows/runner/runner.exe.manifest b/haiku_generator/finished/windows/runner/runner.exe.manifest index c977c4a425..153653e8d6 100644 --- a/haiku_generator/finished/windows/runner/runner.exe.manifest +++ b/haiku_generator/finished/windows/runner/runner.exe.manifest @@ -7,14 +7,8 @@ - + - - - - - - diff --git a/haiku_generator/finished/windows/runner/utils.cpp b/haiku_generator/finished/windows/runner/utils.cpp index f5bf9fa0f5..3a0b46511a 100644 --- a/haiku_generator/finished/windows/runner/utils.cpp +++ b/haiku_generator/finished/windows/runner/utils.cpp @@ -45,9 +45,11 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) { if (utf16_string == nullptr) { return std::string(); } - int target_length = ::WideCharToMultiByte( + unsigned int target_length = ::WideCharToMultiByte( CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); std::string utf8_string; if (target_length == 0 || target_length > utf8_string.max_size()) { return utf8_string; @@ -55,8 +57,7 @@ std::string Utf8FromUtf16(const wchar_t* utf16_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); + input_length, utf8_string.data(), target_length, nullptr, nullptr); if (converted_length == 0) { return std::string(); } diff --git a/haiku_generator/finished/windows/runner/win32_window.cpp b/haiku_generator/finished/windows/runner/win32_window.cpp index c10f08dc7d..60608d0fe5 100644 --- a/haiku_generator/finished/windows/runner/win32_window.cpp +++ b/haiku_generator/finished/windows/runner/win32_window.cpp @@ -1,13 +1,31 @@ #include "win32_window.h" +#include #include #include "resource.h" namespace { +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + // The number of Win32Window objects that currently exist. static int g_active_window_count = 0; @@ -31,8 +49,8 @@ void EnableFullDpiSupportIfAvailable(HWND hwnd) { GetProcAddress(user32_module, "EnableNonClientDpiScaling")); if (enable_non_client_dpi_scaling != nullptr) { enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); } + FreeLibrary(user32_module); } } // namespace @@ -42,7 +60,7 @@ class WindowClassRegistrar { public: ~WindowClassRegistrar() = default; - // Returns the singleton registar instance. + // Returns the singleton registrar instance. static WindowClassRegistrar* GetInstance() { if (!instance_) { instance_ = new WindowClassRegistrar(); @@ -102,9 +120,9 @@ Win32Window::~Win32Window() { Destroy(); } -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { Destroy(); const wchar_t* window_class = @@ -117,7 +135,7 @@ bool Win32Window::CreateAndShow(const std::wstring& title, double scale_factor = dpi / 96.0; HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, 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); @@ -126,9 +144,15 @@ bool Win32Window::CreateAndShow(const std::wstring& title, return false; } + UpdateTheme(window); + return OnCreate(); } +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + // static LRESULT CALLBACK Win32Window::WndProc(HWND const window, UINT const message, @@ -188,6 +212,10 @@ Win32Window::MessageHandler(HWND hwnd, SetFocus(child_content_); } return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; } return DefWindowProc(window_handle_, message, wparam, lparam); @@ -243,3 +271,18 @@ bool Win32Window::OnCreate() { void Win32Window::OnDestroy() { // No-op; provided for subclasses. } + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/haiku_generator/finished/windows/runner/win32_window.h b/haiku_generator/finished/windows/runner/win32_window.h index 17ba431125..e901dde684 100644 --- a/haiku_generator/finished/windows/runner/win32_window.h +++ b/haiku_generator/finished/windows/runner/win32_window.h @@ -28,15 +28,16 @@ class Win32Window { Win32Window(); virtual ~Win32Window(); - // Creates and shows a win32 window with |title| and position and size using + // Creates a win32 window with |title| that is positioned and sized 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); + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); // Release OS resources associated with window. void Destroy(); @@ -76,7 +77,7 @@ class Win32Window { // 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 + // responds to changes in DPI. All other messages are handled by // MessageHandler. static LRESULT CALLBACK WndProc(HWND const window, UINT const message, @@ -86,6 +87,9 @@ class Win32Window { // Retrieves a class instance pointer for |window| static Win32Window* GetThisFromHandle(HWND const window) noexcept; + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + bool quit_on_close_ = false; // window handle for top level window. diff --git a/haiku_generator/step0/.gitignore b/haiku_generator/step0/.gitignore index deef3e38e6..79c113f9b5 100644 --- a/haiku_generator/step0/.gitignore +++ b/haiku_generator/step0/.gitignore @@ -3,12 +3,13 @@ *.log *.pyc *.swp -*.env .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related @@ -28,7 +29,6 @@ migrate_working_dir/ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ diff --git a/haiku_generator/step0/analysis_options.yaml b/haiku_generator/step0/analysis_options.yaml index 61b6c4de17..f04c6cf0f3 100644 --- a/haiku_generator/step0/analysis_options.yaml +++ b/haiku_generator/step0/analysis_options.yaml @@ -1,29 +1 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +include: ../../analysis_options.yaml diff --git a/haiku_generator/step0/android/.gitignore b/haiku_generator/step0/android/.gitignore index 6f568019d3..be3943c96d 100644 --- a/haiku_generator/step0/android/.gitignore +++ b/haiku_generator/step0/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/haiku_generator/step0/android/app/build.gradle b/haiku_generator/step0/android/app/build.gradle deleted file mode 100644 index 83b021a788..0000000000 --- a/haiku_generator/step0/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 "com.example.haiku_generator" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/haiku_generator/step0/android/app/build.gradle.kts b/haiku_generator/step0/android/app/build.gradle.kts new file mode 100644 index 0000000000..741e0cd74f --- /dev/null +++ b/haiku_generator/step0/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.haiku_generator" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.haiku_generator" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/haiku_generator/step0/android/app/src/debug/AndroidManifest.xml b/haiku_generator/step0/android/app/src/debug/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step0/android/app/src/debug/AndroidManifest.xml +++ b/haiku_generator/step0/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + + + + + + + diff --git a/haiku_generator/step0/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt b/haiku_generator/step0/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt index ac871b3223..1aec805716 100644 --- a/haiku_generator/step0/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt +++ b/haiku_generator/step0/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt @@ -2,5 +2,4 @@ package com.example.haiku_generator import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/haiku_generator/step0/android/app/src/profile/AndroidManifest.xml b/haiku_generator/step0/android/app/src/profile/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step0/android/app/src/profile/AndroidManifest.xml +++ b/haiku_generator/step0/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + - + - + - step0 + haiku_generator - - - - - + diff --git a/haiku_generator/step0/web/manifest.json b/haiku_generator/step0/web/manifest.json index 22e02acf1e..3ea8ccaba4 100644 --- a/haiku_generator/step0/web/manifest.json +++ b/haiku_generator/step0/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "step0", - "short_name": "step0", + "name": "haiku_generator", + "short_name": "haiku_generator", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/haiku_generator/step0/windows/CMakeLists.txt b/haiku_generator/step0/windows/CMakeLists.txt index 878deeed06..18b745c02c 100644 --- a/haiku_generator/step0/windows/CMakeLists.txt +++ b/haiku_generator/step0/windows/CMakeLists.txt @@ -8,7 +8,7 @@ set(BINARY_NAME "haiku_generator") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. -cmake_policy(SET CMP0063 NEW) +cmake_policy(VERSION 3.14...3.25) # Define build configuration option. get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) @@ -52,6 +52,7 @@ 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) @@ -86,6 +87,12 @@ if(PLUGIN_BUNDLED_LIBRARIES) COMPONENT Runtime) endif() +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + # 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") diff --git a/haiku_generator/step0/windows/flutter/CMakeLists.txt b/haiku_generator/step0/windows/flutter/CMakeLists.txt index 930d2071a3..903f4899d6 100644 --- a/haiku_generator/step0/windows/flutter/CMakeLists.txt +++ b/haiku_generator/step0/windows/flutter/CMakeLists.txt @@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake) # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") @@ -92,7 +97,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ + ${FLUTTER_TARGET_PLATFORM} $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS diff --git a/haiku_generator/step0/windows/runner/CMakeLists.txt b/haiku_generator/step0/windows/runner/CMakeLists.txt index b9e550fba8..394917c053 100644 --- a/haiku_generator/step0/windows/runner/CMakeLists.txt +++ b/haiku_generator/step0/windows/runner/CMakeLists.txt @@ -20,12 +20,20 @@ add_executable(${BINARY_NAME} WIN32 # that need different build settings. apply_standard_settings(${BINARY_NAME}) +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + # 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_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") # Run the Flutter tool portions of the build. This must not be removed. diff --git a/haiku_generator/step0/windows/runner/Runner.rc b/haiku_generator/step0/windows/runner/Runner.rc index f29048fa59..55d0a9127c 100644 --- a/haiku_generator/step0/windows/runner/Runner.rc +++ b/haiku_generator/step0/windows/runner/Runner.rc @@ -60,14 +60,14 @@ IDI_APP_ICON ICON "resources\\app_icon.ico" // Version // -#ifdef FLUTTER_BUILD_NUMBER -#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD #else -#define VERSION_AS_NUMBER 1,0,0 +#define VERSION_AS_NUMBER 1,0,0,0 #endif -#ifdef FLUTTER_BUILD_NAME -#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION #else #define VERSION_AS_STRING "1.0.0" #endif @@ -93,7 +93,7 @@ BEGIN VALUE "FileDescription", "haiku_generator" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "InternalName", "haiku_generator" "\0" - VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" VALUE "OriginalFilename", "haiku_generator.exe" "\0" VALUE "ProductName", "haiku_generator" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" diff --git a/haiku_generator/step0/windows/runner/flutter_window.cpp b/haiku_generator/step0/windows/runner/flutter_window.cpp index b43b9095ea..955ee3038f 100644 --- a/haiku_generator/step0/windows/runner/flutter_window.cpp +++ b/haiku_generator/step0/windows/runner/flutter_window.cpp @@ -26,6 +26,16 @@ bool FlutterWindow::OnCreate() { } RegisterPlugins(flutter_controller_->engine()); SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + return true; } diff --git a/haiku_generator/step0/windows/runner/main.cpp b/haiku_generator/step0/windows/runner/main.cpp index 9df9107cc0..1b8229dfe2 100644 --- a/haiku_generator/step0/windows/runner/main.cpp +++ b/haiku_generator/step0/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"haiku_generator", origin, size)) { + if (!window.Create(L"haiku_generator", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/haiku_generator/step0/windows/runner/runner.exe.manifest b/haiku_generator/step0/windows/runner/runner.exe.manifest index c977c4a425..153653e8d6 100644 --- a/haiku_generator/step0/windows/runner/runner.exe.manifest +++ b/haiku_generator/step0/windows/runner/runner.exe.manifest @@ -7,14 +7,8 @@ - + - - - - - - diff --git a/haiku_generator/step0/windows/runner/utils.cpp b/haiku_generator/step0/windows/runner/utils.cpp index f5bf9fa0f5..3a0b46511a 100644 --- a/haiku_generator/step0/windows/runner/utils.cpp +++ b/haiku_generator/step0/windows/runner/utils.cpp @@ -45,9 +45,11 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) { if (utf16_string == nullptr) { return std::string(); } - int target_length = ::WideCharToMultiByte( + unsigned int target_length = ::WideCharToMultiByte( CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); std::string utf8_string; if (target_length == 0 || target_length > utf8_string.max_size()) { return utf8_string; @@ -55,8 +57,7 @@ std::string Utf8FromUtf16(const wchar_t* utf16_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); + input_length, utf8_string.data(), target_length, nullptr, nullptr); if (converted_length == 0) { return std::string(); } diff --git a/haiku_generator/step0/windows/runner/win32_window.cpp b/haiku_generator/step0/windows/runner/win32_window.cpp index c10f08dc7d..60608d0fe5 100644 --- a/haiku_generator/step0/windows/runner/win32_window.cpp +++ b/haiku_generator/step0/windows/runner/win32_window.cpp @@ -1,13 +1,31 @@ #include "win32_window.h" +#include #include #include "resource.h" namespace { +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + // The number of Win32Window objects that currently exist. static int g_active_window_count = 0; @@ -31,8 +49,8 @@ void EnableFullDpiSupportIfAvailable(HWND hwnd) { GetProcAddress(user32_module, "EnableNonClientDpiScaling")); if (enable_non_client_dpi_scaling != nullptr) { enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); } + FreeLibrary(user32_module); } } // namespace @@ -42,7 +60,7 @@ class WindowClassRegistrar { public: ~WindowClassRegistrar() = default; - // Returns the singleton registar instance. + // Returns the singleton registrar instance. static WindowClassRegistrar* GetInstance() { if (!instance_) { instance_ = new WindowClassRegistrar(); @@ -102,9 +120,9 @@ Win32Window::~Win32Window() { Destroy(); } -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { Destroy(); const wchar_t* window_class = @@ -117,7 +135,7 @@ bool Win32Window::CreateAndShow(const std::wstring& title, double scale_factor = dpi / 96.0; HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, 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); @@ -126,9 +144,15 @@ bool Win32Window::CreateAndShow(const std::wstring& title, return false; } + UpdateTheme(window); + return OnCreate(); } +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + // static LRESULT CALLBACK Win32Window::WndProc(HWND const window, UINT const message, @@ -188,6 +212,10 @@ Win32Window::MessageHandler(HWND hwnd, SetFocus(child_content_); } return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; } return DefWindowProc(window_handle_, message, wparam, lparam); @@ -243,3 +271,18 @@ bool Win32Window::OnCreate() { void Win32Window::OnDestroy() { // No-op; provided for subclasses. } + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/haiku_generator/step0/windows/runner/win32_window.h b/haiku_generator/step0/windows/runner/win32_window.h index 17ba431125..e901dde684 100644 --- a/haiku_generator/step0/windows/runner/win32_window.h +++ b/haiku_generator/step0/windows/runner/win32_window.h @@ -28,15 +28,16 @@ class Win32Window { Win32Window(); virtual ~Win32Window(); - // Creates and shows a win32 window with |title| and position and size using + // Creates a win32 window with |title| that is positioned and sized 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); + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); // Release OS resources associated with window. void Destroy(); @@ -76,7 +77,7 @@ class Win32Window { // 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 + // responds to changes in DPI. All other messages are handled by // MessageHandler. static LRESULT CALLBACK WndProc(HWND const window, UINT const message, @@ -86,6 +87,9 @@ class Win32Window { // Retrieves a class instance pointer for |window| static Win32Window* GetThisFromHandle(HWND const window) noexcept; + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + bool quit_on_close_ = false; // window handle for top level window. diff --git a/haiku_generator/step1/.gitignore b/haiku_generator/step1/.gitignore index deef3e38e6..79c113f9b5 100644 --- a/haiku_generator/step1/.gitignore +++ b/haiku_generator/step1/.gitignore @@ -3,12 +3,13 @@ *.log *.pyc *.swp -*.env .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related @@ -28,7 +29,6 @@ migrate_working_dir/ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ diff --git a/haiku_generator/step1/analysis_options.yaml b/haiku_generator/step1/analysis_options.yaml index 61b6c4de17..f04c6cf0f3 100644 --- a/haiku_generator/step1/analysis_options.yaml +++ b/haiku_generator/step1/analysis_options.yaml @@ -1,29 +1 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +include: ../../analysis_options.yaml diff --git a/haiku_generator/step1/android/.gitignore b/haiku_generator/step1/android/.gitignore index 6f568019d3..be3943c96d 100644 --- a/haiku_generator/step1/android/.gitignore +++ b/haiku_generator/step1/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/haiku_generator/step1/android/app/build.gradle b/haiku_generator/step1/android/app/build.gradle deleted file mode 100644 index 83b021a788..0000000000 --- a/haiku_generator/step1/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 "com.example.haiku_generator" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/haiku_generator/step1/android/app/build.gradle.kts b/haiku_generator/step1/android/app/build.gradle.kts new file mode 100644 index 0000000000..741e0cd74f --- /dev/null +++ b/haiku_generator/step1/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.haiku_generator" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.haiku_generator" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/haiku_generator/step1/android/app/src/debug/AndroidManifest.xml b/haiku_generator/step1/android/app/src/debug/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step1/android/app/src/debug/AndroidManifest.xml +++ b/haiku_generator/step1/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + + + + + + + diff --git a/haiku_generator/step1/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt b/haiku_generator/step1/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt index ac871b3223..1aec805716 100644 --- a/haiku_generator/step1/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt +++ b/haiku_generator/step1/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt @@ -2,5 +2,4 @@ package com.example.haiku_generator import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/haiku_generator/step1/android/app/src/profile/AndroidManifest.xml b/haiku_generator/step1/android/app/src/profile/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step1/android/app/src/profile/AndroidManifest.xml +++ b/haiku_generator/step1/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + - + - + - step1 + haiku_generator - - - - - + diff --git a/haiku_generator/step1/web/manifest.json b/haiku_generator/step1/web/manifest.json index 316c3b5045..3ea8ccaba4 100644 --- a/haiku_generator/step1/web/manifest.json +++ b/haiku_generator/step1/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "step1", - "short_name": "step1", + "name": "haiku_generator", + "short_name": "haiku_generator", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/haiku_generator/step1/windows/CMakeLists.txt b/haiku_generator/step1/windows/CMakeLists.txt index 878deeed06..18b745c02c 100644 --- a/haiku_generator/step1/windows/CMakeLists.txt +++ b/haiku_generator/step1/windows/CMakeLists.txt @@ -8,7 +8,7 @@ set(BINARY_NAME "haiku_generator") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. -cmake_policy(SET CMP0063 NEW) +cmake_policy(VERSION 3.14...3.25) # Define build configuration option. get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) @@ -52,6 +52,7 @@ 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) @@ -86,6 +87,12 @@ if(PLUGIN_BUNDLED_LIBRARIES) COMPONENT Runtime) endif() +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + # 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") diff --git a/haiku_generator/step1/windows/flutter/CMakeLists.txt b/haiku_generator/step1/windows/flutter/CMakeLists.txt index 930d2071a3..903f4899d6 100644 --- a/haiku_generator/step1/windows/flutter/CMakeLists.txt +++ b/haiku_generator/step1/windows/flutter/CMakeLists.txt @@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake) # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") @@ -92,7 +97,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ + ${FLUTTER_TARGET_PLATFORM} $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS diff --git a/haiku_generator/step1/windows/runner/CMakeLists.txt b/haiku_generator/step1/windows/runner/CMakeLists.txt index b9e550fba8..394917c053 100644 --- a/haiku_generator/step1/windows/runner/CMakeLists.txt +++ b/haiku_generator/step1/windows/runner/CMakeLists.txt @@ -20,12 +20,20 @@ add_executable(${BINARY_NAME} WIN32 # that need different build settings. apply_standard_settings(${BINARY_NAME}) +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + # 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_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") # Run the Flutter tool portions of the build. This must not be removed. diff --git a/haiku_generator/step1/windows/runner/Runner.rc b/haiku_generator/step1/windows/runner/Runner.rc index f29048fa59..55d0a9127c 100644 --- a/haiku_generator/step1/windows/runner/Runner.rc +++ b/haiku_generator/step1/windows/runner/Runner.rc @@ -60,14 +60,14 @@ IDI_APP_ICON ICON "resources\\app_icon.ico" // Version // -#ifdef FLUTTER_BUILD_NUMBER -#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD #else -#define VERSION_AS_NUMBER 1,0,0 +#define VERSION_AS_NUMBER 1,0,0,0 #endif -#ifdef FLUTTER_BUILD_NAME -#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION #else #define VERSION_AS_STRING "1.0.0" #endif @@ -93,7 +93,7 @@ BEGIN VALUE "FileDescription", "haiku_generator" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "InternalName", "haiku_generator" "\0" - VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" VALUE "OriginalFilename", "haiku_generator.exe" "\0" VALUE "ProductName", "haiku_generator" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" diff --git a/haiku_generator/step1/windows/runner/flutter_window.cpp b/haiku_generator/step1/windows/runner/flutter_window.cpp index b43b9095ea..955ee3038f 100644 --- a/haiku_generator/step1/windows/runner/flutter_window.cpp +++ b/haiku_generator/step1/windows/runner/flutter_window.cpp @@ -26,6 +26,16 @@ bool FlutterWindow::OnCreate() { } RegisterPlugins(flutter_controller_->engine()); SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + return true; } diff --git a/haiku_generator/step1/windows/runner/main.cpp b/haiku_generator/step1/windows/runner/main.cpp index 9df9107cc0..1b8229dfe2 100644 --- a/haiku_generator/step1/windows/runner/main.cpp +++ b/haiku_generator/step1/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"haiku_generator", origin, size)) { + if (!window.Create(L"haiku_generator", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/haiku_generator/step1/windows/runner/runner.exe.manifest b/haiku_generator/step1/windows/runner/runner.exe.manifest index c977c4a425..153653e8d6 100644 --- a/haiku_generator/step1/windows/runner/runner.exe.manifest +++ b/haiku_generator/step1/windows/runner/runner.exe.manifest @@ -7,14 +7,8 @@ - + - - - - - - diff --git a/haiku_generator/step1/windows/runner/utils.cpp b/haiku_generator/step1/windows/runner/utils.cpp index f5bf9fa0f5..3a0b46511a 100644 --- a/haiku_generator/step1/windows/runner/utils.cpp +++ b/haiku_generator/step1/windows/runner/utils.cpp @@ -45,9 +45,11 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) { if (utf16_string == nullptr) { return std::string(); } - int target_length = ::WideCharToMultiByte( + unsigned int target_length = ::WideCharToMultiByte( CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); std::string utf8_string; if (target_length == 0 || target_length > utf8_string.max_size()) { return utf8_string; @@ -55,8 +57,7 @@ std::string Utf8FromUtf16(const wchar_t* utf16_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); + input_length, utf8_string.data(), target_length, nullptr, nullptr); if (converted_length == 0) { return std::string(); } diff --git a/haiku_generator/step1/windows/runner/win32_window.cpp b/haiku_generator/step1/windows/runner/win32_window.cpp index c10f08dc7d..60608d0fe5 100644 --- a/haiku_generator/step1/windows/runner/win32_window.cpp +++ b/haiku_generator/step1/windows/runner/win32_window.cpp @@ -1,13 +1,31 @@ #include "win32_window.h" +#include #include #include "resource.h" namespace { +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + // The number of Win32Window objects that currently exist. static int g_active_window_count = 0; @@ -31,8 +49,8 @@ void EnableFullDpiSupportIfAvailable(HWND hwnd) { GetProcAddress(user32_module, "EnableNonClientDpiScaling")); if (enable_non_client_dpi_scaling != nullptr) { enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); } + FreeLibrary(user32_module); } } // namespace @@ -42,7 +60,7 @@ class WindowClassRegistrar { public: ~WindowClassRegistrar() = default; - // Returns the singleton registar instance. + // Returns the singleton registrar instance. static WindowClassRegistrar* GetInstance() { if (!instance_) { instance_ = new WindowClassRegistrar(); @@ -102,9 +120,9 @@ Win32Window::~Win32Window() { Destroy(); } -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { Destroy(); const wchar_t* window_class = @@ -117,7 +135,7 @@ bool Win32Window::CreateAndShow(const std::wstring& title, double scale_factor = dpi / 96.0; HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, 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); @@ -126,9 +144,15 @@ bool Win32Window::CreateAndShow(const std::wstring& title, return false; } + UpdateTheme(window); + return OnCreate(); } +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + // static LRESULT CALLBACK Win32Window::WndProc(HWND const window, UINT const message, @@ -188,6 +212,10 @@ Win32Window::MessageHandler(HWND hwnd, SetFocus(child_content_); } return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; } return DefWindowProc(window_handle_, message, wparam, lparam); @@ -243,3 +271,18 @@ bool Win32Window::OnCreate() { void Win32Window::OnDestroy() { // No-op; provided for subclasses. } + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/haiku_generator/step1/windows/runner/win32_window.h b/haiku_generator/step1/windows/runner/win32_window.h index 17ba431125..e901dde684 100644 --- a/haiku_generator/step1/windows/runner/win32_window.h +++ b/haiku_generator/step1/windows/runner/win32_window.h @@ -28,15 +28,16 @@ class Win32Window { Win32Window(); virtual ~Win32Window(); - // Creates and shows a win32 window with |title| and position and size using + // Creates a win32 window with |title| that is positioned and sized 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); + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); // Release OS resources associated with window. void Destroy(); @@ -76,7 +77,7 @@ class Win32Window { // 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 + // responds to changes in DPI. All other messages are handled by // MessageHandler. static LRESULT CALLBACK WndProc(HWND const window, UINT const message, @@ -86,6 +87,9 @@ class Win32Window { // Retrieves a class instance pointer for |window| static Win32Window* GetThisFromHandle(HWND const window) noexcept; + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + bool quit_on_close_ = false; // window handle for top level window. diff --git a/haiku_generator/step2/.gitignore b/haiku_generator/step2/.gitignore index deef3e38e6..79c113f9b5 100644 --- a/haiku_generator/step2/.gitignore +++ b/haiku_generator/step2/.gitignore @@ -3,12 +3,13 @@ *.log *.pyc *.swp -*.env .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related @@ -28,7 +29,6 @@ migrate_working_dir/ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ diff --git a/haiku_generator/step2/analysis_options.yaml b/haiku_generator/step2/analysis_options.yaml index 61b6c4de17..f04c6cf0f3 100644 --- a/haiku_generator/step2/analysis_options.yaml +++ b/haiku_generator/step2/analysis_options.yaml @@ -1,29 +1 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +include: ../../analysis_options.yaml diff --git a/haiku_generator/step2/android/.gitignore b/haiku_generator/step2/android/.gitignore index 6f568019d3..be3943c96d 100644 --- a/haiku_generator/step2/android/.gitignore +++ b/haiku_generator/step2/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/haiku_generator/step2/android/app/build.gradle b/haiku_generator/step2/android/app/build.gradle deleted file mode 100644 index 83b021a788..0000000000 --- a/haiku_generator/step2/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 "com.example.haiku_generator" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/haiku_generator/step2/android/app/build.gradle.kts b/haiku_generator/step2/android/app/build.gradle.kts new file mode 100644 index 0000000000..741e0cd74f --- /dev/null +++ b/haiku_generator/step2/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.haiku_generator" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.haiku_generator" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/haiku_generator/step2/android/app/src/debug/AndroidManifest.xml b/haiku_generator/step2/android/app/src/debug/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step2/android/app/src/debug/AndroidManifest.xml +++ b/haiku_generator/step2/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + + + + + + + diff --git a/haiku_generator/step2/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt b/haiku_generator/step2/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt index ac871b3223..1aec805716 100644 --- a/haiku_generator/step2/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt +++ b/haiku_generator/step2/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt @@ -2,5 +2,4 @@ package com.example.haiku_generator import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/haiku_generator/step2/android/app/src/profile/AndroidManifest.xml b/haiku_generator/step2/android/app/src/profile/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step2/android/app/src/profile/AndroidManifest.xml +++ b/haiku_generator/step2/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + - + - + - step2 + haiku_generator - - - - - + diff --git a/haiku_generator/step2/web/manifest.json b/haiku_generator/step2/web/manifest.json index 0d54631af0..3ea8ccaba4 100644 --- a/haiku_generator/step2/web/manifest.json +++ b/haiku_generator/step2/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "step2", - "short_name": "step2", + "name": "haiku_generator", + "short_name": "haiku_generator", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/haiku_generator/step2/windows/CMakeLists.txt b/haiku_generator/step2/windows/CMakeLists.txt index 878deeed06..18b745c02c 100644 --- a/haiku_generator/step2/windows/CMakeLists.txt +++ b/haiku_generator/step2/windows/CMakeLists.txt @@ -8,7 +8,7 @@ set(BINARY_NAME "haiku_generator") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. -cmake_policy(SET CMP0063 NEW) +cmake_policy(VERSION 3.14...3.25) # Define build configuration option. get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) @@ -52,6 +52,7 @@ 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) @@ -86,6 +87,12 @@ if(PLUGIN_BUNDLED_LIBRARIES) COMPONENT Runtime) endif() +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + # 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") diff --git a/haiku_generator/step2/windows/flutter/CMakeLists.txt b/haiku_generator/step2/windows/flutter/CMakeLists.txt index 930d2071a3..903f4899d6 100644 --- a/haiku_generator/step2/windows/flutter/CMakeLists.txt +++ b/haiku_generator/step2/windows/flutter/CMakeLists.txt @@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake) # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") @@ -92,7 +97,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ + ${FLUTTER_TARGET_PLATFORM} $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS diff --git a/haiku_generator/step2/windows/runner/CMakeLists.txt b/haiku_generator/step2/windows/runner/CMakeLists.txt index b9e550fba8..394917c053 100644 --- a/haiku_generator/step2/windows/runner/CMakeLists.txt +++ b/haiku_generator/step2/windows/runner/CMakeLists.txt @@ -20,12 +20,20 @@ add_executable(${BINARY_NAME} WIN32 # that need different build settings. apply_standard_settings(${BINARY_NAME}) +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + # 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_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") # Run the Flutter tool portions of the build. This must not be removed. diff --git a/haiku_generator/step2/windows/runner/Runner.rc b/haiku_generator/step2/windows/runner/Runner.rc index f29048fa59..55d0a9127c 100644 --- a/haiku_generator/step2/windows/runner/Runner.rc +++ b/haiku_generator/step2/windows/runner/Runner.rc @@ -60,14 +60,14 @@ IDI_APP_ICON ICON "resources\\app_icon.ico" // Version // -#ifdef FLUTTER_BUILD_NUMBER -#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD #else -#define VERSION_AS_NUMBER 1,0,0 +#define VERSION_AS_NUMBER 1,0,0,0 #endif -#ifdef FLUTTER_BUILD_NAME -#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION #else #define VERSION_AS_STRING "1.0.0" #endif @@ -93,7 +93,7 @@ BEGIN VALUE "FileDescription", "haiku_generator" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "InternalName", "haiku_generator" "\0" - VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" VALUE "OriginalFilename", "haiku_generator.exe" "\0" VALUE "ProductName", "haiku_generator" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" diff --git a/haiku_generator/step2/windows/runner/flutter_window.cpp b/haiku_generator/step2/windows/runner/flutter_window.cpp index b43b9095ea..955ee3038f 100644 --- a/haiku_generator/step2/windows/runner/flutter_window.cpp +++ b/haiku_generator/step2/windows/runner/flutter_window.cpp @@ -26,6 +26,16 @@ bool FlutterWindow::OnCreate() { } RegisterPlugins(flutter_controller_->engine()); SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + return true; } diff --git a/haiku_generator/step2/windows/runner/main.cpp b/haiku_generator/step2/windows/runner/main.cpp index 9df9107cc0..1b8229dfe2 100644 --- a/haiku_generator/step2/windows/runner/main.cpp +++ b/haiku_generator/step2/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"haiku_generator", origin, size)) { + if (!window.Create(L"haiku_generator", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/haiku_generator/step2/windows/runner/runner.exe.manifest b/haiku_generator/step2/windows/runner/runner.exe.manifest index c977c4a425..153653e8d6 100644 --- a/haiku_generator/step2/windows/runner/runner.exe.manifest +++ b/haiku_generator/step2/windows/runner/runner.exe.manifest @@ -7,14 +7,8 @@ - + - - - - - - diff --git a/haiku_generator/step2/windows/runner/utils.cpp b/haiku_generator/step2/windows/runner/utils.cpp index f5bf9fa0f5..3a0b46511a 100644 --- a/haiku_generator/step2/windows/runner/utils.cpp +++ b/haiku_generator/step2/windows/runner/utils.cpp @@ -45,9 +45,11 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) { if (utf16_string == nullptr) { return std::string(); } - int target_length = ::WideCharToMultiByte( + unsigned int target_length = ::WideCharToMultiByte( CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); std::string utf8_string; if (target_length == 0 || target_length > utf8_string.max_size()) { return utf8_string; @@ -55,8 +57,7 @@ std::string Utf8FromUtf16(const wchar_t* utf16_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); + input_length, utf8_string.data(), target_length, nullptr, nullptr); if (converted_length == 0) { return std::string(); } diff --git a/haiku_generator/step2/windows/runner/win32_window.cpp b/haiku_generator/step2/windows/runner/win32_window.cpp index c10f08dc7d..60608d0fe5 100644 --- a/haiku_generator/step2/windows/runner/win32_window.cpp +++ b/haiku_generator/step2/windows/runner/win32_window.cpp @@ -1,13 +1,31 @@ #include "win32_window.h" +#include #include #include "resource.h" namespace { +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + // The number of Win32Window objects that currently exist. static int g_active_window_count = 0; @@ -31,8 +49,8 @@ void EnableFullDpiSupportIfAvailable(HWND hwnd) { GetProcAddress(user32_module, "EnableNonClientDpiScaling")); if (enable_non_client_dpi_scaling != nullptr) { enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); } + FreeLibrary(user32_module); } } // namespace @@ -42,7 +60,7 @@ class WindowClassRegistrar { public: ~WindowClassRegistrar() = default; - // Returns the singleton registar instance. + // Returns the singleton registrar instance. static WindowClassRegistrar* GetInstance() { if (!instance_) { instance_ = new WindowClassRegistrar(); @@ -102,9 +120,9 @@ Win32Window::~Win32Window() { Destroy(); } -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { Destroy(); const wchar_t* window_class = @@ -117,7 +135,7 @@ bool Win32Window::CreateAndShow(const std::wstring& title, double scale_factor = dpi / 96.0; HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, 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); @@ -126,9 +144,15 @@ bool Win32Window::CreateAndShow(const std::wstring& title, return false; } + UpdateTheme(window); + return OnCreate(); } +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + // static LRESULT CALLBACK Win32Window::WndProc(HWND const window, UINT const message, @@ -188,6 +212,10 @@ Win32Window::MessageHandler(HWND hwnd, SetFocus(child_content_); } return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; } return DefWindowProc(window_handle_, message, wparam, lparam); @@ -243,3 +271,18 @@ bool Win32Window::OnCreate() { void Win32Window::OnDestroy() { // No-op; provided for subclasses. } + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/haiku_generator/step2/windows/runner/win32_window.h b/haiku_generator/step2/windows/runner/win32_window.h index 17ba431125..e901dde684 100644 --- a/haiku_generator/step2/windows/runner/win32_window.h +++ b/haiku_generator/step2/windows/runner/win32_window.h @@ -28,15 +28,16 @@ class Win32Window { Win32Window(); virtual ~Win32Window(); - // Creates and shows a win32 window with |title| and position and size using + // Creates a win32 window with |title| that is positioned and sized 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); + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); // Release OS resources associated with window. void Destroy(); @@ -76,7 +77,7 @@ class Win32Window { // 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 + // responds to changes in DPI. All other messages are handled by // MessageHandler. static LRESULT CALLBACK WndProc(HWND const window, UINT const message, @@ -86,6 +87,9 @@ class Win32Window { // Retrieves a class instance pointer for |window| static Win32Window* GetThisFromHandle(HWND const window) noexcept; + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + bool quit_on_close_ = false; // window handle for top level window. diff --git a/haiku_generator/step3/.gitignore b/haiku_generator/step3/.gitignore index deef3e38e6..79c113f9b5 100644 --- a/haiku_generator/step3/.gitignore +++ b/haiku_generator/step3/.gitignore @@ -3,12 +3,13 @@ *.log *.pyc *.swp -*.env .DS_Store .atom/ +.build/ .buildlog/ .history .svn/ +.swiftpm/ migrate_working_dir/ # IntelliJ related @@ -28,7 +29,6 @@ migrate_working_dir/ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ diff --git a/haiku_generator/step3/analysis_options.yaml b/haiku_generator/step3/analysis_options.yaml index 61b6c4de17..f04c6cf0f3 100644 --- a/haiku_generator/step3/analysis_options.yaml +++ b/haiku_generator/step3/analysis_options.yaml @@ -1,29 +1 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options +include: ../../analysis_options.yaml diff --git a/haiku_generator/step3/android/.gitignore b/haiku_generator/step3/android/.gitignore index 6f568019d3..be3943c96d 100644 --- a/haiku_generator/step3/android/.gitignore +++ b/haiku_generator/step3/android/.gitignore @@ -5,9 +5,10 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/haiku_generator/step3/android/app/build.gradle b/haiku_generator/step3/android/app/build.gradle deleted file mode 100644 index 83b021a788..0000000000 --- a/haiku_generator/step3/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 "com.example.haiku_generator" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. - minSdkVersion flutter.minSdkVersion - targetSdkVersion flutter.targetSdkVersion - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -} - -flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/haiku_generator/step3/android/app/build.gradle.kts b/haiku_generator/step3/android/app/build.gradle.kts new file mode 100644 index 0000000000..741e0cd74f --- /dev/null +++ b/haiku_generator/step3/android/app/build.gradle.kts @@ -0,0 +1,44 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.haiku_generator" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.haiku_generator" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/haiku_generator/step3/android/app/src/debug/AndroidManifest.xml b/haiku_generator/step3/android/app/src/debug/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step3/android/app/src/debug/AndroidManifest.xml +++ b/haiku_generator/step3/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + + + + + + + diff --git a/haiku_generator/step3/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt b/haiku_generator/step3/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt index ac871b3223..1aec805716 100644 --- a/haiku_generator/step3/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt +++ b/haiku_generator/step3/android/app/src/main/kotlin/com/example/haiku_generator/MainActivity.kt @@ -2,5 +2,4 @@ package com.example.haiku_generator import io.flutter.embedding.android.FlutterActivity -class MainActivity: FlutterActivity() { -} +class MainActivity : FlutterActivity() diff --git a/haiku_generator/step3/android/app/src/profile/AndroidManifest.xml b/haiku_generator/step3/android/app/src/profile/AndroidManifest.xml index 6d3e84b025..399f6981d5 100644 --- a/haiku_generator/step3/android/app/src/profile/AndroidManifest.xml +++ b/haiku_generator/step3/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + - + - + - step3 + haiku_generator - - - - - + diff --git a/haiku_generator/step3/web/manifest.json b/haiku_generator/step3/web/manifest.json index c049443a20..3ea8ccaba4 100644 --- a/haiku_generator/step3/web/manifest.json +++ b/haiku_generator/step3/web/manifest.json @@ -1,6 +1,6 @@ { - "name": "step3", - "short_name": "step3", + "name": "haiku_generator", + "short_name": "haiku_generator", "start_url": ".", "display": "standalone", "background_color": "#0175C2", diff --git a/haiku_generator/step3/windows/CMakeLists.txt b/haiku_generator/step3/windows/CMakeLists.txt index 878deeed06..18b745c02c 100644 --- a/haiku_generator/step3/windows/CMakeLists.txt +++ b/haiku_generator/step3/windows/CMakeLists.txt @@ -8,7 +8,7 @@ set(BINARY_NAME "haiku_generator") # Explicitly opt in to modern CMake behaviors to avoid warnings with recent # versions of CMake. -cmake_policy(SET CMP0063 NEW) +cmake_policy(VERSION 3.14...3.25) # Define build configuration option. get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) @@ -52,6 +52,7 @@ 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) @@ -86,6 +87,12 @@ if(PLUGIN_BUNDLED_LIBRARIES) COMPONENT Runtime) endif() +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + # 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") diff --git a/haiku_generator/step3/windows/flutter/CMakeLists.txt b/haiku_generator/step3/windows/flutter/CMakeLists.txt index 930d2071a3..903f4899d6 100644 --- a/haiku_generator/step3/windows/flutter/CMakeLists.txt +++ b/haiku_generator/step3/windows/flutter/CMakeLists.txt @@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake) # https://github.com/flutter/flutter/issues/57146. set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + # === Flutter Library === set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") @@ -92,7 +97,7 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E env ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" - windows-x64 $ + ${FLUTTER_TARGET_PLATFORM} $ VERBATIM ) add_custom_target(flutter_assemble DEPENDS diff --git a/haiku_generator/step3/windows/runner/CMakeLists.txt b/haiku_generator/step3/windows/runner/CMakeLists.txt index b9e550fba8..394917c053 100644 --- a/haiku_generator/step3/windows/runner/CMakeLists.txt +++ b/haiku_generator/step3/windows/runner/CMakeLists.txt @@ -20,12 +20,20 @@ add_executable(${BINARY_NAME} WIN32 # that need different build settings. apply_standard_settings(${BINARY_NAME}) +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + # 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_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") # Run the Flutter tool portions of the build. This must not be removed. diff --git a/haiku_generator/step3/windows/runner/Runner.rc b/haiku_generator/step3/windows/runner/Runner.rc index f29048fa59..55d0a9127c 100644 --- a/haiku_generator/step3/windows/runner/Runner.rc +++ b/haiku_generator/step3/windows/runner/Runner.rc @@ -60,14 +60,14 @@ IDI_APP_ICON ICON "resources\\app_icon.ico" // Version // -#ifdef FLUTTER_BUILD_NUMBER -#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD #else -#define VERSION_AS_NUMBER 1,0,0 +#define VERSION_AS_NUMBER 1,0,0,0 #endif -#ifdef FLUTTER_BUILD_NAME -#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION #else #define VERSION_AS_STRING "1.0.0" #endif @@ -93,7 +93,7 @@ BEGIN VALUE "FileDescription", "haiku_generator" "\0" VALUE "FileVersion", VERSION_AS_STRING "\0" VALUE "InternalName", "haiku_generator" "\0" - VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "LegalCopyright", "Copyright (C) 2025 com.example. All rights reserved." "\0" VALUE "OriginalFilename", "haiku_generator.exe" "\0" VALUE "ProductName", "haiku_generator" "\0" VALUE "ProductVersion", VERSION_AS_STRING "\0" diff --git a/haiku_generator/step3/windows/runner/flutter_window.cpp b/haiku_generator/step3/windows/runner/flutter_window.cpp index b43b9095ea..955ee3038f 100644 --- a/haiku_generator/step3/windows/runner/flutter_window.cpp +++ b/haiku_generator/step3/windows/runner/flutter_window.cpp @@ -26,6 +26,16 @@ bool FlutterWindow::OnCreate() { } RegisterPlugins(flutter_controller_->engine()); SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + return true; } diff --git a/haiku_generator/step3/windows/runner/main.cpp b/haiku_generator/step3/windows/runner/main.cpp index 9df9107cc0..1b8229dfe2 100644 --- a/haiku_generator/step3/windows/runner/main.cpp +++ b/haiku_generator/step3/windows/runner/main.cpp @@ -27,7 +27,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, FlutterWindow window(project); Win32Window::Point origin(10, 10); Win32Window::Size size(1280, 720); - if (!window.CreateAndShow(L"haiku_generator", origin, size)) { + if (!window.Create(L"haiku_generator", origin, size)) { return EXIT_FAILURE; } window.SetQuitOnClose(true); diff --git a/haiku_generator/step3/windows/runner/runner.exe.manifest b/haiku_generator/step3/windows/runner/runner.exe.manifest index c977c4a425..153653e8d6 100644 --- a/haiku_generator/step3/windows/runner/runner.exe.manifest +++ b/haiku_generator/step3/windows/runner/runner.exe.manifest @@ -7,14 +7,8 @@ - + - - - - - - diff --git a/haiku_generator/step3/windows/runner/utils.cpp b/haiku_generator/step3/windows/runner/utils.cpp index f5bf9fa0f5..3a0b46511a 100644 --- a/haiku_generator/step3/windows/runner/utils.cpp +++ b/haiku_generator/step3/windows/runner/utils.cpp @@ -45,9 +45,11 @@ std::string Utf8FromUtf16(const wchar_t* utf16_string) { if (utf16_string == nullptr) { return std::string(); } - int target_length = ::WideCharToMultiByte( + unsigned int target_length = ::WideCharToMultiByte( CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, - -1, nullptr, 0, nullptr, nullptr); + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); std::string utf8_string; if (target_length == 0 || target_length > utf8_string.max_size()) { return utf8_string; @@ -55,8 +57,7 @@ std::string Utf8FromUtf16(const wchar_t* utf16_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); + input_length, utf8_string.data(), target_length, nullptr, nullptr); if (converted_length == 0) { return std::string(); } diff --git a/haiku_generator/step3/windows/runner/win32_window.cpp b/haiku_generator/step3/windows/runner/win32_window.cpp index c10f08dc7d..60608d0fe5 100644 --- a/haiku_generator/step3/windows/runner/win32_window.cpp +++ b/haiku_generator/step3/windows/runner/win32_window.cpp @@ -1,13 +1,31 @@ #include "win32_window.h" +#include #include #include "resource.h" namespace { +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + // The number of Win32Window objects that currently exist. static int g_active_window_count = 0; @@ -31,8 +49,8 @@ void EnableFullDpiSupportIfAvailable(HWND hwnd) { GetProcAddress(user32_module, "EnableNonClientDpiScaling")); if (enable_non_client_dpi_scaling != nullptr) { enable_non_client_dpi_scaling(hwnd); - FreeLibrary(user32_module); } + FreeLibrary(user32_module); } } // namespace @@ -42,7 +60,7 @@ class WindowClassRegistrar { public: ~WindowClassRegistrar() = default; - // Returns the singleton registar instance. + // Returns the singleton registrar instance. static WindowClassRegistrar* GetInstance() { if (!instance_) { instance_ = new WindowClassRegistrar(); @@ -102,9 +120,9 @@ Win32Window::~Win32Window() { Destroy(); } -bool Win32Window::CreateAndShow(const std::wstring& title, - const Point& origin, - const Size& size) { +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { Destroy(); const wchar_t* window_class = @@ -117,7 +135,7 @@ bool Win32Window::CreateAndShow(const std::wstring& title, double scale_factor = dpi / 96.0; HWND window = CreateWindow( - window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, 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); @@ -126,9 +144,15 @@ bool Win32Window::CreateAndShow(const std::wstring& title, return false; } + UpdateTheme(window); + return OnCreate(); } +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + // static LRESULT CALLBACK Win32Window::WndProc(HWND const window, UINT const message, @@ -188,6 +212,10 @@ Win32Window::MessageHandler(HWND hwnd, SetFocus(child_content_); } return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; } return DefWindowProc(window_handle_, message, wparam, lparam); @@ -243,3 +271,18 @@ bool Win32Window::OnCreate() { void Win32Window::OnDestroy() { // No-op; provided for subclasses. } + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/haiku_generator/step3/windows/runner/win32_window.h b/haiku_generator/step3/windows/runner/win32_window.h index 17ba431125..e901dde684 100644 --- a/haiku_generator/step3/windows/runner/win32_window.h +++ b/haiku_generator/step3/windows/runner/win32_window.h @@ -28,15 +28,16 @@ class Win32Window { Win32Window(); virtual ~Win32Window(); - // Creates and shows a win32 window with |title| and position and size using + // Creates a win32 window with |title| that is positioned and sized 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); + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); // Release OS resources associated with window. void Destroy(); @@ -76,7 +77,7 @@ class Win32Window { // 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 + // responds to changes in DPI. All other messages are handled by // MessageHandler. static LRESULT CALLBACK WndProc(HWND const window, UINT const message, @@ -86,6 +87,9 @@ class Win32Window { // Retrieves a class instance pointer for |window| static Win32Window* GetThisFromHandle(HWND const window) noexcept; + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + bool quit_on_close_ = false; // window handle for top level window.