From cec1a1e4284fac73f89ba7b682f166960909dbbd Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Thu, 13 Oct 2016 14:39:03 -0700 Subject: [PATCH] Add SystemNavigator.pop (flutter/engine#3130) This method will let us remove the activity service. --- .../android/io/flutter/plugin/platform/PlatformPlugin.java | 6 ++++++ .../darwin/ios/framework/Source/FlutterPlatformPlugin.mm | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java b/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java index 6b0aa6a253..8d701bb215 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/plugin/platform/PlatformPlugin.java @@ -51,6 +51,8 @@ public class PlatformPlugin extends JSONMessageListener implements ActivityLifec setSystemChromeEnabledSystemUIOverlays(args.getJSONArray(0)); } else if (method.equals("SystemChrome.setSystemUIOverlayStyle")) { setSystemChromeSystemUIOverlayStyle(args.getString(0)); + } else if (method.equals("SystemNavigator.pop")) { + popSystemNavigator(); } else if (method.equals("PathProvider.getTemporaryDirectory")) { return getPathProviderTemporaryDirectory(); } else if (method.equals("PathProvider.getApplicationDocumentsDirectory")) { @@ -160,6 +162,10 @@ public class PlatformPlugin extends JSONMessageListener implements ActivityLifec // so LIGHT vs DARK effectively isn't supported in Android. } + private void popSystemNavigator() { + mActivity.finish(); + } + private JSONObject getPathProviderTemporaryDirectory() throws JSONException { JSONObject result = new JSONObject(); result.put("path", mActivity.getCacheDir().getPath()); diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm index 7e07e7f4db..02676de894 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformPlugin.mm @@ -56,6 +56,8 @@ using namespace shell; [self setSystemChromeEnabledSystemUIOverlays:args.firstObject]; } else if ([method isEqualToString:@"SystemChrome.setSystemUIOverlayStyle"]) { [self setSystemChromeSystemUIOverlayStyle:args.firstObject]; + } else if ([method isEqualToString:@"SystemNavigator.pop"]) { + [self popSystemNavigator]; } else if ([method isEqualToString:@"PathProvider.getTemporaryDirectory"]) { return [self getPathProviderTemporaryDirectory]; } else if ([method isEqualToString:@"PathProvider.getApplicationDocumentsDirectory"]) { @@ -160,6 +162,10 @@ using namespace shell; } } +- (void)popSystemNavigator { + // Apple's human user guidelines say not to terminate iOS applications. +} + - (NSDictionary*)getPathProviderTemporaryDirectory { return GetDirectoryOfType(NSCachesDirectory); }