diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index cd9cca6a2..ddb933f17 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -171,6 +171,9 @@
+
+
+
notificationTap(
+ response,
+ client: client,
+ router: FluffyChatApp.router,
+ ),
+ onDidReceiveBackgroundNotificationResponse: notificationTapBackground,
);
// #Pangea
@@ -421,7 +450,14 @@ class BackgroundPush {
return;
}
_wentToRoomOnStartup = true;
- goToRoom(details.notificationResponse);
+ final response = details.notificationResponse;
+ if (response != null) {
+ notificationTap(
+ response,
+ client: client,
+ router: FluffyChatApp.router,
+ );
+ }
});
}
@@ -466,54 +502,6 @@ class BackgroundPush {
);
}
- Future goToRoom(NotificationResponse? response) async {
- try {
- final payload = response?.payload;
- Logs().v('[Push] Attempting to go to room with payload: $payload');
- if (payload == null) {
- return;
- }
-
- // #Pangea - Handle activity session data if present
- String? roomId;
- String? sessionRoomId;
- String? activityId;
-
- try {
- final payloadData = jsonDecode(payload) as Map;
- roomId = payloadData['room_id'] as String?;
- sessionRoomId =
- payloadData['content_pangea.activity.session_room_id'] as String?;
- activityId = payloadData['content_pangea.activity.id'] as String?;
- } catch (_) {
- // If payload is not JSON, treat it as a simple room ID
- roomId = payload;
- }
-
- if (roomId == null || roomId.isEmpty) {
- return;
- }
-
- await _navigateToActivityOrRoom(
- roomId: roomId,
- sessionRoomId: sessionRoomId,
- activityId: activityId,
- );
- // Pangea#
- } catch (e, s) {
- Logs().e('[Push] Failed to open room', e, s);
- // #Pangea
- ErrorHandler.logError(
- e: e,
- s: s,
- data: {
- "roomID": response?.payload,
- },
- );
- // Pangea#
- }
- }
-
Future setupUp() async {
await UnifiedPushUi(matrix!.context, ["default"], UPFunctions())
.registerAppWithDialog();
diff --git a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart
index 95e7eaa00..cf7e417e0 100644
--- a/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart
+++ b/lib/utils/matrix_sdk_extensions/flutter_matrix_dart_sdk_database/builder.dart
@@ -135,6 +135,7 @@ Future _constructDatabase(String clientName) async {
version: 1,
// most important : apply encryption when opening the DB
onConfigure: helper?.applyPragmaKey,
+ singleInstance: false,
),
);
diff --git a/lib/utils/notification_background_handler.dart b/lib/utils/notification_background_handler.dart
new file mode 100644
index 000000000..8c9a279ee
--- /dev/null
+++ b/lib/utils/notification_background_handler.dart
@@ -0,0 +1,146 @@
+import 'dart:convert';
+import 'dart:ui';
+
+import 'package:collection/collection.dart';
+import 'package:flutter_local_notifications/flutter_local_notifications.dart';
+import 'package:flutter_vodozemac/flutter_vodozemac.dart' as vod;
+import 'package:go_router/go_router.dart';
+import 'package:matrix/matrix.dart';
+import 'package:shared_preferences/shared_preferences.dart';
+
+import 'package:fluffychat/utils/client_manager.dart';
+
+bool _vodInitialized = false;
+
+extension NotificationResponseJson on NotificationResponse {
+ String toJsonString() => jsonEncode({
+ 'type': notificationResponseType.name,
+ 'id': id,
+ 'actionId': actionId,
+ 'input': input,
+ 'payload': payload,
+ 'data': data,
+ });
+
+ static NotificationResponse fromJsonString(String jsonString) {
+ final json = jsonDecode(jsonString) as Map;
+ return NotificationResponse(
+ notificationResponseType: NotificationResponseType.values
+ .singleWhere((t) => t.name == json['type']),
+ id: json['id'] as int?,
+ actionId: json['actionId'] as String?,
+ input: json['input'] as String?,
+ payload: json['payload'] as String?,
+ data: json['data'] as Map,
+ );
+ }
+}
+
+@pragma('vm:entry-point')
+void notificationTapBackground(
+ NotificationResponse notificationResponse,
+) async {
+ Logs().i('Notification tap in background');
+
+ final sendPort = IsolateNameServer.lookupPortByName('background_tab_port');
+ if (sendPort != null) {
+ sendPort.send(notificationResponse.toJsonString());
+ return;
+ }
+
+ if (!_vodInitialized) {
+ await vod.init();
+ _vodInitialized = true;
+ }
+ final client = (await ClientManager.getClients(
+ initialize: false,
+ store: await SharedPreferences.getInstance(),
+ ))
+ .first;
+ await client.abortSync();
+ await client.init(
+ waitForFirstSync: false,
+ waitUntilLoadCompletedLoaded: false,
+ );
+ if (!client.isLogged()) {
+ throw Exception('Notification tab in background but not logged in!');
+ }
+ try {
+ await notificationTap(notificationResponse, client: client);
+ } finally {
+ await client.dispose(closeDatabase: false);
+ }
+ return;
+}
+
+Future notificationTap(
+ NotificationResponse notificationResponse, {
+ GoRouter? router,
+ required Client client,
+}) async {
+ Logs().d(
+ 'Notification action handler started',
+ notificationResponse.notificationResponseType.name,
+ );
+ switch (notificationResponse.notificationResponseType) {
+ case NotificationResponseType.selectedNotification:
+ final roomId = notificationResponse.payload;
+ if (roomId == null) return;
+
+ if (router == null) {
+ Logs().v('Ignore select notification action in background mode');
+ return;
+ }
+ Logs().v('Open room from notification tap', roomId);
+ await client.roomsLoading;
+ await client.accountDataLoading;
+ if (client.getRoomById(roomId) == null) {
+ await client
+ .waitForRoomInSync(roomId)
+ .timeout(const Duration(seconds: 30));
+ }
+ router.go(
+ client.getRoomById(roomId)?.membership == Membership.invite
+ ? '/rooms'
+ : '/rooms/$roomId',
+ );
+ case NotificationResponseType.selectedNotificationAction:
+ final actionType = FluffyChatNotificationActions.values.singleWhereOrNull(
+ (action) => action.name == notificationResponse.actionId,
+ );
+ if (actionType == null) {
+ throw Exception('Selected notification with action but no action ID');
+ }
+ final roomId = notificationResponse.payload;
+ if (roomId == null) {
+ throw Exception('Selected notification with action but no payload');
+ }
+ await client.roomsLoading;
+ await client.accountDataLoading;
+ await client.userDeviceKeysLoading;
+ final room = client.getRoomById(roomId);
+ if (room == null) {
+ throw Exception(
+ 'Selected notification with action but unknown room $roomId',
+ );
+ }
+ switch (actionType) {
+ case FluffyChatNotificationActions.markAsRead:
+ await room.setReadMarker(
+ room.lastEvent!.eventId,
+ mRead: room.lastEvent!.eventId,
+ public: false, // TODO: Load preference here
+ );
+ case FluffyChatNotificationActions.reply:
+ final input = notificationResponse.input;
+ if (input == null || input.isEmpty) {
+ throw Exception(
+ 'Selected notification with reply action but without input',
+ );
+ }
+ await room.sendTextEvent(input);
+ }
+ }
+}
+
+enum FluffyChatNotificationActions { markAsRead, reply }
diff --git a/lib/utils/push_helper.dart b/lib/utils/push_helper.dart
index 5ca9243e4..eb2f9fa00 100644
--- a/lib/utils/push_helper.dart
+++ b/lib/utils/push_helper.dart
@@ -16,6 +16,7 @@ import 'package:fluffychat/pangea/common/utils/error_handler.dart';
import 'package:fluffychat/utils/client_download_content_extension.dart';
import 'package:fluffychat/utils/client_manager.dart';
import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart';
+import 'package:fluffychat/utils/notification_background_handler.dart';
import 'package:fluffychat/utils/platform_infos.dart';
const notificationAvatarDimension = 128;
@@ -299,6 +300,23 @@ Future _tryPushHelper(
importance: Importance.high,
priority: Priority.max,
groupKey: event.room.spaceParents.firstOrNull?.roomId ?? 'rooms',
+ actions: [
+ AndroidNotificationAction(
+ FluffyChatNotificationActions.reply.name,
+ l10n.reply,
+ inputs: [
+ AndroidNotificationActionInput(
+ label: l10n.writeAMessage,
+ ),
+ ],
+ cancelNotification: false,
+ allowGeneratedReplies: true,
+ ),
+ AndroidNotificationAction(
+ FluffyChatNotificationActions.markAsRead.name,
+ l10n.markAsRead,
+ ),
+ ],
);
const iOSPlatformChannelSpecifics = DarwinNotificationDetails();
final platformChannelSpecifics = NotificationDetails(
diff --git a/lib/widgets/presence_builder.dart b/lib/widgets/presence_builder.dart
index 4332485ab..a2d46c35f 100644
--- a/lib/widgets/presence_builder.dart
+++ b/lib/widgets/presence_builder.dart
@@ -27,12 +27,10 @@ class _PresenceBuilderState extends State {
StreamSubscription? _sub;
void _updatePresence(CachedPresence? presence) {
- // #Pangea
- // setState(() {
- // _presence = presence;
- // });
- if (mounted) setState(() => _presence = presence);
- // Pangea#
+ if (!mounted) return;
+ setState(() {
+ _presence = presence;
+ });
}
@override
diff --git a/pubspec.yaml b/pubspec.yaml
index d189dbafa..ed6d4d701 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -171,22 +171,6 @@ flutter:
- assets/sounds/
- assets/vodozemac/
-msix_config:
- display_name: FluffyChat
- publisher_display_name: FluffyChat
- publisher: CN=FluffyChat, O=Head of bad integration tests, L=Matrix, S=Internet, C=EU
- # #Pangea
- # identity_name: chat.fluffy.fluffychat
- identity_name: com.talktolearn.chat
- # Pangea#
- logo_path: assets\logo.png
- capabilities: internetClient, location, microphone, webcam
- protocol_activation: https
- app_uri_handler_hosts: fluffychat.im, matrix.to
- execution_alias: fluffychat
- sign_msix: false
- install_certificate: false
-
# Guidelines for adding a dependency override:
# 1. Don't do it if you can avoid it or fix it upstream in a manageable time
# 2. Always link an (upstream?) issue
diff --git a/winuwp/.gitignore b/winuwp/.gitignore
deleted file mode 100644
index d492d0d98..000000000
--- a/winuwp/.gitignore
+++ /dev/null
@@ -1,17 +0,0 @@
-flutter/ephemeral/
-
-# Visual Studio user-specific files.
-*.suo
-*.user
-*.userosscache
-*.sln.docstates
-
-# Visual Studio build-related files.
-x64/
-x86/
-
-# Visual Studio cache files
-# files ending in .cache can be ignored
-*.[Cc]ache
-# but keep track of directories ending in .cache
-!*.[Cc]ache/
diff --git a/winuwp/CMakeLists.txt b/winuwp/CMakeLists.txt
deleted file mode 100644
index 7530c80c6..000000000
--- a/winuwp/CMakeLists.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-# Project-level configuration.
-cmake_minimum_required(VERSION 3.8)
-set(CMAKE_SYSTEM_NAME WindowsStore)
-set(CMAKE_SYSTEM_VERSION 10.0)
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED YES)
-project(fluffychat LANGUAGES CXX)
-
-# Explicitly opt in to modern CMake behaviors to avoid warnings with recent
-# versions of CMake.
-cmake_policy(SET CMP0079 NEW)
-
-# The name of the executable created for the application. Change this to change
-# the on-disk name of your application.
-set(BINARY_NAME "fluffychat")
-
-# Define build configuration options.
-get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
-if(IS_MULTICONFIG)
- set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release"
- CACHE STRING "" FORCE)
-else()
- if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
- set(CMAKE_BUILD_TYPE "Debug" CACHE
- STRING "Flutter build mode" FORCE)
- set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
- "Debug" "Profile" "Release")
- endif()
-endif()
-# Define settings for the Profile build mode.
-set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
-set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}")
-set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}")
-set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}")
-
-# Use Unicode for all projects.
-add_definitions(-DUNICODE -D_UNICODE)
-
-# Compilation settings that should be applied to most targets.
-#
-# Be cautious about adding new options here, as plugins use this function by
-# default. In most cases, you should add new options to specific targets instead
-# of modifying this function.
-function(APPLY_STANDARD_SETTINGS TARGET)
- target_compile_features(${TARGET} PUBLIC cxx_std_17)
- target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100" /await)
- target_compile_options(${TARGET} PRIVATE /EHsc)
- target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0")
- target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>")
- target_compile_definitions(${TARGET} PRIVATE WINUWP)
- set_target_properties(${TARGET} PROPERTIES VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION 10.0.18362.0)
-endfunction()
-
-set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
-
-# Flutter library and tool build rules.
-add_subdirectory(${FLUTTER_MANAGED_DIR})
-
-# Application build; see runner/CMakeLists.txt.
-add_subdirectory("runner_uwp")
-
-# Generated plugin build rules, which manage building the plugins and adding
-# them to the application.
-include(flutter/generated_plugins.cmake)
diff --git a/winuwp/flutter/CMakeLists.txt b/winuwp/flutter/CMakeLists.txt
deleted file mode 100644
index 9adbd9ddb..000000000
--- a/winuwp/flutter/CMakeLists.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-# This file controls Flutter-level build steps. It should not be edited.
-cmake_minimum_required(VERSION 3.8)
-set(CMAKE_SYSTEM_NAME WindowsStore)
-set(CMAKE_SYSTEM_VERSION 10.0)
-set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral")
-
-include(CMakePrintHelpers)
-
-# Configuration provided via flutter tool.
-include(${EPHEMERAL_DIR}/generated_config.cmake)
-
-# TODO: Move the rest of this into files in ephemeral. See
-# https://github.com/flutter/flutter/issues/57146.
-set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
-
-# === Flutter Library ===
-set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows_winuwp.dll")
-
-# === Assets ===
-set(CMAKE_INSTALL_MANIFEST "${EPHEMERAL_DIR}/install_manifest")
-file(STRINGS ${CMAKE_INSTALL_MANIFEST} INSTALL_MANIFEST_CONTENT)
-
-# Published to parent scope for install step.
-set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE)
-set(INSTALL_MANIFEST_CONTENT ${INSTALL_MANIFEST_CONTENT} PARENT_SCOPE)
-
-list(APPEND FLUTTER_LIBRARY_HEADERS
- "flutter_export.h"
- "flutter_windows.h"
- "flutter_messenger.h"
- "flutter_plugin_registrar.h"
- "flutter_texture_registrar.h"
-)
-list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/")
-add_library(flutter INTERFACE)
-target_include_directories(flutter INTERFACE
- "${EPHEMERAL_DIR}"
-)
-target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib")
-add_dependencies(flutter flutter_assemble)
-
-# === Wrapper ===
-list(APPEND CPP_WRAPPER_SOURCES_CORE
- "core_implementations.cc"
- "standard_codec.cc"
-)
-list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/")
-list(APPEND CPP_WRAPPER_SOURCES_PLUGIN
- "plugin_registrar.cc"
-)
-list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/")
-list(APPEND CPP_WRAPPER_SOURCES_APP
- "flutter_engine.cc"
- "flutter_view_controller.cc"
-)
-list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/")
-
-# Wrapper sources needed for a plugin.
-add_library(flutter_wrapper_plugin STATIC
- ${CPP_WRAPPER_SOURCES_CORE}
- ${CPP_WRAPPER_SOURCES_PLUGIN}
-)
-apply_standard_settings(flutter_wrapper_plugin)
-set_target_properties(flutter_wrapper_plugin PROPERTIES
- POSITION_INDEPENDENT_CODE ON)
-set_target_properties(flutter_wrapper_plugin PROPERTIES
- CXX_VISIBILITY_PRESET hidden)
-target_link_libraries(flutter_wrapper_plugin PUBLIC flutter)
-target_include_directories(flutter_wrapper_plugin PUBLIC
- "${WRAPPER_ROOT}/include"
-)
-add_dependencies(flutter_wrapper_plugin flutter_assemble)
-
-# Wrapper sources needed for the runner.
-add_library(flutter_wrapper_app STATIC
- ${CPP_WRAPPER_SOURCES_CORE}
- ${CPP_WRAPPER_SOURCES_APP}
-)
-apply_standard_settings(flutter_wrapper_app)
-target_link_libraries(flutter_wrapper_app PUBLIC flutter)
-target_include_directories(flutter_wrapper_app PUBLIC
- "${WRAPPER_ROOT}/include"
-)
-add_dependencies(flutter_wrapper_app flutter_assemble)
-
-add_custom_target(flutter_assemble DEPENDS
- "${FLUTTER_LIBRARY}"
- ${FLUTTER_LIBRARY_HEADERS}
- ${CPP_WRAPPER_SOURCES_CORE}
- ${CPP_WRAPPER_SOURCES_PLUGIN}
- ${CPP_WRAPPER_SOURCES_APP}
-)
diff --git a/winuwp/flutter/flutter_windows.h b/winuwp/flutter/flutter_windows.h
deleted file mode 100644
index 0aeb6fdc1..000000000
--- a/winuwp/flutter/flutter_windows.h
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright 2013 The Flutter Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_PUBLIC_FLUTTER_H_
-#define FLUTTER_SHELL_PLATFORM_WINDOWS_PUBLIC_FLUTTER_H_
-
-#include
-#include
-#include
-
-#include "flutter_export.h"
-#include "flutter_messenger.h"
-#include "flutter_plugin_registrar.h"
-
-#ifdef WINUWP
-#include
-#include
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-// Opaque reference to a Flutter window controller.
-typedef struct FlutterDesktopViewControllerState*
- FlutterDesktopViewControllerRef;
-
-// Opaque reference to a Flutter window.
-struct FlutterDesktopView;
-typedef struct FlutterDesktopView* FlutterDesktopViewRef;
-
-// Opaque reference to a Flutter engine instance.
-struct FlutterDesktopEngine;
-typedef struct FlutterDesktopEngine* FlutterDesktopEngineRef;
-
-// Properties for configuring a Flutter engine instance.
-typedef struct {
- // The path to the flutter_assets folder for the application to be run.
- // This can either be an absolute path or a path relative to the directory
- // containing the executable.
- const wchar_t* assets_path;
-
- // The path to the icudtl.dat file for the version of Flutter you are using.
- // This can either be an absolute path or a path relative to the directory
- // containing the executable.
- const wchar_t* icu_data_path;
-
- // The path to the AOT library file for your application, if any.
- // This can either be an absolute path or a path relative to the directory
- // containing the executable. This can be nullptr for a non-AOT build, as
- // it will be ignored in that case.
- const wchar_t* aot_library_path;
-
- // Number of elements in the array passed in as dart_entrypoint_argv.
- int dart_entrypoint_argc;
-
- // Array of Dart entrypoint arguments. This is deep copied during the call
- // to FlutterDesktopEngineCreate.
- const char** dart_entrypoint_argv;
-
-} FlutterDesktopEngineProperties;
-
-// ========== View Controller ==========
-
-// Creates a view that hosts and displays the given engine instance.
-//
-// This takes ownership of |engine|, so FlutterDesktopEngineDestroy should no
-// longer be called on it, as it will be called internally when the view
-// controller is destroyed. If creating the view controller fails, the engine
-// will be destroyed immediately.
-//
-// If |engine| is not already running, the view controller will start running
-// it automatically before displaying the window.
-//
-// The caller owns the returned reference, and is responsible for calling
-// FlutterDesktopViewControllerDestroy. Returns a null pointer in the event of
-// an error.
-#ifdef WINUWP
-// The CoreApplicationView implementation accepts a pointer to the host
-// CoreApplicationView and view hookup is performed in the construction path.
-FLUTTER_EXPORT FlutterDesktopViewControllerRef
-FlutterDesktopViewControllerCreateFromCoreApplicationView(
- ABI::Windows::ApplicationModel::Core::CoreApplicationView* window,
- ABI::Windows::ApplicationModel::Activation::IActivatedEventArgs* args,
- FlutterDesktopEngineRef engine);
-#else //! WINUWP
-// The Win32 implementation accepts width, height
-// with view hookup explicitly performed using the caller using HWND parenting.
-FLUTTER_EXPORT FlutterDesktopViewControllerRef
-FlutterDesktopViewControllerCreate(int width,
- int height,
- FlutterDesktopEngineRef engine);
-#endif
-
-// Shuts down the engine instance associated with |controller|, and cleans up
-// associated state.
-//
-// |controller| is no longer valid after this call.
-FLUTTER_EXPORT void FlutterDesktopViewControllerDestroy(
- FlutterDesktopViewControllerRef controller);
-
-// Returns the handle for the engine running in FlutterDesktopViewControllerRef.
-//
-// Its lifetime is the same as the |controller|'s.
-FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopViewControllerGetEngine(
- FlutterDesktopViewControllerRef controller);
-// Returns the view managed by the given controller.
-
-FLUTTER_EXPORT FlutterDesktopViewRef
-FlutterDesktopViewControllerGetView(FlutterDesktopViewControllerRef controller);
-
-// Requests new frame from engine and repaints the view
-FLUTTER_EXPORT void FlutterDesktopViewControllerForceRedraw(
- FlutterDesktopViewControllerRef controller);
-
-#ifndef WINUWP
-// Allows the Flutter engine and any interested plugins an opportunity to
-// handle the given message.
-//
-// If the WindowProc was handled and further handling should stop, this returns
-// true and |result| will be populated. |result| is not set if returning false.
-FLUTTER_EXPORT bool FlutterDesktopViewControllerHandleTopLevelWindowProc(
- FlutterDesktopViewControllerRef controller,
- HWND hwnd,
- UINT message,
- WPARAM wparam,
- LPARAM lparam,
- LRESULT* result);
-#endif
-
-// ========== Engine ==========
-
-// Creates a Flutter engine with the given properties.
-//
-// The caller owns the returned reference, and is responsible for calling
-// FlutterDesktopEngineDestroy. The lifetime of |engine_properties| is required
-// to extend only until the end of this call.
-FLUTTER_EXPORT FlutterDesktopEngineRef FlutterDesktopEngineCreate(
- const FlutterDesktopEngineProperties* engine_properties);
-
-// Shuts down and destroys the given engine instance. Returns true if the
-// shutdown was successful, or if the engine was not running.
-//
-// |engine| is no longer valid after this call.
-FLUTTER_EXPORT bool FlutterDesktopEngineDestroy(FlutterDesktopEngineRef engine);
-
-// Starts running the given engine instance and optional entry point in the Dart
-// project. If the entry point is null, defaults to main().
-//
-// If provided, entry_point must be the name of a top-level function from the
-// same Dart library that contains the app's main() function, and must be
-// decorated with `@pragma(vm:entry-point)` to ensure the method is not
-// tree-shaken by the Dart compiler.
-//
-// Returns false if running the engine failed.
-FLUTTER_EXPORT bool FlutterDesktopEngineRun(FlutterDesktopEngineRef engine,
- const char* entry_point);
-
-#ifndef WINUWP
-// DEPRECATED: This is no longer necessary to call, Flutter will take care of
-// processing engine messages transparently through DispatchMessage.
-//
-// Processes any pending events in the Flutter engine, and returns the
-// number of nanoseconds until the next scheduled event (or max, if none).
-//
-// This should be called on every run of the application-level runloop, and
-// a wait for native events in the runloop should never be longer than the
-// last return value from this function.
-FLUTTER_EXPORT uint64_t
-FlutterDesktopEngineProcessMessages(FlutterDesktopEngineRef engine);
-#endif
-
-FLUTTER_EXPORT void FlutterDesktopEngineReloadSystemFonts(
- FlutterDesktopEngineRef engine);
-
-FLUTTER_EXPORT void FlutterDesktopEngineReloadPlatformBrightness(
- FlutterDesktopEngineRef engine);
-
-// Returns the plugin registrar handle for the plugin with the given name.
-//
-// The name must be unique across the application.
-FLUTTER_EXPORT FlutterDesktopPluginRegistrarRef
-FlutterDesktopEngineGetPluginRegistrar(FlutterDesktopEngineRef engine,
- const char* plugin_name);
-
-// Returns the messenger associated with the engine.
-FLUTTER_EXPORT FlutterDesktopMessengerRef
-FlutterDesktopEngineGetMessenger(FlutterDesktopEngineRef engine);
-
-// Returns the texture registrar associated with the engine.
-FLUTTER_EXPORT FlutterDesktopTextureRegistrarRef
-FlutterDesktopEngineGetTextureRegistrar(
- FlutterDesktopTextureRegistrarRef texture_registrar);
-
-// ========== View ==========
-
-#ifdef WINUWP
-// Return backing CoreApplicationView for manipulation of CoreWindow and
-// CoreTitleBar in host application.
-FLUTTER_EXPORT ABI::Windows::ApplicationModel::Core::CoreApplicationView*
-FlutterDesktopViewGetCoreApplicationView(FlutterDesktopViewRef view);
-#else
-// Return backing HWND for manipulation in host application.
-FLUTTER_EXPORT HWND FlutterDesktopViewGetHWND(FlutterDesktopViewRef view);
-#endif
-
-// ========== Plugin Registrar (extensions) ==========
-// These are Windows-specific extensions to flutter_plugin_registrar.h
-
-// Function pointer type for top level WindowProc delegate registration.
-//
-// The user data will be whatever was passed to
-// FlutterDesktopRegisterTopLevelWindowProcHandler.
-//
-// Implementations should populate |result| and return true if the WindowProc
-// was handled and further handling should stop. |result| is ignored if the
-// function returns false.
-typedef bool (*FlutterDesktopWindowProcCallback)(HWND /* hwnd */,
- UINT /* uMsg */,
- WPARAM /*wParam*/,
- LPARAM /* lParam*/,
- void* /* user data */,
- LRESULT* result);
-
-// Returns the view associated with this registrar's engine instance.
-FLUTTER_EXPORT FlutterDesktopViewRef FlutterDesktopPluginRegistrarGetView(
- FlutterDesktopPluginRegistrarRef registrar);
-
-#ifndef WINUWP
-FLUTTER_EXPORT void
-FlutterDesktopPluginRegistrarRegisterTopLevelWindowProcDelegate(
- FlutterDesktopPluginRegistrarRef registrar,
- FlutterDesktopWindowProcCallback delegate,
- void* user_data);
-
-FLUTTER_EXPORT void
-FlutterDesktopPluginRegistrarUnregisterTopLevelWindowProcDelegate(
- FlutterDesktopPluginRegistrarRef registrar,
- FlutterDesktopWindowProcCallback delegate);
-#endif
-
-// ========== Freestanding Utilities ==========
-
-// Gets the DPI for a given |hwnd|, depending on the supported APIs per
-// windows version and DPI awareness mode. If nullptr is passed, returns the DPI
-// of the primary monitor.
-//
-// This uses the same logic and fallback for older Windows versions that is used
-// internally by Flutter to determine the DPI to use for displaying Flutter
-// content, so should be used by any code (e.g., in plugins) that translates
-// between Windows and Dart sizes/offsets.
-FLUTTER_EXPORT UINT FlutterDesktopGetDpiForHWND(HWND hwnd);
-
-// Gets the DPI for a given |monitor|. If the API is not available, a default
-// DPI of 96 is returned.
-//
-// See FlutterDesktopGetDpiForHWND for more information.
-FLUTTER_EXPORT UINT FlutterDesktopGetDpiForMonitor(HMONITOR monitor);
-
-// Reopens stdout and stderr and resysncs the standard library output streams.
-// Should be called if output is being directed somewhere in the runner process
-// (e.g., after an AllocConsole call).
-FLUTTER_EXPORT void FlutterDesktopResyncOutputStreams();
-
-#if defined(__cplusplus)
-} // extern "C"
-#endif
-
-#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_PUBLIC_FLUTTER_WINDOWS_H_
diff --git a/winuwp/flutter/generated_plugin_registrant.cc b/winuwp/flutter/generated_plugin_registrant.cc
deleted file mode 100644
index 8b6d4680a..000000000
--- a/winuwp/flutter/generated_plugin_registrant.cc
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Generated file. Do not edit.
-//
-
-// clang-format off
-
-#include "generated_plugin_registrant.h"
-
-
-void RegisterPlugins(flutter::PluginRegistry* registry) {
-}
diff --git a/winuwp/flutter/generated_plugin_registrant.h b/winuwp/flutter/generated_plugin_registrant.h
deleted file mode 100644
index dc139d85a..000000000
--- a/winuwp/flutter/generated_plugin_registrant.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// Generated file. Do not edit.
-//
-
-// clang-format off
-
-#ifndef GENERATED_PLUGIN_REGISTRANT_
-#define GENERATED_PLUGIN_REGISTRANT_
-
-#include
-
-// Registers Flutter plugins.
-void RegisterPlugins(flutter::PluginRegistry* registry);
-
-#endif // GENERATED_PLUGIN_REGISTRANT_
diff --git a/winuwp/flutter/generated_plugins.cmake b/winuwp/flutter/generated_plugins.cmake
deleted file mode 100644
index 4d10c2518..000000000
--- a/winuwp/flutter/generated_plugins.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Generated file, do not edit.
-#
-
-list(APPEND FLUTTER_PLUGIN_LIST
-)
-
-set(PLUGIN_BUNDLED_LIBRARIES)
-
-foreach(plugin ${FLUTTER_PLUGIN_LIST})
- add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin})
- target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin)
- list(APPEND PLUGIN_BUNDLED_LIBRARIES $)
- list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
-endforeach(plugin)
diff --git a/winuwp/project_version b/winuwp/project_version
deleted file mode 100644
index c22708346..000000000
--- a/winuwp/project_version
+++ /dev/null
@@ -1 +0,0 @@
-0
\ No newline at end of file
diff --git a/winuwp/runner_uwp/Assets/LargeTile.scale-100.png b/winuwp/runner_uwp/Assets/LargeTile.scale-100.png
deleted file mode 100644
index fa651eb71..000000000
Binary files a/winuwp/runner_uwp/Assets/LargeTile.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/LargeTile.scale-125.png b/winuwp/runner_uwp/Assets/LargeTile.scale-125.png
deleted file mode 100644
index 649e07696..000000000
Binary files a/winuwp/runner_uwp/Assets/LargeTile.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/LargeTile.scale-150.png b/winuwp/runner_uwp/Assets/LargeTile.scale-150.png
deleted file mode 100644
index fd14c60cb..000000000
Binary files a/winuwp/runner_uwp/Assets/LargeTile.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/LargeTile.scale-200.png b/winuwp/runner_uwp/Assets/LargeTile.scale-200.png
deleted file mode 100644
index 873537f33..000000000
Binary files a/winuwp/runner_uwp/Assets/LargeTile.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/LargeTile.scale-400.png b/winuwp/runner_uwp/Assets/LargeTile.scale-400.png
deleted file mode 100644
index 979878f73..000000000
Binary files a/winuwp/runner_uwp/Assets/LargeTile.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/LockScreenLogo.scale-200.png b/winuwp/runner_uwp/Assets/LockScreenLogo.scale-200.png
deleted file mode 100644
index 735f57adb..000000000
Binary files a/winuwp/runner_uwp/Assets/LockScreenLogo.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SmallTile.scale-100.png b/winuwp/runner_uwp/Assets/SmallTile.scale-100.png
deleted file mode 100644
index 35e7f6242..000000000
Binary files a/winuwp/runner_uwp/Assets/SmallTile.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SmallTile.scale-125.png b/winuwp/runner_uwp/Assets/SmallTile.scale-125.png
deleted file mode 100644
index 2a74cc67e..000000000
Binary files a/winuwp/runner_uwp/Assets/SmallTile.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SmallTile.scale-150.png b/winuwp/runner_uwp/Assets/SmallTile.scale-150.png
deleted file mode 100644
index 157124823..000000000
Binary files a/winuwp/runner_uwp/Assets/SmallTile.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SmallTile.scale-200.png b/winuwp/runner_uwp/Assets/SmallTile.scale-200.png
deleted file mode 100644
index 07ec2ddcb..000000000
Binary files a/winuwp/runner_uwp/Assets/SmallTile.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SmallTile.scale-400.png b/winuwp/runner_uwp/Assets/SmallTile.scale-400.png
deleted file mode 100644
index c205729b7..000000000
Binary files a/winuwp/runner_uwp/Assets/SmallTile.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SplashScreen.scale-100.png b/winuwp/runner_uwp/Assets/SplashScreen.scale-100.png
deleted file mode 100644
index 601257981..000000000
Binary files a/winuwp/runner_uwp/Assets/SplashScreen.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SplashScreen.scale-125.png b/winuwp/runner_uwp/Assets/SplashScreen.scale-125.png
deleted file mode 100644
index 0c35be827..000000000
Binary files a/winuwp/runner_uwp/Assets/SplashScreen.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SplashScreen.scale-150.png b/winuwp/runner_uwp/Assets/SplashScreen.scale-150.png
deleted file mode 100644
index f1e60f33c..000000000
Binary files a/winuwp/runner_uwp/Assets/SplashScreen.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SplashScreen.scale-200.png b/winuwp/runner_uwp/Assets/SplashScreen.scale-200.png
deleted file mode 100644
index 73d2461ce..000000000
Binary files a/winuwp/runner_uwp/Assets/SplashScreen.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/SplashScreen.scale-400.png b/winuwp/runner_uwp/Assets/SplashScreen.scale-400.png
deleted file mode 100644
index b2b7ca9c4..000000000
Binary files a/winuwp/runner_uwp/Assets/SplashScreen.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-100.png b/winuwp/runner_uwp/Assets/Square150x150Logo.scale-100.png
deleted file mode 100644
index cdc3e9732..000000000
Binary files a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-125.png b/winuwp/runner_uwp/Assets/Square150x150Logo.scale-125.png
deleted file mode 100644
index 71e5a1153..000000000
Binary files a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-150.png b/winuwp/runner_uwp/Assets/Square150x150Logo.scale-150.png
deleted file mode 100644
index 60f2e1827..000000000
Binary files a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-200.png b/winuwp/runner_uwp/Assets/Square150x150Logo.scale-200.png
deleted file mode 100644
index 20814081d..000000000
Binary files a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-400.png b/winuwp/runner_uwp/Assets/Square150x150Logo.scale-400.png
deleted file mode 100644
index 605aacb02..000000000
Binary files a/winuwp/runner_uwp/Assets/Square150x150Logo.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png b/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
deleted file mode 100644
index 1c78d96bf..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-16.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
deleted file mode 100644
index d49d3d899..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-256.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png b/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
deleted file mode 100644
index 889622468..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-32.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png b/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
deleted file mode 100644
index 6389ede5a..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.altform-unplated_targetsize-48.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-100.png b/winuwp/runner_uwp/Assets/Square44x44Logo.scale-100.png
deleted file mode 100644
index 47e3cd29b..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-125.png b/winuwp/runner_uwp/Assets/Square44x44Logo.scale-125.png
deleted file mode 100644
index 50faa9328..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-150.png b/winuwp/runner_uwp/Assets/Square44x44Logo.scale-150.png
deleted file mode 100644
index f0293ed81..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-200.png b/winuwp/runner_uwp/Assets/Square44x44Logo.scale-200.png
deleted file mode 100644
index e54a56dbc..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-400.png b/winuwp/runner_uwp/Assets/Square44x44Logo.scale-400.png
deleted file mode 100644
index 4b5fb179f..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-16.png b/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-16.png
deleted file mode 100644
index a1a6ec70a..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-16.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-24.png b/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-24.png
deleted file mode 100644
index c67a8e12f..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-24.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
deleted file mode 100644
index 47d36f63e..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-24_altform-unplated.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-256.png b/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-256.png
deleted file mode 100644
index 50efc008d..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-256.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-32.png b/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-32.png
deleted file mode 100644
index f86682c9f..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-32.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-48.png b/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-48.png
deleted file mode 100644
index 7561269af..000000000
Binary files a/winuwp/runner_uwp/Assets/Square44x44Logo.targetsize-48.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/StoreLogo.png b/winuwp/runner_uwp/Assets/StoreLogo.png
deleted file mode 100644
index 7385b56c0..000000000
Binary files a/winuwp/runner_uwp/Assets/StoreLogo.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/StoreLogo.scale-100.png b/winuwp/runner_uwp/Assets/StoreLogo.scale-100.png
deleted file mode 100644
index fcefe81ba..000000000
Binary files a/winuwp/runner_uwp/Assets/StoreLogo.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/StoreLogo.scale-125.png b/winuwp/runner_uwp/Assets/StoreLogo.scale-125.png
deleted file mode 100644
index 4381be777..000000000
Binary files a/winuwp/runner_uwp/Assets/StoreLogo.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/StoreLogo.scale-150.png b/winuwp/runner_uwp/Assets/StoreLogo.scale-150.png
deleted file mode 100644
index e49390bf3..000000000
Binary files a/winuwp/runner_uwp/Assets/StoreLogo.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/StoreLogo.scale-200.png b/winuwp/runner_uwp/Assets/StoreLogo.scale-200.png
deleted file mode 100644
index fb740e846..000000000
Binary files a/winuwp/runner_uwp/Assets/StoreLogo.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/StoreLogo.scale-400.png b/winuwp/runner_uwp/Assets/StoreLogo.scale-400.png
deleted file mode 100644
index d1472741e..000000000
Binary files a/winuwp/runner_uwp/Assets/StoreLogo.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/Wide310x150Logo.scale-200.png b/winuwp/runner_uwp/Assets/Wide310x150Logo.scale-200.png
deleted file mode 100644
index 288995b39..000000000
Binary files a/winuwp/runner_uwp/Assets/Wide310x150Logo.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/WideTile.scale-100.png b/winuwp/runner_uwp/Assets/WideTile.scale-100.png
deleted file mode 100644
index 1cb688c7b..000000000
Binary files a/winuwp/runner_uwp/Assets/WideTile.scale-100.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/WideTile.scale-125.png b/winuwp/runner_uwp/Assets/WideTile.scale-125.png
deleted file mode 100644
index 729239615..000000000
Binary files a/winuwp/runner_uwp/Assets/WideTile.scale-125.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/WideTile.scale-150.png b/winuwp/runner_uwp/Assets/WideTile.scale-150.png
deleted file mode 100644
index d4b275a57..000000000
Binary files a/winuwp/runner_uwp/Assets/WideTile.scale-150.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/WideTile.scale-200.png b/winuwp/runner_uwp/Assets/WideTile.scale-200.png
deleted file mode 100644
index 601257981..000000000
Binary files a/winuwp/runner_uwp/Assets/WideTile.scale-200.png and /dev/null differ
diff --git a/winuwp/runner_uwp/Assets/WideTile.scale-400.png b/winuwp/runner_uwp/Assets/WideTile.scale-400.png
deleted file mode 100644
index 73d2461ce..000000000
Binary files a/winuwp/runner_uwp/Assets/WideTile.scale-400.png and /dev/null differ
diff --git a/winuwp/runner_uwp/CMakeLists.txt b/winuwp/runner_uwp/CMakeLists.txt
deleted file mode 100644
index b4362a4fc..000000000
--- a/winuwp/runner_uwp/CMakeLists.txt
+++ /dev/null
@@ -1,141 +0,0 @@
-cmake_minimum_required (VERSION 3.8)
-set(CMAKE_SYSTEM_NAME WindowsStore)
-set(CMAKE_SYSTEM_VERSION 10.0)
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED YES)
-
-include(CMakePrintHelpers)
-
-project (runner LANGUAGES CXX)
-
-# UWP tile and icon assets.
-set(ASSET_FILES ${ASSET_FILES}
- Assets/LargeTile.scale-100.png
- Assets/LargeTile.scale-125.png
- Assets/LargeTile.scale-150.png
- Assets/LargeTile.scale-200.png
- Assets/LargeTile.scale-400.png
- Assets/LockScreenLogo.scale-200.png
- Assets/SmallTile.scale-100.png
- Assets/SmallTile.scale-125.png
- Assets/SmallTile.scale-150.png
- Assets/SmallTile.scale-200.png
- Assets/SmallTile.scale-400.png
- Assets/SplashScreen.scale-100.png
- Assets/SplashScreen.scale-125.png
- Assets/SplashScreen.scale-150.png
- Assets/SplashScreen.scale-200.png
- Assets/SplashScreen.scale-400.png
- Assets/Square44x44Logo.altform-unplated_targetsize-16.png
- Assets/Square44x44Logo.altform-unplated_targetsize-32.png
- Assets/Square44x44Logo.altform-unplated_targetsize-48.png
- Assets/Square44x44Logo.altform-unplated_targetsize-256.png
- Assets/Square44x44Logo.scale-100.png
- Assets/Square44x44Logo.scale-125.png
- Assets/Square44x44Logo.scale-150.png
- Assets/Square44x44Logo.scale-200.png
- Assets/Square44x44Logo.scale-400.png
- Assets/Square44x44Logo.targetsize-16.png
- Assets/Square44x44Logo.targetsize-24.png
- Assets/Square44x44Logo.targetsize-24_altform-unplated.png
- Assets/Square44x44Logo.targetsize-32.png
- Assets/Square44x44Logo.targetsize-48.png
- Assets/Square44x44Logo.targetsize-256.png
- Assets/Square150x150Logo.scale-100.png
- Assets/Square150x150Logo.scale-125.png
- Assets/Square150x150Logo.scale-150.png
- Assets/Square150x150Logo.scale-200.png
- Assets/Square150x150Logo.scale-400.png
- Assets/StoreLogo.png
- Assets/StoreLogo.scale-100.png
- Assets/StoreLogo.scale-125.png
- Assets/StoreLogo.scale-150.png
- Assets/StoreLogo.scale-200.png
- Assets/StoreLogo.scale-400.png
- Assets/Wide310x150Logo.scale-200.png
- Assets/WideTile.scale-100.png
- Assets/WideTile.scale-125.png
- Assets/WideTile.scale-150.png
- Assets/WideTile.scale-200.png
- Assets/WideTile.scale-400.png
-)
-
-# Configure package manifest file.
-set(APP_MANIFEST_NAME Package.appxmanifest)
-set(APP_MANIFEST_TARGET_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${APP_MANIFEST_NAME})
-set(SHORT_NAME ${BINARY_NAME})
-set(PACKAGE_GUID "086F9B60-CB52-4D0B-9B4E-AE891E7859D1")
-
-configure_file(
- appxmanifest.in
- ${APP_MANIFEST_TARGET_LOCATION}
- @ONLY)
-
-set(CONTENT_FILES ${APP_MANIFEST_TARGET_LOCATION})
-
-# Configure package content files.
-set_property(SOURCE ${CONTENT_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
-
-set(RESOURCE_FILES ${ASSET_FILES} ${CONTENT_FILES} Windows_TemporaryKey.pfx)
-set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_CONTENT 1)
-set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "Assets")
-
-set(STRING_FILES Resources.pri)
-set_property(SOURCE ${STRING_FILES} PROPERTY VS_TOOL_OVERRIDE "PRIResource")
-
-source_group("Resource Files" FILES ${RESOURCE_FILES} ${CONTENT_FILES} ${STRING_FILES})
-
-# Configure Flutter assets using tool generated install manifest
-foreach(ITEM ${INSTALL_MANIFEST_CONTENT})
- get_filename_component(ITEM_REL ${CMAKE_BINARY_DIR} DIRECTORY)
- file(RELATIVE_PATH RELPATH ${ITEM_REL} ${ITEM})
-
- get_filename_component(RELPATH ${RELPATH} DIRECTORY)
- get_filename_component(ITEMEXT ${ITEM} LAST_EXT)
-
- if("${ITEMEXT}" STREQUAL ".dll" OR "${ITEMEXT}" STREQUAL ".pdb")
- string(CONCAT RELPATH "")
- elseif ("${ITEMEXT}" STREQUAL ".so")
- file(RELATIVE_PATH RELPATH "${ITEM_REL}/winuwp" ${ITEM})
- string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH})
- string(CONCAT RELPATH "Assets\\Data")
- elseif("${ITEMEXT}" STREQUAL ".dat")
- string(CONCAT RELPATH "Assets\\Data")
- else()
- string(REGEX REPLACE "/" "\\\\" RELPATH ${RELPATH})
- string(CONCAT RELPATH "Assets\\Data\\" ${RELPATH})
- endif()
-
- cmake_print_variables(${RELPATH})
-
- set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_CONTENT 1)
- set_property(SOURCE ${ITEM} PROPERTY VS_DEPLOYMENT_LOCATION ${RELPATH})
-endforeach()
-
-# Define the application target. To change its name, change BINARY_NAME in the
-# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer
-# work.
-#
-# Any new source files that you add to the application should be added here.
-add_executable (${BINARY_NAME} WIN32
- main.cpp
- flutter_frameworkview.cpp
- "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
- ${RESOURCE_FILES}
- ${INSTALL_MANIFEST_CONTENT}
-)
-
-# Apply the standard set of build settings. This can be removed for applications
-# that need different build settings.
-apply_standard_settings(${BINARY_NAME})
-
-# Disable Windows macros that collide with C++ standard library functions.
-target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX")
-
-# Add dependency libraries and include directories. Add any application-specific
-# dependencies here.
-target_link_libraries(${BINARY_NAME} PRIVATE WindowsApp flutter flutter_wrapper_app)
-target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
-
-# Run the Flutter tool portions of the build. This must not be removed.
-add_dependencies(${BINARY_NAME} flutter_assemble)
diff --git a/winuwp/runner_uwp/CMakeSettings.json b/winuwp/runner_uwp/CMakeSettings.json
deleted file mode 100644
index ba63a530d..000000000
--- a/winuwp/runner_uwp/CMakeSettings.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- // See https://go.microsoft.com//fwlink//?linkid=834763 for more information about this file.
- "configurations": [
- {
- "name": "Debug",
- "generator": "Visual Studio 15 2017 Win64",
- "configurationType": "Debug",
- "inheritEnvironments": [ "msvc_x64_x64" ],
- "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
- "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
- "cmakeCommandArgs": "",
- "buildCommandArgs": "",
- "ctestCommandArgs": ""
- },
- {
- "name": "Release",
- "generator": "Visual Studio 15 2017 Win64",
- "configurationType": "Release",
- "inheritEnvironments": [ "msvc_x64_x64" ],
- "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
- "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
- "cmakeCommandArgs": "",
- "buildCommandArgs": "",
- "ctestCommandArgs": ""
- }
- ]
-}
diff --git a/winuwp/runner_uwp/Windows_TemporaryKey.pfx b/winuwp/runner_uwp/Windows_TemporaryKey.pfx
deleted file mode 100644
index 1cad9993d..000000000
Binary files a/winuwp/runner_uwp/Windows_TemporaryKey.pfx and /dev/null differ
diff --git a/winuwp/runner_uwp/appxmanifest.in b/winuwp/runner_uwp/appxmanifest.in
deleted file mode 100644
index 570d424ee..000000000
--- a/winuwp/runner_uwp/appxmanifest.in
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
- @SHORT_NAME@
- CMake Test Cert
- Assets/StoreLogo.png
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/winuwp/runner_uwp/flutter_frameworkview.cpp b/winuwp/runner_uwp/flutter_frameworkview.cpp
deleted file mode 100644
index bcdc73adb..000000000
--- a/winuwp/runner_uwp/flutter_frameworkview.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-#include "winrt/Windows.ApplicationModel.Core.h"
-#include "winrt/Windows.Foundation.h"
-#include "winrt/Windows.System.Profile.h"
-#include "winrt/Windows.System.Threading.h"
-#include "winrt/Windows.UI.Core.h"
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-struct FlutterFrameworkView
- : winrt::implements<
- FlutterFrameworkView,
- winrt::Windows::ApplicationModel::Core::IFrameworkView> {
- // |winrt::Windows::ApplicationModel::Core::IFrameworkView|
- void
- Initialize(winrt::Windows::ApplicationModel::Core::CoreApplicationView const
- &applicationView) {
-
- // Layout scaling must be disabled in the appinitialization phase in order
- // to take effect correctly.
- if (winrt::Windows::System::Profile::AnalyticsInfo::VersionInfo()
- .DeviceFamily() == L"Windows.Xbox") {
-
- bool result = winrt::Windows::UI::ViewManagement::ApplicationViewScaling::
- TrySetDisableLayoutScaling(true);
- if (!result) {
- OutputDebugString(L"Couldn't disable layout scaling");
- }
- }
-
- main_view_ = applicationView;
- main_view_.Activated({this, &FlutterFrameworkView::OnActivated});
- }
-
- // |winrt::Windows::ApplicationModel::Core::IFrameworkView|
- void Uninitialize() {
- main_view_.Activated(nullptr);
- main_view_ = nullptr;
- }
-
- // |winrt::Windows::ApplicationModel::Core::IFrameworkView|
- void Load(winrt::hstring const &) {}
-
- // |winrt::Windows::ApplicationModel::Core::IFrameworkView|
- void Run() {
- winrt::Windows::UI::Core::CoreWindow window =
- winrt::Windows::UI::Core::CoreWindow::GetForCurrentThread();
-
- winrt::Windows::UI::Core::CoreDispatcher dispatcher = window.Dispatcher();
- dispatcher.ProcessEvents(
- winrt::Windows::UI::Core::CoreProcessEventsOption::ProcessUntilQuit);
- }
-
- // |winrt::Windows::ApplicationModel::Core::IFrameworkView|
- winrt::Windows::Foundation::IAsyncAction
- SetWindow(winrt::Windows::UI::Core::CoreWindow const &window) {
-
- // Capture reference to window.
- window_ = window;
-
- // Lay out the window's content within the region occupied by the
- // CoreWindow.
- auto appView = winrt::Windows::UI::ViewManagement::ApplicationView::
- GetForCurrentView();
-
- appView.SetDesiredBoundsMode(winrt::Windows::UI::ViewManagement::
- ApplicationViewBoundsMode::UseCoreWindow);
-
- // Configure folder paths.
- try {
- winrt::Windows::Storage::StorageFolder folder =
- winrt::Windows::ApplicationModel::Package::Current()
- .InstalledLocation();
-
- winrt::Windows::Storage::StorageFolder assets =
- co_await folder.GetFolderAsync(L"Assets");
- winrt::Windows::Storage::StorageFolder data =
- co_await assets.GetFolderAsync(L"data");
- winrt::Windows::Storage::StorageFolder flutter_assets =
- co_await data.GetFolderAsync(L"flutter_assets");
- winrt::Windows::Storage::StorageFile icu_data =
- co_await data.GetFileAsync(L"icudtl.dat");
-
-#if NDEBUG
- winrt::Windows::Storage::StorageFile aot_data =
- co_await data.GetFileAsync(L"app.so");
-#endif
-
- std::wstring flutter_assets_path{flutter_assets.Path()};
- std::wstring icu_data_path{icu_data.Path()};
- std::wstring aot_data_path {
-#if NDEBUG
- aot_data.Path()
-#endif
- };
-
- flutter::DartProject project(flutter_assets_path, icu_data_path,
- aot_data_path);
-
- // Construct viewcontroller using the Window and project
- flutter_view_controller_ = std::make_unique(
- static_cast(winrt::get_abi(main_view_)),
- static_cast(winrt::get_abi(launch_args_)),
- project);
-
- // If plugins present, register them.
- RegisterPlugins(flutter_view_controller_.get()->engine());
- } catch (winrt::hresult_error &err) {
- winrt::Windows::UI::Popups::MessageDialog md =
- winrt::Windows::UI::Popups::MessageDialog::MessageDialog(
- L"There was a problem starting the engine: " + err.message());
- md.ShowAsync();
- }
- }
-
- void OnActivated(
- winrt::Windows::ApplicationModel::Core::CoreApplicationView const
- &applicationView,
- winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs const
- &args) {
- // Activate the application window, making it visible and enabling it to
- // receive events.
- applicationView.CoreWindow().Activate();
-
- // Capture launch args to later pass to Flutter.
- launch_args_ = args;
- }
-
- // Current CoreApplicationView.
- winrt::Windows::ApplicationModel::Core::CoreApplicationView main_view_{
- nullptr};
-
- // Current CoreWindow.
- winrt::Windows::UI::Core::CoreWindow window_{nullptr};
-
- // Current FlutterViewController.
- std::unique_ptr flutter_view_controller_{
- nullptr};
-
- // Launch args that were passed in on activation.
- winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs
- launch_args_;
-};
diff --git a/winuwp/runner_uwp/main.cpp b/winuwp/runner_uwp/main.cpp
deleted file mode 100644
index 1ce54b1fc..000000000
--- a/winuwp/runner_uwp/main.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#include
-
-#include "winrt/Windows.ApplicationModel.Core.h"
-#include "winrt/Windows.Foundation.h"
-#include
-#include
-#include
-
-#include
-
-#include "flutter_frameworkview.cpp"
-
-struct App
- : winrt::implements<
- App, winrt::Windows::ApplicationModel::Core::IFrameworkViewSource> {
- App() { view_ = winrt::make_self(); }
-
- // |winrt::Windows::ApplicationModel::Core::IFrameworkViewSource|
- winrt::Windows::ApplicationModel::Core::IFrameworkView CreateView() {
- return view_.as();
- }
-
- winrt::com_ptr view_;
-};
-
-int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int) {
- winrt::Windows::ApplicationModel::Core::CoreApplication::Run(
- winrt::make());
-}
diff --git a/winuwp/runner_uwp/resources.pri b/winuwp/runner_uwp/resources.pri
deleted file mode 100644
index 7de03c9dc..000000000
Binary files a/winuwp/runner_uwp/resources.pri and /dev/null differ